Create MLとFileMaker Proで、ヒノキ・スギの判別アプリの作成

Create ML
FileMaker Pro
作者

伊東宏樹

公開

2023年11月14日

更新日

2023年11月15日

Claris Engage Japan 2023にて、最近のFileMaker Proなら機械学習モデルを組み込んだアプリが作成できるという話をきいたので、試してみました。

Create ML

Create MLは、Macで機械学習モデルを作成するツールです。

てもとにあったヒノキとスギの画像をつかって、両種を判別する機械学習モデルを作成してみました。

準備

訓練用データを格納するtrainという名前でフォルダを作成し、その下にhinokisugiという名前でフォルダを作成します(図1)。これらのフォルダ名が画像のラベルになります。これらのフォルダ中に、ヒノキとスギのそれぞれの画像データを入れておきます。今回はそれぞれの種に1200枚ずつの画像を用意しました。

同様に、テスト用データを格納するtestというフォルダと、その下にhinokisugiという名前でフォルダを作成し、それぞれの画像データを入れておきます。今回はそれぞれ300枚を用意しました。

図1 フォルダとファイルの配置

ヒノキ画像の例

スギ画像の例

モデルの訓練

(※) この部分については、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の赤い楕円内)をおします。すると訓練が始まります。

図2 Trainボタン

テストの結果を見てみます(図3)。正解率は98%でしたので、なかなかの結果のようです。

図3 テストの結果

ここまでできたら、モデルを出力します。OutputペーンでGetボタン(図4)をおして、モデルをファイルに保存します。このファイルを、あとでFileMaker Proで使用します。

図4 Getボタン

FileMaker Proでアプリ作成

ファイル > 新規作成… で、新規Appを作成します。名前は「画像識別」としました。つづいて、フィールドを作成していきます。

フィールドの作成

図4のように、「モデル」「画像」「結果」の3つのフィールドを作成しました。「モデル」は、先ほど作成した機械学習モデルを格納するフィールドで、タイプはオブジェクトで、グローバルフィールドにしておきます。「画像」は、判別する画像を格納するフィールドでタイプはオブジェクト、「結果」は判別結果を格納するフィールドで、タイプはテキストです。

図4 フィールドの設定

モデルの指定

新しいアプリができたら、「モデル」フィールドを選択して、挿入 > ファイル… で、先ほどCreate MLから出力した機械学習モデルのファイルを指定します。

スクリプト

次に、レイアウトモードで、「画像」フィールドにボタンの設定をします。「処理」をスクリプト実行にして、図5のようなスクリプトが実行されるようにしました。

図5 FileMaker Proのスクリプト

新しい画像でのテスト

ここまでできると、ヒノキとスギを判別するアプリの完成です。画像のフィールドにボタンの設定がされているので、これをおすとファイルダイアログがひらいて、画像を選択できます。

新しく撮影してきた画像で、判別のテストをやってみました。以下の2つ(図6, 7)はうまくいった例で、ヒノキ・スギをそれぞれ判別できました。

図6 新しい画像でのテスト結果1

図7 新しい画像でのテスト結果2

ただし、ヒノキをスギと間違える例もありました(図8)。もっと訓練画像にバリエーションを持たせて、数も増やしたほうがよいのかもしれません。

図8 新しい画像でのテスト結果3 (ヒノキの画像だが、スギと間違えた。)

参考