一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种利用卷积运算进行图像缩放加速的目标检测方法

2022-12-02 19:11:58 来源:中国专利 TAG:


1.本发明属于图像处理技术领域,涉及一种利用卷积运算进行图像缩放加速的目标检测方法。


背景技术:

2.随着人工智能技术的发展,深度学习在多场景中获得了高精度的目标检测和识别结果,与此同时城市、社会的智能化发展对于视频流的分析需求越来越大,越来越多的人工智能应用走向落地,越来越多的深度学习模型需要部署在移动端设备上。而图像缩放是深度学习算法必需的数据预处理步骤,具体来说就是将原始图像尺寸缩放到神经网络输入尺寸。
3.传统的图像缩放算法大多数是通过不同的插值算法来完成。
4.(1)最近邻插值法、双线性插值法:
5.最近领插值法通过缩放公式计算目标图像中的点(x
dst
,y
dst
)对应的源图像中的点(x
src
,y
src
),四舍五入得到源图像坐标,用源图像中的像素值去填充目标图像。这是一种最基本、最简单的图像缩放算法。效果并不好,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真。
[0006][0007]
双线性插值法,是在图像放大时最常使用的算法,运行效率比其他算法高,图像质量尚可。双线性是在两个方向分别进行一次线性插值,如图1所示已知x
i,j
,x
i,j 1
,x
i 1,j
,x
i 1,j 1
点处像素值,在y
m,n
点进行插值。
[0008]ym,n
=abx
i,j
a(1-b)x
i 1,j
(1-a)bx
i,j 1
(1-a)(1-b)x
i 1,j 1
ꢀꢀꢀꢀꢀꢀ
(2)
[0009]
a为插值点到右下角点x
i 1j 1
的x方向距离,b为插值点到右下角点x
i 1j 1
的y方向距离。
[0010]
(2)基于边缘的图像插值算法:
[0011]
为了克服传统方法的不足,提出了许多边缘保护的插值方法,对插值图像的边缘有一定的增强,使得图像的视觉效果更好,缺点是运行效率很低。
[0012]
(3)基于区域的图像插值算法:
[0013]
在缩小图像时,使用区域插值方式能够得到最好的效果。这种算法根据当前像素点周边区域的像素实现当前像素点的采样,关键在于确定采样区域的大小,这种方法程序实现简单且有效。
[0014]
使用数字图像处理的传统算法在移动端cpu(中央处理器)上的执行效率低、耗时长。除了传统的图像处理算法之外,也有一些使用深度学习网络来重建图像的方法。图像超分辨率(image sr)的深度学习模型可以用来从低分辨率图像中预测出细节不同的高质量、高分辨率图像。也有一些将高分辨率图像下采样到视觉效果较好的低分辨率图像的深度学习算法。基于深度学习的方式,它们的缺点是模型有些过于复杂,且需要对应用的数据集进
行训练,不便于应用在深度学习的图像预处理部分。


技术实现要素:

