はじめに
とあるコンテストに向けて後輩と寿司判別するアプリを作りました。
(後輩が特に頑張ってくれて、素材作成は別の後輩に頑張ってもらいました。)
このアプリ実現のために使ったもののノウハウ「Custom Vision Serviceを用いてcoreML用のmlmodelを作成、iOSで推論を行い結果を出力させる」をまとめたかったので、ここにまとめます。
学習データの取得
私たちの所属する団体のメンバーが某大手回転寿司チェーン店に行ったタイミングで寿司の写真を撮ってもらいました。
開発メンバーとも食べに行って撮ったりもしました。
それだけでは勿論足りないので、Webからも画像を収集しました。
そこらへんの話は本件と関係が薄いのでここには書きませんが、ggると沢山情報が出てきます。
Custom Vision Serviceで寿司を学習
Custom Vision Service - Microsoft Azure
こちらにアクセスし「はじめる」を押して、サインインします。





無料枠で学習できる画像の枚数が1000枚だったので、今回は20種類の寿司ネタに対して50枚ずつ画像を集めました。
(今考えると少ない気がするけれど、そこは今回置いておきます。)
全ての画像をタグ付きでアップロードができれば、後は上にある緑色の「Train」を押すと学習が始まります。
学習が終わったらパフォーマンスを確認してみましょう。

後は、このPERFORMANCEタブの「Export」を押すと

CoreMLで推論
こちらの記事がとてもわかりやすくて参考にさせてもらいました。
書いてある手順に従って、モデルを読み込み、推論のプログラムを自分たちのアプリに上手く組み合わせることでコンテストに向けたアプリを作りました。
(この記事のことを簡単に試すのなら上記の記事のプログラムだけで動くと思います。)
実行結果
上記の記事のプログラムで作成したモデルから無事に寿司ネタを推論ができているかの確認です。
上手くできていそうですね。
まとめ
高度な技術の話がわからなくても、世の中にあるものを使うだけで気軽にそこそこの精度の寿司分類ができました。
中で何が起こっているのかがよくわからないのは怖いと思うので、ちゃんと技術的な勉強もおいおいやっていきたいなと思いました。