OpenCV3.3.1 になって、顔認識の精度が上がったみたいなのと、
トラッキング機能が追加されたようなので、
インターネットに公開されているサンプルを参考にして
作ってみました。
開発環境は、Windows10 + OpenCV3.3.1 + MinGW-w64 + Eclipse Oxygen C/C++
先ず、最初は、顔のトラッキングプログラムを、こちらのサイトから参考にさせてもらいました。
https://qiita.com/AkihiroTakai/items/af0670207535b7cd145f
注) トラッカ編 のサンプルコード
但し、このプラグラムを試してみましたが、
トラッキングを始めるにあたり、最初に顔の部分をマウスでドラッグしてないと、いけなかったので、
この、顔の検出は、従来のカスケードファイルを使った顔検出プログラムで行うようにしました。
顔検出もずっと以前、OpenCV2.X の時に試した時は、検出できる顔の大きさが一定でないと
うまくできなっかた事を記憶していますが、今はかなり向上しているみたいで、
本当に驚きました。
それは、こちらのプログラムを参考にさせてもらいました。
http://nonbiri-tereka.hatenablog.com/entry/2015/05/13/063713
結局、2つのプログラムをドッキングして、自動で顔を認識してトラッキングを
始めるプログラムでき上がりました。
取り敢えず、プログラムコードは、こちら。
補足:プログラムで指定しているカスケードファイルを変えれば、
簡単に別の対象をトラッキングできるようです。
興味があれば、試してみては、いかがでしょうか。