9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

カメラを使って顔認識 with opencv3 + python2.7

Last updated at Posted at 2016-05-08

#【環境】
・windows8.1
・surface pro2

#【準備】
・Anacondaのインストール(python2.7)
https://www.continuum.io/downloads
 上記のサイトから自分の環境に合ったAnacondaをインストールします。

・OpenCVのインストール
 http://opencv.blog.jp/python/ver3_install
 上記サイトを参考にOpenCVをインストールします。
 なお、「cv2.pyd」ファイルは
 「C:\Users\nobu\Anaconda2\Lib\site-packages\Anaconda2\Lib\site-packages」
 に、コピーしてください(このパスは私の環境におけるものなので、皆さんの環境に合わせてください)。
 ※以降、私の環境での説明になりますので、自分の環境に対応させてください。

・カスケードファイルのコピー
 OpenCVのインストールフォルダに「opencv\build\etc\haarcascades」があります。
 そのフォルダにある「haarcascade_frontalface_alt.xml」というファイルを
 「C:\Users\nobu\Documents\Python Scripts」にコピーしてください。
 
 ちなみに、おおざっぱに言うとカスケードファイルというのは物体を検出するための設定ファイルです。
 参考URL:http://www.pro-s.co.jp/engineerblog/opencv/post_6202.html

#【手順】
①Anacondaのインストール時に一緒にインストールされたSpyder(pythonのIDE)を開きます。
②「File」→「New file...」を選択して、新しいファイルを開きます。
②以下のコードをコピペします。

camera_face_rec.py
# -*- coding: UTF-8 -*-
 
import cv2
import os

cascade_path = "haarcascade_frontalface_alt.xml"

#カスケード分類器の特徴量を取得する
cascade = cv2.CascadeClassifier(cascade_path) 
 
# カメラからキャプチャー
cap = cv2.VideoCapture(0)
 
color = (255, 255, 255) #白 
 
while(True):
 
    # 動画ストリームからフレームを取得
    ret, frame = cap.read()

    #物体認識(顔認識)の実行
    facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10))
    
    for rect in facerect:
		#検出した顔を囲む矩形の作成
		cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2] + rect[2:4]), color, thickness=2)
 
     # 表示
    cv2.imshow("Show FLAME Image", frame) 
 
    # qを押したら終了。
    k = cv2.waitKey(1)
    if k == ord('q'):
        break
 
cap.release()
cv2.destroyAllWindows()

③spyder右側にある「IPython console」タブを開いた状態で「F5」キーを押します。
 そうすると、デフォルトで設定されているカメラが起動して人物の顔を映すと
 次のリンク先の動画のようになります(動画の埋め込みの仕方が分からなかったので、リンク張りました)。
 「q」キーを押すとプログラムが終了します。

   pic.twitter.com/gEZY3Jd4Co

#【感想】
・認識されない顔もあるため、もっと正確に認識できればいいなと思いました。
・機械学習と組み合わせれば何か面白いものが出来上がると思います。

#【参考サイト】
・Python3 OpenCV3で(MacBookAirのカメラで)フレーム差分
http://blog.umentu.work/%E3%80%90%E5%8B%95%E7%94%BB%E3%81%82%E3%82%8A%E3%80%91python3-opencv3%E3%81%A7macbookair%E3%81%AE%E3%82%AB%E3%83%A1%E3%83%A9%E3%81%A7%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E5%B7%AE%E5%88%86/

・Getting Started with Videos
http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html#display-video

 

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?