PaddleSlim重磅开源SlimX系列小模型,覆盖人脸识别、分类、检测和OCR

模型小型化,why?

AI服务的计算环境发生了翻天覆地的变化,已逐渐从云端向移动端和IoT蔓延渗透。据统计,近几年AIoT的市场规模以40%以上的实际速度在增长,而且预期未来几年还保持着一个相当高的增长趋势。与此同时,也带来了前所未有的新型交互需求。比如,在智能屏音箱上,不方便语音的时候使用手势控制;看视频时,在耗电量微乎其微的情况下,可以通过表情识别,为你喜欢的视频自动点赞。

图 1 沉浸式、无感知的新型交互需求

然而,一个反差是,硬件的计算能力,从云到移动端、到IoT,算力以三个数量级的比例在下降,内存也在大幅下降,尤其是边缘芯片内存只有100K。而实际需要运行在这些AIoT设备上的算法需要关注的三个方面,即:算法效果(精度)、计算速度(FLOPs)、模型大小。最理想的选择是算法效果好、计算量低,尤其是实际耗时要少,同时,模型要小到内存足够放得下。

而云端上的经验告诉我们,要想效果好,模型得足够大!

那怎么样解决这个矛盾呢?很多专家提供人工经验去设计端上的模型,并且得到了广泛的应用。

然而这些依旧存在两个问题:

  • 如何利用现存优秀的云端模型。
  • 如何产生任务自适应的模型。

对于这两个问题,我们给出的答案是:模型小型化!

图2 PaddleSlim-效果不降的模型压缩工具箱

我们希望在有限计算资源的情况下保持效果不降,对已有模型进行压缩,并针对任务自动设计出新模型,这些功能都浓缩在百度飞桨和视觉团队共同研发的PaddleSlim工具箱里,自去年对外开源PaddleSlim,这个工具箱的内容到现在一直还在持续丰富,从量化、蒸馏、剪枝到网络结构搜索,一应俱全。

截止到现在,我们通过PaddleSlim打磨出了用于通用任务的分类、检测和用于垂类任务的人脸识别、文字识别(OCR)等多个业界领先的工业级小模型,它们是SlimMobileNet、SlimFaceNet、SlimDetNet、SlimTextNet等等。

为了进一步促进模型小型化技术的产业应用,PaddleSlim将开源所有Slim系列模型!

图3 Slim系列模型开源

PaddleSlim分类、检测最新优化

近日,PaddleSlim发布了SlimMobileNet、SlimFaceNet、SlimDetNet、SlimTextNet四大系列13个业界领先的工业级小模型。

分类:CVPR冠军模型,业界首个开源的FLOPs不超300M、ImageNet精度超过80%的分类小模型

图像分类任务上,PaddleSlim发布的SlimMobileNet是基于百度自研的GP-NAS(CVPR2020)AutoDL技术以及自研的蒸馏技术得到。

表1 SlimMobileNet分类小模型

在ImageNet 1000分类任务上,相比于MobileNetV3, SlimMobileNet_V1在精度提升1.7个点的情况下FLOPs可以压缩28%。SlimMobileNet_V4_x1_1为业界首个开源的FLOPs不超300M,ImageNet精度超过80%的分类小模型。

值得特别提及的是,CVPR的低功耗计算视觉比赛(CVPR 2020 LOW-POWER COMPUTER VISION CHALLENGE)也刚刚宣布了结果,百度联合清华大学在竞争最激烈的Real-time Image Classification Using Pixel 4 CPU 赛道中击败众多强劲对手取得冠军。本次发布的开源分类模型中就包含了此次比赛的冠军模型。

检测:最适合端侧部署的基于PaddleDetection的产业级检测模型

除了分类任务以外,如今目标检测已经产业应用的重要方向,它可以被广泛应用于工业产品检测、智能导航、视频监控等各个应用领域,帮助政府机关和广大企业提高工作效率。

PaddleDetection发布了一系列YOLO模型,PaddleSlim在其基础上进行了蒸馏、量化剪枝等压缩操作,产出了SlimDetNet系列图像目标检测模型。以MobileNetV1网络为主干的YOLOv3模型,适用于移动端部署环境,因为冗余信息更少,所以压缩难度较大,在PaddleSlim剪枝和蒸馏的共同作用下模型参数和计算量均有65%以上的减少,同时精度只有略微的降低。具体实验数据如表2所示。

注:SlimDetNet v2(MV3_YOLOv3)输入大小为320,测试环境是骁龙845;SlimDetNet v1(MobileNetV1-YOLOv3)输入大小为608,测试环境是骁龙855。

表2 SlimDetNet检测小模型

业界最小的开源人脸识别模型

除了基础模型,PaddleSlim还开源了垂类模型。众所周知,人脸识别和文字识别是工业化大生产中最常用的两项视觉技术。

