第2回:OpenCVを利用した顔認識機能(事前知識)Python

今回は第2回:Pythonを利用してOpenCVを利用した顔認識機能についてご紹介します。

idleを起動して作業をしていきます。

動画は2回に渡ってお送りします。

操作5:OpenCVを利用して画像を読込する

操作6:画像をグレースケールに変換する

操作7:APIのダウンロードと素材のダウンロード

操作8:顔認識機能のAPIを読込

操作9:四角形を描画

操作10:scaleFactorの調整

<操作5の入力ソース>

import cv2

img=cv2.imread("OpenCv.png")

cv2.imshow('OpenCV', img)       #画像ファイルを表示

cv2.waitKey(0)          #showだけではすぐ画面が消えてしまうため、何かキーが押されるまで待機

cv2.destroyAllWindows() #Windowを削除

つづけて、ソース1の末尾に

cv2.imwrite('save.png', img)

と記載すると、imgのオブジェクトをsave.pngで保存できます。

<操作6の入力ソース>

import cv2

img=cv2.imread("OpenCv.png")

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #グレースケールに変換する

cv2.imshow('OpenCV', gray)

cv2.waitKey(0)

cv2.destroyAllWindows()

<操作8・操作9の入力ソース>

import cv2

cascade_path = " C:/Users/user/Desktop/haarcascade_frontalface_default.xml"

image_file ="cv2_test.jpg"

image_path="./"+image_file

output_path="./output"+image_file

image=cv2.imread(image_path)

image_gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #モノクロ画像に変換する

cascade=cv2.CascadeClassifier(cascade_path) #利用するAPIのXMLを指定する

#物体認識(顔認識)の実行

#image – CV_8U 型の行列.ここに格納されている画像中から物体が検出されます

#objects – 矩形を要素とするベクトル.それぞれの矩形は,検出した物体を含みます

#scaleFactor – 各画像スケールにおける縮小量を表します

#minNeighbors – 物体候補となる矩形は,最低でもこの数だけの近傍矩形を含む必要があります

#minSize – 物体が取り得る最小サイズ.これよりも小さい物体は無視されますfacerect=cascade.detectMultiScale(image_gray, scaleFactor=1.15, minNeighbors=2, minSize=(100, 100))

#print(facerect)

color=(255,255,255)

if len(facerect) >0:

    for rect in facerect:

        cv2.rectangle(image,tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]),color,thickness=2)

    cv2.imwrite(output_path,image)

テルンのツイッターでも紹介しています。
Twitter:https://twitter.com/pcschooltelln

関連サイト

ページトップへ