ユニファ開発者ブログスマートフォン用の表示で見るユニファ開発者ブログユニファ株式会社システム開発部メンバーによるブログです。顔認識R&Dエンジニアの浅野です。前回の記事で写真から馬の顔を検出することができるようになりました。今回は切り出した顔からどの馬なのかを判定するモデルを作成します。全3回のシリーズ記事の2回目です。今ここスマホで動くようにするデータセット馬を識別するモデルを学習するにあたり、公開されている馬の顔データセットを使用することにします。このデータは、47頭の馬を様々な天候や光の当たり具合で撮影したビデオから各頭30枚ずつの顔部分(正面と左右からのアングル)を切り出したものです。やって時間をかけてデータセットを整備して公開してくれるのは本当にありがたいことです。データセットに含まれる写真の例。モデルの学習シンプルな4層のCNNを用いて47頭の馬の顔を分類するモデルを作ります。47*30=1,410枚の画像のうち、1,118枚を学習用、141枚をバリデーション用、そして残り141枚をテスト用に分割して学習を行いました。100エポック回したときの様子を下に図示しています。順調に学習がすすんでいます。テスト用画像で精度を測ったところ95.03%と思ったより良い結果がでました。4層のCNNとはいえ最適化すべきパラメータ数は300万以上あるのに、1,000枚ちょっとの画像でそれなりの結果がでてしまうのが面白いところです。Tuningを行った場合の精度は98.58%とさらに高い数値が出ています。ImageNetの画像には馬が写っている画像が含まれていることもありますが、さすがに様々な画像系のタスクの転移学習で利用されるだけあって、馬の顔認証というニッチな用途でも効果を発揮してくれました。今後に向けて今回は画像分類として馬の認識を行いましたが、この方法だと追加で認識させたい馬がでてきたときに、その馬の顔データを十分な数だけ集めてモデルを学習しなおす必要があります。lossやArcFaceなどの手法を用いて顔画像からembeddingを計算するモデルを作成しておくと、その後の運用を楽にすることができます。そのモデル作成のためには今回使ったものよりもはるかに多数の正解データが必要なので実現はまだ先になりそうです。前回と今回の記事で、画像から馬の顔を切り出し、その顔からどの馬なのか判定することができるようになりました。これまではクラウド環境でGPUを使用して学習および推論を実行してきましたが、次回はスマホで推論を実行できるようにしたいと思います。保育の世界を変えるエンジニア募集中(今回の内容も保育とは全く関係ありませんでしたが)ユニファではテクノロジーで保育を変えていく仲間を大募集中です。こんにちは、iOSエンジニアのしだです。2.0を使った画像分類こんにちは、R&Dの宮崎です。研究開発部の浅野です。学習済みモデルを使って顔画像のクラスタリングを行うお久しぶりになります、iOSエンジニアのしだです。Detection月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。