「顔認識と音声認識を用いたドラゴンボールZ」を投稿した

f:id:peroon:20081209222802j:image

よろしければ、見てあげてください。http://www.nicovideo.jp/watch/sm5498721

動画中で、「ソースコードUPしてください」というコメントがありました。ソースコードは、公開できるほどキレイではないので、今のところ公開はしません。ただ、作り方は書いておきます。


使用したのはprocessingというプログラミング言語です。これはJavaの画像操作関数をもっと使いやすくした言語で、とても使いやすく、私のような初心者にはピッタリです。processingの公式サイトに行ってJava付きのexeをインストールすれば環境は完成します。


これに、OpenCVというライブラリを合わせて、顔認識をしました。「processing opencv」で検索すれば使い方がわかります。OpenCVを導入する過程で、exampleもダウンロードしておきます。opencv exampleの中に、face detectionがあるので、それを使えば、顔認識の完成です(簡単でしょ?)。この顔認識は1フレームごとに(haar-likeにより)顔を探すので、フレームごとに失敗することがあります。1度顔だと認識したら、mean-shiftなどで(?)物体追跡(tracking)をした方が安定すると思います(私はやっていません)。


OpenCVはもともとC++用に作られたので、C++でOpenCVを使った方が機能が豊富でよいです。ただ今回は、透明情報付きpng画像を使いたかった(「気」や「金色の髪の毛」はpng画像です)ので、png画像が使いやすいprocessingで作りました。


音声はprocessiongのライブラリを別に導入します。http://processing.org/reference/libraries/index.htmlから音楽用ライブラリを導入すれば、音声の強さを測ったり、音を周波数変換(FFT)したり、mp3ファイルの再生をしたりできます。


そんなこんなで楽しい言語ですので、気になった方はとりあえず触ってみてはいかがでしょうか。