物体検出の入力と出力
入力:画像
出力:BBox(位置・大きさ情報)、クラスラベル、confidence
SSD(Single Shot Multi Detector)
SSDは、物体検出アルゴリズムの一つ。SSD300とSSD512の2パターンがある(画像サイズがそれぞれ300x300, 512x512)。8732個の大きさや形の異なる長方形の枠(デフォルトボックス)を画像に乗せ、SSDモデルに通すことで、位置の予測とクラスの予測を行う。
位置の予測:DBoxのオフセット(cx,cy,w,h)
クラスの予測:物体の種類
特徴
- 小さい物体の検出は苦手(小さい物体の検出に用いられる特徴量マップ(サイズが大きいもの)は、畳み込みの回数が少なく、単純な特徴しか得ることができないため)
SSDによる物体検出の流れ
1.画像を300x300にリサイズ
2. デフォルトボックスを8732個用意
3. SSDネットワークに画像を入力(出力:デフォルトボックス x (各クラスの信頼度:21個 + オフセット:4個)を出力)
4. 信頼度上位のデフォルトボックスを抽出
5. オフセット情報による修正と被りの除去
6. 閾値(ユーザが設定可)以上の信頼度のバウンディングボックスを出力
ネットワークモデル
VGG16モデルにExtra Feature Layersという畳み込み層を挿入。6つの異なる大きさの特徴量マップを用いることで、様々な大きさに対応した物体の特徴量を得ることができる。
Non-Maximum Suppressionのアルゴリズム
DBoxが8732個もあるので、画像中の同じ物体に対して、SSDモデルより求めたBBoxはほんの少しずれて複数個生じる場合がある。Non-Maximum Suppressionとは、これらBBoxから一つのBBoxのみを残す処理を指す。
操作:高い信頼度を出したBBoxが複数ある場合、重なり度合いの指標IoU(Intersection over Union)が閾値以上(ex:5割)の場合、最も高い信頼度のBBoxのみを残し、他は除去する。
$$
IoU = \frac{Intersection(BBox同士が重なる部分の面積)}{Union(BBoxを組み合わせた面積)}
$$