WWDC17,18の機械学習(Core ML)のセッションに載っているサンプルコードのまとめ

iOSの機械学習(Core ML)をキャッチアップする際に参考にしたりビルドして実行した公式サンプルをまとめました。

WWDC19と20もまとめたいと思ってますがまだ追いついてません。最新に近づくに連れて機械学習のセッション数も増えていて追いつくのが大変そうです😅

手元の環境は次の通り

macOS 10.15.6
Xcode 11.6
iPhone 11 (iOS 13.6)

Machine Learning and Vision

これまでのWWDCの機械学習に関するセッション一覧はここから観れます。

Sample Code

Integrating a Core ML Model into Your App

1つ目は学習済みのモデルを使って火星の生息地(土地?)の価格を予測する空想のアプリ。3つのパラメータ(太陽電池パネルと温室の数、および生息地のロットサイズ)を使って推論している。実行結果はこちら。

画像12

コードはモデルを生成して、

   let model = MarsHabitatPricer()

predictionを呼び出すシンプルなサンプル。

    func updatePredictedPrice() {
       func selectedRow(for feature: Feature) -> Int {
           return pickerView.selectedRow(inComponent: feature.rawValue)
       }
       let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels), feature: .solarPanels)
       let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses), feature: .greenhouses)
       let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)
       guard let marsHabitatPricerOutput = try? model.prediction(solarPanels: solarPanels, greenhouses: greenhouses, size: size) else {
           fatalError("Unexpected runtime error.")
       }
       let price = marsHabitatPricerOutput.price
       priceLabel.text = priceFormatter.string(for: price)
   }

Classifying Images with Vision and Core ML

数字を認識するアプリ、Xcode 11.6ではビルドに失敗するためスクリーンショットは無し。

スクリーンショット 2020-07-28 0.34.18

Classifying Images with Vision and Core ML

一つ前のサンプルとタイトルは同じですが別物です。撮影した写真から物体を認識(クラス分類)するアプリ。VisionとCore MLの基本的な使い方が理解できる。シンプルな実装なので自作したモデルを試す際に流用したりしました。

スクリーンショット 2020-07-28 0.51.52

MacBook Proを認識させてみました。

画像12

Detecting Objects in Still Images

カメラ撮影した静止画から物体の矩形、顔、テキスト、バーコードを認識するVisionを使ったアプリ。

スクリーンショット 2020-07-28 0.53.33

実際にビルドして実行した画面はこちら。テキストの矩形認識。

画像6

こちらは顔の認識、パーツも認識されている。

画像7

Recognizing Objects in Live Capture

カメラの映像からリアルタイムで物体を検出するサンプル。

スクリーンショット 2020-07-28 1.05.13

実際の実行画面はこちら、たまたま自宅にあったバナナを認識させた。

画像9

Training a Create ML Model to Classify Flowers

花の種類を推論するアプリ、花の画像のデータセット一式と学習済みのモデルが付属しているのでCreate MLを使って自分でモデルの学習を試すこともできる。

スクリーンショット 2020-07-28 1.14.07

ビルドして実行した画面はこちら。カメラが静止すると推論が動作する作りになっていたり、データ管理の仕組みが作り込まれたりしていて色々と応用が効きそうなサンプルコード。

画像11

Tracking Multiple Objects or Rectangles in Video

ビデオ中の物体を認識して追跡するアプリ、手元のiPhone11/iOS 13.6ではビデオが正しい位置に表示されず正常に動作しなかった。気になるサンプルなので後で再確認する予定。

Tracking the User’s Face in Real Time

Visionを使ってインカメラの顔とパーツを検出するアプリ。

画像11

以上です。

いいなと思ったら応援しよう!