猫を画像認識してみる ~ TensorFlow Lite & ML Kit
最近はTensorFlow Lite モデルを使った画像認識を試していますが、需要で一番ありそうなのは猫の認識だと思います。でも、そのようなことはできるのでしょうか。
1.純血種の見分け方すら難しい
猫の種類ごとに画像を揃えようとしましたが、これが予想以上に難しいです。例えば一番人気のスコティッシュフォールドですが、猫によって毛並みの模様や色が違いますし、特徴の丸い耳にしても、尖った耳を持つ個体もいるわけで、これでは区別が難しそうです。
認識のキーになりそうなのは、丸い顔でしょうか。これもスコティッシュフォールドである決定打とはなりそうにありません。
また、アメリカンショートヘアの代表的な白黒の模様は判断に適していると思われますが、すべてのアメリカンショートヘアがその毛色であるわけではありません。
そして、混血の場合は、区別がさらに難しくなると思います。
いろいろ問題がありそうですが、まずはともあれやってみます。
(※今回は、実際の猫を使わずに、ディスプレイ上の猫で判断します)
2.CAT SCANNERを試してみる
猫の種類を判定してくれるアプリケーション「CAT SCANNER」を使ってみます。それでは、YouTubeで一番人気の猫を判定させてみると、、、、
結果は「混血」です。しかも、「ヨーロピアンショートヘア」と「ブリティッシュショートヘア」、「トラネコ」の混血という判断をしています。公式では「スコティッシュフォールド」のはずですが、スコティッシュフォールドにはブリティッシュショートヘアの血が入っているので、遠からずなのかもしれません。
それから、いろいろな画像で試しましたが、尻尾が映っていないと「マンクス」と判定されたり、ちょっと微妙な判定でした。
やはり、人気の猫判定アプリケーションでも、猫の判定は難しいようです。
3.自作の分類器を使ってみる
それでは、CAT SCANNERと同じ画像条件で、自作分類器を使ってみます。TensorFlow LiteモデルとML Kitを使った画像認識の記事は、以下2つで取り扱っています。
うーん、猫の判定はしてくれましたが、スコティッシュフォールドの判定とはなりませんでした。〇ち様はスコティッシュフォールドですが、耳は普通なので判定が難しかったようです。それと、分類器に使った猫の色で、白黒が少なかったせいもあるかもしれません。
他の画像(映像)も試しましたが、猫判定はできるけれども、スコティッシュフォールドの判定はできませんでした。〇ち様そのものの画像を使えば成績は上がると思いますが、それは著作権の関係でできないです。(画像そのものが分類器で使われるわけではないですが)
自作分類器を使うML Kitの自作アプリケーションでは、常に対象を検出して結果を表示します。リアルタイムで対象を次々に判定できるので、すぐに解析が必要な用途で使えるところが強みです。
4.猫の画像認識は難しい。。。けれど需要は大きい!
想像通りですが、猫の画像認識は難しいです。CAT SCANNERでも微妙な判定ですから。でも、近年の猫人気を考えると、需要は大きそうです。
自作分類器にも、猫の登録を進めていていきます。(以降、更新予定)