2019年6月24日月曜日

OpenCV3.4.1で人の顔認識を行う

概要

WindowsでAnaconda + OpenCVを用いて画像認識(配布されている分類器を用いる)を行います。

※UbuntuにOpenCV3.4.1をビルドして画像認識を試みた事もありましたが、必要なライブラリが足りず(しかも何がどう足りないのかさっぱりわからず)うまくいきませんでしたので、Windows + Anacondaの環境にOpenCVをインストールして実施する事をおすすめします。

用語

・Anaconda:PythonとR向けのデータサイエンス用ディストリビューション
・OpenCV:インテルが公開しているOSSの画像解析フレームワーク

事前準備(前提とする環境)

・Windows10
・Anaconda5.3

構築する環境

OpenCV3.4.1

手順

openCVインストール後、cascadeファイルを準備します。cascadeファイルとは、「人の顔とは何か?」を定義したファイルになります。cascadeファイルを用いて画像解析プログラム(python)によって対象画像を分析する、という流れになります。

※以降、cascadeファイル・画像解析プログラム・分析対象画像はすべて同一ディレクトリ内に存在する前提とします。

openCVのインストール

Anaconda Promptで以下を実行し、openCVをインストールします。

$ conda install -c conda-forge opencv

cascadeファイルの取得

cascadeファイル(haarcascade_frontalface_default.xml)を準備します。「haarcascade_frontalface_default.xml」は、正面からの人の顔を判断する分類器になります。

※本ファイルは、公式の他にもGitHubなどにも公開されていますが、必ずOpenCVの公式(https://opencv.org/)からダウンロードしてください。公式のもの以外を用いてしまうと、下記のエラーが発生してプログラムが動かないためです。

$ python test.py
cv2.error: C:\projects\opencv-python\opencv\modules\core\src\persistence.cpp:448
4: error: (-49) Input file is empty in function cvOpenFileStorage

検証対象ファイルの準備

画像分析したいファイルを準備し、上記cascadeファイルや下記実行ファイルと同フォルダに配置します。下記プログラムでは、woman.jpgが検証対象ファイルになります。

実行プログラムの準備

以下サイト様で紹介されているプログラムなどで実行出来ます。

http://sh0122.hatenadiary.jp/entry/2017/10/30/210411

実行結果

画像ファイル上の顔と判断された箇所に枠が描画されると思います。

0 件のコメント:

コメントを投稿

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...