SSDの拡張版として、DSSDなどがあるが、今回は最近 @tanakataiki さんにより
2018年05月02日に実装公開されたFeatureFused-SSD~ssdkerasのその先3~を動かしてみた。
さらに、VGG16のネットワーク構造への組み込み等は参考になるので、ちょっと覗いてみた。
【文献】
①Feature-Fused SSD: Fast Detection for Small Objects
Guimei Cao, Xuemei Xie, Wenzhe Yang, Quan Liao, Guangming Shi, Jinjian Wu School of Electronic Engineering, Xidian University, China
②FSSD:FeatureFusionSingleShotMultiboxDetector
Zuo-Xin Li Fu-Qiang Zhou Key Laboratory of Precision Opto-mechatronics Technology, Ministry of Education, Beihang University, Beijing 100191, China
③DSSD:DeconvolutionalSingleShotDetector
Cheng-Yang Fu1∗, Wei Liu1∗, Ananth Ranga2, Ambrish Tyagi2, Alexander C. Berg1 1UNC Chapel Hill, 2Amazon Inc.
文献よりFSSDモデルとは
最初にSSDありき。。この発展形がDSSD、そしてさらなる構造変態がFSSDってことで、元祖から見ていくこととする。
ということで、文献③よりSSDとDSSDの構造を見ると以下のとおり
肝心のDetection部分のDSSDの構造は以下のとおり
そして、文献①より、FSSDの構造は以下のとおり、上記のSSDやDSSDと比較すると変更部分がわかりやすい
Detection部分で使われているSSDとFSSDの構造の変更部分がわかりやすい
そして、文献①はFSSDとして、以下二通りのDetection部分の変態構造を提案している。
文献より性能比較
以下を見ると、性能的には、文献①より以下の表が示されている。
この表から、オリジナルなSSD300と比較するとDSSDはFPSが著しく悪化しているが、FSSDはどちらのモデルもあまりFPSが下がらずmAPがアップするのがわかる。
一方、文献②ではmAP vs FPSのグラフが示されている。
この図は上記の表と若干数字が異なるように見えるが、それでもなんとなくSSD300(77.2,50)とFSSD(78.8,40)の位置関係は同じようだ。
※この図が正しいとするとYolov2(73.7,80↑)はいいのかも??
※そして、SSD300とYolov2の間にもう一つモデルあってもいいが、Yolv3はどこに来るのか?
※Yoloについては再度挑戦してみよう
環境
これは、model比較してみるとわかるが少なくともconv5-3まではSSDと同じである。
つまり、ssdkerasの環境で動くということだ。
必要だとすればその後のFusion層を学習する必要があるが、実はFusion層以外もその後の構造は同じ部分があり、SSDで学習したWeightsが使える。
そして、Prior_Boxなども同じ構成で動くことが分かる。
つまり、前回までの記事で利用していた、環境で本来うまく物体検出までできるはずである。
さらに、重要なことであるが、モデルサマリーを比較すると検出部分は以下のとおり、ほとんど変わらない。
以下だと、conv4_3_norm_mbox_conf_flat[0][0]
がfusion_conv4_5_mbox_conf_flat[0][0]
に置き換えたものになっている。だから、SSDのパラメータをそのままでも検出はある程度できる可能性がある。
SSD300の検出部一部
_____________________________________________________________________________________________
mbox_conf (Concatenate) (None, 153468) 0 conv4_3_norm_mbox_conf_flat[0][0]
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
_____________________________________________________________________________________________
FSSDの検出部一部
_____________________________________________________________________________________________
mbox_conf (Concatenate) (None, 153468) 0 fusion_conv4_5_mbox_conf_flat[0][0]
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
_____________________________________________________________________________________________
結果
結果に際してもっとも重要なことは、Weightsである。
ここでは、以下の三種類を利用した
①FeatureFused-SSD~ssdkerasのその先3~で提供されている「FeatureFusedSSD300weights_voc_2007.hdf5」
②FeatureFused-SSD~ssdkerasのその先3~で提供されている「VGG16SSD512weights_voc_2007_class20.hdf5」
③SSD300で提供されている「weights_SSD300.hdf5」
「SSDモデル+weights_SSD300.hdf5」の結果
「FSSDモデル+FeatureFusedSSD300weights_voc_2007.hdf5」の結果
「FSSDモデル+weights_SSD300.hdf5」の結果
「ssd512VGG16+VGG16SSD512weights_voc_2007_class20.hdf5」の結果
pretrained VGG16を入力としたssd512VGG16の結果である。
実はOriginalはVGG16の
vgg16_input_shape = (224, 224, 3)
としているが、もともとVGG16も入力サイズフリーなので、以下のように書き換えると
vgg16_input_shape = (input_shape[1], input_shape[0], 3)
VGG16FineTuning版SSD300を作ってみた
上記の結果がちょっと気に入らないので、オリジナルはSSD512だが、SSD300用に書き換えてweights_SSD300.hdf5を使ってやってみた。
コードは以下のとおり
SSD / FeatureFused-SSD / ssd300VGG16_alt.py
ということで、結果は以下のとおりです。
当然?だけど、上記のSSD300+weights_SSD300.hdf5と同じくなった。
※ちょっと違うというか、精度良くなっているかも。。。
また、一番下にモデルサマリーを置いてあるが、FineTuningだけあって、VGG16部分のmodel出力は無い。
まとめ
・FSSDモデルを概観して、動かしてみた
・Weightsを各種変更して傾向を見ると、やはりWeights次第な結果となった
・PretrainedVGG16を利用したSSD300を作成した。
性能はPretrainedなだけあって若干良さそう。
実は動画物体検出もやったが、次回にしたいと思います。
コードは以下においた
モデルサマリー
model.summary() SSD300
_____________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
=============================================================================================
...
_____________________________________________________________________________________________
conv6_1 (Conv2D) (None, 19, 19, 256) 262400 fc7[0][0]
_____________________________________________________________________________________________
conv6_2 (Conv2D) (None, 10, 10, 512) 1180160 conv6_1[0][0]
_____________________________________________________________________________________________
conv7_1 (Conv2D) (None, 10, 10, 128) 65664 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_1z (ZeroPadding2D) (None, 12, 12, 128) 0 conv7_1[0][0]
_____________________________________________________________________________________________
conv7_2 (Conv2D) (None, 5, 5, 256) 295168 conv7_1z[0][0]
_____________________________________________________________________________________________
conv8_1 (Conv2D) (None, 5, 5, 128) 32896 conv7_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm (Normalize) (None, 38, 38, 512) 512 conv4_3[0][0]
_____________________________________________________________________________________________
conv8_2 (Conv2D) (None, 3, 3, 256) 295168 conv8_1[0][0]
_____________________________________________________________________________________________
pool6 (GlobalAveragePooling2D) (None, 256) 0 conv8_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_conf (Conv2D) (None, 38, 38, 63) 290367 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_conf (Conv2D) (None, 19, 19, 126) 1161342 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf (Conv2D) (None, 10, 10, 126) 580734 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf (Conv2D) (None, 5, 5, 126) 290430 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf (Conv2D) (None, 3, 3, 126) 290430 conv8_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_loc (Conv2D) (None, 38, 38, 12) 55308 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_loc (Conv2D) (None, 19, 19, 24) 221208 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc (Conv2D) (None, 10, 10, 24) 110616 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc (Conv2D) (None, 5, 5, 24) 55320 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc (Conv2D) (None, 3, 3, 24) 55320 conv8_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_conf_flat (Fl (None, 90972) 0 conv4_3_norm_mbox_conf[0][0]
_____________________________________________________________________________________________
fc7_mbox_conf_flat (Flatten) (None, 45486) 0 fc7_mbox_conf[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf_flat (Flatten (None, 12600) 0 conv6_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf_flat (Flatten (None, 3150) 0 conv7_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf_flat (Flatten (None, 1134) 0 conv8_2_mbox_conf[0][0]
_____________________________________________________________________________________________
pool6_mbox_conf_flat (Dense) (None, 126) 32382 pool6[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_loc_flat (Fla (None, 17328) 0 conv4_3_norm_mbox_loc[0][0]
_____________________________________________________________________________________________
fc7_mbox_loc_flat (Flatten) (None, 8664) 0 fc7_mbox_loc[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc_flat (Flatten) (None, 2400) 0 conv6_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc_flat (Flatten) (None, 600) 0 conv7_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc_flat (Flatten) (None, 216) 0 conv8_2_mbox_loc[0][0]
_____________________________________________________________________________________________
pool6_mbox_loc_flat (Dense) (None, 24) 6168 pool6[0][0]
_____________________________________________________________________________________________
mbox_conf (Concatenate) (None, 153468) 0 conv4_3_norm_mbox_conf_flat[0][0]
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
_____________________________________________________________________________________________
pool6_reshaped (Reshape) (None, 1, 1, 256) 0 pool6[0][0]
_____________________________________________________________________________________________
mbox_loc (Concatenate) (None, 29232) 0 conv4_3_norm_mbox_loc_flat[0][0]
fc7_mbox_loc_flat[0][0]
conv6_2_mbox_loc_flat[0][0]
conv7_2_mbox_loc_flat[0][0]
conv8_2_mbox_loc_flat[0][0]
pool6_mbox_loc_flat[0][0]
_____________________________________________________________________________________________
mbox_conf_logits (Reshape) (None, 7308, 21) 0 mbox_conf[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_priorbox (Pri (None, 4332, 8) 0 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_priorbox (PriorBox) (None, 2166, 8) 0 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_priorbox (PriorBox (None, 600, 8) 0 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_priorbox (PriorBox (None, 150, 8) 0 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_priorbox (PriorBox (None, 54, 8) 0 conv8_2[0][0]
_____________________________________________________________________________________________
pool6_mbox_priorbox (PriorBox) (None, 6, 8) 0 pool6_reshaped[0][0]
_____________________________________________________________________________________________
mbox_loc_final (Reshape) (None, 7308, 4) 0 mbox_loc[0][0]
_____________________________________________________________________________________________
mbox_conf_final (Activation) (None, 7308, 21) 0 mbox_conf_logits[0][0]
_____________________________________________________________________________________________
mbox_priorbox (Concatenate) (None, 7308, 8) 0 conv4_3_norm_mbox_priorbox[0][0]
fc7_mbox_priorbox[0][0]
conv6_2_mbox_priorbox[0][0]
conv7_2_mbox_priorbox[0][0]
conv8_2_mbox_priorbox[0][0]
pool6_mbox_priorbox[0][0]
_____________________________________________________________________________________________
predictions (Concatenate) (None, 7308, 33) 0 mbox_loc_final[0][0]
mbox_conf_final[0][0]
mbox_priorbox[0][0]
=============================================================================================
Total params: 25,765,497
Trainable params: 25,765,497
Non-trainable params: 0
model.summary() ssd300FeatureFused
_____________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
=============================================================================================
...
_____________________________________________________________________________________________
conv6_1 (Conv2D) (None, 19, 19, 256) 262400 fc7[0][0]
_____________________________________________________________________________________________
conv6_2 (Conv2D) (None, 10, 10, 512) 1180160 conv6_1[0][0]
_____________________________________________________________________________________________
*deconv5_3 (Conv2DTranspose) (None, 38, 38, 512) 2359808 conv5_3[0][0]*
_____________________________________________________________________________________________
conv7_1 (Conv2D) (None, 10, 10, 128) 65664 conv6_2[0][0]
_____________________________________________________________________________________________
*conv4 (Conv2D) (None, 38, 38, 512) 2359808 conv4_3[0][0]*
_____________________________________________________________________________________________
*conv_deconv5_3 (Conv2D) (None, 38, 38, 512) 2359808 deconv5_3[0][0]*
_____________________________________________________________________________________________
zero_padding2d_1 (ZeroPadding2D (None, 12, 12, 128) 0 conv7_1[0][0]
_____________________________________________________________________________________________
conv4_3_norm (Normalize) (None, 38, 38, 512) 512 conv4[0][0]
_____________________________________________________________________________________________
*conv_5_3_norm (Normalize) (None, 38, 38, 512) 512 conv_deconv5_3[0][0]*
_____________________________________________________________________________________________
conv7_2 (Conv2D) (None, 5, 5, 256) 295168 zero_padding2d_1[0][0]
_____________________________________________________________________________________________
*add_1 (Add) (None, 38, 38, 512) 0 conv4_3_norm[0][0]
conv_5_3_norm[0][0]*
_____________________________________________________________________________________________
conv8_1 (Conv2D) (None, 5, 5, 128) 32896 conv7_2[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5 (Activation) (None, 38, 38, 512) 0 add_1[0][0]*
_____________________________________________________________________________________________
conv8_2 (Conv2D) (None, 3, 3, 256) 295168 conv8_1[0][0]
_____________________________________________________________________________________________
pool6 (GlobalAveragePooling2D) (None, 256) 0 conv8_2[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5_mbox_conf (Conv2 (None, 38, 38, 63) 290367 fusion_conv4_5[0][0]*
_____________________________________________________________________________________________
fc7_mbox_conf (Conv2D) (None, 19, 19, 126) 1161342 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf (Conv2D) (None, 10, 10, 126) 580734 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf (Conv2D) (None, 5, 5, 126) 290430 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf (Conv2D) (None, 3, 3, 126) 290430 conv8_2[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5_mbox_loc (Conv2D (None, 38, 38, 12) 55308 fusion_conv4_5[0][0]*
_____________________________________________________________________________________________
fc7_mbox_loc (Conv2D) (None, 19, 19, 24) 221208 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc (Conv2D) (None, 10, 10, 24) 110616 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc (Conv2D) (None, 5, 5, 24) 55320 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc (Conv2D) (None, 3, 3, 24) 55320 conv8_2[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5_mbox_conf_flat ( (None, 90972) 0 fusion_conv4_5_mbox_conf[0][0]*
_____________________________________________________________________________________________
fc7_mbox_conf_flat (Flatten) (None, 45486) 0 fc7_mbox_conf[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf_flat (Flatten (None, 12600) 0 conv6_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf_flat (Flatten (None, 3150) 0 conv7_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf_flat (Flatten (None, 1134) 0 conv8_2_mbox_conf[0][0]
_____________________________________________________________________________________________
pool6_mbox_conf_flat (Dense) (None, 126) 32382 pool6[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5_mbox_loc_flat (F (None, 17328) 0 fusion_conv4_5_mbox_loc[0][0]*
_____________________________________________________________________________________________
fc7_mbox_loc_flat (Flatten) (None, 8664) 0 fc7_mbox_loc[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc_flat (Flatten) (None, 2400) 0 conv6_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc_flat (Flatten) (None, 600) 0 conv7_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc_flat (Flatten) (None, 216) 0 conv8_2_mbox_loc[0][0]
_____________________________________________________________________________________________
pool6_mbox_loc_flat (Dense) (None, 24) 6168 pool6[0][0]
_____________________________________________________________________________________________
mbox_conf (Concatenate) (None, 153468) 0 *fusion_conv4_5_mbox_conf_flat[0][0]*
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
_____________________________________________________________________________________________
pool6_reshaped (Reshape) (None, 1, 1, 256) 0 pool6[0][0]
_____________________________________________________________________________________________
mbox_loc (Concatenate) (None, 29232) 0 *fusion_conv4_5_mbox_loc_flat[0][0]*
fc7_mbox_loc_flat[0][0]
conv6_2_mbox_loc_flat[0][0]
conv7_2_mbox_loc_flat[0][0]
conv8_2_mbox_loc_flat[0][0]
pool6_mbox_loc_flat[0][0]
_____________________________________________________________________________________________
mbox_conf_logits (Reshape) (None, 7308, 21) 0 mbox_conf[0][0]
_____________________________________________________________________________________________
*fusion_conv4_5_mbox_priorbox (P (None, 4332, 8) 0 fusion_conv4_5[0][0]*
_____________________________________________________________________________________________
fc7_mbox_priorbox (PriorBox) (None, 2166, 8) 0 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_priorbox (PriorBox (None, 600, 8) 0 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_priorbox (PriorBox (None, 150, 8) 0 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_priorbox (PriorBox (None, 54, 8) 0 conv8_2[0][0]
_____________________________________________________________________________________________
pool6_mbox_priorbox (PriorBox) (None, 6, 8) 0 pool6_reshaped[0][0]
_____________________________________________________________________________________________
mbox_loc_final (Reshape) (None, 7308, 4) 0 mbox_loc[0][0]
_____________________________________________________________________________________________
mbox_conf_final (Activation) (None, 7308, 21) 0 mbox_conf_logits[0][0]
_____________________________________________________________________________________________
mbox_priorbox (Concatenate) (None, 7308, 8) 0 *fusion_conv4_5_mbox_priorbox[0][0*
fc7_mbox_priorbox[0][0]
conv6_2_mbox_priorbox[0][0]
conv7_2_mbox_priorbox[0][0]
conv8_2_mbox_priorbox[0][0]
pool6_mbox_priorbox[0][0]
_____________________________________________________________________________________________
predictions (Concatenate) (None, 7308, 33) 0 mbox_loc_final[0][0]
mbox_conf_final[0][0]
mbox_priorbox[0][0]
=============================================================================================
Total params: 32,845,433
Trainable params: 32,845,433
Non-trainable params: 0
input:VGG16_model
Layer (type) Output Shape Param # Connected to
=============================================================================================
input_2 (InputLayer) (None, 300, 300, 3) 0
_____________________________________________________________________________________________
model_1 (Model) multiple 1735488 input_2[0][0]
_____________________________________________________________________________________________
conv4_1 (Conv2D) (None, 37, 37, 512) 1180160 model_1[1][0]
_____________________________________________________________________________________________
conv4_2 (Conv2D) (None, 37, 37, 512) 2359808 conv4_1[0][0]
_____________________________________________________________________________________________
conv4_3 (Conv2D) (None, 37, 37, 512) 2359808 conv4_2[0][0]
_____________________________________________________________________________________________
pool4 (MaxPooling2D) (None, 19, 19, 512) 0 conv4_3[0][0]
_____________________________________________________________________________________________
conv5_1 (Conv2D) (None, 19, 19, 512) 2359808 pool4[0][0]
_____________________________________________________________________________________________
conv5_2 (Conv2D) (None, 19, 19, 512) 2359808 conv5_1[0][0]
_____________________________________________________________________________________________
conv5_3 (Conv2D) (None, 19, 19, 512) 2359808 conv5_2[0][0]
_____________________________________________________________________________________________
pool5 (MaxPooling2D) (None, 19, 19, 512) 0 conv5_3[0][0]
_____________________________________________________________________________________________
fc6 (Conv2D) (None, 19, 19, 1024) 4719616 pool5[0][0]
_____________________________________________________________________________________________
drop6 (Dropout) (None, 19, 19, 1024) 0 fc6[0][0]
_____________________________________________________________________________________________
fc7 (Conv2D) (None, 19, 19, 1024) 1049600 drop6[0][0]
_____________________________________________________________________________________________
conv6_1 (Conv2D) (None, 19, 19, 256) 262400 fc7[0][0]
_____________________________________________________________________________________________
conv6_2 (Conv2D) (None, 10, 10, 512) 1180160 conv6_1[0][0]
_____________________________________________________________________________________________
conv7_1 (Conv2D) (None, 10, 10, 128) 65664 conv6_2[0][0]
_____________________________________________________________________________________________
zero_padding2d_1 (ZeroPadding2D (None, 12, 12, 128) 0 conv7_1[0][0]
_____________________________________________________________________________________________
conv7_2 (Conv2D) (None, 5, 5, 256) 295168 zero_padding2d_1[0][0]
_____________________________________________________________________________________________
conv8_1 (Conv2D) (None, 5, 5, 128) 32896 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2 (Conv2D) (None, 3, 3, 256) 295168 conv8_1[0][0]
_____________________________________________________________________________________________
conv9_1 (Conv2D) (None, 3, 3, 128) 32896 conv8_2[0][0]
_____________________________________________________________________________________________
conv9_2 (Conv2D) (None, 2, 2, 256) 295168 conv9_1[0][0]
_____________________________________________________________________________________________
conv10_1 (Conv2D) (None, 2, 2, 128) 32896 conv9_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm (Normalize) (None, 37, 37, 512) 512 conv4_3[0][0]
_____________________________________________________________________________________________
conv10_2 (Conv2D) (None, 1, 1, 256) 295168 conv10_1[0][0]
_____________________________________________________________________________________________
pool6 (GlobalAveragePooling2D) (None, 256) 0 conv10_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_conf (Conv2D) (None, 37, 37, 84) 387156 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_conf (Conv2D) (None, 19, 19, 126) 1161342 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf (Conv2D) (None, 10, 10, 126) 580734 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf (Conv2D) (None, 5, 5, 126) 290430 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf (Conv2D) (None, 3, 3, 126) 290430 conv8_2[0][0]
_____________________________________________________________________________________________
conv9_2_mbox_conf (Conv2D) (None, 2, 2, 84) 193620 conv9_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_loc (Conv2D) (None, 37, 37, 16) 73744 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_loc (Conv2D) (None, 19, 19, 24) 221208 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc (Conv2D) (None, 10, 10, 24) 110616 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc (Conv2D) (None, 5, 5, 24) 55320 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc (Conv2D) (None, 3, 3, 24) 55320 conv8_2[0][0]
_____________________________________________________________________________________________
conv9_2_mbox_loc (Conv2D) (None, 2, 2, 16) 36880 conv9_2[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_conf_flat (Fl (None, 114996) 0 conv4_3_norm_mbox_conf[0][0]
_____________________________________________________________________________________________
fc7_mbox_conf_flat (Flatten) (None, 45486) 0 fc7_mbox_conf[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_conf_flat (Flatten (None, 12600) 0 conv6_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_conf_flat (Flatten (None, 3150) 0 conv7_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_conf_flat (Flatten (None, 1134) 0 conv8_2_mbox_conf[0][0]
_____________________________________________________________________________________________
conv9_2_mbox_conf_flat (Flatten (None, 336) 0 conv9_2_mbox_conf[0][0]
_____________________________________________________________________________________________
pool6_mbox_conf_flat (Dense) (None, 84) 21588 pool6[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_loc_flat (Fla (None, 21904) 0 conv4_3_norm_mbox_loc[0][0]
_____________________________________________________________________________________________
fc7_mbox_loc_flat (Flatten) (None, 8664) 0 fc7_mbox_loc[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_loc_flat (Flatten) (None, 2400) 0 conv6_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_loc_flat (Flatten) (None, 600) 0 conv7_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_loc_flat (Flatten) (None, 216) 0 conv8_2_mbox_loc[0][0]
_____________________________________________________________________________________________
conv9_2_mbox_loc_flat (Flatten) (None, 64) 0 conv9_2_mbox_loc[0][0]
_____________________________________________________________________________________________
pool6_mbox_loc_flat (Dense) (None, 16) 4112 pool6[0][0]
_____________________________________________________________________________________________
mbox_conf (Concatenate) (None, 177786) 0 conv4_3_norm_mbox_conf_flat[0][0]
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
conv9_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
_____________________________________________________________________________________________
pool6_reshaped (Reshape) (None, 1, 1, 256) 0 pool6[0][0]
_____________________________________________________________________________________________
mbox_loc (Concatenate) (None, 33864) 0 conv4_3_norm_mbox_loc_flat[0][0]
fc7_mbox_loc_flat[0][0]
conv6_2_mbox_loc_flat[0][0]
conv7_2_mbox_loc_flat[0][0]
conv8_2_mbox_loc_flat[0][0]
conv9_2_mbox_loc_flat[0][0]
pool6_mbox_loc_flat[0][0]
_____________________________________________________________________________________________
mbox_conf_logits (Reshape) (None, 8466, 21) 0 mbox_conf[0][0]
_____________________________________________________________________________________________
conv4_3_norm_mbox_priorbox (Pri (None, 5476, 8) 0 conv4_3_norm[0][0]
_____________________________________________________________________________________________
fc7_mbox_priorbox (PriorBox) (None, 2166, 8) 0 fc7[0][0]
_____________________________________________________________________________________________
conv6_2_mbox_priorbox (PriorBox (None, 600, 8) 0 conv6_2[0][0]
_____________________________________________________________________________________________
conv7_2_mbox_priorbox (PriorBox (None, 150, 8) 0 conv7_2[0][0]
_____________________________________________________________________________________________
conv8_2_mbox_priorbox (PriorBox (None, 54, 8) 0 conv8_2[0][0]
_____________________________________________________________________________________________
conv9_2_mbox_priorbox (PriorBox (None, 16, 8) 0 conv9_2[0][0]
_____________________________________________________________________________________________
pool6_mbox_priorbox (PriorBox) (None, 4, 8) 0 pool6_reshaped[0][0]
_____________________________________________________________________________________________
mbox_loc_final (Reshape) (None, 8466, 4) 0 mbox_loc[0][0]
_____________________________________________________________________________________________
mbox_conf_final (Activation) (None, 8466, 21) 0 mbox_conf_logits[0][0]
_____________________________________________________________________________________________
mbox_priorbox (Concatenate) (None, 8466, 8) 0 conv4_3_norm_mbox_priorbox[0][0]
fc7_mbox_priorbox[0][0]
conv6_2_mbox_priorbox[0][0]
conv7_2_mbox_priorbox[0][0]
conv8_2_mbox_priorbox[0][0]
conv9_2_mbox_priorbox[0][0]
pool6_mbox_priorbox[0][0]
_____________________________________________________________________________________________
predictions (Concatenate) (None, 8466, 33) 0 mbox_loc_final[0][0]
mbox_conf_final[0][0]
mbox_priorbox[0][0]
=============================================================================================
Total params: 26,754,500
Trainable params: 26,754,500
Non-trainable params: 0
_____________________________________________________________________________________________
pretrainedVGG16_used_SSD300
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_2 (InputLayer) (None, 300, 300, 3) 0
__________________________________________________________________________________________________
model_1 (Model) (None, 37, 37, 256) 1735488 input_2[0][0]
__________________________________________________________________________________________________
conv4_1 (Conv2D) (None, 37, 37, 512) 1180160 model_1[1][0]
__________________________________________________________________________________________________
conv4_2 (Conv2D) (None, 37, 37, 512) 2359808 conv4_1[0][0]
__________________________________________________________________________________________________
conv4_3 (Conv2D) (None, 37, 37, 512) 2359808 conv4_2[0][0]
__________________________________________________________________________________________________
pool4 (MaxPooling2D) (None, 19, 19, 512) 0 conv4_3[0][0]
__________________________________________________________________________________________________
conv5_1 (Conv2D) (None, 19, 19, 512) 2359808 pool4[0][0]
__________________________________________________________________________________________________
conv5_2 (Conv2D) (None, 19, 19, 512) 2359808 conv5_1[0][0]
__________________________________________________________________________________________________
conv5_3 (Conv2D) (None, 19, 19, 512) 2359808 conv5_2[0][0]
__________________________________________________________________________________________________
pool5 (MaxPooling2D) (None, 19, 19, 512) 0 conv5_3[0][0]
__________________________________________________________________________________________________
fc6 (Conv2D) (None, 19, 19, 1024) 4719616 pool5[0][0]
__________________________________________________________________________________________________
fc7 (Conv2D) (None, 19, 19, 1024) 1049600 fc6[0][0]
__________________________________________________________________________________________________
conv6_1 (Conv2D) (None, 19, 19, 256) 262400 fc7[0][0]
__________________________________________________________________________________________________
conv6_2 (Conv2D) (None, 10, 10, 512) 1180160 conv6_1[0][0]
__________________________________________________________________________________________________
conv7_1 (Conv2D) (None, 10, 10, 128) 65664 conv6_2[0][0]
__________________________________________________________________________________________________
conv7_1z (ZeroPadding2D) (None, 12, 12, 128) 0 conv7_1[0][0]
__________________________________________________________________________________________________
conv7_2 (Conv2D) (None, 5, 5, 256) 295168 conv7_1z[0][0]
__________________________________________________________________________________________________
conv8_1 (Conv2D) (None, 5, 5, 128) 32896 conv7_2[0][0]
__________________________________________________________________________________________________
conv4_3_norm (Normalize) (None, 37, 37, 512) 512 conv4_3[0][0]
__________________________________________________________________________________________________
conv8_2 (Conv2D) (None, 3, 3, 256) 295168 conv8_1[0][0]
__________________________________________________________________________________________________
pool6 (GlobalAveragePooling2D) (None, 256) 0 conv8_2[0][0]
__________________________________________________________________________________________________
conv4_3_norm_mbox_conf (Conv2D) (None, 37, 37, 63) 290367 conv4_3_norm[0][0]
__________________________________________________________________________________________________
fc7_mbox_conf (Conv2D) (None, 19, 19, 126) 1161342 fc7[0][0]
__________________________________________________________________________________________________
conv6_2_mbox_conf (Conv2D) (None, 10, 10, 126) 580734 conv6_2[0][0]
__________________________________________________________________________________________________
conv7_2_mbox_conf (Conv2D) (None, 5, 5, 126) 290430 conv7_2[0][0]
__________________________________________________________________________________________________
conv8_2_mbox_conf (Conv2D) (None, 3, 3, 126) 290430 conv8_2[0][0]
__________________________________________________________________________________________________
conv4_3_norm_mbox_loc (Conv2D) (None, 37, 37, 12) 55308 conv4_3_norm[0][0]
__________________________________________________________________________________________________
fc7_mbox_loc (Conv2D) (None, 19, 19, 24) 221208 fc7[0][0]
__________________________________________________________________________________________________
conv6_2_mbox_loc (Conv2D) (None, 10, 10, 24) 110616 conv6_2[0][0]
__________________________________________________________________________________________________
conv7_2_mbox_loc (Conv2D) (None, 5, 5, 24) 55320 conv7_2[0][0]
__________________________________________________________________________________________________
conv8_2_mbox_loc (Conv2D) (None, 3, 3, 24) 55320 conv8_2[0][0]
__________________________________________________________________________________________________
conv4_3_norm_mbox_conf_flat (Fl (None, 86247) 0 conv4_3_norm_mbox_conf[0][0]
__________________________________________________________________________________________________
fc7_mbox_conf_flat (Flatten) (None, 45486) 0 fc7_mbox_conf[0][0]
__________________________________________________________________________________________________
conv6_2_mbox_conf_flat (Flatten (None, 12600) 0 conv6_2_mbox_conf[0][0]
__________________________________________________________________________________________________
conv7_2_mbox_conf_flat (Flatten (None, 3150) 0 conv7_2_mbox_conf[0][0]
__________________________________________________________________________________________________
conv8_2_mbox_conf_flat (Flatten (None, 1134) 0 conv8_2_mbox_conf[0][0]
__________________________________________________________________________________________________
pool6_mbox_conf_flat (Dense) (None, 126) 32382 pool6[0][0]
__________________________________________________________________________________________________
conv4_3_norm_mbox_loc_flat (Fla (None, 16428) 0 conv4_3_norm_mbox_loc[0][0]
__________________________________________________________________________________________________
fc7_mbox_loc_flat (Flatten) (None, 8664) 0 fc7_mbox_loc[0][0]
__________________________________________________________________________________________________
conv6_2_mbox_loc_flat (Flatten) (None, 2400) 0 conv6_2_mbox_loc[0][0]
__________________________________________________________________________________________________
conv7_2_mbox_loc_flat (Flatten) (None, 600) 0 conv7_2_mbox_loc[0][0]
__________________________________________________________________________________________________
conv8_2_mbox_loc_flat (Flatten) (None, 216) 0 conv8_2_mbox_loc[0][0]
__________________________________________________________________________________________________
pool6_mbox_loc_flat (Dense) (None, 24) 6168 pool6[0][0]
__________________________________________________________________________________________________
mbox_conf (Concatenate) (None, 148743) 0 conv4_3_norm_mbox_conf_flat[0][0]
fc7_mbox_conf_flat[0][0]
conv6_2_mbox_conf_flat[0][0]
conv7_2_mbox_conf_flat[0][0]
conv8_2_mbox_conf_flat[0][0]
pool6_mbox_conf_flat[0][0]
__________________________________________________________________________________________________
pool6_reshaped (Reshape) (None, 1, 1, 256) 0 pool6[0][0]
__________________________________________________________________________________________________
mbox_loc (Concatenate) (None, 28332) 0 conv4_3_norm_mbox_loc_flat[0][0]
fc7_mbox_loc_flat[0][0]
conv6_2_mbox_loc_flat[0][0]
conv7_2_mbox_loc_flat[0][0]
conv8_2_mbox_loc_flat[0][0]
pool6_mbox_loc_flat[0][0]
__________________________________________________________________________________________________
mbox_conf_logits (Reshape) (None, 7083, 21) 0 mbox_conf[0][0]
__________________________________________________________________________________________________
conv4_3_norm_mbox_priorbox (Pri (None, 4107, 8) 0 conv4_3_norm[0][0]
__________________________________________________________________________________________________
fc7_mbox_priorbox (PriorBox) (None, 2166, 8) 0 fc7[0][0]
__________________________________________________________________________________________________
conv6_2_mbox_priorbox (PriorBox (None, 600, 8) 0 conv6_2[0][0]
__________________________________________________________________________________________________
conv7_2_mbox_priorbox (PriorBox (None, 150, 8) 0 conv7_2[0][0]
__________________________________________________________________________________________________
conv8_2_mbox_priorbox (PriorBox (None, 54, 8) 0 conv8_2[0][0]
__________________________________________________________________________________________________
pool6_mbox_priorbox (PriorBox) (None, 6, 8) 0 pool6_reshaped[0][0]
__________________________________________________________________________________________________
mbox_loc_final (Reshape) (None, 7083, 4) 0 mbox_loc[0][0]
__________________________________________________________________________________________________
mbox_conf_final (Activation) (None, 7083, 21) 0 mbox_conf_logits[0][0]
__________________________________________________________________________________________________
mbox_priorbox (Concatenate) (None, 7083, 8) 0 conv4_3_norm_mbox_priorbox[0][0]
fc7_mbox_priorbox[0][0]
conv6_2_mbox_priorbox[0][0]
conv7_2_mbox_priorbox[0][0]
conv8_2_mbox_priorbox[0][0]
pool6_mbox_priorbox[0][0]
__________________________________________________________________________________________________
predictions (Concatenate) (None, 7083, 33) 0 mbox_loc_final[0][0]
mbox_conf_final[0][0]
mbox_priorbox[0][0]
==================================================================================================
Total params: 25,765,497
Trainable params: 25,765,497
Non-trainable params: 0
__________________________________________________________________________________________________