1. yoneken

    Posted

    yoneken
Changes in title
+Edisonで顔認識
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,61 @@
+
+顔認識と言えば,[OpenCV](http://opencv.jp/)ですねっ!!
+
+# USBカメラのドライバを組み込む
+ [昨日の記事](http://qiita.com/yoneken/items/88165cebbadcc8d6878c)を参考に,LinuxのカーネルにUSBカメラのドライバを組み込んでください.
+![カーネルにUSBカメラのドライバを組み込む](https://pbs.twimg.com/media/B31mbbqCEAAhu7u.png "カーネルにUSBカメラのドライバを組み込む")
+
+ 数時間差で,[にゅーらるさんが手順を一から詳しく説明した記事](http://neuralassembly.blogspot.jp/2014/12/intel-edisonwebmjpg-streamer.html?spref=tw)を書いてくれているので,もっと詳しく知りたい人は、そっちもチェック!
+
+# OpenCVのインストール
+ OpenCVは,opkgにパッケージがあります.
+
+\# opkg install opencv python-opencv
+
+# コードを書く
+```python:detectface.py
+import cv2
+import sys
+
+cascPath = sys.argv[1]
+faceCascade = cv2.CascadeClassifier(cascPath)
+
+video_capture = cv2.VideoCapture(0)
+
+# Capture frame-by-frame
+ret, frame = video_capture.read()
+
+gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
+
+faces = faceCascade.detectMultiScale(
+ gray,
+ scaleFactor=1.1,
+ minNeighbors=5,
+ minSize=(30, 30),
+ flags=cv2.cv.CV_HAAR_SCALE_IMAGE
+)
+
+# Draw a rectangle around the faces
+for (x, y, w, h) in faces:
+ cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
+
+# Save the resulting frame
+cv2.imwrite('face.png', frame)
+
+
+# When everything is done, release the capture
+video_capture.release()
+
+```
+
+ スパっと[こちら](https://realpython.com/blog/python/face-detection-in-python-using-a-webcam/)のコードに手を加えました.
+ ありがとうございます.
+
+# 結果
+ このOpenCVは,Haar Cascadesという顔のかたちの明暗ライブラリを使用するので,どっかOpenCVをインストールしたコンピュータから持って来てください(適当).Ubuntuの場合は, */usr/share/opencv/haacascades/haacascade_frontalface_alt.xml* にあります.これを使って,
+
+\# python ./detectface.py ./haacascade_frontalface_alt.xml
+
+とすると,同一ディレクトリ内にface.pngという認識結果のファイルが生成されます.
+
+![Edisonで顔認識](https://pbs.twimg.com/media/B311wFaCYAAP-WI.png "Edisonで顔認識")