第16卷第5期 智能系统学报 Vol.16 No.5 2021年9月 CAAI Transactions on Intelligent Systems Sep.2021 D0L:10.11992tis.202107057 面向车规级芯片的对象检测模型优化方法 宫大汉2,于龙龙3,陈辉,杨帆2,骆沛5,丁贵广2 (1.清华大学软件学院,北京100084,2.清华大学北京信息科学与技术国家研究中心,北京100084,3.涿溪脑 与智能研究所,浙江杭州311121;4.清华大学自动化系,北京100084,5.禾多科技(北京)有限公司,北京 100102) 摘要:卷积神经网络复杂的网络结构使得模型计算复杂度高,限制了其在自动驾驶等实际终端场景中的应 用。针对终端场景下的计算资源受限的问题,本文从轻量化深度模型设计和车规级芯片模型部署验证两方面 进行研究。针对深度模型计算效率和检测精度的矛盾.本文设计了基于中心卷积的轻量化对象检测模型,实现 功耗低且精度高的模型性能。进一步,本文基于量化感知训练的模型加速部署方法在车规级芯片上开展了系 统级部署验证,在车规级芯片tda4上成功实现了高效的对象检测模型,在自动驾驶场景中取得了良好的性能。 关键词:人工智能:计算机视觉:对象检测:终端设备:车规级芯片:卷积神经网络:模型加速:模型量化 中图分类号:TP18 文献标志码:A 文章编号:1673-4785(2021)05-0900-08 中文引用格式:宫大汉,于龙龙,陈辉,等.面向车规级芯片的对象检测模型优化方法.智能系统学报,2021,16(5): 900-907. 英文引用格式:GONG Dahan,.YU Longlong,.CHEN Hui,,etal.Object detection model optimization method for car-.level chips Jl, CAAI transactions on intelligent systems,2021,16(5):900-907. Object detection model optimization method for car-level chips GONG Dahan",YU Longlong',CHEN Hui4,YANG Fan'2,LUO Pei,DING Guiguang'2 (1.School of Software,Tsinghua University,Beijing 100084,China;2.BNRist Tsinghua University,Beijing 100084,China, 3.Zhuoxi Institute of Brain and Intelligence,Hangzhou 311121,China;4.Department of Automation,Tsinghua University,Beijing 100084,China;5.HoloMatic Technology (Beijing)Co.,Ltd,Beijing 100102,China) Abstract:Convolutional neural networks have achieved great success in visual perception tasks.Its complex network structure makes the model computationally complex,which limits its application in actual terminal scenarios such as autonomous driving.Aiming at the problem of limited computing resources in terminal scenarios,in this paper,we con- duct research from two aspects:lightweight deep model design and the model deployment and verification on car-level chips.As for the contradiction between the calculation efficiency of deep models and the detection accuracy,we design a lightweight object detection model based on the center-convolution,enjoying low power consumption and high accur- acy model performance.Furthermore,based on the method of quantization aware training,we carried out system-level deployment and verification on car-level chips.We successfully implemented a high-efficiency object detection model on the car-level chips,i.e.tda4,and achieved good performance in autonomous driving scenarios. Keywords:artificial intelligence;computer vision;object detection;terminal equipment,car-level chip;convolutional neural network;model acceleration;model quantization 卷积神经网络(convolutional neural network, 已经成为一种标准的智能结构,在智能手机、可 CNN)在图像识别、对象检测等视觉感知任务上 穿戴设备、IoT终端设备、自动驾驶等智能应用中 取得了巨大的成功。由于其优秀的性能,使得CNN 扮演着重要的角色。然而,CNN参数量巨大、计 收稿日期:2021-07-27. 算复杂度高的特点限制了它在实际场景中的大范 基金项目:国家自然科学基金项目(U1936202,61925107):中国 围落地应用。比如在自动驾驶领域,如果CNN模 博士后科学基金创新人才计划项目(BX2021161). 通信作者:丁贵广.E-mail:dinggg@tsinghua.edu.cn 型部署到云端,那么网络传输的稳定性将决定系
DOI: 10.11992/tis.202107057 面向车规级芯片的对象检测模型优化方法 宫大汉1,2,于龙龙3 ,陈辉2,4,杨帆1,2,骆沛5 ,丁贵广1,2 (1. 清华大学 软件学院 , 北京 100084; 2. 清华大学 北京信息科学与技术国家研究中心,北京 100084; 3. 涿溪脑 与智能研究所,浙江 杭州 311121; 4. 清华大学 自动化系,北京 100084; 5. 禾多科技 (北京) 有限公司,北京 100102) 摘 要:卷积神经网络复杂的网络结构使得模型计算复杂度高,限制了其在自动驾驶等实际终端场景中的应 用。针对终端场景下的计算资源受限的问题,本文从轻量化深度模型设计和车规级芯片模型部署验证两方面 进行研究。针对深度模型计算效率和检测精度的矛盾,本文设计了基于中心卷积的轻量化对象检测模型,实现 功耗低且精度高的模型性能。进一步,本文基于量化感知训练的模型加速部署方法在车规级芯片上开展了系 统级部署验证,在车规级芯片 tda4 上成功实现了高效的对象检测模型,在自动驾驶场景中取得了良好的性能。 关键词:人工智能;计算机视觉;对象检测;终端设备;车规级芯片;卷积神经网络;模型加速;模型量化 中图分类号:TP18 文献标志码:A 文章编号:1673−4785(2021)05−0900−08 中文引用格式:宫大汉, 于龙龙, 陈辉, 等. 面向车规级芯片的对象检测模型优化方法 [J]. 智能系统学报, 2021, 16(5): 900–907. 英文引用格式:GONG Dahan, YU Longlong, CHEN Hui, et al. Object detection model optimization method for car-level chips[J]. CAAI transactions on intelligent systems, 2021, 16(5): 900–907. Object detection model optimization method for car-level chips GONG Dahan1,2 ,YU Longlong3 ,CHEN Hui2,4 ,YANG Fan1,2 ,LUO Pei5 ,DING Guiguang1,2 (1. School of Software, Tsinghua University, Beijing 100084, China; 2. BNRist Tsinghua University, Beijing 100084, China; 3. Zhuoxi Institute of Brain and Intelligence, Hangzhou 311121, China; 4. Department of Automation, Tsinghua University, Beijing 100084, China; 5. HoloMatic Technology (Beijing) Co., Ltd, Beijing 100102, China) Abstract: Convolutional neural networks have achieved great success in visual perception tasks. Its complex network structure makes the model computationally complex, which limits its application in actual terminal scenarios such as autonomous driving. Aiming at the problem of limited computing resources in terminal scenarios, in this paper, we conduct research from two aspects: lightweight deep model design and the model deployment and verification on car-level chips. As for the contradiction between the calculation efficiency of deep models and the detection accuracy, we design a lightweight object detection model based on the center-convolution, enjoying low power consumption and high accuracy model performance. Furthermore, based on the method of quantization aware training, we carried out system-level deployment and verification on car-level chips. We successfully implemented a high-efficiency object detection model on the car-level chips, i.e. tda4, and achieved good performance in autonomous driving scenarios. Keywords: artificial intelligence; computer vision; object detection; terminal equipment; car-level chip; convolutional neural network; model acceleration; model quantization 卷积神经网络(convolutional neural network, CNN)在图像识别、对象检测等视觉感知任务上 取得了巨大的成功。由于其优秀的性能,使得 CNN 已经成为一种标准的智能结构,在智能手机、可 穿戴设备、IoT 终端设备、自动驾驶等智能应用中 扮演着重要的角色。然而,CNN 参数量巨大、计 算复杂度高的特点限制了它在实际场景中的大范 围落地应用。比如在自动驾驶领域,如果 CNN 模 型部署到云端,那么网络传输的稳定性将决定系 收稿日期:2021−07−27. 基金项目:国家自然科学基金项目(U1936202,61925107);中国 博士后科学基金创新人才计划项目(BX2021161). 通信作者:丁贵广. E-mail:dinggg@tsinghua.edu.cn. 第 16 卷第 5 期 智 能 系 统 学 报 Vol.16 No.5 2021 年 9 月 CAAI Transactions on Intelligent Systems Sep. 2021
第5期 宫大汉,等:面向车规级芯片的对象检测模型优化方法 ·901· 统是否能及时应对不断变化的外部环境,进而影 时的模型大小。相比于标准的3×3卷积,所提出 响整体自动驾驶性能。而受限于网络传输的不稳 的中心卷积不增加推理复杂度,但是具有更强的 定性,这种云端计算终端响应的方式在实际自动 特征学习能力,使得模型检测效果更佳。 驾驶系统中难以广泛应用。所以,基于车载终端 本文用中心卷积替换了ResNet18中的3×3卷 设备实现深度模型的部署成为一种越来越流行的 积,构建了基于中心卷积的CenterNet模型,并在 解决方案。 实际的车规级计算芯片上进行了模型部署验证。 然而,面向车载终端设备的深度模型部署存 尽管ResNet18的计算复杂度不高,但为了充分利 在着计算资源和模型性能的矛盾。具体来说,深 用车载系统的计算资源,希望尽可能在保持精度 度模型复杂度越高,通常它的效果越好,但其计 的情况下,提升CenterNet的计算效率。为此,本 算速率越差。考虑到终端设备上缺少高性能计算 文采用一套基于量化的部署流程:首先使用量化 单元(如GPU)的支持,使得复杂度高的深度模型 感知的训练方式对给定的CenterNet进行重训练, 无法满足计算效率的要求。而如果采用复杂度低 得到int8数值精度的CenterNet模型,然后调用底 的小模型,又面临模型性能不佳的问题。因此, 层开放接口,将模型部署在芯片上。通过这种量 如何在计算资源受限条件下实现高精度深度模型 化感知训练,可以得到低比特的模型,减少了模 的部署对自动驾驶至关重要。 型的大小,并且保持了足够高的模型精度。而在 本文面向自动驾驶场景,研究车规级芯片上 芯片线上推理过程中,模型以低比特it8进行运 的对象检测模型高效计算方法。本文使用先 算,相比于float.32运算,处理速度更快。 进的对象检测模型CenterNet!作为实验模型。这 综上所述,本文提出了一种中心卷积来替代 种模型通过预测对象中心点的位置和包围盒的偏 ResNet1:8中的3×3卷积,构建了基于中心卷积的 移量,进而确定对象的整体位置。通常使用主流 CenterNet对象检测模型;进一步,采用基于量化 深度学习模型,比如ResNet作为模型的主干网 的模型部署方法,实现在车规级芯片上的模型效 络。主干网络可以将输入的视觉图像均分为网格 果验证。 区域,然后CenterNet判断每个网格点是否是某个 1相关工作 对象的中心。考虑到车载系统缺乏高性能计算单 元GPU,本文采用轻量型深度模型ResNet18作为 对象检测领域的研究热点经历了由基于锚点 CenterNet的主干网铬。 框(anchor--based)检测模型到无锚点框(anchor- ResNet18通过堆叠3×3卷积,使得在一个 free)检测模型。其中,以CornerNet!为代表的基 3×3的卷积窗口中,卷积核的中心点对应的区域 于关键点预测的对象检测模型的出现引起了研究 可以不断“吸收”周围区域的信息来增强自身的特 者的广泛兴趣,anchor-free的方法渐渐兴起。 征表达。这种方式的缺点在于3×3卷积将中心区 CornerNet首次提出预测包围框的一对角点来检 域的特征和周围区域的特征同等对待,容易降低 测目标,并使用角池化操作来更好地定位包围框 中心区域的特性在特征中的表达,加大了模型混 的角点。之后,Zhou等提出ExtremeNet来预测 淆中心区域和其他区域的可能性,不利于Center- 对象的极值点和中心点进而实现目标检测的目 Net对关键点的定位. 的,后面又进一步提出CenterNet只预测中心点来 为了解决这个问题,本文提出一个基于中心 检测目标。Liu等rI改进了CenterNet,.提出了 卷积的对象检测模型。具体来说,本文为3×3卷 TTFNet,使用高斯核编码来引入更多的回归样本, 积增加一个1×1卷积旁路,这种旁路对应3×3卷 极大地加快了模型的训练速度。而Zhou等⑧又 积核的中心区域,可以充分学习中心区域的隐藏 将中心点预测的思想引入到两阶段(two-stage)检 特性。本文对3×3卷积和1×1卷积的输出进行加 测模型中,获得了显著的性能。 和融合,并将这种结构命名为中心卷积。所设计 需要指出的是,本文重点关注深度模型在车 的中心卷积可以独立学习中心区域的特性和周围 规级芯片上的高效推理。具体来说,本文希望在 区域的关联信息,有效增强中心区域的特征表 有限的计算资源条件下实现高性能和高效率的对 达,促进关键点的预测。3×3卷积和1×1卷积都 象检测模型。考虑到CenterNet具有简单易扩展 是线性变换,因此在模型部署推理时,可以很方 的优点,所以本文采用CenterNet为实验模型进行 便地将1×1卷积旁路的参数融合到3×3卷积核的 探索,而不采用近期对CenterNet的改进工作进行 中心点上,恢复成标准3×3卷积,大大降低了推理 实验,如CenterNet.2、TTFNet
统是否能及时应对不断变化的外部环境,进而影 响整体自动驾驶性能。而受限于网络传输的不稳 定性,这种云端计算终端响应的方式在实际自动 驾驶系统中难以广泛应用。所以,基于车载终端 设备实现深度模型的部署成为一种越来越流行的 解决方案。 然而,面向车载终端设备的深度模型部署存 在着计算资源和模型性能的矛盾。具体来说,深 度模型复杂度越高,通常它的效果越好,但其计 算速率越差。考虑到终端设备上缺少高性能计算 单元(如 GPU)的支持,使得复杂度高的深度模型 无法满足计算效率的要求。而如果采用复杂度低 的小模型,又面临模型性能不佳的问题。因此, 如何在计算资源受限条件下实现高精度深度模型 的部署对自动驾驶至关重要。 本文面向自动驾驶场景,研究车规级芯片上 的对象检测[1-2] 模型高效计算方法。本文使用先 进的对象检测模型 CenterNet[3] 作为实验模型。这 种模型通过预测对象中心点的位置和包围盒的偏 移量,进而确定对象的整体位置。通常使用主流 深度学习模型,比如 ResNet[4] 作为模型的主干网 络。主干网络可以将输入的视觉图像均分为网格 区域,然后 CenterNet 判断每个网格点是否是某个 对象的中心。考虑到车载系统缺乏高性能计算单 元 GPU,本文采用轻量型深度模型 ResNet18 作为 CenterNet 的主干网络。 ResNet18 通过堆叠 3×3 卷积,使得在一个 3×3 的卷积窗口中,卷积核的中心点对应的区域 可以不断“吸收”周围区域的信息来增强自身的特 征表达。这种方式的缺点在于 3×3 卷积将中心区 域的特征和周围区域的特征同等对待,容易降低 中心区域的特性在特征中的表达,加大了模型混 淆中心区域和其他区域的可能性,不利于 CenterNet 对关键点的定位。 为了解决这个问题,本文提出一个基于中心 卷积的对象检测模型。具体来说,本文为 3×3 卷 积增加一个 1×1 卷积旁路,这种旁路对应 3×3 卷 积核的中心区域,可以充分学习中心区域的隐藏 特性。本文对 3×3 卷积和 1×1 卷积的输出进行加 和融合,并将这种结构命名为中心卷积。所设计 的中心卷积可以独立学习中心区域的特性和周围 区域的关联信息,有效增强中心区域的特征表 达,促进关键点的预测。3×3 卷积和 1×1 卷积都 是线性变换,因此在模型部署推理时,可以很方 便地将 1×1 卷积旁路的参数融合到 3×3 卷积核的 中心点上,恢复成标准 3×3 卷积,大大降低了推理 时的模型大小。相比于标准的 3×3 卷积,所提出 的中心卷积不增加推理复杂度,但是具有更强的 特征学习能力,使得模型检测效果更佳。 本文用中心卷积替换了 ResNet18 中的 3×3 卷 积,构建了基于中心卷积的 CenterNet 模型,并在 实际的车规级计算芯片上进行了模型部署验证。 尽管 ResNet18 的计算复杂度不高,但为了充分利 用车载系统的计算资源,希望尽可能在保持精度 的情况下,提升 CenterNet 的计算效率。为此,本 文采用一套基于量化的部署流程:首先使用量化 感知的训练方式对给定的 CenterNet 进行重训练, 得到 int8 数值精度的 CenterNet 模型,然后调用底 层开放接口,将模型部署在芯片上。通过这种量 化感知训练,可以得到低比特的模型,减少了模 型的大小,并且保持了足够高的模型精度。而在 芯片线上推理过程中,模型以低比特 int8 进行运 算,相比于 float32 运算,处理速度更快。 综上所述,本文提出了一种中心卷积来替代 ResNet18 中的 3×3 卷积,构建了基于中心卷积的 CenterNet 对象检测模型;进一步,采用基于量化 的模型部署方法,实现在车规级芯片上的模型效 果验证。 1 相关工作 对象检测领域的研究热点经历了由基于锚点 框(anchor-based)检测模型到无锚点框(anchorfree)检测模型。其中,以 CornerNet[5] 为代表的基 于关键点预测的对象检测模型的出现引起了研究 者的广泛兴趣, anchor-free 的方法渐渐兴起。 CornerNet 首次提出预测包围框的一对角点来检 测目标,并使用角池化操作来更好地定位包围框 的角点。之后,Zhou 等 [6] 提出 ExtremeNet 来预测 对象的极值点和中心点进而实现目标检测的目 的,后面又进一步提出 CenterNet 只预测中心点来 检测目标。Liu 等 [ 7 ] 改进了 CenterNet,提出了 TTFNet,使用高斯核编码来引入更多的回归样本, 极大地加快了模型的训练速度。而 Zhou 等 [8] 又 将中心点预测的思想引入到两阶段(two-stage)检 测模型中,获得了显著的性能。 需要指出的是,本文重点关注深度模型在车 规级芯片上的高效推理。具体来说,本文希望在 有限的计算资源条件下实现高性能和高效率的对 象检测模型。考虑到 CenterNet 具有简单易扩展 的优点,所以本文采用 CenterNet 为实验模型进行 探索,而不采用近期对 CenterNet 的改进工作进行 实验,如 CenterNet2[8] 、TTFNet[7]。 第 5 期 宫大汉,等:面向车规级芯片的对象检测模型优化方法 ·901·
·902· 智能系统学报 第16卷 2基于中心卷积的对象检测模型 ReLU 2.1中心卷积 ReLU 本文的中心卷积关注对3×3卷积的改进。首 先,为了更好地描述中心卷积,将卷积运算描述 为:给定输入特征图为M∈RxvC,卷积输出特征 BN BN2 图为E RUxxn,那么对于一个卷积核大小为H×W 且有l)慎充的卷积,可以用Fehwco表 3×3 3×3 1×1 conv conv conv 示它的参数,且满足: Ok=MU*F,k∈[1,D] (1) 输人 输人 式中:*表示矩阵元素相乘;M可是从M中以(位,)为 (a)标准卷积 b)中心卷积 中心截取的一个大小为H×W×C的矩阵;F表示 图2标准卷积和中心卷积 第k个大小为H×W×C的矩阵。3×3卷积和1×1 Fig.2 Standard convolution and center-convolution 卷积都可以用式(1)来描述。 中心卷积尽管因为引入了旁路分支而增加了 图1展示了3×3卷积运算。卷积以3×3为滑 模型的复杂度,但实际上,所引入的1×1卷积以 动窗口对输入的特征图M进行处理,处理时,将中 及BN层可以融合进3×3卷积中,因此,形式上就 心区域(位,)信息和窗口内的区域信息进行融合, 等价于标准的3×3卷积。具体来说,给定中心卷 输出的特征可作为中心区域(伍,)的更高层次的特 积,其中的3×3卷积设为F33eRx3xCD,1×1卷积 征表示。可以看到,这种方式直接对窗口内的区 设为FIx1∈R1 xIxCxD,对于给定的输入特征中的一 域特征进行融合,没有考虑到每个区域的不同, 个3×3的分块M∈Rx3xC,卷积层的输出0eRP为 这样就容易减弱中心区域的特性信息在更高层次 a=∑r*M+F*Mu (2) 特征中的表达,使得在CenterNet中对关键点的预 式(2)可以很容易地将Fx融合到F3x3中的 测效果不佳。 (L,1)的张量上,得到新的3×3卷积Pnew ER3xCx: F0加i≠ljt1 (3) F+Fooi=1.j=1 图3展示了中心卷积的融合过程。在模型训 练时,本文将中心卷积设计为图2所示的双分支 3×3卷 的结构,这样可以利用冗余的1×1旁路分支来增 积核F 强模型对图像显著性特征的学习,提高网络的学 输入特征M 输人特征O 习性能,而在推理阶段,利用图3所示的分支融合 机制,可以很好地将冗余参数融合进主干3×3分 图13×3卷积运算 支中,融合后的计算等价于标准的3×3卷积,不会 Fig.1 3x3 convolution operation 提高模型的推理复杂度。 为了解决上述问题,本文提出中心卷积(cen- ter-convolution)来增强中心区域的信息。中心卷 (0,0)(0,1)(0,2) 积被设计为双分支的架构,其中一个分支是标准 (1,0)(1,HL22) 的3×3卷积后接一个批规范层(batch normaliza- tion,BN)9,用于融合领域的信息,另外一个分支 (20)(2,1)(2,2) 0,0)0,1)0,2) 是一个1×1的卷积旁路,同样后接一个批规范层 3×3 1,0)1,1)(1,2) 用于增强中心区域自身的信息。需要注意的是, 2,0)2,1)2,2) 两个分支学习到的信息是不一样的,所以学习到 (0,0) 的特征空间中的分布不一样。因此,双分支的两 1×1 个BN层的参数是不共享的。在BN层将不同信 图3将1×1卷积融合到3x3卷积中 息进行规范化约束后,对两个分支进行加和操作 Fig.3 Merging 1x1 into 3x3 得到最终的中心区域的特征。图2展示了标准 2.2 基于中心卷积的CenterNet检测模型 的3×3卷积和所提出的中心卷积的差异。 本文选择CenterNet来构建检测模型。Cen-
2 基于中心卷积的对象检测模型 2.1 中心卷积 M ∈ R U×V×C O ∈ R U×V×D H × W (⌊ H 2 ⌋ , ⌊W 2 ⌋) F ∈ R H×W×C×D 本文的中心卷积关注对 3×3 卷积的改进。首 先,为了更好地描述中心卷积,将卷积运算描述 为:给定输入特征图为 ,卷积输出特征 图为 ,那么对于一个卷积核大小为 且有 填充的卷积,可以用 表 示它的参数,且满足: Oi, j,k = Mi, j ∗ F k , k ∈ [1,D] (1) ∗ Mi, j M (i, j) H × W ×C F k H × W ×C 式中: 表示矩阵元素相乘; 是从 中以 为 中心截取的一个大小为 的矩阵; 表示 第 k 个大小为 的矩阵。3×3 卷积和 1×1 卷积都可以用式 (1) 来描述。 M (i, j) (i, j) 图 1 展示了 3×3 卷积运算。卷积以 3×3 为滑 动窗口对输入的特征图 进行处理,处理时,将中 心区域 信息和窗口内的区域信息进行融合, 输出的特征可作为中心区域 的更高层次的特 征表示。可以看到,这种方式直接对窗口内的区 域特征进行融合,没有考虑到每个区域的不同, 这样就容易减弱中心区域的特性信息在更高层次 特征中的表达,使得在 CenterNet 中对关键点的预 测效果不佳。 3×3 卷 积核 F 输入特征 M 输入特征 O 图 1 3×3 卷积运算 Fig. 1 3×3 convolution operation 为了解决上述问题,本文提出中心卷积(center-convolution)来增强中心区域的信息。中心卷 积被设计为双分支的架构,其中一个分支是标准 的 3×3 卷积后接一个批规范层(batch normalization,BN) [9] ,用于融合领域的信息,另外一个分支 是一个 1×1 的卷积旁路,同样后接一个批规范层, 用于增强中心区域自身的信息。需要注意的是, 两个分支学习到的信息是不一样的,所以学习到 的特征空间中的分布不一样。因此,双分支的两 个 BN 层的参数是不共享的。在 BN 层将不同信 息进行规范化约束后,对两个分支进行加和操作 得到最终的中心区域的特征。图 2 展示了标准 的 3×3 卷积和所提出的中心卷积的差异。 ReLU ReLU + BN BN1 BN2 3×3 conv 3×3 conv 1×1 conv 输入 输入 (a) 标准卷积 (b) 中心卷积 图 2 标准卷积和中心卷积 Fig. 2 Standard convolution and center-convolution F 3×3 ∈ R 3×3×C×D F 1×1 ∈ R 1×1×C×D M ∈ R 3×3×C O ∈ R D 中心卷积尽管因为引入了旁路分支而增加了 模型的复杂度,但实际上,所引入的 1×1 卷积以 及 BN 层可以融合进 3×3 卷积中,因此,形式上就 等价于标准的 3×3 卷积。具体来说,给定中心卷 积,其中的 3×3 卷积设为 ,1×1 卷积 设为 ,对于给定的输入特征中的一 个 3×3 的分块 ,卷积层的输出 为 Ok = ∑3,3 i, j F 3×3 (i, j,:,k) ∗ M(i, j,:) + F 1×1 (0,0,:,k) ∗ M(1,1,:) (2) F 1×1 F 3×3 3×3 F new ∈ R 3×3×C×D 式 (2) 可以很容易地将 融合到 中的 (1,1) 的张量上,得到新的 卷积 : F new = F 3×3 (i, j,:,:)), i , 1, j , 1 F 3×3 (1,1,:,:) + F 1×1 (0,0,:,:) , i = 1, j = 1 (3) 图 3 展示了中心卷积的融合过程。在模型训 练时,本文将中心卷积设计为图 2 所示的双分支 的结构,这样可以利用冗余的 1×1 旁路分支来增 强模型对图像显著性特征的学习,提高网络的学 习性能,而在推理阶段,利用图 3 所示的分支融合 机制,可以很好地将冗余参数融合进主干 3×3 分 支中,融合后的计算等价于标准的 3×3 卷积,不会 提高模型的推理复杂度。 (0, 0) (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) 3×3 + 1×1 图 3 将 1×1 卷积融合到 3×3 卷积中 Fig. 3 Merging 1×1 into 3×3 2.2 基于中心卷积的 CenterNet 检测模型 本文选择 CenterNet 来构建检测模型。Cen- ·902· 智 能 系 统 学 报 第 16 卷
第5期 宫大汉,等:面向车规级芯片的对象检测模型优化方法 ·903· terNet抛弃了传统的基于锚点框(anchor)o的对 预训练好的深度模型进行参数量化。但是实验表 象检测方法,而是通过预测日标对象的中心点位 明,这种后量化的方式存在量化误差累积的缺 置和大小来预测对象的包围框。 陷,使得量化后的模型性能产生了极大的损失。 CenterNet的结构包含两个部分。对于给定 目前的很多深度学习框架,比如pytorch!!2)和 的一张图像I∈RWxHx3,首先使用主干网络对图像 TensorFlow!)都使用了一种量化感知的方法,将 进行特征抽取,得到一个14×14的特征图,接着, 参数量化的过程融合进模型训练过程中,让网络 使用反卷积扩大特征图分辨率,得到一个热力图 参数能够适应量化带来的信息损失。本文采用同 张量了e0,]x"c,其中R是下采样率,C是类别 样的方法对深度模型进行处理。具体来说,将量 数目。如果了=1表示点(化,y)是检测到的关键点, 化算法集成为一个模块,并串联在卷积参数层的 反之则是背景。 后面参与特征计算,流程如图4所示。因为量化 使用本文提出的中心卷积来构建ResNet18 操作里面的round函数不是可导的,所以在反向 模型,并在ImageNet!上进行预训练。为了方便 传播的时候无法将梯度准确地传给前面层的参 描述,本文将得到的模型命名为C-ResNet18。并 数。为了解决这个问题,本文重构了量化层的前 基于C-ResNet18卷积神经网络设计主干网络构 向和后向操作,在前向时按照量化操作正常进 建CenterNet对象检测模型,得到的模型称为CR- 行,反向时跳过量化层,直接把卷积层的梯度回 CenterNet。为了对比,本文也基于ResNet18构建 传到量化前的卷积参数中来。因为卷积层的梯度 了CenterNet,.得到的模型称为R-CenterNet。对比 是经过量化操作的,因此可以模拟量化误差,把 效果详见实验部分。 误差的梯度回传到原来的参数上,使得原来的参 数去自适应地感知量化产生的误差。本文的实验 3基于量化的深度模型部署 结果表明,量化感知训练的方式可以避免模型的 考虑到在自动驾驶车辆上,通常部署一些专用 性能下降,而其计算效率成倍提升。 的终端芯片和设备来执行相关算法和模型。计算 资源受限是该类设备的一大缺陷,这给复杂度高 i 的智能模型的应用带来了巨大的挑战。面向终端 ReLU 设备的深度模型加速技术能够显著降低深度模型 前向传播:十 的复杂度,有利于深度模型在终端设备上的部署。 反向传播: 偏置 化 本文采用基于量化的模型加速方法,以最大 化车载系统底层计算模块的计算效率。深度模型 在训练过程中使用浮点精度来表示参数和数据的 Conv 量化 参数 数值,从硬件原理来说,整数运算比相同位数的 浮点运算更快且更省电,如果将深度模型的计算 输人 全部转化为整数运算,势必带来极大的加速效 果。基于量化的模型加速方法就是通过将浮点 图4带量化层的卷积操作 Fig.4 Convolution with the quantization layer (f1oat32)精度数值量化到短型整数(int8)精度数 值,实现了模型的高效运算。 4 面向车规级芯片的检测验证系统 假设要量化的浮点数是x,量化后的整数是y, 两者的换算公式为:x=S0-Z.y=ound传+Z列, 本文在车规级计算芯片上搭建了对象检测系 其中,S表示x和y之间的比例关系,Z表示量 统。为了达到这个目标,本文首先针对真实的自 化后的整数0点,对应量化前的0点。它们的计 动驾驶场景收集了一批数据,并采用人工的方式 算为 进行数据标注。本文一共收集了两批数据:泊车 s=-,Z=roundy-号) 数据和公路数据。泊车数据在室外泊车场景采 (4) Ymx一Yain 集,共有7848张RGB图像,每张图像标注了 式中:x和xn分别表示x的最大值和最小值; 2D的包围框和物体接地点位置。如图5所示,红 yamx和ym分别表示y的最大值和最小值;round函 框是车辆的包围框,彩色点是车辆的接地点。公 数表示四舍五人运算。 路数据是在公路场景采集的,由22213张RGB图 基于上述的数值量化方法,可以很容易地将 像组成,标注了3D的包围框
terNet 抛弃了传统的基于锚点框(anchor) [10] 的对 象检测方法,而是通过预测目标对象的中心点位 置和大小来预测对象的包围框。 I ∈ R W×H×3 14×14 Yb ∈ [0,1] W R × H R ×C Ybx,y,c = 1 (x, y) CenterNet 的结构包含两个部分。对于给定 的一张图像 ,首先使用主干网络对图像 进行特征抽取,得到一个 的特征图,接着, 使用反卷积扩大特征图分辨率,得到一个热力图 张量 ,其中 R 是下采样率,C 是类别 数目。如果 表示点 是检测到的关键点, 反之则是背景。 使用本文提出的中心卷积来构建 ResNet18 模型,并在 ImageNet[11] 上进行预训练。为了方便 描述,本文将得到的模型命名为 C-ResNet18。并 基于 C-ResNet18 卷积神经网络设计主干网络构 建 CenterNet 对象检测模型,得到的模型称为 CRCenterNet。为了对比,本文也基于 ResNet18 构建 了 CenterNet,得到的模型称为 R-CenterNet。对比 效果详见实验部分。 3 基于量化的深度模型部署 考虑到在自动驾驶车辆上,通常部署一些专用 的终端芯片和设备来执行相关算法和模型。计算 资源受限是该类设备的一大缺陷,这给复杂度高 的智能模型的应用带来了巨大的挑战。面向终端 设备的深度模型加速技术能够显著降低深度模型 的复杂度,有利于深度模型在终端设备上的部署。 本文采用基于量化的模型加速方法,以最大 化车载系统底层计算模块的计算效率。深度模型 在训练过程中使用浮点精度来表示参数和数据的 数值,从硬件原理来说,整数运算比相同位数的 浮点运算更快且更省电,如果将深度模型的计算 全部转化为整数运算,势必带来极大的加速效 果。基于量化的模型加速方法就是通过将浮点 (float32)精度数值量化到短型整数(int8)精度数 值,实现了模型的高效运算。 x y x = S (y−Z) y = round( x S +Z ) 假设要量化的浮点数是 ,量化后的整数是 , 两者的换算公式为: , 。 其中,S 表示 x 和 y 之间的比例关系,Z 表示量 化后的整数 0 点,对应量化前的 0 点。它们的计 算为 S = xmax − xmin ymax −ymin , Z = round( ymax − xmax S ) (4) xmax xmin ymax ymin 式中: 和 分别表示 x 的最大值和最小值; 和 分别表示 y 的最大值和最小值;round 函 数表示四舍五入运算。 基于上述的数值量化方法,可以很容易地将 预训练好的深度模型进行参数量化。但是实验表 明,这种后量化的方式存在量化误差累积的缺 陷,使得量化后的模型性能产生了极大的损失。 目前的很多深度学习框架,比如 pytorch[ 1 2 ] 和 TensorFlow[13] 都使用了一种量化感知的方法,将 参数量化的过程融合进模型训练过程中,让网络 参数能够适应量化带来的信息损失。本文采用同 样的方法对深度模型进行处理。具体来说,将量 化算法集成为一个模块,并串联在卷积参数层的 后面参与特征计算,流程如图 4 所示。因为量化 操作里面的 round 函数不是可导的,所以在反向 传播的时候无法将梯度准确地传给前面层的参 数。为了解决这个问题,本文重构了量化层的前 向和后向操作,在前向时按照量化操作正常进 行,反向时跳过量化层,直接把卷积层的梯度回 传到量化前的卷积参数中来。因为卷积层的梯度 是经过量化操作的,因此可以模拟量化误差,把 误差的梯度回传到原来的参数上,使得原来的参 数去自适应地感知量化产生的误差。本文的实验 结果表明,量化感知训练的方式可以避免模型的 性能下降,而其计算效率成倍提升。 偏置 量化 量化 ReLU 前向传播: 反向传播: + Conv 参数 输入 图 4 带量化层的卷积操作 Fig. 4 Convolution with the quantization layer 4 面向车规级芯片的检测验证系统 本文在车规级计算芯片上搭建了对象检测系 统。为了达到这个目标,本文首先针对真实的自 动驾驶场景收集了一批数据,并采用人工的方式 进行数据标注。本文一共收集了两批数据:泊车 数据和公路数据。泊车数据在室外泊车场景采 集,共有 7 848 张 RGB 图像,每张图像标注了 2D 的包围框和物体接地点位置。如图 5 所示,红 框是车辆的包围框,彩色点是车辆的接地点。公 路数据是在公路场景采集的,由 22 213 张 RGB 图 像组成,标注了 3D 的包围框。 第 5 期 宫大汉,等:面向车规级芯片的对象检测模型优化方法 ·903·
·904· 智能系统学报 第16卷 好的CR-CenterNet模型进行量化(如第3节内容 所述),然后注人到tda4芯片上进行运算。整体 的开发流程如图7所示。 C-ResNet18 ImageNet 预训练 (a)泊车数据 CR-CenterNet 训练 。” 泊车数据 。。 CR-CenterNet 量化感知训练 (b)公路数据 CR-CenterNet 车规级芯片验证 公路数据 图5泊车数据和公路数据 Fig.5 Parking data and road data 图7面向车规级芯片的检测系统构建 Fig.7 Constructing the detection system on car-level chips 成本是智能算法在自动驾驶场景面临的一个 重要的问题。自动驾驶场景复杂广泛,如果使用 5实验 全监督的方式进行数据标注,标注成本将不可估 量。其次,对象的3D信息是保障自动驾驶安全 5.1 中心卷积 可行的一种重要数据,但其采集设备代价昂贵, 在本节中,将验证所提出的中心卷积的有效 不适合车辆量产。对此,本文设计了一套从2D 性。ImageNet是目前国际上主流的大型图像分类 图片到3D空间推断的对象检测流程。具体来 评测集,在人工智能的发展史上具有举足轻重的 说,本文用泊车数据中的2D包围框和接地点训 地位。AlexNet"、VGGNet、GoogleNet!、ResNet 练了所提出的基于中心卷积的对象检测模型C- 和DenseNet!的成功都离不开ImageNet,.ImageN- CenterNet,.然后利用输出的2D框和接地点信息, t也已经成为计算机视觉领域的标准数据集。研 逆投影到世界坐标系中,得到对象的3D位置信 究者通常会使用ImageNet来验证新提出的模型 息,即输入是2D图像,输出是3D位置信息(这里 的有效性,然后在下游任务上进行验证,如对象检测网 实例分割92、行人重识别22等。 用鸟瞰图表示,如图6所示)。在训练阶段,CR CenterNet只在泊车数据上训练,测试时只在公路 因此,本文在ImageNet上对C-ResNet18进行 了预训练,并在图像分类任务上展示其有效性。 数据上进行测试。实验发现,尽管模型在训练过 在训练时,本文采用批训练(batch)的方式来训练 程中没有感知到公路数据上的对象信息,但是在 C-ResNet18,每批次采样256张图片,并训练120 公路数据上仍然具有较好的性能,说明模型具有 轮。模型的训练学习率设置为0.1,采用简单的数 较好的泛化能力。 据增广策略,如随机裁剪和随机水平翻转。 2D图像 3D空间鸟瞰图 为了展示所提出的中心卷积的有效性,本文 检测 把ResNet18作为基线模型,并和C-ResNet18进行 对比。对比结果如表1所示。 表1在ImageNet上的分类准确率 Table 1 Classification accuracy on ImageNet olo 图6自动驾驶的检测任务 模型 top-1准确率 top-5准确率 Fig.6 A detection task toward the autopilot ResNet18-torchvision 69.76 89.08 芯片的计算效率是限制深度模型在车载系统 ResNet18-Ours 70.75 89.84 上应用的一个关键因素。本文采用常用的tda4 C-ResNet18 71.59 90.32 芯片来搭建对象检测算法验证系统。首先将训练
(a) 泊车数据 (b) 公路数据 图 5 泊车数据和公路数据 Fig. 5 Parking data and road data 成本是智能算法在自动驾驶场景面临的一个 重要的问题。自动驾驶场景复杂广泛,如果使用 全监督的方式进行数据标注,标注成本将不可估 量。其次,对象的 3D 信息是保障自动驾驶安全 可行的一种重要数据,但其采集设备代价昂贵, 不适合车辆量产。对此,本文设计了一套从 2D 图片到 3D 空间推断的对象检测流程。具体来 说,本文用泊车数据中的 2D 包围框和接地点训 练了所提出的基于中心卷积的对象检测模型 CRCenterNet,然后利用输出的 2D 框和接地点信息, 逆投影到世界坐标系中,得到对象的 3D 位置信 息,即输入是 2D 图像,输出是 3D 位置信息(这里 用鸟瞰图表示,如图 6 所示)。在训练阶段,CRCenterNet 只在泊车数据上训练,测试时只在公路 数据上进行测试。实验发现,尽管模型在训练过 程中没有感知到公路数据上的对象信息,但是在 公路数据上仍然具有较好的性能,说明模型具有 较好的泛化能力。 2D 图像 检测 算法 3D 空间鸟瞰图 图 6 自动驾驶的检测任务 Fig. 6 A detection task toward the autopilot 芯片的计算效率是限制深度模型在车载系统 上应用的一个关键因素。本文采用常用的 tda4 芯片来搭建对象检测算法验证系统。首先将训练 好的 CR-CenterNet 模型进行量化(如第 3 节内容 所述),然后注入到 tda4 芯片上进行运算。整体 的开发流程如图 7 所示。 C-ResNet18 预训练 CR-CenterNet 训练 CR-CenterNet 量化感知训练 CR-CenterNet 车规级芯片验证 ImageNet 泊车数据 公路数据 图 7 面向车规级芯片的检测系统构建 Fig. 7 Constructing the detection system on car-level chips 5 实验 5.1 中心卷积 在本节中,将验证所提出的中心卷积的有效 性。ImageNet 是目前国际上主流的大型图像分类 评测集,在人工智能的发展史上具有举足轻重的 地位。AlexNet[14] 、VGGNet[15] 、GoogleNet[16] 、ResNet[4] 和 DenseNet[17] 的成功都离不开 ImageNet,ImageNet 也已经成为计算机视觉领域的标准数据集。研 究者通常会使用 ImageNet 来验证新提出的模型 的有效性,然后在下游任务上进行验证,如对象检测[1-2,18] 、 实例分割[19-21] 、行人重识别[22-24] 等。 因此,本文在 ImageNet 上对 C-ResNet18 进行 了预训练,并在图像分类任务上展示其有效性。 在训练时,本文采用批训练(batch)的方式来训练 C-ResNet18,每批次采样 256 张图片,并训练 120 轮。模型的训练学习率设置为 0.1,采用简单的数 据增广策略,如随机裁剪和随机水平翻转。 为了展示所提出的中心卷积的有效性,本文 把 ResNet18 作为基线模型,并和 C-ResNet18 进行 对比。对比结果如表 1 所示。 表 1 在 ImageNet 上的分类准确率 Table 1 Classification accuracy on ImageNet % 模型 top-1准确率 top-5准确率 ResNet18-torchvision 69.76 89.08 ResNet18-Ours 70.75 89.84 C-ResNet18 71.59 90.32 ·904· 智 能 系 统 学 报 第 16 卷