# 物体検出 ## 定義 物体検出(detection)は、画像中に何が写っているかに加え、どの位置に出現しているかを推定するタスクである。画像分類が「何が写っているか」だけを推定するのに対し、検出は位置の推定を追加で要求する。検出タスクは大きく、対象を囲む矩形を推定するバウンディングボックス検出(bounding box detection、BB、自由度4)と、あらかじめ定義したキーポイント(人の頭・手・肩、車の左上・左下など)の位置を推定するキーポイント検出に分けられる。バウンディングボックス検出は物体の向きによらず矩形さえ求まればよいのに対し、キーポイント検出は物体の姿勢状態(しゃがんでいるか、右手を挙げているかなど)まで推定でき、どちらが適するかは後続タスクに依存する。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.1) ## 検出特有の難しさ 検出は分類と比べて2つの点で特徴的である。第一に、検出対象のスケールに非常に幅がある(同じ人物でも遠くにいれば数十ピクセル、近くにいれば画像全体を覆う)にもかかわらず、同じロジックで検出できる必要がある。第二に、検出対象の数が可変であるため、固定長ではなく可変長の出力を扱えるネットワークが必要になる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.1) ## Mask R-CNN: バックボーン+RPN+RoIAlignの3段構成 Mask R-CNNは検出とインスタンスセグメンテーションの両方を実現する代表的アーキテクチャである。まず画像分類用ネットワーク(ResNetなど、最後のプーリング層を除く)を「バックボーンネットワーク(トランク)」として転用し特徴抽出する。ImageNet等の分類タスクで学習した重みを初期値に使うことが多いが、検出タスクの学習データが十分大きければこの転用効果は薄れる。 次に、バックボーンの最後の特徴マップを入力として、RPN(Regional proposal network)が各位置・各アンカーボックス(代表的な矩形をあらかじめ列挙したもの、または学習データの統計から求めたもの)で物体が出現したかどうかをカーネルサイズ$1\times1$の畳み込みで並列に予測し、検出候補を列挙する(この検出候補列挙と後続処理をまとめてR-CNN、Region based convolutional neural networkと呼ぶ)。 最後に、各検出候補について、双線形補間で切り出し特徴マップを固定サイズへ変換するRoIAlign(Region of interest align)を経て、画像分類と同様の処理で出現ラベル・詳細位置・(該当すれば)セグメンテーションマスクを推定する。双線形補間は微分可能な操作であり、以降の処理もすべて微分可能なため全体がend-to-endで学習できる。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.1) ## ヒートマップベースの検出(CornerNet、CenterNet) Mask R-CNNのように可変数の検出対象を列挙し個別処理する方式は複雑になりがちで並列化も難しい。これに対し、特徴マップの全位置で同じ推論を行い途中結果(ヒートマップ)を得てから検出結果へ変換する方式がある。CornerNetは各位置が物体の左上・右下である確率のヒートマップと、対応関係を調べるための埋め込みベクトルを出力し、近い埋め込みベクトル同士の左上・右下を対応づけて矩形を推定する。後続のCenterNetは中心も同時に予測することで精度を改善している。(Source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] §5.1コラム) ## 横断的知見 1 ソース目のため、複数ソースの突き合わせによる横断的知見は今後の蓄積に委ねる。[[畳み込みニューラルネットワーク]]が扱う「バックボーンネットワークとしての分類モデルの転用」という論点、[[画像セグメンテーション]]が扱う「セグメンテーションとの一長一短」という論点との突き合わせは、今後別ソースが加わった際に蓄積する。 ## 未解決の問い - Mask R-CNNのRPN+RoIAlignという2段構成(two-stage)と、CornerNet/CenterNetのようなヒートマップベースの1段構成(one-stage寄り)は、精度・速度のトレードオフでどう体系的に比較できるか。 - アンカーボックスの設計(代表的な矩形をあらかじめ列挙する)は、データセットの物体スケール分布にどこまで敏感か。アンカーフリーな手法(CornerNet系列)はこの依存性をどこまで解消しているか。 - キーポイント検出とバウンディングボックス検出のどちらを選ぶべきかという判断基準は、後続タスクの要件からどう定式化できるか。 ## 関連 - source: [[@2022__Gihyo__ディープラーニングを支える技術 - Chapter 5 ディープラーニングを活用したアプリケーション]] - concept: [[畳み込みニューラルネットワーク]] / [[画像セグメンテーション]] - entity: [[Mask R-CNN]] / [[ResNet]] - 書籍: [[wiki/entities/ディープラーニングを支える技術|ディープラーニングを支える技術]] ## 出典 - 岡野原大輔, 『ディープラーニングを支える技術』, 技術評論社, 2022, 第5章 §5.1.