アイアンマンになりたい

アイアンマンになりたい

35歳、2児の父。将来の夢「アイアンマン」

Appleの機械学習モデル「coreML」で遊んでみる

今月頭に開催されたAppleの開発者向けイベントWWDC2017で発表されたApple製の機会学習モデル「coreML」。

”アイアンマンになりたい”という目標を掲げている私としては、やはり将来的には人工知能を作らなきゃいけないわけで、ちょっと前から少しづつ機械学習の勉強を始めていたところでした。
そんなタイミングでApple機械学習モデルを開発者向けに提供したわけで、どんなもんかちょっと遊びながら機械学習の理解を深めていこうと思います。

ちなみにcoreMLは単体で動作する機械学習フレームワークではありません。
CaffeやKerasといった有名なフレームワークで作成した学習済みモデルを取り込み動作します。
つまり、coreMLは学習はできなくて、学習済みモデルを使った推論を行うモデルということです。

coreMLで遊んでみながら、将来的にはCaffeやKerasの勉強も進めていきたいですね。

まずはサンプルコードをダウンロード

とは言え、まずはcoreMLのサンプルコードを動かしてみます。
サンプルはいくつか用意されているようですが、まずは顔検出や画像処理のためのフレームワークであるVision Frameworkを使ったサンプルコードで遊んでみます。

Vision | Apple Developer Documentation

サンプルコードのダウンロードは以下のページから。

developer.apple.com

動画の下にある「Resource」をクリックし、Image Classification with Vision and CoreMLのリンクからダウンロードします。

サンプルコードを起動してみる

ダウンロードしたファイルはXcodeのプロジェクトファイルなので、「Vision+ML Example.xcodeproj」というファイルを開きましょう。
なお、起動にはXcode 9 betaが必要です。
Xcode 9 betaの入手にはAppleに開発者登録(Apple Developer Programへの登録)が必要になります。

※起動時に「ネットで拾ったプロジェクトだけど大丈夫?」というダイアログが出るので、「Open」を押しましょう。
f:id:ultimate-ez:20170618165554p:plain

Xcodeが起動したら、プロジェクトファイルを選択し、SigningTeamで自分のアカウントを選択しましょう。
f:id:ultimate-ez:20170618180509p:plain

これでビルドの準備は完了です。

サンプルアプリをiPhoneにインストールして動かしてみる

準備が出来たのでiPHoneにインストールして動かしてみましょう。
実行するにはiOS 11 betaがインストールされているiPhoneが必要なのでご注意ください。

余談ですがXcode 9 betaではWi-Fi接続で実機へのインストールができるようになりました。これめっちゃ便利ー!!

アプリが起動すると、こんな画面が表示されます。
超シンプルなイメージピッカーで、カメラを起動するかライブラリから画像を選択することができるUIですね。
f:id:ultimate-ez:20170618175101p:plain

小さいカードに1文字の数字を書いて読み込ませると、見事に画像から数字を認識してくれました!
f:id:ultimate-ez:20170618175223p:plain ▲「2」を認識。認識精度(確率)は99.24%とかなり自信たっぷりに「2」を選んでますね。

なお、画像内に四隅が入るようなカードに書かないと矩形を認識できませんでした的なエラーで数字の認識が行われません。
手元にそれっぽいカードが見つからない人は、プロジェクトファイル内ににサンプルの画像が入っているので、お試しにそれを使ってもよいかもしれません。
※「Documentation」→「StickyNote.jpg」


というわけで、coreMLで遊んでみる最初の一歩としてサンプルコードを動かしてみました。
ここで利用している学習データは「MNIST」という手書き数字のデータセットディープラーニングを扱う本でこれに触れていない書籍は見たことがないくらいの超ド定番のデータセット)から作られた学習データ。
今時これくらい動いて当然という超初歩なんでしょうけど、ひとまず自分の端末で動かせた―!という喜びを味わいながら、ここからより発展的なアプリを作っていければいいなと思います!

機械学習ディープラーニングはここ数年ホットな話題なので触ってみたいという人も多いと思います。
coreMLならかなり手軽に遊べるので、Apple Developer Programに登録済の人は、試してみてはいかがでしょうか!