物体検出とは、画像の中に含まれる物体の周囲を取り囲む四角い領域を探し出す技術です。 こうして検出された領域をバウンディングボックスと呼びます。 これまで、様々な手法が編み出されてきましたが、多くの場合、以下の手順に沿って実施されています。
1. 物体領域候補の提案
対象物のバウンディングボックスを複数提案します。
上図では、最初にバウンディングボックスを一つ提案し、これを一定の距離で移動させながら複数の要素を生成しています。 この手法をスライディングウィンドウ法と呼びます。 わかりやすい手法ではありますが、画素数が大きいファイルの場合、計算コストがかなり大きくなるのが課題です。
この課題を解決するため、その他の手法が複数編み出されてきましたが、その詳細は専門書に譲ります。
2. クラス分類
提案されたバウンディングボックス内部の画像を抜き出し、クラス分類を行います。 例えば、電車であることを分類する場合であれば、バウンディングボックス内部の画像に電車が含まれる確率を求めます。
3. 非最大値の抑制
検出対象となる一つの物体に対して、複数のバウンディングボックスが算出されないようにするため、各バウンディングボックスの検出結果に対する信頼度を取得し、この値が最大のものだけを残す処理を行います。 この処理を非最大値の抑制と呼びます。
下図のように、3つのバウンディングボックスが提案されたとしましょう。
信頼度の最大値は90%です。そこで、信頼度90%の要素のみを残します。
最終的に、信頼度が十分に大きいバウンディングボックスが一つ得られました。
近年は、物体検出のプロセス全体にディープラーニングの技術を利用するアプローチが取られるようになっていますが、上記の基本手順を知ることで、その計算内容をより深く理解することができるでしょう。