移动端实时目标检测网络Mobilenet_v2-ssdlite及其keras实现(附代码地址)

移动端实时目标检测网络Mobilenet_v2-ssdlite及其keras实现

在这里插入图片描述
目标检测网络一般分为one-stage和two-stage。two-stage的检测网络基于Region Proposal,包括:R-CNN,Fast R-CNN,Faster R-CNN等,虽然精度相对较高,但是检测速度过慢,一帧需要几秒的时间,远远达不到实时。而one-stage的检测网络,包括SSD和YOLO,虽然相比two-stage网络速度较快,但在移动端还打不到试试效果,而且网络本身过大,并不适合移动端使用。

移动端实时目标检测网络Mobilenet_v2-ssdlite及其keras实现(附代码地址)_第1张图片

Mobilenet_v2-ssdlite是由google提出,将轻量级网络Mobilenet_v2替换SSD网络中的VGG部分,并且将其中的普通卷积替换为深度可分离试卷积,不仅提升了SSD的检测效果,同时也使检测速度有了质的提升,而且模型大小也比原本SSD小了几倍。

由于Mobilenet_v2-ssdlite的开源代码只有caffe版本,而且虽也有在tensorflow框架中集成,作为开放API,但是并不利于人们学习其原理和二次开发。

本人根据tensorflow框架的预训练Mobilenet_v2-ssdlite模型文件,在keras框架下重新创建了其模型结构,并将模型参数成功地转换为keras框架可读取的格式。然后在此基础上进行fine-tuning,训练出keras版本的Mobilenet_v2-ssdlite检测网络,其最终检测精度与原模型相当。由于模型结构一致,因此速度可达到与原模型相同的效果。

现已将代码上传到github上,以供大家参考与相互学习。代码地址为:https://github.com/markshih91/mobilenet_v2_ssdlite_keras

你可能感兴趣的:(深度学习)