掌桥专利:专业的专利平台
掌桥专利
首页

一种基于仿射变换的全天候车牌单目测距方法及装置

文献发布时间:2023-06-19 18:37:28


一种基于仿射变换的全天候车牌单目测距方法及装置

技术领域

本发明涉及交通领域,具体是一种基于仿射变换的全天候车牌单目测距方法及装置。

背景技术

目前的道路上的行车测距方法分为主动式和被动式,主动式测距存在输出稀疏、成本高昂、整体集成度低下、模块间配准难度大等缺点。被动式测距大多需要通过神经网络或插值拟合等技术实现,会导致所需数据量大且运算成本较高等问题。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于仿射变换的全天候车牌单目测距方法,包括:

步骤一,通过相机采集道路中行车的图像,对采集的道路中行车的图像进行灰度化,得到灰度化后的图像,通过sobel算子提取出灰度化后的图像的边缘信息;

步骤二,对灰度图像进行二值化处理,设置计数器来对二值化处理后的图像中具有闭合表面的图形轮廓进行计数,得到计数结果,遍历所有计数结果,并获得具有设定特征的图形轮廓;

步骤三,将获得的具有设定特征的图形轮廓,保存在screenCnt的变量中,此时screenCnt中存储了车牌的各个点的像素和位置信息,根据screenCnt在该二值图片中的位置信息,即车牌在图片中的像素坐标信息,选取screenCnt中左上角、右上角、左下角、右下角四个点作为车牌的四个顶点;

步骤四,将获取的车牌在图片中的像素坐标信息,转换到世界坐标系,得到车牌在世界坐标系下的左上角、右上角、左下角、右下角的世界坐标;

步骤五,根据世界坐标系下的车牌右上角的顶点坐标和相机坐标系原点在世界坐标系中的坐标得到车辆与相机的距离。

进一步的,所述的对采集的道路中行车的图像进行灰度化,采用如下公式:

其中,

进一步的,所述的得到灰度化后的图像,通过Sobel算子提取出灰度化后的图像的边缘信息,包括:

图像的梯度定义为:

其中,

利用Sobel算子得到经横向及纵向边缘检测的图像,其公式如下:

利用Sobel算子垂直方向和水平方向的模板,Sobel算子垂直方向的模板检测出图像中的水平方向的边缘,Sobel算子水平方向的模板则检测图像中垂直方向的边缘;以

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

然后可用以下公式计算梯度方向

若角度

进一步的,所述的对图像进行二值化处理,设置计数器来对二值化处理后的图像中具有闭合表面的图形轮廓进行计数,得到计数结果,遍历所有计数结果,并获得具有设定特征的图形轮廓,包括:

对图像进行二值化处理后,设置计数器contours来对具有闭合表面的图形轮廓进行计数,过滤计数器contours获得的结果中的车牌的部分图像,遍历所有结果,并检查其具有设定特征的图形轮廓,即具有四个侧面和闭合图形的矩形轮廓,找到获得具有设定特征的图形轮廓后,保存在screenCnt的变量中,得到车牌在整个图片中的位置信息后,根据记录下的车牌在图片中的坐标信息,选取screenCnt中左上角、右上角、左下角、右下角四个点作为车牌的四个顶点。

进一步的,所述的将获取的车牌在图片中的像素坐标信息,转换到世界坐标系,得到车牌在世界坐标系下的左上角、右上角、左下角、右下角的世界坐标,包括:

设车牌的四个顶点在世界坐标系下的坐标分别是:

右上角

在像素坐标系下的坐标分别是:右上角

其中

由上述方程组得到车牌四个角的世界坐标分别为:

其中,

其中,

进一步的,所述的根据世界坐标系下的车牌右上角的顶点坐标和相机坐标系原点

