tensorflow MobileNetV2的目标检测测试

  谷歌近期又推出了下一代移动视觉应用 MobileNetV2 ,它在 MobileNetV1 的基础上获得了显著的提升,并推动了移动视觉识别技术的有效发展,包括分类、目标检测和语义分割。MobileNetV2 作为 TensorFlow-Slim 图像分类库的一部分而推出,同时也已经集成到目标检测的包中,同时重要的是提供了预训练模型。

1、模型原理

  从论文的名字《MobileNetV2: Inverted Residuals and Linear Bottlenecks》即可看出:MobileNetV2基于MobileNetV1的思想,同时也有两点大的不同,一是基于反向残差结构,其中残差块的输入和输出是较短的瓶颈层,这与在输入中使用扩展表征的传统残差模型正相反。MobileNetV2 使用轻量级深度卷积过滤中间扩展层的特征;二是为了保持表征能力,移除短层中的非线性很重要,这提升了性能,并带来了催生该设计的直观想法,即允许将输入/输出域与转换的表现性分开,从而为未来的分析提供一个简便的框架。

(1)反向残差结构

tensorflow MobileNetV2的目标检测测试_第1张图片

左图可以理解为:先用1x1降通道过ReLU,再3x3空间卷积过ReLU,再用1x1卷积过ReLU恢复通道,并和输入相加。之所以要1x1卷积降通道,是为了减少计算量,不然中间的3x3空间卷积计算量太大。所以Residual block是沙漏形,两边宽中间窄
右图中:中间的3x3卷积变为了Depthwise的了,计算量很少了,所以通道可以多一点,效果更好,所以通过1x1卷积先提升通道数,再Depthwise的3x3空间卷积,再用1x1卷积降低维度。两端的通道数都很小,所以1x1卷积升通道或降通道计算量都并不大,而中间通道数虽然多,但是是Depthwise的卷积,计算量也不大。称之为Inverted residual block,两边窄中间宽,较小的计算量得到较好的性能。

其模型的架构与MobileNetV1等对比如下图所示:

tensorflow MobileNetV2的目标检测测试_第2张图片


2、模型实验

  由于分类的实验本质上包含在目标检测中,此处只对检测进行分析:

(1)object_detection包中自带的测试图片,其检测结果如下,可见还是有一些未检测出来的。

tensorflow MobileNetV2的目标检测测试_第3张图片

(2)与上次mobilenetv1实验进行对比,见博客:tensorflow model中目标对象检测包的编译和测试

其中照片位置:https://worldtravelholics.files.wordpress.com/2014/07/img_4720.jpg

下图为mobilenetv2的检测效果

tensorflow MobileNetV2的目标检测测试_第4张图片

下图为mobilenetv1的检测效果

tensorflow MobileNetV2的目标检测测试_第5张图片

可见mobilenetv2的检测效果比v1版本来得好!

你可能感兴趣的:(场景分类识别,目标检测,mobilenetv2)