graphを作るPythonの環境を整えます。coremltoolsは5系だとエラーが出ます。tensorflowは1系を使うのですが、Pythonは3.7を使いました。graphの置き場を作っておきます。weights/deeplabv3deeplabを取得とPYTHONPATHの設定をします。graphを生成します。設定により多少変わりますが、バックボーンがmobilenetv2の場合とxception_65の場合を紹介します。Zooの表とexport_model.pyのオプションのコメントを見ると大体分かると思います。graphを変換します。以下に登場するPythonのコード片はプロジェクトルートにjupyterノートブックを作ったと思ってください。jsonjsonモジュールは、XCodeから見たとき分かりやすいように設定するために使います。fp32という警告が出ますが、後でint32に修正するので大丈夫です。画像を入力にするモデルの変換は大抵ct.ImageTypeを使います。shapeのはじめの1はバッチ数なので、ここはいつでも1だと思って良いと思います。ct.models.neural_network.NeuralNetworkBuilder(spec=spec)変換には特にbuilderは要らないですが、入力や出力の状態を確認するのに使います。RGB}RGBの画像になってますね。名前が気に入らないので、変更します。RGB}inputのnameがimageに変わりました。次に出力を確認します。FLOAT32}出力が2種類ありますね。SemanticProbabilitiesは実際には役立つこともあるかもしれませんが、XCodeのプレビューでこれを残していると頻繁にXCodeが落ちます。真剣にアプリを作る段階で、扱いを再検討することにして、これを削除し、SemanticPredictionsはint32の513x513のMultiArrayにし、名前をsemanticPredictionsに変更します。INT32}出力についても修正できたので、メタ情報を充実させます。model."最後にプレビューが出るように設定します。json.dumps(labels_json)保存します。model.save("MyDeepLabV3.mlmodel")最後にMacに移動させてXCodeで動作確認してみます。写真は家族-ビーチ-人-海洋-6398107を使用しました。nabeyang😀😀😀バッジを贈って著者を応援しようバッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。