19
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MobileNet-SSD~ssdkerasのその先2~

Last updated at Posted at 2018-04-04

対象

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

1.MobileNetとは

チャンネル方向への畳み込みを行わないことで,計算量を削減したモバイルアプリケーション向けのニューラルネットワーク.従来の畳込みフィルターの代わりに空間方向への畳み込みを行うDepthwise畳み込みフィルターと1x1のPointwise畳み込みフィルターを組み合わせることで計算量を削減.

比較
Convolutuion:カーネルサイズxカーネルサイズxチャネル数(入力)
DepthwiseConv:カーネルサイズxカーネルサイズx1
PointwiseConv:1x1xチャネル数(入力)

MobileNetではDepthwiseな畳み込みとPointwiseな畳み込みを組み合わせることによって通常の畳み込みをパラメータを削減しながら行っている.
dwconv.png

また,バッチ正規化はどこでも使われ始めており,MobileNetも例外ではない,共変量シフトを抑え,感覚的には学習効率を14倍ほどに上げることができるらしい.
MibileNetBatchNorm.jpg

全体のフローは以下のようになっており,Xceptionのように
EntryFlow
MiddleFlow
ExitFlow
と分けるのであれば,(Depthwise+Pointwise)×5のMiddleFlowがボトルネックになりそうだ.

MobileNetIndex.png

2.MobileNet-SSDを作成する

ざっくりと説明するとMobileNetのEntryFlow,MiddleFlowを残し,ExitFlowを取り換えた.
今回はcaffe版のSSDを参考にし,組み立て,ExitFlowを取っ払い,SSDのDetection層のFullyConvolutionnal版とGlobalAveragePoolling版とで迷ったが,GlobalAveragePooling版を入れることにした.

また,Caffe版のMobileNet-SSDはRelu6をReluにしたとあり,kernel正規化,バッチ正規化が入っているので,Reluを使用した...Relu6の実装は苦ではない.
フィルター数は速度と精度との兼ね合いになるのだが,filter数はデフォルトの数とした.

3.考察

理論と現実では少し齟齬があり,MobileNetのMultiAddはVGG16よりはるかに少なく(9分の1くらい)学習の高速化及び学習回数の削減に寄与してくれるらしい.CPUマシンでは学習速度の向上が見て取れるのだが,GPUマシンでは学習速度の向上があまり感じられない.(VGG16の1.3倍くらいかな)
また,conv11のレイヤーの大きさが19×19であるころから,もともとのVGG16-SSDよりも大きい物体の検出は苦手とする印象.

以下実験動画(GTX10801枚です)
mobileNet.gif

4.終わりに

Keras版の自作ネットワークを作っている方がいたらアドバイスなどお願いします.
https://github.com/tanakataiki/ssd_kerasV2
SSDはガラス細工並みに繊細な構造で,職人技の数値設定が必要です.
上手くいった方はプルリク待ってます.
筆者の環境
CPU:Xenon GPU:GTX1080Ti
今後は他のネットワークを載せていくつもりです.

参考
https://arxiv.org/abs/1704.04861
http://tensorflow.classcat.com/category/mobilenet/
https://qiita.com/namakemono/items/4fbc7758ffba4791e581
https://github.com/chuanqi305/MobileNet-SSD

19
29
19

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?