Apple CoreMLでWatson Visual RecognitionのデモアプリをiPhoneだけではなくiPadでも使えるようにする


Apple CoreMLについて

学習済みの機械学習モデルを macOS / iOS / watchOS / tvOS で利用するためのフレームワークです。

デモアプリ on Watson

このApple CoreMLを、Watson Visual Recognitionで動かすデモアプリが下記で紹介されています。
いままで、Watson Visual Recognitionはクラウド接続がないと動かなかったのですが、CoreMLを使うことで、ローカル環境でも動かせるようになります。

つまり、僻地の工場の中や、山の中でも、パフォーマンスを気にせず動かせます。
また、クラウドは一枚ごとに課金されますが、Core MLで動かす分にはいくつ判定しても無料です。やったね!

デモアプリを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

--