OpenCVとWebカメラでリアルタイム顔認識をする

今回はOpenCVとWebカメラを使ってリアルタイムで顔認識をしてみます。

今回の構成

・Windows7 64bit
・Webカメラ 「HD ウェブカメラ C270」
・OpenCV4.0.1
・Visual Studio2017

プロジェクトの用意

Visual Studioを起動して「新規作成」→「プロジェクト」を選択します。「空のプロジェクト」を選択して名前を設定します。今回は「detectFacefromCamera」にします。

ソースの用意

プロジェクトができたら「ソースファイル」を右クリックして「新しい項目の追加」から「detectFacefromCamera.cpp」を追加します。

「detectFacefromCamera.cpp」に以下のソースをまるっとコピーして貼り付けます。パスはカスケードファイルが格納されているところを指定してください。

プロパティの設定

プロパティマネージャーの「detectFacefromCamera」をダブルクリックしてビルドに必要なプロパティの設定をしていきます。

こちらの設定については以下の記事の「プロパティの設定」をご参照ください。

OpenCVとC++とVisualStudioで顔認識してみる

プログラムの実行

プルダウンで「Release」「x64」を選択して「実行」ボタンを押下します。こちらは先程のプロパティの設定と合わせてください。私は64bitを使用しているので「x64」を選択します。WebカメラはあらかじめPCのUSBポートに接続しておきます。

動画の人をWebカメラで撮ってみると顔認識することができます。

関連記事

こんな記事も書いてます。

OpenCVでカスケード分類器を自作する方法

カスケード分類器でペットボトルを判別してみる

YOLOでペットボトルの物体検出をやってみた

Google ColabでYOLOを動かすことを検討してみる

Google Colaboratory上でYOLOを動かして画像認識させてみた

まとめ

思っていたよりスムーズに顔認識してくれてよかったです。正面の顔は認識されますが、横顔とかだとあまり認識されないようです。ここまでは比較的簡単にできたのでもっと改良していきたいと思います。