Posted at

CreateMLを使ってさらっと画像認識させてみた

More than 1 year has passed since last update.


はじめに

こんにちは、先日WWDC2018報告会にいってきました。

そこでCreateMLについて発表されていた方がいて面白そう✨と思ったので

やってみました


CreateMLってまずなんだよ

SwiftやPlayGround上でCreateMLを使うことによって機械学習ができるフレームワークです。

データを学習させれば画像認識や文章の分類やデータの分類や量の推定ができるなどができるようになります。

その中から今回は画像認識についてやっていきまっせ

XcodeとSwiftだけで機械学習ができるなんてすごいね!!!


やる前に準備しなきゃね


  • macOS 10.14+ (mojave)

  • Xcode 10.0+

この二つが必要です

まだbetaなのでmojaveを入れる時にはバックアップを取っておくと安全ですね!

(ちなみに僕はアァーって感じでバックアップを取らずに会社のMacBookにぶち込みました)


やってみよう

PlayGroundを開いてtargetをmacOSにします


MyPlayGround

import CreateMLUI

//画像を分類するでってやつ
let buidler = MLImageClassifierBuilder()
//AssistantEditorのLiveViewに表示するでってやつ
buidler.showInLiveView()


コードはこれだけ!!!

わーすごい!

RunしてAssistantBuidlerを開くとこんな画面スクリーンショット 2018-06-29 16.33.35.png

そういえば...

データセットを用意してなかったね!

なんか適当にたくさん画像を拾って来ましょう

最低でも10枚は必要そうなので頑張って集めましょうね

スクリーンショット 2018-06-29 16.36.49.png

僕はこんな感じでトレーニングさせるようのデータを各フォルダに30枚ずつぶちこんでます

とりあえずはこれぐらいでいいかな(チョットメンドクサカッタヨネ)

テストデータとトレーニングデータは1:9の比率がベストらしいので(なんかで見た)

テスト用のデータを3枚ずつ準備しましょうスクリーンショット 2018-06-29 16.41.33.png

こんな感じで

そしたらAssistant Editorの点線のなかにDrop Images To Begin Trainingって書いてあるので

トレーニング用のフォルダをドロップアンドドロップしてやりましょう

そうすると学習している様を見学できます

終わったら点線の中身がDrop Images To Begin Testingに変更されているので

テスト用のフォルダをドロップアンドドロップしてやりましょう

スクリーンショット 2018-06-29 17.36.23.png

結果がでましたね!

全部あってました(すごいっ...)

あとはAssistantEditorのImage Classifierって書いてある横の下矢印を選択して保存する場所とかを

選んで保存すればプロジェクトなどで今回できたmlmodelを使うことができます。

*ちなみに保存したmlmodelのサイズは33KBととても軽量...!


終わりに

割と簡単にできましたね

CreateMLではPhotsとSiriの学習基盤を使っているおかげで軽量かつ速い学習が

実現しているみたいです

ざっくりとしか書いていないのでもし興味がある方は下記のURLから調べて見てくださいhttps://developer.apple.com/documentation/create_ml

ありがとうございました。マサカリ待ってます。