歩行者検出をCNNで(8)
ここまで紹介した歩行者検出手法のAdaBoostとGoogleNetは、画像中の歩行者領域に適用してその領域が歩行者かどうかを判定する手法といえる。そのため、画像全体をラスタースキャンしながら歩行者を検出するか、他の簡易な手法で歩行者がいる可能性がある領域を特定する必要である。
画像全体をラスタースキャンするのは計算効率が悪くリアルタイム性が損なわれるため、Selective Search と呼ばれる他手法との組み合わせが一般的である。例えば、横断歩行者の検出であればオプティカルフローを検出し、横方向に流れるオプティカルフロー領域にAdaBoostやGoogleNetする2段階構造となる。
AdaBoostよりGoogleNetの方が検出率は高いものの、計算コストは高い。そのため、2段階構造を取らずに画像全体をラスタースキャンすると、スケールが異なる複数の検出フレームを少しずつずらしながら計算するため膨大な処理が必要となる。つまり、1枚のフレームに数万単位の処理を行うことになりリアルタイム処理は難しい。また、画像全体をラスタースキャンするため、学習データとして非歩行者画像となる背景画像に走行中出現する背景を数多く準備しなければならず、検出精度を上げにくい。そのため、2段階検出により計算コストを削減し、検出精度を上げるのである。
ところが、2015年、Faster R-CNN、2016年、YOLOやSSDが発表された。これらCNNの手法は、検出対象とその位置も同時に検出し、かつそれまで1種類の対象物体が検出対象だったことに対し、多くの種類の対象物体を同時に検出する能力を備えるようになったのである。
最近のコメント