应用所述的一种基于仿射变换的全天候车牌单目测距方法的一种基于仿射变换的全天候车牌单目测距装置,包括数据处理模块、相机模块一、相机模块二、相机模块控制装置、通信装置、环境光照检测装置;所述的相机模块一、相机模块二分别与所述的相机模块控制装置连接;所述的相机模块控制装置、通信装置、环境光照检测装置分别与所述的数据处理模块连接;

其中的数据处理模块用于执行权利要求1-6任一项的一种基于仿射变换的全天候车牌单目测距方法;

所述的相机模块控制装置用于根据环境光照检测装置检测的光强,控制相机模块一、相机模块二在不同的光强下工作;

所述的环境光照检测装置用于监测行车环境的光照强度。

本发明的有益效果是:本方法不需要通过自适应网络等技术实现目标距离和真实距离之间的转换,只需要进行少量的数值计算,不仅导致零误差,且所需数据量小,运算成本低。同时还可以进行全天候测距,保证了不同天气状况下都能实现对汽车车牌的自动测距。

附图说明

图1为一种基于仿射变换的全天候车牌单目测距方法的流程示意图;

图2为一种基于仿射变换的全天候车牌单目测距装置的原理示意图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

为了使本发明的目的,技术方案及优点更加清楚明白,结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

而且,术语“包括”,“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程,方法,物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程,方法,物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程,方法,物品或者设备中还存在另外的相同要素。

以下结合实施例对本发明的特征和性能作进一步的详细描述。

如图1所示,一种基于仿射变换的全天候车牌单目测距方法,包括:

步骤一,通过相机采集道路中行车的图像,对采集的道路中行车的图像进行灰度化,得到灰度化后的图像,通过sobel算子提取出灰度化后的图像的边缘信息;

步骤二,对灰度图像进行二值化处理,设置计数器来对二值化处理后的图像中具有闭合表面的图形轮廓进行计数,得到计数结果,遍历所有计数结果,并获得具有设定特征的图形轮廓;

步骤三,将获得的具有设定特征的图形轮廓,保存在screenCnt的变量中,此时screenCnt中存储了车牌的各个点的像素和位置信息,根据screenCnt在该二值图片中的位置信息,即车牌在图片中的像素坐标信息,选取screenCnt中左上角、右上角、左下角、右下角四个点作为车牌的四个顶点;

步骤四,将获取的车牌在图片中的像素坐标信息,转换到世界坐标系,得到车牌在世界坐标系下的左上角、右上角、左下角、右下角的世界坐标;

步骤五,根据世界坐标系下的车牌右上角的顶点坐标和相机坐标系原点在世界坐标系中的坐标得到车辆与相机的距离。

进一步的,所述的对采集的道路中行车的图像进行灰度化,采用如下公式:

其中,

进一步的,所述的得到灰度化后的图像,通过Sobel算子提取出灰度化后的图像的边缘信息,包括:

图像的梯度定义为:

其中,

利用Sobel算子得到经横向及纵向边缘检测的图像,其公式如下:

利用Sobel算子垂直方向和水平方向的模板,Sobel算子垂直方向的模板检测出图像中的水平方向的边缘,Sobel算子水平方向的模板则检测图像中垂直方向的边缘;以

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

然后可用以下公式计算梯度方向

若角度

进一步的,所述的对图像进行二值化处理,设置计数器来对二值化处理后的图像中具有闭合表面的图形轮廓进行计数,得到计数结果,遍历所有计数结果,并获得具有设定特征的图形轮廓,包括:

对图像进行二值化处理后,设置计数器contours来对具有闭合表面的图形轮廓进行计数,过滤计数器contours获得的结果中的车牌的部分图像,遍历所有结果,并检查其具有设定特征的图形轮廓,即具有四个侧面和闭合图形的矩形轮廓,找到获得具有设定特征的图形轮廓后,保存在screenCnt的变量中,得到车牌在整个图片中的位置信息后,根据记录下的车牌在图片中的坐标信息,选取screenCnt中左上角、右上角、左下角、右下角四个点作为车牌的四个顶点。

