前回の投稿で、アニメの顔認識・顔検出の概要についてお話しました。とうとう、ベータ版ですが完成したのでご報告です。Githubで学習済みモデルを公開したのでご自由にお使いください。MITライセンスです。少ない学習データにもかかわらず、精度は約90%の認識率で、RetinaFaceは良くできたモデルだな…と実感しました。学習には非公式のTensorflow実装をお借りました。
精度はどんな感じ?
上記の通り、この分量を全て認識することが出来ました。
学習に使ったのはKaggleの「Tagged Anime Illustrations」のデータセットの「danbooru-images/0000」フォルダ内の画像500枚(少ない…)で、検出率のテストは「 danbooru-images/0001」を利用しました。
検出率
TP(正解) | FP(誤検出) | FN(未検出) | TN | 正解率 |
---|---|---|---|---|
3453 | 83 | 302 | – | 89.969% |
(検出タスクの計算方法あってるかな…?)
今後の課題
色々とテストしてみた結果、下記が改善点です。
- 単純に500枚は学習データが少ない。
- 漫画の吹き出し部分で誤検出する時がある。
- 比較的顔の向きや回転には強いが、上下逆向きの顔は認識しずらい。
- 顔のサイズが小さいと検出率が落ちる。
あと、学習方法はretinaface-tf2の実装そのまま使ってるので改善の余地がありそうです。次のアップデートでは過学習防止のしくみも導入したいなと思ってます。
気軽に試せるWebアプリ作成中
まだ準備中なので、そのうちデプロイします。試せるAIも増やしていこうと思います。