『いきなり顔認証』

―― とりあえず顔認識を動す ――



ここでは、いきなり顔認識です。
手順は簡単! 以下の4つだけです
・必要な部品の追加インストール
・顔認識用のカスケード分類器の用意
・顔写真の用意
・認識プログラムの実行




手順




・必要な部品の追加インストール
OpenCV(Open Source Computer Vision Library)をインストールします。

スタートメニューから「Anaconda Navigator」を選びます。



Environments(環境)を選びます。


「opencv」を検索し「opencv」を選びます。 そして「apply」(適用する)をクリックします。

その後、いくつかの画面を「apply」で進みます。


・顔認識用のカスケード分類器の用意

「haarcascade_frontalface_default.xml」
「haarcascade_eye.xml」
の2つのファイルを準備します。
通常はOpenCVをインストールすると自動的にインストールされます。

「C:\Users」を「haarcascade_frontalface_default.xml」で検索し場所を確認します。

私のPCの場合は「C:\Users\matsubara\Anaconda3\Library\etc\haarcascades」にありました。


・顔写真の用意
何でも良いので顔写真を用意します。


・認識プログラムの実行
以下のプログラムを実行しますが、実行前に
①カスケード分類器のファイルのパスを以下に設定します。
cascade_path=r'C:\Users\matsubara\Anaconda3\Library\etc\haarcascades'

②用意した顔写真ファイルのパスを以下に設定します。
img_path=r'C:\Users\matsubara\Desktop\hy\test.jpg'

そして、以下の顔認識プログラムを実行します。
import numpy as np
import cv2
import os
cascade_path=r'C:\Users\matsubara\Anaconda3\Library\etc\haarcascades'

face_cascade = cv2.CascadeClassifier(os.path.join(cascade_path,'haarcascade_frontalface_default.xml'))
eye_cascade = cv2.CascadeClassifier(os.path.join(cascade_path,'haarcascade_eye.xml'))
img_path=r'C:\Users\matsubara\Desktop\hy\test.jpg'
img = cv2.imread(img_path)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()




結果



まいど速足ですが、こんなに簡単に顔認識は出来てしまいます。もちろん、ライブラリの内側は簡単ではない沢山の知恵であふれています。