滝沢カレンが、テレビで「鼻だけで有名人を当てる」というのをみて、鼻認証に興味を持ったので試してみた。
主に参考にしたサイトはこちら。
流れとしてとしては、
1.鼻の素材を収集
2.Open CVのカスケード分類器 を使用して学習
3.試してみる
最初は、石原さとみの画像を複数のサイトから30点ほど集めて試してみたのだが、これは全然ダメだった。
石原さとみにした理由はあまりないが、機械学習には、写真が入手しやすい有名人が重宝する。
尚、照明が強すぎる写真は輪郭を捉えづらいので、その辺は外しておく方がよいだろう。
続いて、Youtubeの動画より、30コマ、400pxで顔のエリアをトリミングして学習データを作成。
https://www.youtube.com/watch?v=4_vi-fiCz0o
今度は確率は0%という表示にはなったが、数値は0%以上であれば本人の可能性ありという仕組みなので、かろうじて検出できた事になる。
ここで早くも力尽きたので、今回はここまでとするが、もう少し詳しく解説
鼻の検出
鼻の検出自体はOpenCVの顔検出機能 (haarcascade_mcs_nose.xml) を使えばできる。
ちなみに検出精度としては、あまり高くはないので時々別の部分を鼻として認識してしまうので、要注意。
鼻データの学習
ここは急にハードルがあがる。カスケード分類は、ディープラーニングに比べると手軽に実行できるが、精度がかなりひくい。
今回試した範囲だと、同じ 動画の中のデータで学習させなんとか0%という判定なので、もう少し精度をあげるには、学習データをそれなりに工夫する必要がありそうだ。
カスケード分類器
カスケード分類器による検出&本人判定は、角度が異なるだけで、結果に影響がでる。
なので、横向きで撮った素材も除外して実施した。
もう少し実用的なものを目指すのであれば、ディープラーニングを使った検出モデルを試した方が賢明かと思う。
ディープラーニングを使った検出では、ある程度違う角度や、サイズの異なる画像も多く混ぜたほうが検出の柔軟性がアップする。