Single Shot MultiBox DetectorのMXNet実装で物体検出モデルを作成してみた


Single Shot MultiBox Detector(SSD)のMXNet実装「mxnet-ssd」で物体検出モデルを作成してみました。

なお、オリジナルのCaffe実装「caffe-ssd」については、以下の記事をご覧ください。

Single Shot MultiBox DetectorのCaffe実装で物体検出デモを試してみた
Single Shot MultiBox Detector(SSD)のCaffe実装「caffe-ssd」で物体検出デモを試してみました。やはりCaffeなので、環境構築に苦労しましたが、その高速性は確認できました。
スポンサーリンク

物体検出

今回はトレーニング用データセットとして、PASCAL VOC2007のみを用いました。後述の方法により20エポックトレーニングしたモデルの物体検出結果は、下図のようになっています。

配布されているモデル(ssd_300_voc_0712.zip)の物体検出結果の下図と比較すると、”bicycle”が検出されておらず、”car”と”dog”の信頼度もまだ低いようです。

物体検出モデルの作成

こちら(https://github.com/zhreshold/mxnet-ssd)を参照して環境構築を行います。

README.mdでは、トレーニング用データセットとして、PASCAL VOC2007とVOC2012の両方を用いていますが、今回のトレーニングでは、以下のようにtrain.py--yearオプションを設定してVOC2007 trainvalの5011枚を用いました。

$ python train.py --year 2007 --batch-size 16

また、GTX960 4GBの場合、デフォルトのバッチサイズ32ではエラーとなるため、--batch-sizeオプションを設定しました。

以下のコマンドで、20エポックトレーニングしたモデルの性能をVOC 2007 testの4952枚で評価してみると、以下のようにmAPは30.56%となりました。

$ python evaluate.py --gpus 0 --batch-size 8 --epoch 20
INFO:root:Start evaluation with 4952 images, be patient...
...
Mean AP = 0.3056

配布されているモデル(ssd_300_voc_0712.zip)のmAPは71.57%なので、さらにトレーニングを続ける必要がありそうです。

まとめ

Single Shot MultiBox Detector(SSD)のMXNet実装「mxnet-ssd」で物体検出モデルを作成してみました。