Claris Engage Japan 2023にて、最近のFileMaker Proなら機械学習モデルを組み込んだアプリが作成できるという話をきいたので、試してみました。
Create ML
Create MLは、Macで機械学習モデルを作成するツールです。
てもとにあったヒノキとスギの画像をつかって、両種を判別する機械学習モデルを作成してみました。
準備
訓練用データを格納するtrain
という名前でフォルダを作成し、その下にhinoki
とsugi
という名前でフォルダを作成します(図1)。これらのフォルダ名が画像のラベルになります。これらのフォルダ中に、ヒノキとスギのそれぞれの画像データを入れておきます。今回はそれぞれの種に1200枚ずつの画像を用意しました。
同様に、テスト用データを格納するtestというフォルダと、その下にhinoki
とsugi
という名前でフォルダを作成し、それぞれの画像データを入れておきます。今回はそれぞれ300枚を用意しました。
モデルの訓練
(※) この部分については、Appleのドキュメント“Creating an Image Classifier Model”に詳細な説明があります。
まず、Xcodeを立ち上げ、Xcode > Open Developer Menu > Create ML とメニューをたどってCreate MLを起動します。
Create MLが起動したら、File > New Projectで、新しいプロジェクトを作成します。Choose a Templateでは、Image Classificationを選択します。
次に、Training DataとTesting Dataのフォルダを指定します。それぞれあらかじめ用意しておいたtrain
フォルダとtest
フォルダを指定します。Validation Dataは、デフォルトではTraining Dataから自動的に分割されます。
ここまできたら、Trainボタン(図2の赤い楕円内)をおします。すると訓練が始まります。
テストの結果を見てみます(図3)。正解率は98%でしたので、なかなかの結果のようです。
ここまでできたら、モデルを出力します。OutputペーンでGetボタン(図4)をおして、モデルをファイルに保存します。このファイルを、あとでFileMaker Proで使用します。
FileMaker Proでアプリ作成
ファイル > 新規作成… で、新規Appを作成します。名前は「画像識別」としました。つづいて、フィールドを作成していきます。
フィールドの作成
図4のように、「モデル」「画像」「結果」の3つのフィールドを作成しました。「モデル」は、先ほど作成した機械学習モデルを格納するフィールドで、タイプはオブジェクトで、グローバルフィールドにしておきます。「画像」は、判別する画像を格納するフィールドでタイプはオブジェクト、「結果」は判別結果を格納するフィールドで、タイプはテキストです。
モデルの指定
新しいアプリができたら、「モデル」フィールドを選択して、挿入 > ファイル… で、先ほどCreate MLから出力した機械学習モデルのファイルを指定します。
スクリプト
次に、レイアウトモードで、「画像」フィールドにボタンの設定をします。「処理」をスクリプト実行にして、図5のようなスクリプトが実行されるようにしました。
新しい画像でのテスト
ここまでできると、ヒノキとスギを判別するアプリの完成です。画像のフィールドにボタンの設定がされているので、これをおすとファイルダイアログがひらいて、画像を選択できます。
新しく撮影してきた画像で、判別のテストをやってみました。以下の2つ(図6, 7)はうまくいった例で、ヒノキ・スギをそれぞれ判別できました。
ただし、ヒノキをスギと間違える例もありました(図8)。もっと訓練画像にバリエーションを持たせて、数も増やしたほうがよいのかもしれません。
参考
- Claris: FileMaker で機械学習やってみる (0)
- Claris: FileMaker で機械学習やってみた (1)
- Claris: 機械学習モデルを構成