首先看一下人脸识别人脸识别技术作为目前AI技术落地最广泛的技术之一,广泛应用于人脸解锁、考勤、支付、身份识别等各个场景。如何在嵌入式设备上高效的执行人脸识别算法成为制约相关应用的关键因素。

SlimFaceNet同样是基于百度自研的GP-NAS AutoDL技术以及百度自研的自监督超网络训练算法得到,如表3所示。

表3 SlimFaceNet与现有模型对比

相比于MobileNetV2,SlimFaceNet_A_x0_60 FLOPs压缩54%,在RK3288上加速4.3倍。基于PaddleSlim的离线量化功能还可以进一步压缩模型,相比于MobileNetV2,SlimFaceNet_A_x0_60_quant FLOPs可以压缩88.5%,在RK3288硬件上可以加速6.4倍。

MobileFaceNet是之前业界开源的一个网络,SlimFaceNet_A_x_60_quant计算量只有MobileFaceNet的七分之一,延时降低了59%。

业界最小的开源文字识别模型

再来看一看OCR,OCR技术有着丰富的应用场景,包括已经在日常生活中广泛应用的面向垂类的结构化文本识别,如车牌识别、银行卡信息识别、身份证信息识别、火车票信息识别等等,此外,通用OCR技术也有广泛的应用,如在视频场景中,经常使用OCR技术进行字幕自动翻译、内容安全监控等等,或者与视觉特征相结合,完成视频理解、视频搜索等任务。

图4 OCR识别工作流程

6月份的时候飞桨开源了一个8.6兆的OCR,业界反响热烈,登上了Github的Trending,现在我们又开源一个更加优质的模型,效果不降,但是模型大小只有3.1兆,并达到了30%的加速。

各个模型具体压缩情况如表4所示。

注:表中识别模型耗时为单个候选框的识别耗时,一张图片可能有多个候选框。使用自建中文数据集,测试环境是骁龙855。

表4 SlimText系列小模型

我们是如何做到的

以上业界最小的模型全部都基于飞桨模型压缩库PaddleSlim实现。它们的实现方式不尽相同,其中,人脸识别模型和分类模型使用了搜索压缩策略;检测与OCR使用了经典的量化剪枝和蒸馏策略。

搜索压缩策略简介

继PaddleSlim分布式SA-NAS在CVPR 2020 Real Image Denoising rawRGB Track夺冠后,GP-NAS包揽了ECCV 2020 Real Image Super-Resolution Challenge全部3项track的冠军。其中,SA-NAS搜索方法是百度首次把NAS技术应用于图像降噪领域。

GP-NAS搜索方法是百度首次把NAS技术应用于图像超分领域。目前为止,百度自研的SA-NAS和GP-NAS AutoDL技术已在CVPR19,ICME19,CVPR20,ECCV20 夺得7项世界第一,提交200余项中国/美国专利申请。

基于自监督的Oneshot-NAS

超网络训练方法

One-Shot NAS是一种自动搜索方法。它将超网络训练与搜索完全解耦,可以灵活的适用于不同的约束条件,超网络训练过程中显存占用低,所有结构共享超网络权重,搜索耗时加速显著。与此同时,我们还研发了基于自监督的排序一致性算法,以确保超网络性能与模型最终性能的一致性。

如图5所示,超网络的训练还可以与蒸馏和量化深度结合,如在超网络训练过程中加入蒸馏损失函数,可以得到一致性蒸馏超网络(基于该超网络可以搜索得到最适合特定teacher模型的student模型);如在超网络训练过程中加入量化损失函数,可以得到一致性量化超网络(基于该超网络可以搜索得到精度高且对量化不敏感的模型结构)。基于一致性超网络,PaddleSlim使用百度自研的GP-NAS算法进行模型结构自动搜索。

图5 基于自监督的超网络训练

基于高斯过程的模型结构

自动搜索GP-NAS

GP-NAS从贝叶斯角度来建模NAS,并为不同的搜索空间设计了定制化的高斯过程均值函数和核函数。图6为GP-NAS的架构图,具体来说,基于GP-NAS的超参数,我们有能力高效率的预测搜索空间中任意模型结构的性能。从而,模型结构自动搜索问题就被转换为GP-NAS高斯过程的超参数估计问题。接下来,通过互信息最大化采样算法,我们可以有效地对模型结构进行采样。因此,根据采样网络的性能,我们可以有效的逐步更新GP-NAS超参数的后验分布。基于估计出的GP-NAS超参数,我们可以预测出满足特定延时约束的最优的模型结构,更详细的技术细节请参考GP-NAS论文。

GP-NAS论文地址:

https://openaccess.thecvf.com/content_CVPR_2020/papers/Li_GP-NAS_Gaussian_Process_Based_Neural_Architecture_Search_CVPR_2020_paper.pdf

图6 基于高斯过程的模型结构自动搜索GP-NAS

量化剪枝、蒸馏

接下来,以文字检测和识别为例,简要介绍使用经典压缩策略做模型压缩的一般思路。

