当前位置:网站首页>MobileOne: 移动端仅需1ms的高性能骨干,你值得拥有!
MobileOne: 移动端仅需1ms的高性能骨干,你值得拥有!
2022-06-12 14:12:00 【Tom Hardy】
点击上方“计算机视觉工坊”,选择“星标”
干货第一时间送达

作者丨Happy
来源丨AIWalker

一句话总结
MobileOne(≈MobileNetV1+RepVGG+训练Trick)是由Apple公司提出的一种基于iPhone12优化的超轻量型架构,在ImageNet数据集上以<1ms的速度取得了75.9%的Top1精度。

出发点
高效率网络具有更强的实用价值,但学术界的研究往往聚焦于FLOPs或者参数量的降低,而这两者与推理效率之间并不存在严格的一致性。比如,FLOPs并未考虑访存消耗与计算并行度,像无参操作(如跳过连接导致的Add、Concat等)会带来显著的访存消耗,导致更长推理耗时。

为更好的分析高效率网络的瓶颈所在,作者以iPhone12平台为基准,从不同维度进行了"瓶颈"分析,见上图。从中可以看到:
具有高参数量的模型也可以拥有低延迟,比如ShuffleNetV2;
具有高FLOPs的模型也可以拥有低延迟,比如MobileNetV1和ShuffleNetV2;

上表从SRCC角度进行了分析,可以看到:
在移动端,延迟与FLOPs和参数量的相关性较弱;
在PC-CPU端,该相关性进一步弱化。
具体方案
基于上述洞察,作者从先两个主要效率"瓶颈"维度上进行了对比,然后对性能"瓶颈"进行了分析并提出相应方案。

Activation Functions:上表对比了不同激活函数对于延迟的影响,可以看到:尽管具有相同的架构,但不同激活函数导致的延迟差异极大。本文默认选择ReLU激活函数。

Architectural Block:上表对影响延迟的两个主要因素(访存消耗与计算并行度)进行了分析,见上表,可以看到:当采用单分支结构时,模型具有更快的速度。此外,为改善效率,作者在大模型配置方面有限的实用了SE模块。

基于上述分析,MobileOne的核心模块基于MobileNetV1而设计,同时吸收了重参数思想,得到上图所示的结构。注:这里的重参数机制还存在一个超参k用于控制重参数分支的数量(实验表明:对于小模型来说,该变种收益更大)。

在Model Scaling方面类似MobileNetV2,上表给出了MobileOne不同配置的参数信息。

在训练优化方面,小模型需要更少的正则,因此作者提出了Annealing的正则调整机制(可带来0.5%指标提升);此外,作者还引入渐进式学习机制(可带来0.4%指标提升);最后,作者还采用EMA机制,最终MobileOne-S2模型达到了77.4%的指标。
实验结果

上表给出了ImageNet数据集上不同轻量型方案的性能与效率对比,可以看到:
哪怕最轻量的Transformer也需要至少4ms,而MobileOne-S4仅需1.86ms即可达到79.4%的精度;
相比EfficientNet-B0,MobileOne-S3不仅具有指标高1%,同时具有更快的推理速度;
相比其他方案,在PC-CPU端,MobileOne仍具有非常明显的优势。

上表为MS-COCO检测、VOC分割以及ADE20K分割任务上的性能对比,很明显:
在MC-COCO任务上,MobileOne-S4比MNASNet指标高27.8%,比MobileViT高6.1%;
在VOC分割任务上,所提方案比MobileViT高1.3%,比MobileNetV2高5.8%;
在ADE20K任务上,所提最佳方案比MobileNetV2高12%,而MobileOne-S1仍比MobileNetV2高2.9%。

在文章最后,作者俏皮的提了一句:"Although, our models are state-of-the art within the regime of efficient architectures, the accuracy lags large models ConvNeXt and Swin Transformer"。笔者想说的是:看上图。
本文仅做学术分享,如有侵权,请联系删文。
干货下载与学习
后台回复:巴塞罗那自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件
后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf
后台回复:3D视觉课程,即可学习3D视觉领域精品课程
计算机视觉工坊精品课程官网:3dcver.com
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
重磅!计算机视觉工坊-学习交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
边栏推荐
- SystemC common errors
- Create a slice slice pit using the make method
- Ppt cannot be opened, always prompt how to fix it
- 程序分析与优化 - 6 循环优化
- Recursive summary of learning function
- IAT hook hijacking process API call
- CSDN blog points rule
- Single bus temperature sensor 18B20 data on cloud (Alibaba cloud)
- 初学者入门阿里云haas510开板式DTU(2.0版本)--510-AS
- Word insert picture blocked by text
猜你喜欢

How to realize the bidding strategy that pays more attention to transformation in the company's operation Google sem

Player practice 26 adding slider and window maximization

Two methods of implementing asynchronous calling function with QT

2022版Redis数据删除策略

Reverse order of Excel

Lua callinfo structure, stkid structure resolution

面向优化科学研究领域的软件包

Design of PLC intelligent slave station based on PROFIBUS DP protocol

Leetcode 2176. Count equal and divisible pairs in an array

Leetcode 2185. Counts the string containing the given prefix
随机推荐
浅谈中国程序员为什么要跳槽?
Leetcode 2176. Count equal and divisible pairs in an array
IAT hook hijacking process API call
Sizeof calculation space size summary
Huawei equipment is configured with H virtual private network
Player actual combat 21 audio and video synchronization
Write policy of cache
Démontage et modification de la machine publicitaire - décompression amateur
SystemC uses SC_ report_ Handler processing log printing
Server concurrency - note 1
【OCR】AspriseOCR C# 英文、數字識別(中文不行)
Configuring OSPF pseudo connection for Huawei devices
C secret arts script Chapter 2 (detailed explanation of pointers) (Section 3)
Des File Encryptor based on MFC framework
Player practice 15 xdemux and avcodecparameters
Vs2012: cannot assign a value of type 'char *' to an entity of type 'lpwstr'
通信流量分析
C語言中主函數調用另外一個函數,匯編代碼理解
Wait function in SystemC
动态搜索广告智能查找匹配关键字