OpenCV
DeepLearning
Keras
VGG16
ssdkeras

VGG16-SSD~ssdkerasのその先1~

対象

Faaster-RCNN,SSD,Yoloなど物体検出手法についてある程度把握している方.
VGG16,VGG19,Resnet,MobileNetなどをSSDに組み込むときの参考が欲しい方.
自作のニューラルネットを作成している方.

1.VGG16とは

オックスフォード大学のVisualGeometoryGroup(VGG)が開発した16層のレイヤーからなるニューラルネットワークであり,他の多くの物体検出手法ではいまだにVGG16がよく使われている.
VGG16.png

筆者がなぜVGG16と書いているかというと,SSDにはそのほかのフレームワークによって精度と速度のトレードオフではあるが,目的に合わせて活用することができるからである.(実際の実装に関する情報はとても少ないのだが・・・)

2.VGG16-SSD

この図は見飽きたという方もいるだろうが,YoloとSSDの比較である.
どちらも畳み込み層とプーリング層からなるネットワークである.今回はYoloについては触れないこととする.
ssdvsyolo.jpg

だいたいどれも同じで,FC層を取っ払ってDetection層を追加している.
カーネルサイズは1,3の組み合わせが主流である.

3. SSDv2AveragePoolling版を試した.

筆者の環境
Keras v2.1.6, Tensorflow v1.6.0 GPU GTX1080

shibuya.PNG

VGG16-SSD.gif

4.考察

一般的にObjectDetectionに関してFaster-RCNN,Yolo,SSDのどれも小さい物体の検出は苦手としており,苦労している方も多いであろう.
そんな方には以下の記事がおすすめです.
https://qiita.com/tanakataiki/items/36e71e7d2f5705bd98bb

5.終わりに

この記事を見た方はDeeeeeepLearningに興味をお持ちでしょう!
上手くいったカスタムネットワークのプルリクお待ちしています!
https://github.com/tanakataiki/ssd_kerasV2

 参考

https://qiita.com/God_KonaBanana/items/2cf829172087d2423f58
https://arxiv.org/pdf/1409.1556.pdf
http://aidiary.hatenablog.com/entry/20170104/1483535144
https://www.kunihikokaneko.com/dblab/keras/snowmasaya.html