针对基于CNN的立体匹配算法的量化方法技术

技术编号:25711191 阅读:30 留言:0更新日期:2020-09-23 02:57
本发明专利技术公开了一种针对基于CNN的立体匹配算法的量化方法,包括:在推理过程中,采用线性定点化的方式,将浮点形式的权重量化为整数值;单个卷积运算中,将量化后的输入特征图与量化后的权重进行整数运算,整数运算使用累加器进行乘积累加,累加器中引入了带量化的偏置加法,偏置项使用与权重相同的方式量化;累加器的输出进入激活层,激活层采用ReLU6()函数将最终输出控制在设定的范围内。该方法可以极大的减少存储量和浮点运算次数,从而为卷积神经网络部署在资源有限的嵌入式平台上做准备。

【技术实现步骤摘要】
针对基于CNN的立体匹配算法的量化方法
本专利技术涉及立体视觉技术与深度学习领域,尤其涉及一种针对基于CNN的立体匹配算法的量化方法。
技术介绍
立体视觉是计算机视觉领域中一个热门研究话题,并广泛应用于机器人导航、无人机、自动驾驶汽车、物体检测和识别等方面。双目立体视觉的目标是利用左右图像之间的视差,恢复出物体的深度信息。而立体匹配作为双目立体视觉中和核心步骤,其算法的精度对立体视觉系统的影响很大。立体匹配的目的就是计算出参考图像每个像素点的视差值d。其基本原理为给定一组经过校正的立体图像对,左图像中的像素点p(x,y),在右图像上的对应匹配点为p’(x-d,y),则该像素的深度就可以由fB/d计算而来,其中f为相机的焦距,B为左右相机光心之间的距离。早期的工作根据原始图像的信息(如像素强度、梯度等信息)来计算初始匹配代价,再通过窗口完成代价的聚合,最后在整个图像范围内根据聚合代价选择最优的视差。其又分为局部算法和全局匹配算法。近年来,随着深度学习的急速发展,神经网络在计算机视觉领域发挥着日益重要的作用,其迅速应用于立体匹配领域,当前立体匹配领域精度最为先进的算法都使用到了卷积神经网络(ConvolutionalNeuralNetwork,CNN)。JureZbontar和YannLecun首次将CNN应用在立体匹配算法中,通过设计一个深层的Siamese网络去计算匹配代价,然后利用一块9*9的图块,该网络被训练去学习预测图块之间的相似性,其算法的精度远高于传统的立体匹配算法。之后,Shaked和Wolf提出了一个高速网络去计算匹配代价和一个全局的视差网络来预测视差置信度得分。目前,用于预测整个视差图并且无需进行后处理的端到端的网络得到了极大的发展。Kendall等人提出了GC-Net网络,并使用了多尺度特征结合的三维卷积神经网络来调整匹配代价空间。最后通过视差回归获取高精度的视差图。Chang等人提出一个全新的金字塔立体匹配网络来获取不同尺度上的特征,并结合沙漏堆叠的三维卷积神经网络来更好地利用上下文信息,从而获得了非常精确的视差图。基于CNN的端到端的立体匹配算法框架基本分为以下几个步骤,第一步通过卷积神经网络提取出左图和右图的特征图,根据视差的原理,将右视图获得的特征图向右平移,并与左视图生成的特征图融合在一起形成四维的代价空间,然后使用三维卷积神经网络对代价空间进行规整,最后通过视差回归输出精准的视差图。在整个算法中,CNN占据了绝大多数的计算量,而且在计算过程中,会产生大量的中间数据,这带来了对存储器、功率以及计算能力的大量需求,极大地限制了其在便携式设备中的应用。因此,有必要对网络模型进行压缩,同时减少对内存和计算能力的要求。模型压缩的方法大致分为四个方案:参数修剪和共享、低秩分解、紧凑卷积滤波器和知识蒸馏。针对立体匹配问题,参数量化是一种高效的模型压缩方法。通过将32位全浮点数的网络量化为低bit的参数(比如8bit、4bit或1bit等),可以有效减少参数的冗余,从而减少存储占用、通信带宽和计算复杂度。它有利于卷积神经网络在人工智能芯片中的轻量级应用。目前,已经有很多关于神经网络量化的方案。Jacob等人提出了仅整数算术推理的量化方法,将weights和输入数据量化为uint8,bias量化为uint32,这是一种非线性量化的方法,具有很广泛的应用。但需要进行模拟量化训练来寻找非线性量化过程中每个通道的激活输出层和权重层的最大值和最小值数据,并依据这些最大最小值来进行量化,过程较为繁琐。此外,二值化网络比如XNOR、BNN、HORQ等网络将网络模型的激活和权重量化为1bit,使网络压缩可以达到最大化,但是这些算法尚未在合理的基准架构上评估现有方法,最常见的基准架构,AlexNet,VGG,GoogleNet都被设计过分参数冗余,因此,很容易获得这些架构的可观压缩。仅量化权重的方法主要与设备上存储有关,而与计算效率无关。
技术实现思路
本专利技术的目的是提供一种针对基于CNN的立体匹配算法的量化方法,可以极大的减少存储量和浮点运算次数,从而为卷积神经网络部署在资源有限的嵌入式平台上做准备。本专利技术的目的是通过以下技术方案实现的:一种针对基于CNN的立体匹配算法的量化方法,包括:在推理过程中,采用线性定点化的方式,将浮点形式的权重量化为整数值;单个卷积运算中,将量化后的输入特征图与量化后的权重进行整数运算,整数运算使用累加器进行乘积累加,累加器中引入了带量化的偏置加法,偏置项使用与权重相同的方式量化;累加器的输出进入激活层,激活层采用ReLU6()函数将最终输出控制在设定的范围内。由上述本专利技术提供的技术方案可以看出,通过将神经网络当中的权重和偏置项由32bit浮点数转换为定点数,能够极大降低网络模型的大小,减少存储量。并在此基础上,提出了一种基于整数算术矩阵乘法的方案,通过将浮点数运算转化为定点数运算,从而减少中间缓存大小,并提高计算效率。结合本专利技术上述量化方案,不仅可以减少内存消耗和浮点运算次数,而且精度损失很小。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本专利技术实施例提供的基于卷积神经网络的立体匹配算法的基本框架示意图;图2为本专利技术实施例提供的单个卷积层中整数算术矩阵乘法运算的示意图;图3为本专利技术实施例提供的单个卷积层中包含BN层的整数算术矩阵乘法的示意图。具体实施方式下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。本专利技术实施例提供一种针对基于CNN的立体匹配算法的量化方法,其中CNN主要用于图像特征的提取,代价空间的规整等过程,占据着整个算法的绝大部分的计算量。因此,对卷积神经网络进行量化处理,会带来计算效率以及资源存储方面极大的改善。针对神经网络当中的权值和偏置,本专利技术实施例采取了一种线性定点化的方式,其实现方式如下,量化值用q表示,实际对应的浮点数用r表示。但为了确保网络的精度,在训练过程中依旧使用浮点数来进行计算,而在推理过程当中,转换为整数算法。这两种算法都保持着高度的对应性。量化的基本要求是允许对量化值使用整数算术运算来代替浮点运算,这等效于要求量化方案是整数q到实数r之间的映射,整数值q到实数值r之间的量化映射如公式(1)所示:r=Sq(1)其中,常数S是量化参数(尺度),其指定了量化的步幅。可以为任意实数,在软件中可以表示浮点数,该公式相较于非线性量化方式而言,避免了在网络计算过程中引入零点,从而带来计算负担,而且实施更为简便。确本文档来自技高网
...

