chuanqi305 / MobileNet-SSD

Caffe implementation of Google MobileNet SSD detection network, with pretrained weights on VOC0712 and mAP=0.727.
MIT License
2.02k stars 1.18k forks source link

about some details #1

Open sangthian opened 7 years ago

sangthian commented 7 years ago

hello, I am very interested in your job. I want to know, what dataset do you trained? how is the mAP? and can you share the pre-trained models? do you mind adding a qq num? my qq num is 905298777. thanks!

chuanqi305 commented 7 years ago

I trained this on pascal VOC 2007, and I found it's mAP is only 0.6, not very good. Now I'm training it on voc 07+12 to improve it's accuracy, please wait.

sangthian commented 7 years ago

@chuanqi305 I know, I am slso do this job, can I add your qq for more details?

tuq820 commented 7 years ago

@chuanqi305 , your model is very fast. But I have a question, your model used 5 feature maps from pre-nets, and the official SSD used 6. Is it this lead to the mAP is only 0.6?

chuanqi305 commented 7 years ago

I have tested 6 feature maps , but the mAP is virtually not changed. Google has released MobileNet SSD on tensorflow, but I can't convert it to caffemodel because there is a "ReLU6" layer. I don't want to modify the caffe source. So, now I'm training a new model like Google's but without ReLU6.

ryusaeba commented 7 years ago

Hi, where can we get MobileNetSSD on tensorflow? I only found google api stuff. I don't get any detail about it. Thanks :)

csyking commented 7 years ago

@chuanqi305 “I have tested 6 feature maps , but the mAP is virtually not changed. Google has released MobileNet SSD on tensorflow, but I can't convert it to caffemodel because there is a "ReLU6" layer. I don't want to modify the caffe source. So, now I'm training a new model like Google's but without ReLU6.”

What's your mean about "Google has released MobileNet SSD on tensorflow, but I can't convert it to caffemodel because there is a "ReLU6" layer."? Do you mean Google's implementation including of a special activation Layer that type is "ReLU6" but not "ReLU"? As we all know, the type of "ReLU" is a basic operation for all the general networks, which can be converted to caffemodel from tensorflow easily, I think. And I wonder if you can give the link of "ReLU6" about MobileNet SSD on tensorflow?

Looking forward to further discussion!

chuanqi305 commented 7 years ago

@ryusaeba MobileNetSSD on tensorflow is here

chuanqi305 commented 7 years ago

@csyking Yes, ReLU6 is the new activation layer on tensorflow like this: y = min(max(0, x), 6) I found ReLU6 is a little better than ReLU for MobileNet. Now I'm trying to reproduce the same MobileNet-SSD as tensorflow without ReLU6. I just upload the MobileNet classifier and the new MobileNet-SSD training prototxt very like tensorflow and the training is still in process. If you have successfully trained the new model, please share with me.

ryusaeba commented 7 years ago

Thanks for the reply. As my understanding, this is just API. We can't modify the network structure, right? Or I miss something?

ryusaeba commented 7 years ago

BTW: I am also using CAFFE to do MobileNet-SSD training. Please also share with me if anyone have successfully trained the network.

csyking commented 7 years ago

@chuanqi305 Now I only train the Caffe-MobileNet-SSD on VOC 07+VOC12, and the VOC2007 test mAP≈0.65. If you have got a higher score? I am also training it on ImageNet 200 classes detection, but the performance is worse now : (

chuanqi305 commented 7 years ago

@csyking My training result is the same as yours, mAP≈0.65. Maybe the ReLU6 layer can improve the performance?

chuanqi305 commented 7 years ago

@ryusaeba Now you can use the gen.py to modify the network structure.

ryusaeba commented 7 years ago

@chuanqi305 @csyking I only get mAP ~= 0.62 so I guess I need to check more detail. Per my understanding, MobileNet+SSD300 should get similar mAP with VGG+SSD300 (0.75) since Google claim this number in the following paper (https://arxiv.org/abs/1611.10012). I also attach below for your reference. Finally,we compare against the new MobileNet network [14], which has been shown to achieve VGG-16 level accuracy on Imagenet with only 1=30 of the computational cost and model size.

Wish we can get Google's training parameters.

ryusaeba commented 7 years ago

@chuanqi305, I have a question about your detection network. In VGG+SSD network, the first extraction is from feature map 38x38 and the second one is from feature map 19x19. But according to your gen.py, the first one and second one feature map are not similar to that in VGG+SSD. Could you please point out this?

@csyking , do you have the same question?

chuanqi305 commented 7 years ago

@ryusaeba I have the same question about feature map resolution. I just followed Google's network structure on tensorflow.

ryusaeba commented 7 years ago

@chuanqi305, ok, in this way, how large feature map size in last extraction layer (conv17_2) is NxN?

chuanqi305 commented 7 years ago

19 -> 10 -> 5 -> 3 -> 2 -> 1

ryusaeba commented 7 years ago

@chuanqi305 Do you get higher mAP? So far, I still can't get similar results as paper describes.

chuanqi305 commented 7 years ago

I got mAP about 0.68, and I didn't find the VOC detection result in the paper, how much is it?

ryusaeba commented 7 years ago

In https://arxiv.org/abs/1611.10012, they said "Finally, we compare against the new MobileNet network [14], which has been shown to achieve VGG-16 level accuracy on Imagenet with only 1=30 of the computational cost and model size." and VGG-16+SSD github said they achieve 0.77 mAP so I assume MobileNet+SSD should have similar mAP as VGG-16+SSD.

chuanqi305 commented 7 years ago

The mAP of COCO test result in the mobilenet paper is also lower than the SSD paper, so maybe the performance of mobilenet is not so good on detection task.

ryusaeba commented 7 years ago

Ok, I get you :) Thanks for your discussion

linchaozhang commented 7 years ago

@chuanqi305 Thanks a lot for your work. I have a question. How can you improve the mAP, some tricks for training? because i only get about 63% mAP on VOC07.

chuanqi305 commented 7 years ago

Train the model on MS-COCO and fine tune it on VOC will make it better.

chl916185 commented 6 years ago

data_param { source: "/home/chl/chl/MobileNet-SSD/caffe/examples/VOC0712/trainval_lmdb/" batch_size: 24 backend: LMDB error:F1017 15:19:42.540328 19268 db_lmdb.hpp:15] Check failed: mdb_status == 0 (2 vs. 0) No such file or directory why? @chuanqi305 @Jmx5200 @tuq820