进一步的,所述的将获取的车牌在图片中的像素坐标信息,转换到世界坐标系,得到车牌在世界坐标系下的左上角、右上角、左下角、右下角的世界坐标,包括:

设车牌的四个顶点在世界坐标系下的坐标分别是:

右上角

在像素坐标系下的坐标分别是:右上角

其中

由上述方程组得到车牌四个角的世界坐标分别为:

其中,

其中,

所述的根据世界坐标系下的车牌右上角的顶点坐标和相机坐标系原点

应用所述的一种基于仿射变换的全天候车牌单目测距方法的一种基于仿射变换的全天候车牌单目测距装置,包括数据处理模块、相机模块一、相机模块二、相机模块控制装置、通信装置、环境光照检测装置;所述的相机模块一、相机模块二分别与所述的相机模块控制装置连接;所述的相机模块控制装置、通信装置、环境光照检测装置分别与所述的数据处理模块连接;

其中的数据处理模块用于执行权利要求1-6任一项的一种基于仿射变换的全天候车牌单目测距方法;

所述的相机模块控制装置用于根据环境光照检测装置检测的光强,控制相机模块一、相机模块二在不同的光强下工作;

所述的环境光照检测装置用于监测行车环境的光照强度。

具体的,本方法首先对道路中行车的成像图片进行边缘提取,并确定出车牌的四个顶点,再通过四个顶点的像素坐标求出世界坐标,最后通过世界坐标计算行车的距离。

1.确定车辆车牌的四个顶点

1.1. 用Sobel算子提取图像的边缘

通过相机获得道路中行车的图片后,我们首先对相机拍摄的照片进行灰度化

其中,

再用Sobel算子提取垂直边缘。令

于是,将图像的梯度定义为:

上式中,

用Sobel算子垂直方向和水平方向的模板,Sobel算子垂直方向的模板检测出图像中的水平方向的边缘,Sobel算子水平方向的模板则检测图像中垂直方向的边缘;实际应用中,每个像素点取两个模板卷积的最大值作为该像素点的输出值,运算结果是一副边缘图像。该算子包含两组的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。以A代表原始图像的灰度信息,

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

然后可用以下公式计算梯度方向

若角度

1.2.选出车牌

对图像进行二值化处理后,使用OpenCV中的cv2.findContours,imutils.grab_contours函数来查找检测物体的轮廓。我们设置一个计数器contours来对具有闭合表面的任何事物进行计数(以下是python代码):

#寻找轮廓。三个输入参数:输入图像(二值图像,黑色作为背景,白色作为目标),轮廓检索方式,轮廓近似方法。opencv2返回两个值:contours、hierarchy。opencv3返回三个值:img(图像)、countours(轮廓)、hierarchy(层次结构)

