(2020/07/16) 自分が参考にするための備忘録として記述.
私より詳しい人がいましたら,代わりに書いてください.
SqueezeDet
論文:https://arxiv.org/abs/1612.01051
モチベーション
安全な自動運転を実現するためには,物体検出は必須の技術である.環境内の歩行者,サイクリスト,道路標識といった物体をリアルタイムに認識する必要がある.モデルは,GPUよりも電力消費が少ない,組み込みプロセッサで動作することが望ましい.
自動運転における物体認識での要件:
- 正答率
- スピード
- モデルサイズの小ささ
- 電力効率
SqueezeDet:YOLOの構造をベースに,SqueezeNetを用いたもの.
(SqueezeNetは,AlexNetレベルの正答率を保ちつつ,サイズを小さくしたモデル)
メモ:ここで言うYOLOの構造とは,end-to-end のこと(多分)
検出の流れ
YOLO同様に,1つのネットワークで,領域検出と分類を行う.入力画像を低解像度・高次元の特徴マップを抽出する.その後,特徴マップをConvDetに与える.
confidence score を次のように定義する:
$$ Pr(Object) * IOU_{truth}^{pred} $$
また,Bounding Box の座標推定の指標として,
$$ \max_c Pr(class_c | Object) * Pr(Object) * IOU_{truth}^{pred} $$
を用いる.
この指標を用いて,top-N の Bounding Box を選び,冗長な Bounding Box を除いて検出結果とする.
モデルの構造
ConvDet の部分は,VGG16 や ResNet といった,一般の CNN アーキテクチャを用いることができる(論文では,"backbone" アーキテクチャとしている).モデルサイズと消費電力の観点から,ここに SqueezeNet を適用する.
この研究では,2種類の SqueezeNet アーキテクチャを用いた.
- Squeeze Ratio = 0.125 のアーキテクチャ
- ImageNet-1k top-5 accuracy: 80.3%
- 以降,これをバックボーンに用いた検出器を SqueezeDet とする
- Squeeze Ratio = 0.75 のアーキテクチャ
- ImageNet-1k top-5 accuracy: 86.0%
- 以降,これをバックボーンに用いた検出器を SqueezeDet+ とする
ImageNet で事前学習し,頭に fire module を2つ追加して使用.
性能
KITTI データセットによる実験を通じた性能評価.
モデルサイズ,推論速度(1データあたり)では SqueezeDet が優れる.
同じパフォーマンスを,30.4倍小さいモデルサイズ, 19.7倍の推論速度,35.2倍小さい消費電力で実現した.
Design space explorationについて: 時間があれば追記する
参考
YOLO: 【物体検出手法の歴史 : YOLOの紹介】