基于深度学习的弱光照下车辆识别方法、存储介质和电子设备
未命名
08-22
阅读:91
评论:0
1.本发明涉及车辆识别领域,具体涉及一种基于深度学习的弱光照下车辆识别方法、存储介质和电子设备。
背景技术:
2.在车辆识别方法领域,由于在白天目标车辆与背景的对比度较高,车辆特征明显,容易识别。目前,大多数提出的基于深度学习的目标识别算法主要应用于白天的场景。
3.而在夜晚的弱光照条件下,车辆与周围环境的对比度降低,使得车辆特征提取难度增加;而且车辆前后灯的照明,也会对识别造成一定干扰,导致误检的出现。所以在车辆识别过程中,仍然存在,因弱光照条件下车辆信息不清晰,造成识别准确率较低的问题。此外,一些目标识别算法存在识别小目标、多目标困难和鲁棒性差的问题,当图像中目标车辆数量多、目标车辆体积小时,精度也会有所降低。
4.因此,亟需一种基于深度学习的弱光照下车辆识别方法、存储介质和电子设备,以解决上述问题。
技术实现要素:
5.本发明针对现有技术中的不足,提供一种基于深度学习的弱光照下车辆识别方法、存储介质和电子设备,以解决在车辆识别过程中,因弱光照条件下车辆信息不清晰,造成识别准确率较低的问题。
6.为实现上述目的,本发明采用以下技术方案:
7.一种基于深度学习的弱光照下车辆识别方法,包括如下步骤:
8.步骤1,通过摄像头采集弱光照下的车辆图像,将所采集到的车辆图像传送至图像预处理模块;
9.步骤2,在图像预处理模块中,将车辆图像的三通道rgb模型转换为his模型;
10.步骤3,通过判断阈值β,判断转换为his模型的车辆图像是否为弱光照下的车辆图像;
11.步骤4,对弱光照下的车辆图像进行自适应背景增强;
12.步骤5,在图像识别模块中,用yolov7改良算法进行目标车辆的检测识别;
13.步骤6,将经yolov7改良算法识别后的车辆图像保存至项目文件或本地。
14.为优化上述技术方案,采取的具体措施还包括:
15.进一步地,所述步骤2包括如下步骤:
16.步骤2.1,将rgb模型中,在[0,255]之间的r、g、b的数值分别除以255,得到在[0,1]之间的r’、g’、b’;
[0017]
步骤2.2,通过所得r’、g’、b’的数值,计算出色度计算参数θ;计算公式如下,
[0018][0019]
步骤2.3,通过所得的色度计算参数θ,计算色调分量h;计算公式如下,
[0020][0021]
步骤2.4,通过所得r’、g’、b’的数值,分别计算亮度分量i和饱和度分量s;计算公式如下,
[0022][0023][0024]
步骤2.5,将上述计算所得的色调分量h,通过h/360
°
得到转换色调分量h’,h’在[0,1]之间,与s和i范围一致。
[0025]
进一步地,所述步骤3判断阈值β的设置步骤:
[0026]
步骤3.1,收集若干弱光照下的车辆图像,构成弱光照下的车辆图像的数据集;若数据集中图像共有n张,则令其中每张图像分别为:d1,d2,d3,
…dn
;
[0027]
步骤3.2,计算得出任一张图像标准差σq,计算公式为,
[0028][0029]
式中,σq为任一张图像标准差,mq×
nq为任一张图像大小,pq(i,j)为任一张图像第i行,第j列的像素值,μq为任一张图像均值;
[0030]
步骤3.2,设置弱光照下的车辆图像的判断阈值β,判断阈值β的计算过程为,
[0031][0032][0033]
式中,为数据集中每张图像标准差均值,判断阈值β在以上范围中。
[0034]
进一步地,所述步骤4包括如下步骤:
[0035]
步骤4.1,计算控制系数γ值,计算公式如下,
[0036][0037]
[0038][0039]
式中,m
×
n表示图像大小,p(i,j)表示第i行、第j列的像素值,μ表示均值,β为阈值,σ为图像标准差;所述控制系数γ值由该车辆图像的弱光照标准差σ1计算得出;
[0040]
步骤4.2,计算修正系数α值,计算公式如下,
[0041][0042]
λ=s
γ
+(1-s
γ
)
×
(h')
γ
[0043][0044]
式中,所述修正系数α值由his模型公式参数的转换色调分量h’和饱和度分量s,及色度控制系数λ、控制系数γ和判别系数ε计算得出;
[0045]
步骤4.3,设置图像亮度变换函数,来调整车辆图像的背景亮度,设置公式为,
[0046][0047]
式中,i为输入图像的亮度,α为修正系数,γ是控制系数,y是输出图像的亮度;
[0048]
步骤4.4,将背景增强后的车辆图像传送至图像识别模块。
[0049]
进一步地,所述步骤5中yolov7算法的修改步骤如下:
[0050]
步骤5.1,在项目选用yolov7.yaml模型,找到[[102,103,104],1,detect,[nc,anchors]],将“[102,103,104]”改为“[102,103,104,105]”,增加了一层小目标检测层;接着用k-means++算法算出四层锚框anchors的大小;
[0051]
步骤5.2,先定义激活函数gelu至项目路径utils/activations.py中,然后在路径models/common.py中引入gelu,并重构conv模块,即将conv模块中原本调用的nn.silu()改为gelu();
[0052]
步骤5.3,在原版计算矩阵间重叠度iou代码部分加入eiou函数。
[0053]
进一步地,所述步骤5.3包括如下步骤:
[0054]
步骤5.31,在路径utils/metrics.py中的bbox_iou()方法中加入eiou函数部分;
[0055]
步骤5.32,然后在utils/loss.py中找到computeloss类中的__call__()函数,并找到其中计算iou的代码:
[0056]
iou=bbox_iou(pbox.t,tbox[i],x1y1x2y2=false,ciou=true);
[0057]
步骤5.33,将其修改为:iou=bbox_iou(pbox,tbox[i],ciou=true).squeeze()。
[0058]
进一步地,所述步骤5.3中的eiou函数的计算公式为:
[0059]
l
eiou
=l
iou
+l
dis
+l
asp
[0060][0061][0062]
其中,a、b分别为真实框和预测框,c、c
ct
分别为a、b的中心点,d为a、b最小外接矩形对角线长,w、h分别为a的宽度与长度,w
ct
、h
ct
分别为b的宽度与长度,dw、dh是a与b形成最小
外接矩形的宽度与长度;式中,l
dis
是归一化后的中心点欧式距离,l
asp
为边长损失,ρ是计算欧氏距离。
[0063]
进一步地,一种计算机可读存储介质,存储有计算机程序,其特征在于:所述计算机程序使计算机执行如上述的一种基于深度学习的弱光照下车辆识别方法。
[0064]
进一步地,一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如上述的一种基于深度学习的弱光照下车辆识别方法。
[0065]
本发明的有益效果是:
[0066]
本发明通过对目标车辆图像进行自适应背景增强的预处理操作,并通过自适应背景增强,提高目标车辆的背景亮度和与周围环境的对比度,从而改善目标车辆的对比程度;然后运用改良的yolov7目标识别算法对其进行识别,达到更加精确地识别目标车辆的效果,从而大大提高了弱光照下对目标车辆的识别精度。
附图说明
[0067]
图1为本发明所提出的一种基于深度学习的弱光照下车辆识别方法的流程图;
[0068]
图2为本发明所提出的一种基于深度学习的弱光照下车辆识别方法的损失函数eiou的原理图。
具体实施方式
[0069]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0070]
如附图1所示,本发明实施例的一种基于深度学习的弱光照下车辆识别方法,包括如下步骤:
[0071]
步骤1,通过摄像头采集夜间弱光照下的车辆图像,将所采集到的车辆图像传送至图像预处理模块;
[0072]
步骤2,在图像预处理模块中,将车辆图像原本的三通道rgb模型转换为his模型;
[0073]
步骤3,通过判断阈值β,判断转换为his模型的车辆图像是否为弱光照下的车辆图像;
[0074]
步骤4,对弱光照下的车辆图像进行自适应背景增强;
[0075]
步骤5,在图像识别模块中,用yolov7改良算法进行目标车辆的检测识别;
[0076]
步骤6,将经yolov7改良算法识别后的车辆图像保存至项目文件或本地;以备之后进行车辆图像的比较和检查。
[0077]
在本实施例中,步骤2包括如下步骤:
[0078]
步骤2.1,将原本rgb模型中,在[0,255]之间的r、g、b的数值分别除以255,得到在[0,1]之间的r’、g’、b’;
[0079]
步骤2.2,通过所得r’、g’、b’的数值,计算出色度计算参数θ,用以判定色调分量h的颜色属性;计算公式如下,
[0080][0081]
步骤2.3,通过所得的色度计算参数θ,计算色调分量h;计算公式如下,
[0082][0083]
步骤2.4,通过所得r’、g’、b’的数值,分别计算亮度分量i和饱和度分量s;计算公式如下,
[0084][0085][0086]
步骤2.5,将上述计算所得的色调分量h,通过h/360
°
得到转换色调分量h’,h’在[0,1]之间,与s和i范围一致;其中,若s=0,则h无意义;若i=0,则s无意义。
[0087]
在本实施例中,步骤3中判断阈值β的设置步骤如下:
[0088]
步骤3.1,收集若干弱光照下的车辆图像,构成弱光照下的车辆图像的数据集;若数据集中图像共有n张,则令其中每张图像分别为:d1,d2,d3,
…dn
;
[0089]
步骤3.2,计算得出任一张图像标准差σq,计算公式为,
[0090][0091]
式中,σq为任一张图像标准差,mq×
nq为任一张图像大小,pq(i,j)为任一张图像第i行,第j列的像素值,μq为任一张图像均值;
[0092]
步骤3.2,设置弱光照下的车辆图像的判断阈值β,判断阈值β的计算过程为,
[0093][0094][0095]
式中,为数据集中每张图像标准差均值,判断阈值β在以上范围中。
[0096]
在本实施例中,步骤4包括如下步骤:
[0097]
步骤4.1,针对亮度或清晰度较低的车辆图像,即σ值属于判断阈值β范围的车辆图像;计算控制系数γ值,计算公式如下,
[0098]
[0099][0100]
γ=-log2σ1[0101]
式中,m
×
n表示图像大小,p(i,j)表示第i行、第j列的像素值,μ表示均值,β为阈值,σ为图像标准差;亮度较低车辆图像的控制系数γ值由该车辆图像的弱光照标准差σ1计算得出;
[0102]
步骤4.2,针对亮度不同的车辆图像,计算不同的修正系数α值,计算公式如下,
[0103][0104]
λ=s
γ
+(1-s
γ
)
×
(h')
γ
[0105][0106]
式中,亮度较低车辆图像类中的不同亮度图像的修正系数α值由his模型公式参数的转换色调分量h’和饱和度分量s,及色度控制系数λ、控制系数γ和判别系数ε计算得出;
[0107]
步骤4.3,设置图像亮度变换函数,来调整车辆图像的背景亮度,设置公式为,
[0108][0109]
式中,i为输入图像的亮度,α为修正系数,γ是控制系数,y是输出图像的亮度;其中,y值是经过背景增强过后的车辆图像亮度,使得目标与周围环境的对比度提高;
[0110]
步骤4.4,将背景增强后的车辆图像传送至图像识别模块。
[0111]
在本实施例中,步骤5中yolov7算法的修改步骤如下:
[0112]
步骤5.1,添加小目标检测模型;在项目选用yolov7.yaml模型,找到[[102,103,104],1,detect,[nc,anchors]],将“[102,103,104]”改为“[102,103,104,105]”,增加了一层小目标检测层;接着用k-means++算法算出四层锚框anchors的大小;以此提高yolov7算法对小目标的识别精度;
[0113]
步骤5.2,更换激活函数gelu;先定义激活函数gelu至项目路径utils/activations.py中,然后在路径models/common.py中引入gelu,并重构conv模块,即将conv模块中原本调用的nn.silu()改为gelu();以提高yolov7算法在训练模型时的鲁棒性;
[0114]
步骤5.3,更换损失函数eiou;在原版计算矩阵间重叠度iou代码部分加入eiou函数。
[0115]
在本实施例中,步骤5.3包括如下步骤:
[0116]
步骤5.31,在路径utils/metrics.py中的bbox_iou()方法中加入eiou函数部分;
[0117]
步骤5.32,然后在utils/loss.py中找到computeloss类中的__call__()函数,并找到其中计算iou的代码:
[0118]
iou=bbox_iou(pbox.t,tbox[i],x1y1x2y2=false,ciou=true);
[0119]
步骤5.33,将其修改为:iou=bbox_iou(pbox,tbox[i],ciou=true).squeeze(),即修改参数和添加squeeze方法,使得更换损失函数后参数对应、维度一致。
[0120]
在本实施例中,步骤5.3中的eiou函数的计算公式为:
[0121]
l
eiou
=l
iou
+l
dis
+l
asp
[0122][0123][0124]
如附图2所示,其中,a、b分别为真实框和预测框,c、c
ct
分别为a、b的中心点,d为a、b最小外接矩形对角线长,w、h分别为a的宽度与长度,w
ct
、h
ct
分别为b的宽度与长度,dw、dh是a与b形成最小外接矩形的宽度与长度;式中,l
dis
是归一化后的中心点欧式距离,l
asp
为边长损失,ρ是计算欧氏距离;从而加速了预测框的收敛、提高了预测框的回归精度,并以此提高了yolov7算法的识别效率。
[0125]
在另一实施例中,本发明提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行如上述的一种基于深度学习的弱光照下车辆识别方法。
[0126]
在另一实施例中,本发明提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如上述的一种基于深度学习的弱光照下车辆识别方法。
[0127]
在本技术所公开的实施例中,计算机存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序。计算机存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0128]
本领域普通技术人员可以意识到,结合本技术所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0129]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
技术特征:
1.一种基于深度学习的弱光照下车辆识别方法,其特征在于,包括如下步骤:步骤1,通过摄像头采集弱光照下的车辆图像,将所采集到的车辆图像传送至图像预处理模块;步骤2,在图像预处理模块中,将车辆图像的三通道rgb模型转换为his模型;步骤3,通过判断阈值β,判断转换为his模型的车辆图像是否为弱光照下的车辆图像;步骤4,对弱光照下的车辆图像进行自适应背景增强;步骤5,在图像识别模块中,用yolov7改良算法进行目标车辆的检测识别;步骤6,将经yolov7改良算法识别后的车辆图像保存至项目文件或本地。2.根据权利要求1所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤2包括如下步骤:步骤2.1,将rgb模型中,在[0,255]之间的r、g、b的数值分别除以255,得到在[0,1]之间的r’、g’、b’;步骤2.2,通过所得r’、g’、b’的数值,计算出色度计算参数θ;计算公式如下,步骤2.3,通过所得的色度计算参数θ,计算色调分量h;计算公式如下,步骤2.4,通过所得r’、g’、b’的数值,分别计算亮度分量i和饱和度分量s;计算公式如下,下,步骤2.5,将上述计算所得的色调分量h,通过h/360
°
得到转换色调分量h’,h’在[0,1]之间,与s和i范围一致。3.根据权利要求1所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤3判断阈值β的设置步骤:步骤3.1,收集若干弱光照下的车辆图像,构成弱光照下的车辆图像的数据集;若数据集中图像共有n张,则令其中每张图像分别为:d1,d2,d3,
…
d
n
;步骤3.2,计算得出任一张图像标准差σ
q
,计算公式为,式中,σ
q
为任一张图像标准差,m
q
×
n
q
为任一张图像大小,p
q
i,j为任一张图像第i行,第j列的像素值,μ
q
为任一张图像均值;步骤3.2,设置弱光照下的车辆图像的判断阈值β,判断阈值β的计算过程为,
式中,为数据集中每张图像标准差均值,判断阈值β在以上范围中。4.根据权利要求1所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤4包括如下步骤:步骤4.1,计算控制系数γ值,计算公式如下,步骤4.1,计算控制系数γ值,计算公式如下,γ=-log2σ1式中,m
×
n表示图像大小,p(i,j)表示第i行、第j列的像素值,μ表示均值,β为阈值,σ为图像标准差;所述控制系数γ值由该车辆图像的弱光照标准差σ1计算得出;步骤4.2,计算修正系数α值,计算公式如下,λ=s
γ
+(1-s
γ
)
×
(h')
γ
式中,所述修正系数α值由his模型公式参数的转换色调分量h’和饱和度分量s,及色度控制系数λ、控制系数γ和判别系数ε计算得出;步骤4.3,设置图像亮度变换函数,来调整车辆图像的背景亮度,设置公式为,式中,i为输入图像的亮度,α为修正系数,γ是控制系数,y是输出图像的亮度;步骤4.4,将背景增强后的车辆图像传送至图像识别模块。5.根据权利要求1所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤5中yolov7算法的修改步骤如下:步骤5.1,在项目选用yolov7.yaml模型,找到[[102,103,104],1,detect,[nc,anchors]],将“[102,103,104]”改为“[102,103,104,105]”,增加了一层小目标检测层;接着用k-means++算法算出四层锚框anchors的大小;步骤5.2,先定义激活函数gelu至项目路径utils/activations.py中,然后在路径
models/common.py中引入gelu,并重构conv模块,即将conv模块中原本调用的nn.silu()改为gelu();步骤5.3,在原版计算矩阵间重叠度iou代码部分加入eiou函数。6.根据权利要求4所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤5.3包括如下步骤:步骤5.31,在路径utils/metrics.py中的bbox_iou()方法中加入eiou函数部分;步骤5.32,然后在utils/loss.py中找到computeloss类中的__call__()函数,并找到其中计算iou的代码:iou=bbox_iou(pbox.t,tbox[i],x1y1x2y2=false,ciou=true);步骤5.33,将其修改为:iou=bbox_iou(pbox,tbox[i],ciou=true).squeeze()。7.根据权利要求4所述的一种基于深度学习的弱光照下车辆识别方法,其特征在于,所述步骤5.3中的eiou函数的计算公式为:l
eiou
=l
iou
+l
dis
+l
aspasp
其中,a、b分别为真实框和预测框,c、c
ct
分别为a、b的中心点,d为a、b最小外接矩形对角线长,w、h分别为a的宽度与长度,w
ct
、h
ct
分别为b的宽度与长度,d
w
、d
h
是a与b形成最小外接矩形的宽度与长度;式中,l
dis
是归一化后的中心点欧式距离,l
asp
为边长损失,ρ是计算欧氏距离。8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1至7中任一项所述的一种基于深度学习的弱光照下车辆识别方法。9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1至7中任一项所述的一种基于深度学习的弱光照下车辆识别方法。
技术总结
本发明公开了一种基于深度学习的弱光照下车辆识别方法,包括如下步骤:1,采集弱光照下的车辆图像,并传送至图像预处理模块;2,在图像预处理模块中,将车辆图像的RGB模型转换为HIS模型;3,通过判断阈值β,判断车辆图像是否为弱光照下的车辆图像;4,再进行自适应背景增强;5,在图像识别模块中,用YOLOv7改良算法进行目标车辆的检测识别;6,将识别后的车辆图像保存至项目文件或本地。本发明通过对目标车辆图像进行自适应背景增强的预处理操作,并通过自适应背景增强,提高目标车辆的背景亮度和与周围环境的对比度;运用YOLOv7目标识别算法进行识别,达到精确识别的效果。达到精确识别的效果。达到精确识别的效果。
技术研发人员:黎苏瑶 刘静 田锦
受保护的技术使用者:金陵科技学院
技术研发日:2023.04.11
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