第一步:分析模型参数量分布

图7 OCR识别模型各部分参数量占比

如图7所示,OCR识别模型的参数主要集中在FC层和backbone层。另外考虑到当前没有对FC进行剪枝的有效的方法,所以我优先选择对FC层和backbone进行PACT量化训练。对于OCR检测模型,我们将其拆为backbone和head两部分进行分析对比,结果如图8所示。

图8 OCR检测模型分析

第二步:制定模型压缩方案

根据第一步的分析,我们制定以下压缩方案:

  • OCR识别模型:对backbone和FC层进行PACT量化训练
  • OCR检测模型:对head部分先进行剪枝,然后再进行PACT量化训练

第三步:实施模型压缩

按照第二步制定计划对各个模型进行压缩。其中,在对识别模型和检测模型进行PACT量化训练时,可以根据PaddleSlim提供的PACT自动调参教程自动计算出最合适的参数。教程详见:

https://github.com/PaddlePaddle/PaddleSlim/tree/develop/demo/quant/pact_quant_aware

对检测模型的head部分进行剪枝时,推荐使用PaddleSlim的敏感度分析方法和FPGM通道重要性评估方式。相关教程详见:

https://github.com/PaddlePaddle/PaddleSlim/blob/develop/docs/zh_cn/tutorials/image_classification_sensitivity_analysis_tutorial.md

OCR模型压缩方案的完整代码和教程请参考:

https://aistudio.baidu.com/aistudio/projectdetail/898523

参考链接

本文示例代码放在百度一站式在线开发平台AI Studio上,链接如下:

https://aistudio.baidu.com/aistudio/projectdetail/898523

本文提到的Slim系列小模型的更多详细内容请参见PaddleSlim项目地址:

https://github.com/PaddlePaddle/PaddleSlim

PaddleSlim是基于百度飞桨提供的开源深度学习模型压缩工具,集深度学习模型压缩中常用的量化剪枝、蒸馏、模型结构搜索、模型硬件搜索等方法与一体。目前,依靠PaddleSlim百度大脑打造了三位一体的度目系列自研产品,当PaddleSlim和其他视觉算法在硬件上结合时,也赋能了许多其他应用场景,小度在家的手势控制;好看视频APP的表情识别;国家电网智能巡检解决方案......从智慧分析、智慧社区,再到驾驶管理、产业赋能,基于PaddleSlim百度大脑已经打造出一个特有的“软+硬”视觉时代,并时刻守护生活的每个角落。

如果您在使用过程中有任何问题,欢迎加入飞桨官方推理部署QQ群:959308808

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

·飞桨官网地址·

https://www.paddlepaddle.org.cn/

·飞桨开源框架项目地址·

GitHub: 

https://github.com/PaddlePaddle/Paddle 

Gitee: 

https://gitee.com/paddlepaddle/Paddle

飞桨PaddlePaddle
飞桨PaddlePaddle

飞桨(PaddlePaddle)是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。

https://www.paddlepaddle.org
专栏二维码
工程SlimXPaddleSlim
相关数据
清华大学机构

清华大学(Tsinghua University),简称“清华”,由中华人民共和国教育部直属,中央直管副部级建制,位列“211工程”、“985工程”、“世界一流大学和一流学科”,入选“基础学科拔尖学生培养试验计划”、“高等学校创新能力提升计划”、“高等学校学科创新引智计划”,为九校联盟、中国大学校长联谊会、东亚研究型大学协会、亚洲大学联盟、环太平洋大学联盟、清华—剑桥—MIT低碳大学联盟成员,被誉为“红色工程师的摇篮”。 清华大学的前身清华学堂始建于1911年,因水木清华而得名,是清政府设立的留美预备学校,其建校的资金源于1908年美国退还的部分庚子赔款。1912年更名为清华学校。1928年更名为国立清华大学。1937年抗日战争全面爆发后南迁长沙,与北京大学、南开大学组建国立长沙临时大学,1938年迁至昆明改名为国立西南联合大学。1946年迁回清华园。1949年中华人民共和国成立,清华大学进入了新的发展阶段。1952年全国高等学校院系调整后成为多科性工业大学。1978年以来逐步恢复和发展为综合性的研究型大学。

相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

高斯过程技术

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

结构搜索技术

深度学习提供了这样一种承诺:它可以绕过手动特征工程的流程,通过端对端的方式联合学习中间表征与统计模型。 然而,神经网络架构本身通常由专家以艰苦的、一事一议的方式临时设计出来。 神经网络架构搜索(NAS)被誉为一条减轻痛苦之路,它可以自动识别哪些网络优于手工设计的网络。

车牌识别技术

车牌识别(License Plate Recognition)是基于图像分割和图像识别理论,对含有车辆号牌的图像进行分析处理,从而确定牌照在图像中的位置,并进一步提取和识别出文本字符。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

推荐文章
暂无评论
暂无评论~