加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
作者:Happy
授权转载自知乎:
https://zhuanlan.zhihu.com/p/75242090
深度分离卷积是设计轻量型网络的重要组件之一,但是其卷积核的重要性却往往被忽视,而是简单的采用$3 \times 3$大小的核。近期研究表明:更大的核,如$5 \times 5, 7\times7$可以进一步提升模型的精度与效率。
作者对该问题进行了研究与分析:更大的核可以取得更高的精度?作者基于MobileNetV1与MobileNetV2进行卷积核尺寸对于性能的研究与分析。从下图可以看出:当卷积核达到$9\times9$时模型精度达到最大,继续扩大卷积核会导致精度的下降。
这同时也意味着单尺度核尺寸的局限性,模型需要大尺寸核捕获高分辨率模式,同时需要小尺寸核捕获低分辨率模式以及获得更高的精度和效率。
基于上述分析,作者提出一种混合深度分离卷积(MDConv),它将不同尺寸卷积核混叠到同一个卷积OP单元中,故而它可以轻易的捕获不同分辨率的特征模式。下图给出了标准深度分离卷积与本文所提MDConv示意图。
作者通过实验证实:简单的将其替换到MobileNetV1与MobileNetV2中即可取得精度与效率的提升(ImageNet分类任务与COCO目标检测任务)。
作者所提供的tensorflow实现代码如下。
def mdconv(x, filters, **args):
G = len(filters)
y = []
for xi, fi in zip(tf.split(x, G, axis=-1), filters):
y.append(tf.nn.depthwise_conv2d(xi, fi, **args))
return tf.concat(y, axis=-1)
作者对比MDConv替换到MobileNetV1与MobileNetV2前后的精度对比,效果图如下。从中可以看出:相比标准深度分离卷积,MDConv更轻量、更快同时具有更高的精度
同时,作者还对比了不同组划分方式、空洞卷积核的影响性。实验对比效果图如下。从中可以看出:指数形式组划分在MobileNetV1中比均等组划分稍好,但在MobileNetV2中无明显优势。
一个可能的原因:指数形式组划分导致大核通道数过少难以捕获高分辨率特征模式。空洞卷积可以提升小核网络的精度,但对于大核网络却导致了精度下降。作者认为:对于大核而言,空洞卷积会跳过大量的局部信息,进而噪声精度损失。
最后,作者将MDConv集成到AutoML框架中进行轻量型网络搜索,按照FLOPs划分,作者共涉及了三个网络:MixNet-S, MixNet-M, MixNet-L。他们与其他轻量型网络的性能对比如下所示。从中可以看出:MixNet取得了完胜。
MixNet-S, MixNet-M两个网络的架构图如下所示。更多关于MixNet的信息请参考原文,这里不再详述。
作者重新回顾了深度分离卷积中的核尺寸影响,证实了:传统深度分离卷积网络(如MobileNetV1,MobileNetV2)受限于卷几何尺寸。基于此,作者提出一种混叠深度卷积(MDConv),它可以混叠多个尺寸卷积核到同一卷积中,进而取得精度的提升。同时,作者将其应用AutoML框架中,搜索到一类新的架构MixNet。相比比已有轻量型网络,它具有更高的精度和效率(ImageNet分类与COCO目标检测任务)。
谷歌大牛做的工作确实很好,效果也很好。但是,美中不足的是,他们使用的均为Tensorflow框架,对于我等没用过该框架的砖工极度不友好,同时因为各种库的依赖问题,无法直接测试其网络。
鉴于此,本人在作者开源代码基础上,手动重写Pytorch模型,同时将其预训练模型导入到Pytorch模型中。转换完成后,对作者所提供的测试样例进行测试,结果如下,从上到下分别是MixNet-S、MixNet-M、MixNet-L的top-5结果输出。
(注:因数据预处理方式与作者的存在差异,因为这里输出的概率值也与作者的存在出入。理论上,采用相同的数据预处理方式可以得到相同的概率结果输出。Pytorch模型代码与模型待整理后将开源,具体时间请等待)
最后,补上测试用例,可爱的大熊猫。
本来计划将转换后Pytorch模型及预训练参数整理后开源。
突然发现“Ross Wightman”已经将其整理到其开源项目中。
[pytorch-image-models](rwightman/pytorch-image-models)
鉴于此,本人将不再开源,如需相关代码请移步
[pytorch-image-models](rwightman/pytorch-image-models)。
本人已亲自进行核对,我们所转换模型的测试完全一致。希望该开源项目可以持续扩增。
-完-
*延伸阅读
点击左下角“阅读原文”,即可申请加入极市目标跟踪、目标检测、工业检测、人脸方向、视觉竞赛等技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流,一起来让思想之光照的更远吧~
△长按关注极市平台
觉得有用麻烦给个在看啦~