4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FileMaker Pro 19でCoreMLを使う

Last updated at Posted at 2020-06-01

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で機械学習をさせるには

  1. 機械学習モデルをスクリプトステップで構成して、名前を付ける
  2. フィールド設定で結果を返す感じです、関数:ComputeModel を使う
  3. 結果テキストの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

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?