[0015]
为了解决现有技术中存在的上述问题,本发明提供了一种利用卷积运算进行图像缩放加速的目标检测方法。本发明要解决的技术问题通过以下技术方案实现:
[0016]
本发明实施例提供了一种利用卷积运算进行图像缩放加速的目标检测方法,所述目标检测方法包括:
[0017]
步骤1、获取待处理的源图像;
[0018]
步骤2、基于目标尺寸确定待处理的源图像的处理方法,以确定所述待处理的源图像的无拉伸缩放系数,其中,所述处理方法包括放大或者缩小;
[0019]
步骤3、在所述待处理的源图像进行缩小处理时,所述待处理的源图像进入卷积下采样单元,得到同比例缩放图像,或者,在所述待处理的源图像进行放大处理时,所述待处理的源图像进入卷积上采样单元,得到同比例缩放图像;
[0020]
步骤4、根据补边长度计算公式对所述同比例缩放图像进行补边操作,得到大小为所述目标尺寸的最终的缩放图像;
[0021]
步骤5、将所述最终的缩放图像输入至目标检测器进行目标检测,得到检测结果。
[0022]
在一个发明实施例中,所述步骤2包括:
[0023]
步骤2.1、根据所述目标尺寸判断所述待处理的源图像进行缩小处理还是进行放大处理;
[0024]
步骤2.2、在所述待处理的源图像进行缩小处理时,利用缩小计算公式计算无拉伸缩放系数;或者,在所述待处理的源图像进行放大处理时,利用放大计算公式计算无拉伸缩放系数。
[0025]
在一个发明实施例中,所述缩小计算公式为:
[0026][0027]
所述放大计算公式为:
[0028][0029]
其中,scale为无拉伸缩放系数,netw为目标尺寸中的宽度,neth为目标尺寸中的高度,imgw为待处理的源图像的宽度,imgh为待处理的源图像的高度。
[0030]
在一个发明实施例中,在所述待处理的源图像进入卷积下采样单元得到的同比例缩放图像的大小表示为:
[0031][0032][0033]
其中,netw'为同比例缩放图像的宽度,neth'为同比例缩放图像的高度,p为补零层数,k为卷积核大小,s1为第一步幅,s1=[scale],[
·
]为向下取整。
[0034]
在一个发明实施例中,在所述待处理的源图像进行放大处理时,所述待处理的源图像进入卷积上采样单元,得到同比例缩放图像,包括:
[0035]
s1、在所述待处理的源图像的四周填充k-p-1行、0列的像素点,在所述待处理的源图像中的有效像素点间填充s-1行、0列的像素点,其中,k为卷积核大小,s为步幅,p为补零层数;
[0036]
s2、将卷积核先沿竖直中心线进行对称翻转、再沿水平中心线进行翻转,得到翻转后的卷积核,基于所述翻转后的卷积核进行卷积运算得到所述同比例缩放图像。
[0037]
在一个发明实施例中,在所述待处理的源图像进入卷积上采样单元得到的同比例缩放图像的大小表示为:
[0038]
netw'=(img
w-1)
×s2-2
×
p k
[0039]
neth'=(img
h-1)
×s2-2
×
p k
[0040]
其中,netw'为同比例缩放图像的宽度,neth'为同比例缩放图像的高度,p为补零层数,k为卷积核大小,s2为第二步幅,s2=2
·
[scale]-[scale]mod 2,[
·
]为向下取整。
[0041]
在一个发明实施例中,在步骤s2之前,还包括:
[0042]
在计算当前的卷积核参数时,基于插值公式,根据转置卷积窗口内的a2个有效像素点和插值点得到当前的卷积核参数;
[0043]
按照预设方向移动转置卷积窗口,继续计算移动后的转置卷积窗口对应的卷积核参数,直至得到所有的卷积核参数。
[0044]
在一个发明实施例中,所述插值公式为:
[0045][0046]
其中,y
m,n
为插值结果,(m,n)为插值点,为坐标位置为(x0 i,y0 j)的有效像素点,是有效像素点(x0 i,y0 j)与插值点(m,n)距离相关的系数,(x0,y0)为转置卷积窗口左上角的像素坐标点,i、j为转置卷积窗口内有效像素点的二维索引。
[0047]
在一个发明实施例中,所述补边长度计算公式为:
[0048][0049]
其中,padw为x方向所需要的补边长度,padh为y方向所需要的补边长度,scale为无拉伸缩放系数,netw为目标尺寸中的宽度,neth为目标尺寸中的高度,imgw为待处理的源图像的宽度,imgh为待处理的源图像的高度。
[0050]
与现有技术相比,本发明的有益效果:
[0051]
本发明的方法所采用的卷积下采样单元、卷积上采样单元和补边操作不需要繁琐的模型训练过程,仅使用深度学习框架中的基本算子,可以直接添加在目标检测器前,将图像缩放合并进深度学习模型形成一个统一模型,提高了目标检测的效率。
[0052]
传统的图像缩放运行在cpu上,在嵌入式开发板上很耗时、低效,而本发明所提供的目标检测方法可以运用在npu、gpu或者tpu多种平台。
[0053]
本发明实施例利用卷积下采样单元/卷积上采样单元实现了图像的无拉伸缩放。
[0054]
通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定,这是因为其应当参考附加的权利要求。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。
附图说明
[0055]
图1是本发明实施例提供的一种利用卷积运算进行图像缩放加速的目标检测方法的流程示意图;
[0056]
图2是本发明实施例提供的另一种利用卷积运算进行图像缩放加速的目标检测方法的流程示意图;
[0057]
图3是本发明实施例提供的一种填充后的图像示意图;
[0058]
图4是本发明实施例提供的一种卷积核翻转过程的示意图;
[0059]
图5是本发明实施例提供的一种利用双线性插值法进行插值的示意图;
[0060]
图6是本发明实施例提供的一种没有边界填充点的转置卷积窗口的示意图;
[0061]
图7是本发明实施例提供的一种转置卷积核参数计算的示意图;
[0062]
图8是本发明实施例提供的一种图像缩放模块和目标检测器的结构示意图。
具体实施方式
[0063]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0064]
实施例一
[0065]
深度学习模型部署应用时,通常需要将源图像缩放至网络输入尺寸,这属于图像预处理部分的内容。传统的图像缩放算法在移动端轻量级设备上执行速度不佳,会堵塞模型推理,严重影响人工智能相关成果在移动设备上的应用。在人工智能平台上必然存在着一个用于神经网络推理的模块,无论是gpu(图形处理器)、npu(神经网络处理器)或者是tpu(张量处理器)等,它们都可以进行卷积并行计算,本文利用深度学习中的卷积操作高效地实现图像缩放,解决移动端设备上图像缩放慢的问题。
[0066]
基于此,请参见图1和图2,图1是本发明实施例提供的一种利用卷积运算进行图像缩放加速的目标检测方法的流程示意图,图2是本发明实施例提供的另一种利用卷积运算进行图像缩放加速的目标检测方法的流程示意图,本发明提供一种利用卷积运算进行图像缩放加速的目标检测方法,该目标检测方法包括步骤1-步骤5,其中:
[0067]
步骤1、获取待处理的源图像。
[0068]
其中,待处理的源图像为用于进行目标检测的图像,目标例如可以为人、车、动物等。
[0069]
步骤2、基于目标尺寸确定待处理的源图像的处理方法,以确定待处理的源图像的无拉伸缩放系数,其中,处理方法包括放大或者缩小。其中,目标尺寸为需要输入至目标检测器中用于进行目标检测的尺寸大小,无拉伸缩放系数为对待处理的源图像进行放大或者缩小时对应的系数。
[0070]
在一个具体实施例中,步骤2可以包括:
[0071]
步骤2.1、根据目标尺寸判断待处理的源图像进行缩小处理还是进行放大处理。
[0072]
也就是说,当目标尺寸大于待处理的源图像的尺寸时,则对待处理的源图像进行放大处理,当目标尺寸小于待处理的源图像的尺寸时,则对待处理的源图像进行缩小处理。
[0073]
步骤2.2、在待处理的源图像进行缩小处理时,利用缩小计算公式计算无拉伸缩放系数;或者,在待处理的源图像进行放大处理时,利用放大计算公式计算无拉伸缩放系数。
[0074]
也就是说,根据目标尺寸大小先判断待处理的源图像需要缩小还是放大,然后选择缩小计算公式或放大计算公式计算无拉伸缩放系数。
[0075]
其中,缩小计算公式为:
[0076][0077]
放大计算公式为:
[0078][0079]
其中,scale为无拉伸缩放系数,netw为目标尺寸中的宽度,neth为目标尺寸中的高度,imgw为待处理的源图像的宽度,imgh为待处理的源图像的高度。
[0080]
步骤3、在待处理的源图像进行缩小处理时,待处理的源图像进入卷积下采样单元,得到同比例缩放图像,或者,在待处理的源图像进行放大处理时,待处理的源图像进入卷积上采样单元,得到同比例缩放图像。
[0081]
在一个具体实施例中,当待处理的源图像需要进行缩小时,源图像进入卷积下采样单元时,使用卷积运算来代替下采样,关键在于确定卷积核的大小、步长、补零层数及权重。在一般情况下,输入的待处理的源图像大小为imgw×
imgh,卷积核大小为k,第一步幅为s1,补零层数为p,则经卷积下采样单元卷积后的特征图(即同比例缩放图像)的大小netw'
×
neth'的计算公式为:
[0082][0083][0084]
其中,netw'为同比例缩放图像的宽度,neth'为同比例缩放图像的高度,p为补零层数,k为卷积核大小,s1为第一步幅,s1=[scale],[
·
]为向下取整。
[0085]
根据基于面积插值的缩放算法,在实现卷积下采样单元的一个具体实施例中,令卷积核k=3,补零层数为p=0,结合卷积特征图计算公式,此时下采样倍数完全取决于s1。假设需要缩小系数为scale,则s=[scale]。在卷积权重的设计上,采用均值滤波的思想,将卷积层的权重固定为1/k2。
[0086]
在另一个具体实施例中,在待处理的源图像进行放大处理时,待处理的源图像进入卷积上采样单元,得到同比例缩放图像,包括:
[0087]
s1、在待处理的源图像的四周填充k-p-1行、0列的像素点,在待处理的源图像中的有效像素点间填充s-1行、0列的像素点,其中,k为卷积核大小,s为步幅,p为补零层数。
[0088]
也就是说,使用转置卷积来完成上采样,转置卷积计算前需要在待处理的源图像的四周以及有效像素点之间进行填充,且所填充的像素点的像素值为0,填充效果如图3所示,其中,待处理的源图像若进入卷积下采样单元,则步幅s为第一步幅s1,若待处理的源图像若进入卷积下采样单元,则步幅s为第二步幅s2。
[0089]
s2、将卷积核先沿竖直中心线进行对称翻转、再沿水平中心线进行翻转,得到翻转后的卷积核,基于翻转后的卷积核进行卷积运算得到同比例缩放图像。其中,请参见图4,图4中的(a)为未翻转的卷积核,图4中的(b)为沿竖直中心线进行对称翻转后的卷积核,图4中的(c)为沿水平中心线进行对称翻转后的卷积核。
[0090]
具体的,将卷积核参数进行左右、上下翻转后,利用翻转后的卷积核对填充后的图像进行正常卷积运算,得到经卷积上采样单元卷积后的特征图(即同比例缩放图像),该同比例缩放图像的大小netw'
×
neth'的计算公式为:
[0091]
netw'=(img
w-1)
×s2-2
×
p k
[0092]
neth'=(img
h-1)
×s2-2
×
p k
[0093]
其中,netw'为同比例缩放图像的宽度,neth'为同比例缩放图像的高度,p为补零层数,k为卷积核大小,s2为第二步幅,s2=2
·
[scale]-[scale]mod 2,[
·
]为向下取整。
[0094]
在构造卷积上采样单元时,先根据无拉伸缩放系数确定第二步幅s2,s2=2
·
[scale]-[scale]mod 2。在k的选择上,为了保证在滑动卷积窗口内始终有若干个有效像素点落在窗口内,使k=as2,a=2,3...,a为滑动卷积窗口内x方向或y方向上每行或每列具有的有效像素点的数量。而p的取值可由s2、k、imgw、imgh、netw'和neth'唯一确定。
[0095]
另外,在卷积上采样单元的卷积核的参数未定的情况下,在进行步骤s2之前,需要先确定卷积核的参数,因此,本实施例还提供了卷积核的参数的获取方法,包括:
[0096]
在计算当前的卷积核参数时,基于插值公式,根据转置卷积窗口内的a2个有效像素点和插值点位置关系得到有效点同位置的a2个卷积核参数;按照预设方向移动转置卷积窗口,继续按照上述步骤计算移动后的转置卷积窗口对应的a2个卷积核参数,直至得到所有的卷积核参数,其中,转置卷积窗口为卷积核所形成的窗口,即当前卷积核所对应的填充后的图像的区域即为转置卷积窗口所对应的区域。预设方向为从左到右、从上到下的方向。
[0097]
具体的,首先需要知道转置卷积窗口内含a2个有效像素点,然后需要根据这a2个有效像素点构造出一个插值公式,该插值公式表示为:
[0098][0099]
其中,(m,n)为插值点(也即采样点),y
m,n
为插值结果,即采样点(m,n)的像素值,为坐标位置为(x0 i,y0 j)的有效像素点,(x0,y0)为转置卷积窗口左上角的像素坐标点,i、j为转置卷积窗口内有效像素点的二维索引。
[0100]
是有效像素点(x0 i,y0 j)与采样点(m,n)距离相关的一个系数,具体值可根据插值算法计算。本实施例通过卷积操作反推出卷积核参数,在当前转置卷积窗口所在位置,可由a2个有效像素点推出一个插值点,卷积核的参数设置为一次迭代完成后移动卷积核(即转置卷积窗口)进行下一次卷积核参数的计算,可以计算出卷积核
中其他位置的参数值,直至所有的卷积核参数都计算完毕。
[0101]
优选的,本实施例采用双线性插值的方法,设置a=2,即当前的转置卷积窗口内有a2=4个有效像素点,插值点和有效像素点的坐标如图5所示,其中a2个有效像素点的像素值为(x
ij
,x
ij 1
,x
i 1j
,x
i 1j 1
),则转置卷积窗口内部任意点插值计算公式:
[0102]ym,n
=abx
i,j
a(1-b)x
i 1,j
(1-a)bx
i,j 1
(1-a)(1-b)x
i 1,j 1
[0103]
其中,y
m,n
是插值结果,a为插值点到右下角的有效像素点x
i 1j 1
的x方向距离,b为插值点到右下角的有效像素点x
i 1j 1
的y方向距离。使用转置卷积时图像边界用0填充,如果转置卷积窗口包括边界填充点,则转置卷积窗口内不能满足a2个有效像素点,在计算卷积核参数时考虑没有边界填充点的情形,第一个转置卷积窗口如图6所示。因此,按照卷积操作反推卷积核参数,具体数值的计算如图7所示。首先需要计算插值点m,n数值:
[0104]
m=n=scale-0.5
[0105]
由上式确定插值点m,n的为之后,便可以确定像素插值点y
m,n
,然后计算插值点到x
i 1j 1
的距离a和b,再计算y
m,n
双线性插值公式中的四个相应系数作为卷积核参数(ab,a(1-b),(1-a)b,(1-a)(1-b))。一次迭代完成后移动卷积核进行下一次卷积核参数的计算,可以计算出卷积核中其他位置的参数值,直至所有的卷积核参数都计算完毕。
[0106]
步骤4、根据补边长度计算公式对同比例缩放图像进行补边操作,得到大小为目标尺寸的最终的缩放图像。
[0107]
具体的,通过在得到同比例缩放图像后,可以将其它由步骤3得到经卷积上采样单元或卷积下采样单元处理后的同比例缩放图像通过补边长度计算公式进行补边操作,该补边长度计算公式为:
[0108][0109]
其中,padw为x方向所需要的补边长度,padh为y方向所需要的补边长度,scale为无拉伸缩放系数,netw为目标尺寸中的宽度,neth为目标尺寸中的高度,imgw为待处理的源图像的宽度,imgh为待处理的源图像的高度。其中,如果padw或padh不为0,则在相应方向上用0填充至目标尺寸。
[0110]
需要说明的是,图像是三通道的,卷积上采样单元或卷积下采样单元处理后的同比例缩放图像与其它两个通道拼接后在进行补边操作。
[0111]
步骤5、将最终的缩放图像输入至目标检测器进行目标检测,得到检测结果。
[0112]
具体的,将目标检测器的网络输入尺寸作为图像缩放模块(包括上/下采样和补边对齐操作)的目标尺寸,例如以视频流的图像作为图像缩放模块的输入,通过步骤1至4得到输入至目标检测器的目标尺寸的图像,以此通过目标检测器检测出源图像中的目标。如图8所示,本实施例通过图像缩放模块 目标检测器的方式,使得目标检测器具有输入任意尺寸的功能,形成图像源文件至推理结果端到端的深度学习部署模型,由此可以实现对目标的检测。
[0113]
例如,目标检测器为yolov5-s。
[0114]
本发明实施例所提供的目标检测方法可以运用在npu、gpu或者tpu多种平台;本发
明实施例利用卷积下采样单元/卷积上采样单元实现了图像的无拉伸缩放;本发明的方法所采用的卷积下采样单元、卷积上采样单元和补边操作不需要繁琐的模型训练过程,仅使用深度学习框架中的基本算子,可以直接添加在目标检测器前,从而省去了训练过程,提高了目标检测的效率。
[0115]
本发明的目标检测方法中的图像缩放方式是基于卷积运算的,其可以充分利用人工智能硬件平台卷积运算高效运行的特点。除此之外本发明具有很强的通用性,可以添加在大多数深度学习模型(目标检测器)前,省去了图像预处理的步骤,从而大大的提高了目标检测的效率。
[0116]
在发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0117]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征数据点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特征数据点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0118]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献