FileMakerから。CoreMLをじって見ました
使うのは非常に簡単でした。
転移学習(Transfer Learning)とは、ある領域で学習したこと(学習済みモデル)を別の領域に役立たせ、効率的に学習させる方法
再学習はできないものでしたが
Vision(視覚)
CNN( Convolution Neural Network) の単物体識別 モバイル用に使われる物を
MobileNetV2, Resnet50. SqueezeNetで試してみた。
Apple Core MLモデルから入手出来ます。
Appleでは、「トレーニング済みモデルのCore MLへの変換」というページもあるので独自モデルも可能性があります。
利用環境
- Claris FileMaker Pro 19以降
- Claris FileMaker Go 19
- Core ML をサポートしている、OS上
やり方と手順
FileMakerで機械学習をさせるには
- 機械学習モデルをスクリプトステップで構成して、名前を付ける
- フィールド設定で結果を返す感じです、関数:ComputeModel を使う
- 結果テキストのJSON処理
###「機械学習モデルを構成」スクリプトステップは 制御 分類にあります
機械学習モデルを構成 [ 処理 : 視覚 ; 名前 : "visionModel" ; 次から : モデルのフィールド ]
US版では
Configure Machine Learning Model [ Name: visionModel ; Operation: Vision ; From: ModelContainerField ]
日本版とUS版では順番が違うが、FileMkerが、ユニバーサルのアプリなので自動変換してくれる
このスクリプトステップは、Core ML モデルを構成するステップで、読み込むフィールドと
次の引数を指定できる インスタンスを作る感じかな
処理 (Operarion):
- [視覚(Vision)] : 入力が単一のイメージで、分類(classifications)の配列を返す。返値には名前と信頼レベルの動小数点が変える
- [一般(General)] : 入力がひとつ以上の数値(scalar)で,有限の番号付きリストを返す
- [アンロード(Unload)] : モデルを構築するときに読み込んだリソースを開放 付けた名前で指定
注意:アンロードでは、モデルフィールド指定が無い、当然だが親切だが処理の他と違うので,次からは出ない、使わないモデルはなるべく、アンロードしておいた方がよい
名前 (Name):
このオブジェクトを利用するときの名称で重要
ルールはユニークなら良さそうだが、読み込んだモデルオブジェクトの名称にしておくのが無難
次から(From):
モデルを指定するフィールド
ComputeModel 関数
CoreMLモデルを処理してJSONを返す関数
- 一般(Genersl)と視覚(Vision)モデルと構文が違う
- 一般(Genersl)モデル:
ComputeModel (モデル名 ; 名前1 ; 値1)
視覚(Vision)モデル:
ComputeModel (モデル名 ; "image" ; 値1 ; "threshold" ; returnAtLeastOne)
引数:
- モデル名(modelName) : モデルの名称 スクリプトステップ「機械学習モデルを構成」で付けた名前
- 指定モデルの引数 「視覚 {Vision}」モデルの場合だけだが
- image : 評価されるデータ
- threshold (閾値): 0.0 ~ 1.0の数値、結果をいくつ返すか制限
- returnAtLeastOne
: 1 True 真の場合、最も高い結果が返される
: 0 False 偽の場合、空の文字列が返される
この関数はこんな感じに書く
ComputeModel ("MobileNet"; "image"; 対象データフィールド)
ComputeModel ( $$model ; "image"; 対象データフィールド ; "threshold"; .1 ; "returnAtLeastOne"; 1)
Filemakerの場合見た方が分かり易いのでサンプル作成
iOS 対応
CoreMLGo.fmp12
https://github.com/nmizojp/FileMaker
資料:
https://help.claris.com/ja/pro-help/#page/FMP_Help%2Fconfigure-machine-learning-model.html
https://help.claris.com/ja/pro-help/index.html#page/FMP_Help%2Fcompute-model.html%23ww1323604
英語マニュアル 私の機械学習の知識は英語マニュアルが理解しやすいので
https://help.claris.com/en/pro-help/#page/FMP_Help%2Fconfigure-machine-learning-model.html%23ww1282585
https://help.claris.com/en/pro-help/index.html#page/FMP_Help%2Fcompute-model.html%23ww1323604