↑↑↑↑こんな顔認識で、人の動きに合わえて、ちょうちょ飛ばしたり、なんかインタラクティブに遊べるおもちゃを作りたくて、ラズパイ☓simpleCVにチャレンジした。
結果。。。Webカメラ(ELECOM WEBカメラ 130万画素 1/4インチCMOSセンサ ガラスレンズ・LEDライト搭載 マイク内蔵 イヤホンマイク付 ホワイト UCAM-DLK130TWH
)接続して、raspberry piで顔認識をトライしたくいろいろやってみたが上手くいかず。以下に記録を残す。
参考にした手順はこちら
- How to easily install OpenCV on Raspberry Pi
- Facial recognition: OpenCV on the camera board
- RASPBERRY PI + SIMPLECV + OPENCV + RASPICAM CSI CAMERA
気になる手順はこちら
- http://www.cl.cam.ac.uk/~db434/raspi/image_processing/
- http://www.raspberrypi.org/phpBB3//viewtopic.php?f=31&t=22453
あとバイブルのこちら
必要なモノのインストール
ライブラリ関係のインストール。
$ sudo apt-get install python-pygame python-scipy python-numpy
インストールツールpipのインストール
$ sudo apt-get install python-pip
SimpleCVのインストール
$ git clone git://github.com/sightmachine/SimpleCV.git $ cd SimpleCV $ sudo python setup.py install
svgwriteのインストール
$ sudo pip install svgwrite
カメラテスト(luvciew)
まずは、luvcviewでカメラテストをしようとしたが以下のエラーでテスト表示もできない。他のRaspberry pi機ではうまく行ったのになんでだろう。
SLD information: Video driver:X11 A windows manager is available Device information: Device path: /dev/video0 Stream settings: Frame format: YUYV libv4l2:error setting pixformat: Device or resource busy Unable to set format: Device or resource busy Init v4lL2 failed!! exit fatal
原因がよくわからないので dmseg コマンドを実行してみる。
[ 1445.835810] usb 1-1.2: USB disconnect, device number 4 [ 1452.476167] usb 1-1.2: new high-speed USB device number 6 using dwc_otg [ 1452.607264] usb 1-1.2: New USB device found, idVendor=056e, idProduct=700f [ 1452.607295] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1452.607312] usb 1-1.2: Product: ELECOM UCAM-DLK130T [ 1452.607328] usb 1-1.2: Manufacturer: ELECOM [ 1452.612035] uvcvideo: Found UVC 1.00 device ELECOM UCAM-DLK130T (056e:700f) [ 1452.615521] input: ELECOM UCAM-DLK130T as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input1 [ 1462.916953] uvcvideo: Failed to set UVC probe control : -32 (exp. 26).
う~ん、最後の行が怪しい。
uvcvideo: Failed to set UVC probe control : -32 (exp. 26)
カメラテスト(guvcview)
guvcview でテストしてみよう。表示できた。
sudo apt-get install guvcview
プログラム実行
好きなファイル名で以下のプログラムを保存。(test.pyで保存した)
import time from SimpleCV import * camera = Camera(0) while True: img = camera.getImage() img.show() time.sleep(1)
test.pyを実行。
sudo python test.py VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument VIDIOC_QUERYMENU: Invalid argument libv4l2: error setting pixformat: Device or resource busy HIGHGUI ERROR: libv4l unable to ioctl S_FMT libv4l2: error setting pixformat: Device or resource busy libv4l1: error setting pixformat: Device or resource busy HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT WARNING: caught exception: SystemError('ioctl(VIDIOC_S_FMT) failure: no support$ WARNING: SimpleCV can't seem to find a camera on your system, or the drivers do$ ERROR: Traceback (most recent call last): File "test.py", line 7, in <module> img = camera.getImage() File "/usr/local/lib/python2.7/dist-packages/SimpleCV-1.3-py2.7.egg/SimpleCV/$ cv.GrabFrame(self.capture) TypeError: Expected CvCapture for argument 'capture'
続いて、「Raspberry Piをはじめよう (Make: PROJECTS)」の138pにあるpythonスクリプトを実行して SimpleCV でカメラを操作するを試みるも、上記同様のエラーで上手くいかず。
#pygame install on linux mint(http://inventwithpython.com/pygame/chapter1.html)