Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

アンカー ボックスによるオブジェクトの検出

深層学習ニューラル ネットワークを使用したオブジェクト検出により、イメージ内のオブジェクトの位置とサイズを予測するための迅速で正確な手段が得られます。ネットワークは、オブジェクトのスケールに関係なく、有効なオブジェクトを適時に返すことが理想的です。アンカー ボックスを使用すると、深層学習ニューラル ネットワーク フレームワークの検出部分の速度と効率性が向上します。

アンカー ボックスとは

"アンカー ボックス" は、特定の高さと幅の事前定義された境界ボックスのセットです。これらのボックスは、検出する特定のオブジェクト クラスのスケールおよび縦横比を取得するために定義され、通常、学習データセットに含まれるオブジェクト サイズに基づいて選択されます。検出中、事前定義されたアンカー ボックスはイメージ全体でタイル配置されます。ネットワークは、確率や、すべてのタイル配置されたアンカー ボックスの背景、Intersection over Union (IoU) およびオフセットなどのその他の属性を予測します。予測は、個々のアンカー ボックスを調整するために使用されます。別個のオブジェクト サイズのアンカー ボックスを複数定義できます。アンカー ボックスは、固定された初期境界ボックスの推定です。

ネットワークが境界ボックスを直接予測することはありませんが、タイル配置されたアンカー ボックスに対応する確率と調整を予測します。ネットワークは、定義されたすべてのアンカー ボックスに関する予測の一意なセットを返します。最終特徴マップは、各クラスのオブジェクト検出を表します。アンカー ボックスを使用することで、ネットワークは複数のオブジェクト、さまざまなスケールのオブジェクトおよび重複するオブジェクトを検出できます。

アンカー ボックスを使用する利点

アンカー ボックスを使用する場合、すべてのオブジェクトの予測を一度に評価できます。アンカー ボックスにより、すべての考えられる位置で個別の予測を計算するスライディング ウィンドウを使用してイメージをスキャンする必要がなくなります。スライディング ウィンドウを使用する検出器の例には、集約チャネル特徴 (ACF) または勾配ヒストグラム (HOG) 機能に基づく検出器があります。アンカー ボックスを使用するオブジェクト検出器は、イメージ全体を一度に処理でき、リアルタイムのオブジェクト検出システムを可能にします。

畳み込みニューラル ネットワーク (CNN) が畳み込みの方法で入力イメージを処理できるため、入力内の空間的な位置は、出力内の空間的な位置に関連している可能性があります。この畳み込みの対応は、CNN がイメージ全体のイメージ特徴を一度に抽出できることを意味します。次に、抽出された特徴はイメージ内の位置に戻して関連付けることができます。アンカー ブロックを使用することで、イメージの特徴を抽出するためのスライディング ウィンドウ手法のコストが置き換えられ、大幅に削減されます。アンカー ボックスを使用すると、スライディング ウィンドウ ベースのオブジェクト検出器の 3 つの段階 (検出、特徴の符号化および分類) すべてを含む、効率的な深層学習のオブジェクト検出を設計できます。

アンカー ボックスのしくみ

アンカー ボックスの位置は、ネットワーク出力の位置を入力イメージに戻してマッピングすることで決定されます。プロセスはすべてのネットワーク出力に対して複製されます。その結果として、イメージ全体でタイル配置されたアンカー ボックスのセットが生成されます。各アンカー ボックスは、クラスの特定の予測を表しています。たとえば、下のイメージ内の位置ごとに 2 つの予測を行うために、2 つのアンカー ボックスがあります。

各アンカー ボックスはイメージ全体でタイル配置されています。ネットワーク出力の数はタイル配置されたアンカー ボックスの数と等しくなります。ネットワークはすべての出力の予測を生成します。

位置推定誤差と調整

タイル配置されたアンカー ボックス間の距離 ("ストライド") は、CNN 内に存在するダウンサンプリング量の関数です。4 から 16 の間のダウンサンプリング係数が一般的です。これらのダウンサンプリング係数により粗くタイル配置されたアンカー ボックスが生成され、これが位置推定誤差につながる可能性があります。

位置推定誤差を修正するために、深層学習オブジェクト検出器はオフセットを学習し、タイル配置された各アンカー ボックスに適用して、アンカー ボックスの位置とサイズを調整します。

ダウンサンプリング層を削除してダウンサンプリングを削減できます。ダウンサンプリングを削減するには、畳み込み層または最大プーリング層 (convolution2dLayer (Deep Learning Toolbox)maxPooling2dLayer (Deep Learning Toolbox) など) の 'Stride' プロパティの値を減らします。ネットワークの初期の部分で、特徴抽出層を選択することもできます。ネットワークの初期の特徴抽出層は、ネットワークのさらに下方にある層と比較して空間分解能が高くなりますが、抽出するセマンティック情報の量は少なくなる可能性があります。

オブジェクトの検出の生成

最終オブジェクトの検出を生成するために、背景クラスに属するタイル配置されたアンカー ボックスが削除され、残ったアンカー ボックスは信頼度スコアによってフィルター処理されます。非最大抑制 (NMS) を使用して信頼度スコアが最も高いアンカー ボックスが選択されます。NMS の詳細については、関数 selectStrongestBboxMulticlass を参照してください。

アンカー ボックス サイズ

マルチスケール処理により、ネットワークはさまざまなサイズのオブジェクトを検出できます。マルチスケール検出を実現するには、64 × 64、128 × 128 および 256 × 256 などのさまざまなサイズのアンカー ボックスを指定しなければなりません。学習データ内のオブジェクトのスケールおよび縦横比を厳密に表すサイズを指定します。サイズの推定の例については、学習データからのアンカー ボックスの推定を参照してください。

関連する例

詳細