Custom Vision の Domain の効果を確かめる


目的

Azure Cognitive Services の Custom Vision では DomainGeneralFoodLandmarksRetail の中から選択できます。Domain の選択が精度に影響するのか確かめたいと思います。

方法

スパゲティの分類に挑戦します。アリオ・エ・オリオ、ボロネーゼ、カルボナーラの画像を 30 枚ずつ用意しました。Project TypeClassificationClassification TypeMulticlassDomain はとりあえず General でプロジェクトを作成します。Domain はプロジェクトの設定で変更できるので、変更しては Train する、という作業を繰り返していくことにします。結果は Iteration として保存されます。Training TypeQuick Training を選択します。

予想としては、適切な Domain である Food を選ぶと精度が上がり、Landmarks や Retail では下がるでしょう。また、Compact は全体的にやや落ちるでしょう。

結果

Probability Threshold50 % のときの各 Domain の PrecisionRecallA.P. の値は次のようになりました。

Domain Precision (%) Recall (%) A.P. (%)
General 94.4 94.4 93.0
Food 100.0 100.0 100.0
Landmarks 72.2 72.2 87.4
Retail 77.8 77.8 86.4
General (Compact) 88.9 88.9 92.6
Food (Compact) 83.3 83.3 92.7
Landmarks (Compact) 83.3 83.3 90.6
Retail (Compact) 77.8 77.8 87.3

概ね期待通りの結果となったのではないでしょうか。

その他

  • Iteration を Delete して再度 Train しても結果は同じであるようです。
  • 1 つの Azure Cognitive Services Custom Vision リソースに作成可能なプロジェクトの数は、無料の価格レベル F0 では 2 です。
  • 1 つのプロジェクトに保存しておける Iteration の数は、価格レベルによらず 10 です。今回の実験は 1 つのプロジェクトに収まり、無料で済ませることができました。
  • 次の公式ドキュメントを参考にしました : 「クイックスタート: 分類器を構築する