Mobilenet-SSD的Caffe系列实现

先引出题目,占个坑,以后慢慢填。

mobilenet 也算是提出有一段时间了,网上也不乏各种实现版本,其中,谷歌已经开源了Tensorflow的全部代码,无奈自己几乎不熟悉Tensorflow,还是比较钟爱Caffe平台,因而一直在关心这方面。

单纯的Mobilenet分类不是关注重点,如何将其应用到目标检测网络才是关键,目前基本看好的思路就是Mobilenet+SSD,github上已经有至少如下项目涉及到这方面:

https://github.com/chuanqi305/MobileNet-SSD

https://github.com/zeusees/SSD_License_Plate_Detection

https://github.com/canteen-man/MobileNet-SSD-Focal-loss

https://github.com/cooliscool/LISA-on-SSD-mobilenet

https://github.com/FreeApe/VGG-or-MobileNet-SSD

接下来的时间,我将会尽可能进行进行分析验证,目的是寻找并试验出好的解决方案,并且期待能成功训练其他数据集。。

Mobilenet的速度是很快的,如果配上Depthwise layer,在TitanX应该能达到150fps,如果能将检测精度提升到70%以上,将会是一个很好的检测网络。

实现方案一

项目地址:MobileNet-SSD

几个月前接触到了这个project,当时chuanqi大神在Caffe平台上初步实现了Mobilenet-SSD,本人自然是很惊喜的,接下来就时不时和大神一起探讨,在其指导下,我在VOC数据集也能训练出大约72%的精度。现在这个项目趋于稳定,根据github上的描述,最终精度是72.7%,也很不错了。下面简单记录一下运行和训练方法。

模型分析

通过分析Mobilenet的模型结构MobileNet-SSD的模型结构, 可以看出,conv13是骨干网络的最后一层,作者仿照VGG-SSD的结构,在Mobilenet的conv13后面添加了8个卷积层,然后总共抽取6层用作检测,貌似没有使用分辨率为38*38的层,可能是位置太靠前了吧。

模型运行

这个项目既然叫MobileNet-SSD,那首先要求能正常运行基础版本的SSD,这方面的博客教程这是不少,本人也有几篇博文涉及,可以参考。

克隆项目:

$ git clone https://github.com/chuanqi305/MobileNet-SSD.git

然后可以在自己的目录(我是用的是/home目录)下得到MobileNet-SSD文件夹,其中重要文件简介如下:

  • template 存放4个网络定义的公用模板,可以由gen.py脚本修改并生成
  • MobileNetSSD_deploy.prototxt 运行网络定义文件
  • solver_train.prototxt 网络训练超参数定义文件
  • solver_test.prototxt 网络测试超参数定义文件
  • train.sh 网络训练脚本
  • test.sh 网络测试脚本
  • gen_model.sh 生成自定义网络脚本(调用template文件夹内容)
  • gen.py 生成公用模板脚本(暂不用)
  • demo.py 实际检测脚本(图片存于images文件夹)
  • merge_bn.py 合并bn层脚本
评论 133
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值