アンカーボックスは、物体検出アルゴリズムにおいて、画像内の対象物の位置や大きさを予測するための基準となる、あらかじめ定義された矩形のことです。検出したい物体の代表的なアスペクト比やサイズを事前に複数設定し、モデルがこれを調整・修正することで、多様な形状の物体を高速かつ高精度に検出できます。
アンカーボックスとは
アンカーボックス(Anchor Box)とは、画像から特定の物体を検出する「物体検出」モデルにおいて、物体の位置と形(アスペクト比やサイズ)を予測するための基準となる、事前定義された複数の固定サイズの矩形(長方形)のことです。
詳しく解説
物体検出では、画像内のどこに何があるかを予測する必要がありますが、物体のサイズや縦横比は多様です。これをゼロから予測するのは困難であるため、あらかじめ複数パターンの標準的な矩形(アンカーボックス)を画像上の各位置(グリッド)に配置しておき、モデルは「どのアンカーボックスが最も物体に近いか」を選んだ上で、その基準枠からのズレ(位置オフセットやサイズの拡大・縮小)を予測します。これにより、予測の難易度が大幅に下がり、SSD(Single Shot MultiBox Detector)やFaster R-CNN、YOLO(v2からv5など)といった代表的なディープラーニングベースの物体検出アルゴリズムで、高精度かつ高速なリアルタイム検出が実現可能になりました。
具体例・使われ方
例えば、道路上の自動運転システムで、画像から「歩行者」と「乗用車」を同時に検出する場合を考えます。歩行者は縦長、乗用車は横長の傾向があります。そこで、あらかじめ「縦長(歩行者用)」と「横長(乗用車用)」の2つのアンカーボックスを用意します。画像内に歩行者が現れた際、システムは縦長のアンカーボックスを基準にして、その歩行者の正確な位置と境界線を微調整(バウンディングボックスの回帰)して出力します。
似た用語との違い
混同されやすい概念に「バウンディングボックス」があります。バウンディングボックスは、モデルが最終的に予測・出力した、物体を囲む実際の矩形領域を指します。これに対して、アンカーボックスは、予測を行う前の段階で開発者が事前に設定した「推論の足がかりとなるテンプレート(基準枠)」です。つまり、モデルはアンカーボックスを出発点として調整を加え、最終的なバウンディングボックスを導き出します。
注意点
アンカーボックスのサイズやアスペクト比、配置数は、検出したい対象に合わせて手動で調整(ハイパーパラメータチューニング)する必要があります。極端に偏った形状の物体がある場合、適切な初期設定がなければ検出精度が低下します。また、画像内に無数のアンカーボックスを配置するため、計算量が増大し、重複した検出結果を排除する「NMS」などの後処理が不可欠になります。近年では、このような設定の複雑さを解消するため、アンカーボックスを使用しない「Anchor-free(アンカーフリー)」な検出モデル(FCOSやYOLOv8など)も登場しています。