Apple CoreMLについて
学習済みの機械学習モデルを macOS / iOS / watchOS / tvOS で利用するためのフレームワークです。
デモアプリ on Watson
このApple CoreMLを、Watson Visual Recognitionで動かすデモアプリが下記で紹介されています。
いままで、Watson Visual Recognitionはクラウド接続がないと動かなかったのですが、CoreMLを使うことで、ローカル環境でも動かせるようになります。
つまり、僻地の工場の中や、山の中でも、パフォーマンスを気にせず動かせます。
また、クラウドは一枚ごとに課金されますが、Core MLで動かす分にはいくつ判定しても無料です。やったね!
- Watsonで作ったCore MLモデルをiOSアプリへデプロイする https://medium.com/@taiponrock/watson%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%9Fcore-ml%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92ios%E3%82%A2%E3%83%97%E3%83%AA%E3%81%B8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%99%E3%82%8B-e40d41cc59b2
デモアプリをiPadで動かす
上記の記事ではiPhoneで動かしていますが、実際のPoCではiPadを使ってやらせる場合が多いと思います。
iPhoneは電話ですからね、、、
で、iPadだと、ちょっとカスタマイズさせないと動きません。
具体的には、ここにパッチを当てて下さい。(100行目あたりです)
ImageClassficationViewController.swift
let choosePhoto = UIAlertAction(title: "Choose Photo", style: .default) { [unowned self] _ in
self.presentPhotoPicker(sourceType: .photoLibrary)
}
// iPadで止まる問題回避
photoSourcePicker.popoverPresentationController?.sourceView = self.view
let screenSize = UIScreen.main.bounds
photoSourcePicker.popoverPresentationController?.sourceRect = CGRect(x: screenSize.size.width/2, y: screenSize.size.height, width: 0, height: 0)
// 回避ここまで
photoSourcePicker.addAction(takePhoto)
photoSourcePicker.addAction(choosePhoto)
photoSourcePicke
--