こんにちは。
少し前にPythonのことをしらべていましたら、OpenCVが結構簡単に使えることがわかって早速やってみました。普段Perlを使うことが多いのですがこういうC系のモジュールになると、自分の力不足ですが、Win32にうまくインストールできないことがおおいのです。 Pythonだとスゴイ簡単にインストールできました。
OpenCV.jp
http://opencv.jp/
にいってWindows版をインストールすると
C:\OpenCV2.1\Python2.6\Lib\site-packages
というフォルダに
- cv.lib
- cv.pyd
というのができるので、これをPythonの
C:\Python\Lib\site-packages
にいれるだけ、っぽいです。
このサイトを参考にテストスクリプトを書きました。
http://my.opera.com/tanoue/blog/2010/05/29/python-opencv
[face_detect.py]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
import cv
def detectObjects(image):
# load cascade file
cascade = cv.Load(
'C:/OpenCV2.1/data/haarcascades/haarcascade_frontalface_alt.xml')
faces = cv.HaarDetectObjects(image, cascade, cv.CreateMemStorage(0))
if faces:
# すべての認知された顔に対して
for (x,y,w,h),n in faces:
# 枠を描く
cv.Rectangle(image, (x,y), (x+w,y+h), cv.CV_RGB(255,0,0), 2)
cv.SaveImage("new_faces.jpg", image)
def main():
imagename = "faces.jpg"
image = cv.LoadImage(imagename);
detectObjects(image)
if __name__ == "__main__":
main()
faces.jpgにはこれを使いました。
できあがったのがこれです。国籍関係なく認識しております。
Loadのところでは認識パターンのファイルが、例えば「前向きの顔」であれば「haarcascade_frontalface_alt.xml」という感じですでにXMLデータで用意されているので、それをつかえばひとまずのところはできるようです。チューニングしたければ自分で後でやると。
Pythonならインストールから実行までスゴイ簡単でしたので、簡単なWebサービスなんかもすぐできそうです。