Contours1=cv2.findContours(edged.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#返回cnts中的countors(轮廓)

Contours2 = imutils.grab_contours(contours1)

#计数器

contours = sorted(contours2,key=cv2.contourArea, reverse = True)[:10]

为了过滤上述计数器获得的结果中的车牌的部分图像,我们将遍历所有结果,并检查其具有四个侧面和闭合图形的矩形轮廓(以下是python代码):

for c in cnts:

peri = cv2.arcLength(c, True) # 轮廓周长

approx = cv2.approxPolyDP(c, 0.018 * peri, True) # 轮廓近似,准确率参数(从原始轮廓到近似轮廓的最大距离)设置为0.018 * peri

if len(approx) == 4:

screenCnt = approx

break

找到正确的计数器(即车牌)后,我们将其保存在名为screenCnt的变量中(如上代码所示)。得到车牌在整个图片中的位置信息后,我们根据记录下的车牌在图片中的坐标信息,我们可以选取screenCnt中左上角、右上角、左下角、右下角四个点作为车牌的四个顶点。

2.求出车辆的世界坐标

2.1.相机坐标系介绍

为了系统地描述相机中物和像的坐标,我们定义四种坐标系:世界坐标系、相机坐标系、图像坐标系和像素坐标系,此四种坐标系是分别出现于相机成像中的每个步骤中,两两之间的转换关系表示成像中的变换过程。

(1)世界坐标系:现实世界中的三维坐标系,用来描述现实物理空间中的任一目标的具体位置,坐标系的原点与坐标轴可以任意地选取,通常使用

(2)相机坐标系:从相机的角度去观察现实物理空间的三维坐标系,坐标系的原点选取为相机的成像中心,相机光轴的方向为坐标系的 Z 轴,通常使用

(3)图像坐标系:定义在相机的成像平面上的二维坐标系,用来描述相机成像后的目标,坐标系原点选取在成像平面的中心,通常使用

(4)像素坐标系:定义在数字图像上的坐标系,描述计算机中的数字图像,坐标原点选取在数字图像的左上角处,通常使用

首先世界坐标系与相机坐标系之间的转换关系仅涉及三维坐标系的平移和旋转,所以是仿射变换,如下式所示:

其中,

相机坐标系与图像坐标系的转换是相机成像的模型,通常将成像过程简化为小孔成像模型,用矩阵表示为如下式所示:

其中,

像素坐标系表示的是物理的像经过图像传感器的量化采样,为仿射变换,如下式所示:

其中,

综上,可以得到世界坐标系到像素坐标系的转化关系如下图所示:

其中,

通过像素坐标反解世界坐标

由上述转化关系,我们可以看出,世界坐标系和相机坐标系的转化矩阵是可逆的,这说明两个坐标系中的点是一一对应的,从而我们不妨假设,世界坐标系就是相机坐标系,且方向为汽车在道路中行驶的方向。同理可得,图像坐标系和像素坐标系中的点也是一一对应的,但相机坐标系和图像坐标系中的点不是一一对应关系。尽管如此,由上式可以看出,若我们得知了目标的像素坐标系,为了求出它的世界坐标系,只需要再给出目标在世界坐标系下满足的一个方程即可。

设车牌的四个顶点在相机坐标系下的坐标分别是:右上角

在像素坐标系下的坐标分别是:右上角

其中

由上述方程组得到车牌四个角的世界坐标分别为:

其中,

其中,

所述的根据世界坐标系下的车牌右上角的顶点坐标和相机坐标系原点

3.全天候单目测距技术

为了道路上的行车安全规范,车辆的测距工作需要覆盖全天候24小时,不应只局限于白天或者黑夜,因此,我们需要在全天候场景中应用该单目测距技术,为此,我们选择使用两个相机A和B设置不同曝光度,分别用于拍摄光线较暗和光线较亮的情况。具体而言,相机A使用较大光圈,较高感光度,长快门,这使得相机A可以在阴雨天或夜晚等光照不足的条件下能够获得充足的曝光,从而能够实现清晰成像,最终完成在夜晚或阴雨天的成像工作,而在晴天等光照较强的天气下,由于过曝,各个像素单位接受的光线基本都超过了像素能接受的最大阈值,导致成像效果极差,无法完成测距任务;相机B使用较小光圈,较低感光度,短快门,这使得相机B可以在晴天等光照较强的天气下,能够获得适宜的曝光,从而能够实现清晰成像,最终完成在晴天的成像工作,而在夜晚或阴雨天等光照不足的天气下,由于镜头单位时间内接受的光线不足,导致成像图片几乎是漆黑一片,成像效果极差,无法完成测距任务。

基于此,我们便可以保证在晴天相机A不能正常工作而相机B可以正常工作,在阴雨天或夜晚,相机A能够正常工作,而相机B不能够正常工作。尽管我们用到了两台相机,但由于他们正常工作的阈值并没有重叠,故可以把由该系统实现的测距工作视作全天候单目测距工作,而非多目测距。综上,全天候单目测距技术保证了在任何光照条件下,有且仅有一台相机能够正常工作。

以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

技术分类

06120115633543