穴日記

どうだ明るくなったろう

かがみん検出プログラム

アニメ顔検出ライブラリを使ってらき☆すたの動画よりかがみんだけを抽出するプロジェクトを開始しました。

アニメ顔検出ライブラリってのは

http://anime.udp.jp/

のことで、画像を放り込むだけで画像中のアニメ顔を検出してくれるすばらしいライブラリです。今回は、らき☆すたの動画を画像に分割、一枚一枚に対して上記のライブラリを適用。その後、抽出された画像に対してさらに処理を行うことでかがみんの抽出を行います。

まず、アニメ顔ライブラリの導入ですが、おおむね上のサイトに書いてあるとおりにすればできるでしょう。ただ、私は共有ライブラリにパスを通していなかったため結構はまりました。ldconfigとかでぐぐればやり方はわかるでしょう。

抽出された画像に対する後処理は二段階に別れ、まず第一段階で柊姉妹とそれ以外をわけます。第二段階ではさらにつかさとかがみんを分けています。

柊姉妹とそれ以外は単純に髪の色で判別しました。これもライブラリに依存しています。(本当にすばらしいライブラリだ)ただ、RGBで判別するのは面倒なのでHSV変換をかけ、Hの値にのみ着目して紫系の色だった場合に柊姉妹だと判断しています。

第二段階のつかさ、かがみんの分離ですが、これはまだ未完成です。一応今実装してあるのは、ライブラリで認識された顔領域のちょうどひとつ分上の領域の全ピクセルを捜査、おのおのに対してHSV変換を行い、黄色系統のピクセルを数え、領域中の黄色系ピクセルの占める割合を求め、割合の高低によってリボンの有無、すなわちつかさ、かがみんの判断を行っています。適当にサンプルをとったところ、リボンのある場合とない場合では大体100倍くらい割合の差があったため、適当に定数を設定することでリボンの存在判定ができました。

しかし、「リボンをとったつかさ」に関してはまったく手がでません。普通にかがみんと誤認識します。これにかんしては、顔領域の周辺を調べ、紫ピクセルの割合を求めることで髪型判断ができないかと考えています。(つかさとかがみんなら髪型的にかがみんの方が紫ピクセル割合が大きいはず)あるいは、もっとガチガチに画像処理したりパターン認識させたほうがいいのかもしれません。

以上の処理によってめでたくかがみんと判断された顔領域について、ちょうど二倍の面積の領域を切り出して、最終処理としています。これによってほどよい大きさのかがみん画像が無数に手に入る算段になります。ウヒョー!