Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> 人工知能、ディープラーニング -> 【Python】OpenCVを使って顔検出してみる
縺雁ー城▲縺遞シ縺弱↑繧峨昴う繝ウ繝医し繧、繝GetMoney!

【Python】OpenCVを使って顔検出してみる

OpenCVというPythonのライブラリを使って、比較的簡単に顔検出が出来てしまいました。

ちなみに、「haarcascade_frontalface_default.xml」の部分を、別のXMLファイルに差し替える事で、瞳や鼻など、別の部分を検出する事もできるようです。

下記、Colaboratoryで実行出来ます。

# 初回のみ実行。githubから、opencvのcloneを取得する !git clone https://github.com/opencv/opencv.git # URLから画像を取得して、test.jpgとして保存する !wget https://www.pakutaso.com/shared/img/thumb/SAYAPAKU5460_TP_V.jpg !mv SAYAPAKU5460_TP_V.jpg test.jpg # ライブラリのインポート import matplotlib.pyplot as plot import cv2 # 顔検出用の定義ファイルを読み込む cascades = cv2.CascadeClassifier("opencv/data/haarcascades/haarcascade_frontalface_default.xml") # 顔検出したい画像を読み込む img = cv2.imread("test.jpg") # 横幅600pxの縦横比固定で、画像をリサイズする scale = 600 / img.shape[1] img = cv2.resize(img, dsize=None, fx=scale, fy=scale) # 顔の認識 face_detects = cascades.detectMultiScale( cv2.cvtColor(img, cv2.COLOR_BGR2GRAY), #グレースケールした画像を渡す minSize = (30, 30) #この寸法以下の物体は検出対象外とする ) # 認識結果の出力 if len(face_detects) == 0: print("You have no face:(") else: # 顔認識された箇所を四角形で囲む for (x, y, width, height) in face_detects: cv2.rectangle(img, (x, y), (x + width, y + height), (0, 255, 255), thickness = 3) # 画像の保存 cv2.imwrite("dest.png", img) # 画像の表示 plot.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plot.show()

この記事の最終更新日:2019/03/11
最初に記事を書いた日:2019/02/25

この記事をシェアする

このエントリーをはてなブックマークに追加
縺雁ー城▲縺遞シ縺弱↑繧峨昴う繝ウ繝医し繧、繝GetMoney!

関連記事

資料室のトップに戻る
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> 人工知能、ディープラーニング -> 【Python】OpenCVを使って顔検出してみる
▲Top English