下一代嵌入式视觉网络
随着在移动设备上运行深度网络可以提升用户体验,而且允许随时随地可以访问,并且在安全性、隐私和能耗方面相对云端计算具有优势,边缘计算的需求越来越大。
2017年谷歌引入了面向嵌入式设备设计的通用型计算机视觉神经网络系列 MobileNetV1,支持分类和检测等功能。随着用户对人工智能交互需求的提高,算法对更高效神经网络的需求也逐渐增加。也是基于算法的发展,出现了新的轻量级视觉网络架构MobileNetV2 ,它将为下一代移动视觉应用提供支持。
MobileNetV2 在 MobileNetV1 的基础上进行了重大改进,并推动了移动视觉识别技术的发展,包括分类、对象检测和语义分割。(MobileNetV2 作为 TensorFlow-Slim 图像分类库的一部分发布,可以在 Colaboratory 中浏览 MobileNetV2。或者下载笔记本并在本地使用 Jupyter 操作。MobileNetV2 还将作为 TF-Hub 中的模块,预训练检查点位于 github 中。)
MobileNetV2 与其它模型的不同
MobileNetV2 以 MobileNetV1 的理念为基础,使用深度可分离卷积作为高效构建块。此外,V2 在架构中引入了两项新功能:
此外再看看MobileNetV2的block 与ResNet 的block:
主要不同之处就在于,ResNet是:压缩”→“卷积提特征”→“扩张”,MobileNetV2则是Inverted residuals,即:“扩张”→“卷积提特征”→ “压缩”
MobileNet-V1 最大的特点就是采用depth-wise separable convolution来减少运算量以及参数量,而在网络结构上,没有采用shortcut的方式。 Resnet及Densenet等一系列采用shortcut的网络的成功,表明了shortcut是个非常好的东西,于是MobileNet-V2就将这个好东西拿来用。
拿来主义,最重要的就是要结合自身的特点,MobileNet的特点就是depth-wise separable convolution,但是直接把depth-wise separable convolution应用到 residual block中,会碰到如下问题:
MobileNetV2 的测试效果
总体而言,MobileNetV2 模型在整体延迟时间范围内可以更快实现相同的准确性。
对于对象检测和分割而言,MobileNetV2 是非常有效的特征提取器。例如,在检测方面,与新引入的 SSDLite 搭配使用时,在实现相同准确性的情况下,新模型的速度要比 MobileNetV1 快大约 35%。
为了实现设备上语义分割,近期宣布的 DeepLabv3 的简化版中采用 MobileNetV2 作为特征提取器。在采用语义分割基准 PASCAL VOC 2012 的条件下,新模型的性能与使用 MobileNetV1 作为特征提取器的性能相似,但前者的参数数量减少 5.3 倍,乘加运算数量减少 5.2 倍。
综上,MobileNetV2 提供了一个非常高效的面向移动设备的模型,可以用作许多视觉识别任务的基础。
【部分截图来源于GDG社区】