【技术保护点】
1.一种针对基于CNN的立体匹配算法的量化方法,其特征在于,包括:/n在推理过程中,采用线性定点化的方式,将浮点形式的权重量化为整数值;/n单个卷积运算中,将量化后的输入特征图与量化后的权重进行整数运算,整数运算使用累加器进行乘积累加,累加器中引入了带量化的偏置加法,偏置项使用与权重相同的方式量化;累加器的输出进入激活层,激活层采用ReLU6()函数将最终输出控制在设定的范围内。/n

【技术特征摘要】
1.一种针对基于CNN的立体匹配算法的量化方法,其特征在于,包括:
在推理过程中,采用线性定点化的方式,将浮点形式的权重量化为整数值;
单个卷积运算中,将量化后的输入特征图与量化后的权重进行整数运算,整数运算使用累加器进行乘积累加,累加器中引入了带量化的偏置加法,偏置项使用与权重相同的方式量化;累加器的输出进入激活层,激活层采用ReLU6()函数将最终输出控制在设定的范围内。


2.根据权利要求1所述的采用线性定点化的方式,其特征在于,所述将浮点形式的权重量化为整数值包括:
将浮点形式的权重量化为int8,即位宽为8bit的整数值;其中,第1个bit为符号位,1代表为负数,0代表值为正,第2个bit为整数位;后6个bit为小数位;
量化公式表示为:






xQ=clamp(-(Nlevel-1),(Nlevel-1),xint)



其中,x表示浮点形式的权重,其为实数值;S表示量化参数,round(.)表示四舍五入的函数;N1表示小数位所占位宽,也即N1=6;Nlevel=28-1;xQ表示权重量化后得到的整数值。


3.根据权利要求1所述的采用线性定点化的方式,其特征在于,将量化后的输入特征图与量化后的权重进行整数运算包括:
假设浮点形式的特征图r1与浮点形式的权重r2的大小均为N×N;计算r1与r2的乘积表示为:r3=r1r2;
将矩阵rα第i行第j列元素表示为其中1≤i,j≤N,并且将其量化为Sα的量化参数,量化后的矩阵qα第i行第j列元素表示为则:



根据矩阵乘法的定义:



得到:



其中,k表示矩阵中的列号,1≤k≤N,Sα表示矩阵rα的量化参数;
将q...

【专利技术属性】
技术研发人员:鲁志敏王君鹏陈松
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1