一种面向点云的高效二值化神经网络量化方法及装置
1.本发明申请是2021年10月15日提交的名称为“一种面向点云的高效二值化神经网络量化方法及装置”、申请号为202111205851.6的发明申请的分案申请。
技术领域
2.本发明涉及一种面向点云的高效二值化神经网络量化方法,同时也涉及一种面向自动驾驶场景的需要,采用该神经网络量化方法的目标检测装置,属于深度学习技术领域。
背景技术:3.点云(point cloud),尤其是点云神经网络,已在各种计算机视觉应用,如自动驾驶、增强现实等中得到越来越多的关注。传统的点云通常具有海量参数和高计算完备性,针对单一任务的训练和推断过程需要耗费大量的时间。造成这一问题的主要原因是:目前在各个任务上取得最好成绩的模型普遍采用具有全精度的神经网络,使得这些模型需要使用大量的存储资源。同时许多应用程序需要实时交互和快速响应,但是点云的训练和推断过程中需要产生数量巨大的浮点数运算操作,例如,斯坦福大学的charles r.qi等人提出的pointnet具有大约3.5e6个参数,并且需要4.4e8个flop来处理单个样本。这在很大程度上限制了点云在便携式设备上的应用。尤其在自动驾驶场景中,车载计算设备的运算能力和存储能力往往是有限的,严重制约了点云神经网络在该场景下的应用前景。
4.近年来,研究者们已经提出了许多方法,使得深度神经网络能够在计算和存储资源有限的便携式设备上应用,包括网络权重量化、权值修剪、低秩分解、哈希映射,以及轻量级架构设计。其中,基于量化的方法以较低的比特数表示网络中的参数,但仍然能够得到较高的网络准确率和高度紧凑的神经网络模型。例如,神经网络模型的全二值化方法,将网络中原本32位的浮点数参数量化至1位表示,节省了参数的存储空间,能够最大程度地降低神经网络模型的存储占用消耗;同时将原本参数的计算由浮点数运算转化为位运算,减小了神经网络的计算量,极大地加速了网络推断过程。
5.在专利号为zl 201910222741.7的中国发明专利中,公开了一种基于轻量化卷积神经网络的目标检测与定位方法,包括如下步骤:实时采集车辆前方的图像数据和点云数据;将图像数据传输到目标检测模型,进行目标识别,获取目标信息;目标检测模型采用轻量化卷积神经网络;将获取的目标信息及点云数据输入到训练好的目标定位模型,进行目标定位,得到目标相对于车辆的位置信息。该方法实现了对静态、动态目标的实时检测和定位,使得车辆能够实时感知目标信息,及时地对目标进行避障处理,检测和识别结果具有较高的准确度,能够用于存在多个静态、动态目标的复杂场景,并且满足自动驾驶车辆的实时性检测定位要求。
技术实现要素:6.针对现有技术的不足,本发明所要解决的首要技术问题在于提供一种面向点云的高效二值化神经网络量化方法。
7.本发明所要解决的另一技术问题在于提供一种面向自动驾驶场景的需要,采用上述神经网络量化方法的目标检测装置。
8.为实现上述发明目的,本发明采用下述的技术方案:
9.根据本发明实施例的第一方面,提供一种面向点云的高效二值化神经网络量化方法,包括如下步骤:
10.在点云神经网络的训练过程中:在网络前馈传播过程,将特征聚合层的输入进行变换后,通过熵最大化的聚合函数聚合全局特征;在网络前馈传播过程,逐层恢复二值线性单元的输出尺度;在网络反向传播过程,使用梯度更新可学习的尺度恢复因子;
11.在点云神经网络的推断过程中:使用二值化的网络权重和网络激活值,并且仅使用训练好的尺度恢复因子进行输出尺度恢复。
12.其中较优地,在点云神经网络的训练过程中,对网络中的卷积层执行特征聚合步骤:在特征聚合层利用熵最大化的聚合函数进行特征聚合,获得保留最大信息熵的二值化特征输出,并进行神经网络推断,在反向传播时对网络权重和激活进行更新,从而生成二值化的点云神经网络。
13.其中较优地,所述特征聚合步骤包括如下子步骤:对于熵最大化的聚合函数,应用多层感知机对输入的每个点进行独立建模,然后以一个恒定的偏移量对输入进行移位操作,通过聚合函数将每个点的建模特征聚合为全局特征,最后获得的输出满足关于零对称的分布要求,并且使熵最大化,尽可能在量化后保留更多的信息。
14.其中较优地,对于点云神经网络中的原始输入y',对y'中的每一个值进行移位操作,偏移函数的计算公式定义为:τ(y
′
)=y
′‑
δ
*
,其中δ
*
是原始输入分布的偏移量;其中,所述原始输入y'来自于激光雷达实时扫描周边环境所获得的数据。
15.其中较优地,经过聚合函数φ聚合后的全局特征y满足∑
y<0fy
(y)=0.5的分布。
16.其中较优地,在点云神经网络的训练过程中,对网络中的卷积层执行逐层尺度恢复步骤:对网络中的二值化线性层使用可学习的尺度恢复因子,恢复输出到合理的尺度,在反向传播时对尺度恢复因子进行更新。
17.其中较优地,所述逐层尺度恢复步骤包括如下子步骤:对于逐层尺度恢复的二值化线性层,添加一个可学习的尺度恢复因子,将二值化后的输入与网络权重进行二值卷积,获得的输出与尺度恢复因子相乘,以恢复输出尺度。
18.其中较优地,所述尺度恢复因子α的初始化为二值化线性层的输出ba和bw全精度对应输出a和w之间的标准偏差之比,即
[0019][0020]
其中,σ表示标准偏差,和
⊙
均表示向量内积,
⊙
在计算过程中利用了逐位运算xnor和bitcount。
[0021]
其中较优地,通过将尺度恢复因子α与二值化线性层的输出ba和bw相乘,使得神经元输出z恢复到合理的比例。
[0022]
根据本发明实施例的第二方面,提供一种目标检测装置,包括通过内部总线连接的采集单元、处理单元及存储单元:其中,
[0023]
采集单元,用于实时采集车辆前方的图像数据和点云数据;
[0024]
处理单元,用于将图像数据实时传输到点云神经网络中进行目标识别,获取待检测的目标信息;其中,所述点云神经网络采用上述方法进行量化,以适应车载计算设备的要求;
[0025]
存储单元,用于存储所述采集单元采集的图像数据、点云数据及所述点云神经网络的数据。
[0026]
本发明提供的面向点云的高效二值化神经网络量化方法,使用熵最大化的聚合函数和逐层尺度恢复步骤,使点云神经网络可以通过训练过程中最小化损失函数,达到信息熵最大化和网络权重、激活量化损失最小化,从而减少量化损失,提高二值化点云神经网络的性能。本发明与按位运算完全兼容,具有快速推断量化神经网络的优点。事实表明,本发明在各种网络架构中的表现非常出色,在内存消耗,推理速度和准确性方面优于现有技术,尤其适合在自动驾驶场景中实现目标检测,以满足自动驾驶车辆的实时性检测定位要求。
附图说明
[0027]
图1为本发明提供的面向点云的高效二值化神经网络量化方法的流程图;
[0028]
图2为本发明实施例提供的熵最大化的聚合函数(emaf)的前馈传播过程示意图;
[0029]
图3为本发明提供的高效二值化神经网络量化方法与现有的pointnet方法在推理速度和存储需求上的比较图;
[0030]
图4为采用本神经网络量化方法的目标检测装置的示意图;
[0031]
图5为某个自动驾驶场景中,采集单元所采集的点云示例图。
具体实施方式
[0032]
下面结合附图和具体实施例对本发明的技术内容进行详细具体地说说明。
[0033]
相关研究表明,由于点云的数据结构与2d图像相比有着根本性差异。2d图像的像素是以规则的矩阵形式排列,这使得卷积神经网络(cnn)能够利用卷积核对相邻的像素之间的局部特征进行编码。而在点云的数据结构中,每个点的顺序在空间相似度上不包含任何信息,因此大多数解决2d视觉任务的二值化方法,并不能简单地转移到点云上。
[0034]
另一方面,现有的各类点云特征提取器通常具有两个共同的设计:首先,cnn内核被多层感知机(或全连接层)替代,将特征以“点”的形式处理;其次,利用池化层来聚合全局特征。这两个针对点云的特殊设计对于实现神经网络模型的全二值化提出了挑战。观察结果表明,当使用二进制表示时,神经网络模型的多样性和表达能力会受到极大的限制和损害,部分信息在传播途中丢失,这导致了准确性显著下降。同时,二值化过程导致输出尺度失真,破坏了尺度敏感结构的性能,阻碍了优化的过程。因此,如果没有一个精心设计的特征聚合层,以及恢复输出尺度的方法,将会进一步影响神经网络模型的准确率。
[0035]
为此,本发明实施例提供的高效二值化神经网络量化方法的基本思路在于一方面在特征聚合层利用熵最大化的聚合函数(entropy-maximizing aggregation function,简写为emaf),通过对聚合函数的输入进行简单的变换,获得使得信息熵最大化的全局特征,尽可能在二值化点云中保留更多信息;另一方面,使用逐层尺度恢复(layer-wise scale recovery,简写为lsr)步骤恢复被二值化过程破坏的输出尺度,通过在二值化线性层中加
入可学习的尺度恢复因子,使输出尺度恢复到合理的比例。下面,结合图1展开详细具体的说明。
[0036]
图1为本发明提供的面向点云的高效二值化神经网络量化方法的流程图,其中的倾斜虚线框代表熵最大化的聚合函数(emaf)步骤,竖直虚线框代表逐层尺度恢复(lsr)步骤。如图1所示,本发明实施例提供的高效二值化神经网络量化方法(简写为bipointnet),主要包括如下步骤:
[0037]
在点云神经网络的训练过程中:在网络前馈传播过程,将特征聚合层的输入进行变换后,通过熵最大化的聚合函数聚合全局特征;在网络前馈传播过程,逐层恢复二值线性单元的输出尺度;在网络反向传播过程,使用梯度更新可学习的尺度恢复因子。
[0038]
在点云神经网络的推断过程中:使用二值化的网络权重和网络激活值,并且仅使用训练好的尺度恢复因子进行输出尺度恢复。
[0039]
具体地说,在点云神经网络的训练过程中,对网络中的卷积层执行特征聚合步骤,即对输入的每个点进行独立建模,并以恒定的偏移量进行位移,在特征聚合层利用熵最大化的聚合函数(emaf)进行特征聚合,获得保留最大信息熵的二值化特征输出,并进行神经网络推断,在反向传播时对网络权重和激活进行更新,从而生成二值化的点云神经网络。
[0040]
另一方面,在点云神经网络的训练过程中,对网络中的卷积层执行逐层尺度恢复步骤,对网络中的二值化线性层使用可学习的尺度恢复因子,将二值化后的输入和网络权重进行二值卷积,得到的输出与尺度恢复因子相乘,使输出恢复输出到合理的尺度,在反向传播时对尺度恢复因子进行更新。
[0041]
下面,详细说明上述特征聚合步骤和逐层尺度恢复步骤的具体实施过程。
[0042]
特征聚合步骤:对于熵最大化的聚合函数(emaf),应用多层感知机对输入的每个点进行独立建模,然后以一个恒定的偏移量对输入进行移位操作,通过聚合函数将每个点的建模特征聚合为全局特征,最后获得的输出满足关于零对称的分布要求,并且使熵最大化,尽可能在量化后保留更多的信息。
[0043]
参见表1,特征聚合步骤具体包括如下子步骤:
[0044]
表1熵最大化的聚合函数(emaf)的前馈传播过程
[0045][0046]
具体地说,对于点云神经网络中的原始输入y',首先对y'中的每一个值进行移位操作,偏移函数的计算公式定义为:τ(y
′
)=y
′‑
δ
*
,其中δ
*
是原始输入分布的偏移量。在本发明的一个实施例中,该原始输入y'来自于激光雷达实时扫描周边环境所获得的数据。
[0047]
将获得的结果通过聚合函数φ进行聚合,得到量化后的全局特征,其计算公式如下:
[0048]
y=emaf(y
′
)=φ(τ(y
′
))
[0049]
其中,φ表示聚合函数,比如最大池化或平均池化;τ表示偏移函数,其定义为τ(y
′
)=y
′‑
δ
*
;y’是原始输入;δ
*
是原始输入的分布偏移量。通过求解最大信息熵的计算公式,得到对于原始输入y'来说,能够使得信息熵hb最大化的分布偏移δ
*
。
[0050]
当聚合函数φ表示最大池化时,其信息熵最大化的目标函数如下:
[0051][0052]
其中,n表示每次批处理的元素个数。通过计算,得到每个n对应的最优的分布偏移δ
*
。
[0053]
当聚合函数φ表示平均池化时,其信息熵最大化的目标函数为:
[0054][0055]
上述目标函数的解可以表示为nδ=0,而且由于n≥1,因此
[0056]
在经过池化层之后,特征聚合步骤的输出y应满足∑
y<0fy
(y)=0.5的分布。使用该步骤所得的输出,可以使得聚合后的特征的信息熵hb最大,使原始特征和量化后特征间的互信息最大化,即最大化地保留了量化特征中包含的原始特征信息。上述目标函数的解与n不相关,这一特性使其可以处理任意数量的点云输入。
[0057]
如图2所示,通过最大化输出的二进制特征b的信息熵,可以尽可能保留原始输入y'中的信息,减少对聚合函数的输出进行量化时的信息损失。
[0058]
逐层尺度恢复步骤:对于逐层尺度恢复的二值化线性层,添加一个可学习的尺度恢复因子,将二值化后的输入与网络权重进行二值卷积,获得的输出与尺度恢复因子相乘,以恢复输出尺度。
[0059]
参见表2,逐层尺度恢复步骤具体包括如下子步骤:
[0060]
表2可学习的尺度恢复因子(lsr)的前馈传播过程
[0061][0062]
具体地说,在二值化线性层中,设计一个可学习的尺度恢复因子α。其中,该尺度恢复因子α的初始化为二值化线性层的输出ba和bw全精度对应输出a和w之间的标准偏差之比,即
[0063][0064]
其中,σ表示标准偏差,和
⊙
均表示向量内积,但
⊙
在计算过程中利用了逐位运算xnor和bitcount。在训练过程中,尺度恢复因子α是可学习的,以保证恢复尺度可以调整。
[0065]
通过将尺度恢复因子α与二值化线性层的输出ba和bw相乘,使得神经元输出z恢复到合理的比例,计算公式如下:
[0066]
z=α(ba⊙bw
)
[0067]
为了进一步验证bipointnet在部署到现有便携式设备中时的效率,发明人在raspberry pi 4b上进一步实现了上述bipointnet的技术方案,采用1.5ghz 64位四核arm cpu cortex-a72,raspberry pi 3b采用1.2ghz 64位四核arm cpu cortex-a53。在图3中,发明人比较了bipointnet和pointnet,可以发现bipointnet比pointnet实现了14.7倍的推理速度提升和18.9倍的存储减少,而pointnet本身就是公认的快速和轻量级模型。
[0068]
前已述及,在自动驾驶场景中,车载计算设备的运算能力和存储能力往往是有限的,严重制约了点云神经网络在该场景下的应用前景。鉴于本发明实施例所提供的bipointnet的优异性能,发明人尝试在自动驾驶场景的目标检测环节应用该技术方案。
[0069]
为此,本发明还提供了一种面向自动驾驶场景的需要,采用上述神经网络量化方法的目标检测装置。如图4所示,该目标检测装置包括通过内部总线连接的采集单元、处理单元及存储单元:其中,采集单元,用于实时采集车辆前方的图像数据和点云数据;处理单元,用于将图像数据实时传输到点云神经网络中进行目标识别,获取待检测的目标信息;其中,所述点云神经网络采用上述高效二值化神经网络量化方法进行量化,以适应车载计算设备的要求;存储单元,用于存储所述采集单元采集的图像数据、点云数据及所述点云神经网络的数据。
[0070]
在本发明的一个实施例中,采集单元(lidar,light detection and ranging)包括车载的激光雷达及双目相机。其中,激光雷达用于采集如图5所示的点云数据,双目相机
用于采集图像数据。处理单元可以是中央处理器(cpu)、图形处理器(gpu)、现场可编程逻辑门阵列(fpga)、专用集成电路(asic)、数字信号处理(dsp)芯片等。存储单元可以是静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器等。处理单元所采用的目标检测算法可以采用多种现有的成熟算法实现,例如基于bev(bird’s eye view)的目标检测方法,基于camera/rang view的目标检测方法,基于point-wise feature的目标检测方法等,在此就不详细说明了。
[0071]
与现有技术相比较,本发明提供的面向点云的高效二值化神经网络量化方法,使用熵最大化的聚合函数和逐层尺度恢复的二值化线性层,使点云神经网络可以通过训练过程中最小化损失函数,达到聚合后的二值化特征信息熵最大化和网络权重、激活量化损失最小化,从而减少量化损失,提高二值化点云神经网络的性能。事实表明,本发明在各种网络架构中的表现非常出色,在内存消耗,推理速度和准确性方面优于现有技术,尤其适合在自动驾驶场景中实现目标检测,以满足自动驾驶车辆的实时性检测定位要求。
[0072]
上面对本发明所提供的面向点云的高效二值化神经网络量化方法及装置进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质内容的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。
技术特征:1.一种面向点云的高效二值化神经网络量化方法,其特征在于包括如下步骤:在点云神经网络的训练过程中:在网络前馈传播过程,将特征聚合层的输入进行变换后,通过熵最大化的聚合函数聚合全局特征;在网络前馈传播过程,逐层恢复二值线性单元的输出尺度;在网络反向传播过程,使用梯度更新可学习的尺度恢复因子;在点云神经网络的推断过程中:使用二值化的网络权重和网络激活值,并且仅使用训练好的尺度恢复因子进行输出尺度恢复。2.如权利要求1所述的高效二值化神经网络量化方法,其特征在于:在点云神经网络的训练过程中,对网络中的卷积层执行特征聚合步骤:在特征聚合层利用熵最大化的聚合函数进行特征聚合,获得保留最大信息熵的二值化特征输出,并进行神经网络推断,在反向传播时对网络权重和激活进行更新,从而生成二值化的点云神经网络。3.如权利要求2所述的高效二值化神经网络量化方法,其特征在于:所述特征聚合步骤包括如下子步骤:对于熵最大化的聚合函数,应用多层感知机对输入的每个点进行独立建模,然后以一个恒定的偏移量对输入进行移位操作,通过聚合函数将每个点的建模特征聚合为全局特征,最后获得的输出满足关于零对称的分布要求,并且使熵最大化。4.如权利要求3所述的高效二值化神经网络量化方法,其特征在于:对于点云神经网络中的原始输入y',对y'中的每一个值进行移位操作,偏移函数的计算公式为:τ(y
′
)=y
′‑
δ
*
,其中δ
*
是原始输入分布的偏移量;其中,所述原始输入y'来自于激光雷达实时扫描周边环境所获得的数据。5.如权利要求4所述的高效二值化神经网络量化方法,其特征在于:经过聚合函数φ聚合后的全局特征y满足∑
y<0
f
y
(y)=0.5的分布。6.如权利要求1所述的高效二值化神经网络量化方法,其特征在于:在点云神经网络的训练过程中,对网络中的卷积层执行逐层尺度恢复步骤:对网络中的二值化线性层使用可学习的尺度恢复因子,恢复输出到合理的尺度,在反向传播时对尺度恢复因子进行更新。7.如权利要求6所述的高效二值化神经网络量化方法,其特征在于:所述逐层尺度恢复步骤包括如下子步骤:对于逐层尺度恢复的二值化线性层,添加一个可学习的尺度恢复因子,将二值化后的输入与网络权重进行二值卷积,获得的输出与尺度恢复因子相乘,以恢复输出尺度。8.如权利要求7所述的高效二值化神经网络量化方法,其特征在于:所述尺度恢复因子α的初始化为二值化线性层的输出ba和bw全精度对应输出a和w之间的标准偏差之比,即其中,σ表示标准偏差,和
⊙
均表示向量内积,
⊙
在计算过程中利用了逐位运算xnor和bitcount。9.如权利要求8所述的高效二值化神经网络量化方法,其特征在于:
通过将尺度恢复因子α与二值化线性层的输出ba和bw相乘,使得神经元输出z恢复到合理的比例。10.一种目标检测装置,其特征在于包括通过内部总线连接的采集单元、处理单元及存储单元:其中,采集单元,用于实时采集车辆前方的图像数据和点云数据;处理单元,用于将图像数据实时传输到点云神经网络中进行目标识别,获取待检测的目标信息;其中,所述点云神经网络采用权利要求1~9中任意一项所示的方法进行量化,以适应车载计算设备的要求;存储单元,用于存储所述采集单元采集的图像数据、点云数据及所述点云神经网络的数据。
技术总结本发明公开了一种面向点云的高效二值化神经网络量化方法及装置。该方法使用熵最大化的聚合函数和逐层尺度恢复步骤,使点云神经网络可以通过训练过程中最小化损失函数,达到信息熵最大化和网络权重、激活量化损失最小化,从而减少量化损失,提高二值化点云神经网络的性能。本发明与按位运算完全兼容,具有快速推断量化神经网络的优点。事实表明,本发明在各种网络架构中的表现非常出色,在内存消耗,推理速度和准确性方面优于现有技术,尤其适合在自动驾驶场景中实现目标检测,以满足自动驾驶车辆的实时性检测定位要求。车辆的实时性检测定位要求。车辆的实时性检测定位要求。
技术研发人员:刘祥龙 秦浩桐 丁一芙
受保护的技术使用者:北京航空航天大学
技术研发日:2021.10.15
技术公布日:2022/11/1