はじめに
ちいかわの漫画からちいかわの顔画像だけを抜き取るものを作ります。
技術的な部分やカスケード分類器についてはこちら(OpenCVのカスケード分類器を自作して画像認識)を見ていただければと思います。
ネットに公開されているちいかわの顔画像だけを簡単に取得できればうれしいと思い始めました。(大量のちいかわの顔があると楽しいので)
既存のアニメ顔検出カスケード分類器の利用
まず、OpenCVによるアニメ顔検出ならlbpcascade_animeface.xmlという記事で公開されているカスケード分類器を利用してちいかわが検出されるのか試してみました。
しかし、残念ながらちいかわの顔は検出されませんでした。
一般的なアニメ顔とは異なるので難しいのだと思います。
ちいかわを認識するカスケード分類器の作成
ちいかわの顔は一般のアニメキャラクターの顔とは異なるため新たにカスケード分類器を作る必要があります。
カスケード分類器を作るためには正解画像「7000枚」、不正解画像「3000枚」が必要らしいです。正解画像というのはちいかわの顔だけを切り抜いたモノになるのですが、手作業でちいかわの顔画像を7000枚を用意するのは大変です。
諦めようと思っていたのですが、OpenCVには1枚の画像から複数の正解パターン画像を生成する「createsamples」というプログラムがあり、これを使うことで少数の正解画像でも分類器が作れるようです。
前述のサイトと同様に正解画像1枚からcreatesamplesを利用して1000枚の正解データを作り学習を行いました。
実行結果1
赤い四角の内側がちいかわの顔として認識された部分です。明らかに失敗しています。正解データが少ないのでしょうか。
カスケード分類器の改良
正解データの数が少なかったのだろうと考え、手作業でちいかわの画像を100枚ほど切り抜き、正解データの数を増やしました。苦しい作業でした。
この100枚の正解画像から「createsamples」を用いて4000枚分の正解データを生成し、1000枚の不正解画像と合わせて学習を行います。
不正解画像は「100日後に死ぬワニ」で有名なきくちゆうき先生のツイッターから拝借しました。
実行結果2
枠の中がちいかわの顔と判定された部分です。外れていたり、ウサギの顔を認識していたりする部分はありますが、最初よりはよくなったと言えます。
今後
今回作成した分類器を用いてより多くのちいかわの画像を取得し、正解データの数を増やしていくことで高精度な分類器を作成したいです。