MediaPipe KNIFT:テンプレートベースの画像検索を改善(2/3)

モデル

1.MediaPipe KNIFT:テンプレートベースの画像検索を改善(2/3)まとめ

・ハード ネガティブ トリプレット マイニングにより学習用データの品質を向上している
・KNIFTを数十億規模画像データセットに対して迅速な画像検索を行える事を目的で設計
・Pixel 4 CPUで70ms, Pixel 2 CPUで110ms、Pixel 2 XNNPACKで40msで実行可能

2.MediaPipe KNIFTの概要

以下、developers.googleblog.comより「MediaPipe KNIFT: Template-based feature matching」の意訳です。元記事の投稿は2020年4月22日、Zhicheng WangさんとGenzhi Yeさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by Markus Spiske on Unsplash

ハード ネガティブ トリプレット マイニング
モデルの品質を向上させるために、FaceNetのトレーニングで使用したのと同じハードネガティブトリプレットマイニング手法を使用しました。

最初に、ランダムに選択したトリプレットを使用して基本モデルをトレーニングします。次に、ベースモデルを使用して、各アンカー(a)とポジテイブ(p)のペアに対してd(a,p) < d(a,n) < d(a,p) + マージン(margin:余白)を満たすようなセミハードネガティブサンプル(n)(図6)を見付けます。

ランダムに選択されたトリプレットとハードネガティブトリプレットを混合した後、この改善したデータでモデルを再トレーニングします。

 


図6:上から下に、アンカー、ポジテイブ、及びセミハードネガティブの各画像

モデルアーキテクチャ
モデルアーキテクチャの調査から、比較的小さなアーキテクチャで十分な品質を達成するのに十分であることがわかったため、KNIFTモデルのバックボーンには軽量バージョンのInceptionアーキテクチャを使用しています。

結果として得られたKNIFTの特徴記述子は、40次元の浮動小数点ベクトルです。モデルの詳細については、KNIFTのmodel cardを参照してください。

ベンチマーク
様々なデバイスでKNIFTモデルの推論速度をベンチマーク結果(200の特徴を使った計算)を表1に示します。


表1:KNIFTのパフォーマンスベンチマーク

品質面では、KNIFTとORB(OpenCVによる実装)でそれぞれのマッチしたキーポイント数の平均を社内ベンチマークで比較しました。(表2)

既に2020 Image Matching Benchmarkなどの一般に公開されている多くの画像照合ベンチマークがあります。しかし、それらのベンチマークのほとんどは、比較的高解像度の画像で遠近(perspective)を大きく変化させ、大きな変化があっても同一ランドマークとして認識する事ができるかに焦点を当てており、多くの場合、タスクは何千ものキーポイントの計算を必要とします。

対照的に、私達はKNIFTを大規模(つまり、数十億枚の画像)な画像データセットに対してオンライン画像検索を行えるように設計しています。そのため、低計算コストで高精度に検索ができているかに焦点を当てるようにベンチマークを考案しました。つまり、画像ごとに100~200のキーポイントが計算され、確実に画像の一致を判断するために必要なキーポイントは10程度です。

さらに、特徴記述子のきめ細かいパフォーマンス特性を示すために、ベンチマークセットを「物体のタイプ(二次元平面など)」と「画像ペアの関係(画像サイズの大きな違いなど)」で複数のカテゴリに分類しています。

表2では、各カテゴリでKNIFTとORBによってそれぞれマッチしたキーポイントの平均数を比較しています。各キーポイントはOpenCVのORB実装に付属するoFast検出器によって各画像で検出された200のキーポイント位置に基づいています。


表2:KNIFTとORBのそれぞれマッチしたキーポイントの平均数

表2から、KNIFTは全てのカテゴリでORBよりも常に多くのキーポイントに大きなマージンで一致していることがわかります。

KNIFT(40次元のfloat型)がORB(32次元のchar型)よりかなり大きいという事実があり、そして、この差がマッチングの品質向上に繋がっています。それにもかかわらず、ほとんどのロ―カルな特徴用ベンチマークは記述子サイズを考慮に入れていないため補足します。

開発者がMediaPIpeでKNIFTを簡単に試す事ができるようにするため、ローカルな特徴ベースのテンプレートマッチングソリューションを構築しました。(次節のMediaPipeの使用に関するセクション参照)副産物として、図7と図9のように並べて比較することで、KNIFTとORBのマッチング品質を視覚的見る事ができます。


図7:「二次元平面のマッチング」の例
左:KNIFT 183/240
右:ORB133/240

3.MediaPipe KNIFT:テンプレートベースの画像検索を改善(2/3)関連リンク

1)developers.googleblog.com
MediaPipe KNIFT: Template-based feature matching

2)drive.google.com
Model Card Content: MediaPipe KNIFT(PDF)

3)google.github.io
MediaPipe KNIFT

コメント

タイトルとURLをコピーしました