OpenCV
DeepLearning
TensorFlow
Xception
SSDLite

Xception-SSDLiteで遊んでみた~ssdkerasのその先5~

対象

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

とりあえず試してみたいという方は田中さんがコードを上げてくださっているので(ありがたき幸せ..),そちらを参考にされたい.
https://github.com/tanakataiki/ssd_kerasV2

余談.そろそろそのssdkerasのその先という表現はやめようかなと思っている.(笑)

Xceptionとは

空間方向の畳み込みとチャンネル方向の畳み込みは完全に分離しても良いという仮説から成り立った究極のInceptionである.
XceptionModule.JPG
1)より引用

細かく見ていくと,それぞれ以下のような流れになっている.
Xceptionflow.JPG
1)より引用
端的に言うとResnetをpointwise,depthwise畳み込みに変えたようなモデルである.

以下に@yu4uさんのXceptionの神説明があるので,参考にされたい.
https://qiita.com/yu4u/items/dc26d220e85279e76157
https://qiita.com/yu4u/items/34cd33b944d8bdca142d

Xception-SSDLite

コンセプトは

少ないリソースで最高の結果を

である.

実験

Xception-SSDLite.gif
まだ学習途中なので,もう少し早くなりそう.(DeepLearnerが出くわす謎の知見)

考察

Residualだけに学習途中でも割と精度がいい.
SSDLiteだけに学習途中でも比較的速い.
メモリーを食いすぎない(SSD512の学習は途中で放棄した).
そして設計と学習がめちゃめちゃ大変だった.
↑もうこれに尽きる.
さすがExtremeInception

終わりに

アドバイスなどあればお願いします.(typoとかでも歓迎です!)
https://github.com/tanakataiki/ssd_kerasV2
SSDはガラス細工並みに繊細な構造で,職人技の数値設定が必要です.
上手くいった自作ネットワークがある方,プルリク待ってます.
筆者の環境
CPU:Xenon GPU:GTX1080Ti×2

参考文献

1)https://arxiv.org/abs/1610.02357