使用的代码的github链接:https://github.com/chuanqi305/MobileNet-SSD.git
在用mobilenet-ssd训练模型的过程中,对SSD的实现流程产生了困惑,通过参考代码及网上各种博客,梳理如下:
1)SSD的data augmentation和sampler
2)网络结构模型
3)prior_box的选取及infer的过程
备注:对于train.prototxt中设置的各种参数含义不理解可以参看caffe.proto文件,里面都有解释。
SSD代码在caffe.proto中新增了部分参数:
1、SSD的数据增广操作
数据经过Annotated data layer层后,图像和图像中的目标框被提取出来并保存。
之后,数据要经过一系列的变换,依次为:
(1) Image distortion;
(2) Image expansion;
(3) Sampling a random crop window;
(4) Data transform: Adding noise, resizing,
(1)主要是图像的各种参数调整,这里的参数最好使用推荐值
操作对象是原始图片的副本,并非原始图片
(2)Image expansion
这一步的作用主要在于放大原始图像,prob指概率,max_expand_ratio可以理解为放大成原图像的几倍。这里是以一种嵌入的方式实现放大,在原始图像周围填充像素值实现放大。