今回は画像から人間の顔認識をしてみます!
たくさんの人数がいる画像でも成功しましたので見ていきましょう!!!
結構実装は簡単で、OpenCVはいろいろと使い道が多いのでこれを機に使ってみましょう!
OpenCVのインストール
OpenCVというライブラリをインストールします。
pip install opencv-python
公式のgithubからカスケード識別器の学習済みファイルをダウンロードします。
顔認識で使うファイルは「haarcascade_frontalface_default.xml」ですが、あとから他のファイルも使うのでまとめてダウンロードします。
https://github.com/opencv/opencv/tree/master/data/haarcascades
プログラムの実装
プログラムの実装は他のサイトのコードを参考にしています。
基本的にXMLファイル、元となる画像、出力先のパスを書き換えて、pythonを実行すれば成功します。
- xml_path はダウンロードしたカスケード識別器を置いているパスです。
- base_image_path は顔認識させたい画像のパスです。
- output_image_path は顔認識させた後の画像の出力先のパスです。
import cv2
# それぞれのパスを指定してください。
xml_path = "haarcascade_frontalface_default.xmlを置いているパス"
base_image_path = "顔認識させたい画像を置いているパス"
output_image_path = "顔認識させた画像を出力させたいパス"
face_classifier = cv2.CascadeClassifier(xml_path)
img = cv2.imread(base_image_path)
color = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
targets = face_classifier.detectMultiScale(color)
for x, y, w, h in targets:
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 4)
cv2.imwrite(output_image_path, img)
画像から顔認証させる
今回の画像は無料サイトから適当に持ってきます。
今回はこちらのたくさんの人の顔がある画像を使ってみます。
この画像を実装した顔認識の処理にかけてみると
・
・・
・・・
・・・・
・・・・・
おお!!!
成功しました!!!たくさん顔認識されてる!!!
OpenCVライブラリでは自身の顔も学習させて顔認証システムも作れるそうです。