アルの備忘録

本棚が足りずにいいものを探しているがなかなか見つからないので困ってる雑記ブログ

【OpenCV】Pythonで画像から顔認識させる方法!


今回は画像から人間の顔認識をしてみます!

たくさんの人数がいる画像でも成功しましたので見ていきましょう!!!

結構実装は簡単で、OpenCVはいろいろと使い道が多いのでこれを機に使ってみましょう!

 

 

ライブラリのインストール

OpenCVというライブラリをインストールします。


pip install opencv-python

 

公式のgithubからカスケード識別器の学習済みファイルをダウンロードします。

顔認識で使うファイルは「haarcascade_frontalface_default.xml」ですが、あとから他のファイルも使うのでまとめてダウンロードします。

opencv/data/haarcascades at master · opencv/opencv · GitHub

github.com

 

プログラムの実装

プログラムの実装は他のサイトのコードを参考にしています。

基本的に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)

 

画像から顔認証させる

今回の画像は無料サイトから適当に持ってきます。

https://pixabay.com/ja/

 

今回はこちらのたくさんの人の顔がある画像を使ってみます。

PythonのOpenCVを使って顔認識させる前の画像

 

 

この画像を実装した顔認識の処理にかけてみると

・・

・・・

・・・・

・・・・・

 

おお!!!

成功しました!!!

たくさん顔認識されてる!!!

PythonのOpenCVを使って顔認識させた結果

 

 

猫の顔認証もできる!?

実はこのOpenCVライブラリでは猫の識別もできるみたいです。

そのため、ライブラリのインストールのところで別のXMLファイルも用意しておきました。

 

ちょっと猫の画像も次回やってみましょう!

【OpenCV】Pythonで猫の画像から顔認識させてみたら全くの別の動物が。。。 - アルの備忘録
www.matematetea.com

 

 

Pythonで音声認識が気になる方はこちらもどうぞ!

PythonでJuliusを動かして音声認識システム作ってみた!

【日本語】Pythonでspeech recognitionを使って音声認識させてみる!

 

 

Pythonでテキストの音声読み上げ機能で寿限無を読み上げてみました。

【pyttsx3】Pythonの音声読み上げ機能で「寿限無」を読ませてみた!

 

最後まで読んでいただき、ありがとうございます!