バウンディングボックス(Bounding Box): 物体検出の領域矩形

記事を共有する:

1. バウンディングボックス(Bounding Box)とは [概要]

バウンディングボックス(Bounding Box)とは,外部領域に対して興味対象の物体領域を,最小の長方形で囲って境界で区切る(バウンドする)部分領域の矩形(Box)のことを言う.コンピュータビジョンでは,物体検出において,検出したい各物体の正解予測領域をバウンディングボックスとして表現して使用するなど,頻繁に使用する概念である.

この記事では,物体検出における「(1物体に対する)最小バウンディングボックス」について主に紹介する.また,その表現方法(どの座標を原点にするか,どのように長方形を表現するか)について,その種類を簡単にだけまとめておきたい(2節,3節)。バウンディングボックスを「グラフィックスの3Dシーンの文脈(bounding volume)」でもイメージできるようした上で (1.2節),本題の「画像上の物体バウンディングボックス(2節)」と,「点群や3D距離画像での物体3Dバウンディングボックス(ボリューム) (3節)」について,順にまとめたい.

コンピュータビジョンにおける「バウンディングボックス」は,正確に言うと,最小バウンディングボックスの「最小」を省略したものである.最小バウンディングボックスは「複数の対象物体領域全体を囲う最初の長方形」のことを指す(Minumum bounding box (Wikipedia) )が,実際は 関心領域(ROI)として使用できる各種図形のうち,「1つの物体の関心領域を囲った長方形」のことを「バウンディングボックス」と慣例的には呼んでいる.

1.1 バウンディングボックスの可視化例

バウンディングボックス(Bounding Box)
図1. バウンディングボックス(Bounding Box)

図1は,画像上の各物体(黒い犬と台)に対応した,(最小)バウンディングボックスをそれぞれ可視化した例である.バウンディングボックスは,画像座標の2軸(x,y)に沿った長方形にするので,その範囲まで物体の境界ぎりぎりまで4辺を近づけたものとなる.枠線だけがバウンディングボックスではなく,長方形の中全てを関心領域とみなしていることに注意されたい.

本当はバウンディングボックス境界の分割だけで終わらず,インスタンスセグメンテーションのように,背景との境界線まで分割した方が,各物体のより正確な関心領域(ROI)が前景マスクとして得られる.手軽にインスタンスセグメンテーションモデルが学習できるようになったのは,COCO データセット(2014)が登場した後の「2015年以降」であり,それまでは物体検出で予測するのが主流であった.

単一クラス物体検出(物体検出の記事の前半)時代の「HOG + SVM 歩行者検出」の頃は,「物体領域の上下左右に20%くらい背景も含めてマージンをとったバウンディングボックス」を正解として,物体検出器を学習していた.CNNだと最小バウンディングボックスの外の領域の特徴も含んで予測できるが,HOG特徴量では指定したROI内の特徴しか計算しなかったので,「背景領域も含めた領域のHOG特徴量から検出器を学習したかった」ためである.その後,PASCAL VOC 2007が,最小バウンディングボックスで物体領域をアノテーションするようになって以降,20%マージン背景部分は含めないようになった.

1.2 ビジョンとグラフィックスでのどちらでも使用

次は,2節以降の本題に入る前の導入として,「3DCGと,ビジョンの両方で,物体バウンディングボックスは使用する(1.1節)」ことと,その使用目的を簡単にだけ話したい,

バウンディングボックスは,画像認識やグラフィックスの業界で共通して使われる概念である.3Dグラフィックスでは,3Dシーン上の各オブジェクトごとに,バウンディングボックスが割り当てられている形式でプログラミングするのが普通であり,それを(3Dなので)「バウンディングボリューム(Wikipedia)」とも呼ぶ.

特にゲーム向けのシーンとオブジェクトでは,各物体に3Dバウンディングボックスも別途割り当てておいたほうが,物体同士の接触判定などを実装する場合に楽である.物体境界が複雑な3Dメッシュモデル同士で接触する判定する代わりに,バウンディングボックス同士だけで,計算負荷の軽い衝突判定が行えるからである.

また,コンピュータビジョンでも,たとえば物体検出では,画像上の2Dバウンディングボックスや,LiDAR点群から推定した自動車の3Dバウンディングボックスなどを,物体検出の出力として使用するのが通例である.例えば,Pascal VOC 2007や,KITTIデータセット などの物体検出タスクでは,バウンディングボックスが正解データとしてアノテーションされている.

一方,画像のインスタンスセグメンテーションでは,各物体の前景マスクを推定する前に,2ステージ型だと領域提案としてバウンディングボックスを中間出力するものの,最終出力は,各物体の前景マスクである(2ステージ型だと最終出力もバウンディングボックスがある).

2. 画像の物体検出におけるバウンディングボックス表現

バウンディングボックス表現のバリエーション
図2. バウンディングボックス表現のバリエーション

バウンディングボックスの表現には,代表的に以下の2つの表現がある:

  1. コーナー2点による表現[図2(a)]
  2. 中心点と幅・高さによる表現 [図2(b)] (※ 中心ではなく,左上点を基準点とする場合も多い)

この2つの表現自体に大差はない.ただ,物体検出においてバウンディングボックスのコーナー点を回帰する際には,原点基準の表現である表現1のほうが地域が広く,誤差は蓄積しやすい面がある.特に,2ステージ型の物体検出ネットワーク(例:Faster R-CNN)や,2ステージ型インスタンスセグメンテーションネットワーク(例:Mask R-CNN)を学習する際にも,2番の表現の方が「中心からみた相対表現」で各コーナー点を計算するので,絶対座標表現の1よりも有利であったりする.

3. 3D点群・距離画像での,3D物体バウンディングボックス

LiDARなどの3Dセンサーで獲得した点群データや,距離画像をカメラ視点から投影した3D点群などでも,3Dグラフィックス(1.1節)と同様に,実世界的な3D空間で物体ごとにバウンディングボックスを配置する.

点群データを入力に,3D物体検出ネットワークから物体検出を行うと,3Dバウンディングボックスが出力される.また,KITTIデータセットなどのデプスデータから得られる点群や,LiDARで取得した3D点群データに対しても,車や歩行者などが3Dバウンディングボックスでアノテーションされているので,3D物体検出ネットワークを学習すると,各物体の3Dバウンディングボックスを推定することができるようになる.

4. まとめ

主にコンピュータビジョンの文脈で,物体検出における最小バウンディングボックスについて紹介した.2D画像向けの物体バウンディングボックスについて,画像原点に対して絶対的に表現する場合と,相対的に表現する場合の2者の違いを整理した(2節).また,3D点群やステレオ距離画像のデプスデータに対しては,カメラ中心の3D空間上で3Dバウンディングボックス(バウンディングボリューム)で,3D物体領域の検出を行うことを整理した(3章).

関連書籍

References

参照外部リンク