バウンディングボックス完全ガイド:物体検出の基礎・フォーマット・IoU/NMS・アノテーション実践

バウンディングボックスとは――概念と基本用途

バウンディングボックス(bounding box)は、画像や3次元空間内の対象物を矩形(または直方体)で囲む最小限の領域を指す概念です。コンピュータビジョン、グラフィックス、物理シミュレーション、地理情報システム(GIS)など幅広い分野で用いられ、主に「対象の位置と大きさ」を簡潔に表現するために使われます。特に物体検出(object detection)タスクでは、検出結果の表現・評価・学習データの注釈(アノテーション)に必須の要素です。

代表的な種類

  • Axis-Aligned Bounding Box(AABB):画像座標軸に平行な矩形。最も単純で処理が軽く、ピクセル単位での表現も簡便。
  • Oriented Bounding Box(OBB)/Rotated Bounding Box:回転を含む可能な向きで最小の外接矩形。斜めに長い物体の表現に有効。
  • 3Dバウンディングボックス:3次元空間での直方体。LiDARやRGB-Dデータ上の物体検出で用いられ、位置(x,y,z)・寸法(w,h,l)・回転を含むことが多い。
  • ポリゴン/マスク(代替表現):厳密な輪郭が必要な場合は多角形やビットマップマスク(セグメンテーション)で表す。バウンディングボックスはこれらの簡易表現とも言える。

画像データにおける表現フォーマット

物体検出でよく使われるバウンディングボックスの表現は、データセットやツールによって異なります。代表的なフォーマット:

  • PASCAL VOC:xmin, ymin, xmax, ymax(ピクセル座標、左上を原点とすることが多い)
  • COCO:[x, y, width, height](x,yは左上の座標、幅・高さはピクセル)
  • YOLO:center_x, center_y, width, height(すべて画像幅・高さで正規化された値:0〜1)

注意点として、座標系の原点(左上か中央か)、インデックスが0始まりか1始まりか、y軸の向きなどが実装間で異なるため、前処理/後処理での整合性確保が重要です。

バウンディングボックスの計算方法

バウンディングボックスは状況に応じて以下のように算出されます。

  • 点群やマスクから:対象の全ての点(またはマスクの白ピクセル)の最小・最大座標(min/max)を取り、AABBを得る。
  • 外接回転矩形(最小面積回転矩形):凸包を求め、回転角を変えつつ最小面積を探すアルゴリズム(例えばOpenCVのminAreaRect)を用いる。
  • 深層学習モデルの出力をデコード:SSDやYOLO、Faster R-CNNなどはモデル固有の出力フォーマット(アンカーやグリッドベース)からバウンディングボックスを復元する。

評価指標と関連手法

バウンディングボックスの評価で最も一般的なのがIoU(Intersection over Union)です。IoUは予測ボックスと正解ボックスの重なり比率を示し、

IoU = (予測 ∩ 正解) / (予測 ∪ 正解)

で定義されます。IoUの閾値(例:0.5)を超えれば真陽性(TP)と見なす、といった使い方が標準です。

これを基に以下の指標が導出されます:

  • Precision / Recall:検出の精度と網羅性。
  • AP(Average Precision)/ mAP(mean AP):Precision-Recall曲線の下の面積。PASCAL VOCやCOCOで採用されるmAPの計算方法は異なり、COCOはIoUを0.50から0.95まで0.05刻みで平均化します。
  • False Positive / False Negativeの分析:小物体、重複検出、誤検出の原因解析に重要。

推論時の後処理:NMS とその派生

検出モデルは多くの重複ボックスを出力するため、非極大抑制(Non-Maximum Suppression, NMS)が用いられます。基本的なNMSはスコアが高いボックスを残し、IoUが閾値以上の他ボックスを削除します。派生手法には:

  • Soft-NMS:削除の代わりに重複度合いに応じてスコアを緩やかに減衰させる。
  • DIoU/CIoUを用いたNMS:位置とサイズの類似度を考慮する新しいIoU指標に基づく抑制。
  • クラス別NMS/マルチスケールNMS:クラスごと・スケールごとにNMSを行う運用上の工夫。

データ作成・アノテーションの注意点

  • アノテーションツール:LabelImg、CVAT、LabelMeなどを利用。出力フォーマットを事前に確認する。
  • 厳密な定義:物体のどの部分を含めるか(外周の余白、重なり部分の扱い)をアノテータ間で統一することが重要。
  • 小物体・密集物・部分切れ(truncation)や遮蔽(occlusion):これらは評価で不利になりやすく、別ラベル(partial/occluded)を付与することもある。
  • 品質管理:クロスバリデーションや複数人レビュープロセス、ヒューマンインザループでの修正が望ましい。

課題と限界

  • 精度の限界:矩形は対象の形状を単純化するため、輪郭が複雑な物体では誤差が大きくなる。
  • 重なりと分離:密集した物体群ではAABBだとクラス分離が困難になり、誤検出や重複が増える。
  • 向きの扱い:斜めの物体はAABBで過大に領域を占有するため、OBBやマスクの採用が望ましい。
  • 評価の一貫性:IoU閾値次第で評価が大きく変わる。COCOのように複数閾値で評価する手法はロバストだが計算コストが上がる。

バウンディングボックスの代替・拡張

  • セグメンテーションマスク(インスタンス/セマンティック):画素単位で正確な輪郭を表現。
  • キーポイント検出:人物や顔など、重要点を検出する場合に有効。
  • ポリゴン/多角形:複雑形状の近似に適する。
  • 回転ボックスやカスタムIoU:空中写真や文字検出など回転が重要な場面に対応。

実運用での実践的なポイント

  • フォーマットの統一:学習・推論・評価で用いる座標系とスケールを統一する。(例:すべてピクセル座標にする、または正規化する)
  • データ拡張時の座標変換:回転・スケーリング・クロップなどを行う場合、バウンディングボックス座標の適切な変換処理を忘れない。
  • 小物体の扱い:入力解像度の調整やアンカー設計で小物体の検出性能を改善できる。
  • 推論効率:NMSの実装(GPUでのバッチ処理等)や軽量モデル、量子化でリアルタイム性を確保。

まとめ

バウンディングボックスは、物体の存在場所を簡潔に表すための基本的で強力な表現です。実装・評価・データ作成のそれぞれの段階で設計上の意思決定(フォーマット選択、IoU閾値、NMS手法、アノテーションルール)が結果に大きく影響します。単純性ゆえの限界もあり、用途によっては回転ボックスやピクセル単位のセグメンテーションなどの拡張手法の採用が検討されます。導入時はデータとタスク特性を考慮して適切な表現・評価基準を選ぶことが重要です。

参考文献