独自の画像識別AI(人工知能)を開発するためのクラウドサービスの1つが、米マイクロソフト(Microsoft)の「Custom Vision Service」。今回は「Object Detection」という対象物検出のAIを試す。
前回までは、1枚の硬貨が写った画像を用意してAIを学習させ、同様の画像に写った硬貨の種類をどの程度見分けられるようになるのかを検証した。
その際に使ったのは、Custom Vision Serviceの「Classification」というシンプルなタイプのAIである。このAIは画像1つひとつが所与のタグのどれに該当するかを判断し分類する。例えば1円、5円、10円、50円、100円、500円という6種の硬貨の識別であれば、1個の硬貨が写った画像に対してその硬貨の種類を識別する。
これに対してDetectionでは、1個の画像に複数の対象物が写っているケースにも対応する。1円、5円、10円などの硬貨がいくつも写った画像を読み込ませると、検出した硬貨それぞれがどの種類であるかを推論する。
Detectionでも一からAIを作る必要は無い。Classificationと同じように、追加学習によって比較的容易にAIを作成できる。
ただしAIとして、DetectionはClassificationと別物と考えられる。そこで今回はClassificationと比較しつつDetectionを試す。具体的には2つの検証を行う。
検証1として、Detectionでも6種の硬貨を識別するAIを作成し、前回までのClassificationと開発の手間や正答率を比べる。
検証2では、Detectionの特徴である、複数の硬貨を並べて写した画像に対する硬貨識別を行い、正答率などがどう変わるのかを調べる。
画像の中の硬貨1つひとつにタグ付け
検証1での学習データと検証データには、前回までと同じ1画像に1個の硬貨が写ったものを使う。同じデータを使って、ClassificationのAIと正答率を比べてみよう。
DetectionのAIを開発する工程はClassificationの場合とほぼ同じだ。簡単に説明すると、Custom Vision Serviceの画面で「プロジェクト」を作成し、その際にデフォルト設定(Classification)ではなく「Object Detection」にチェックを入れる。