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

一种基于线性CCD摄像头的车辆寻迹方法及系统与流程

2021-11-18 01:39:00 来源:中国专利 TAG:

一种基于线性ccd摄像头的车辆寻迹方法及系统
技术领域
1.本发明涉及车辆巡航自动控制的技术领域,尤其涉及一种基于线性ccd摄像头的车辆寻迹方法及系统。


背景技术:

2.车辆的巡航的自动控制以及稳定运行要求车辆能够准确提取道路信息,并精准的进行寻迹。车辆的寻迹能通过准确识别轨道找寻前进方向,从而完成一些自主运输或者自动监测等任务。在目前企业生产技术不断提高、对于自动化技术要求不断加深的环境下,这种技术受到越来越多的关注和研究。而准确提取道路信息的基础在于能否准确区分所要寻迹轨道的目标颜色与背景颜色。对于寻迹系统来说,有很多用于寻迹的传感器,但是考虑到成本、分辨率以及前瞻性的因素,会使用线性ccd摄像头作为寻迹传感器。
3.由于在寻迹过程中会受到各种因素的影响,尤其是光强等因素,会使得车辆对于轨道边界的判断出现较大的误差。目前针对线性ccd摄像头寻迹系统,轨迹的提取大多采用数据采集、数据处理、二值化。其中数据的采集当中很重要的一部分是要做到在任何光强下都能稳定的采集数据,目前的应对措施主要有自适应调整曝光时间、卡尔曼滤波等等。在二值化的处理中,目前的主要方法有灰度平均值法、大津法、最佳迭代法等。以上方法都较为繁琐,不利于给单片机留出更多精力处理一些其他较为复杂的通信、传输等任务。因此,随着智能车辆的功能越来越强大,复杂度越来越高,探索一种简便、快捷的寻迹方法成为车辆巡航自动控制领域的一个十分具有理论意义和实用价值的研究方向。


技术实现要素:

4.本发明的目的是针对现有技术的缺陷,提供了一种基于线性ccd摄像头的车辆寻迹方法及系统。
5.为了实现以上目的,本发明采用以下技术方案:
6.一种基于线性ccd摄像头的车辆寻迹方法,包括:
7.s1.采集ccd摄像头进行车辆寻迹时的曝光反馈量,并根据采集的曝光反馈量获取ccd摄像头的曝光时间;
8.s2.通过峰值法计算ccd摄像头相对应的二值化阈值,基于计算得到的二值化阈值对ccd摄像头的像素点进行二值化处理;
9.s3.筛选ccd摄像头进行车辆寻迹时轨道的左右边界,并对进行二值化处理后的像素点进行遍历,得到轨道的中线位置;
10.s4.判断车辆寻迹是否结束,若否,则重复执行步骤s1

s3,直到完成车辆的寻迹。
11.进一步的,所述步骤s1之前还包括:
12.s0.预设ccd摄像头的曝光时间。
13.进一步的,所述步骤s1具体为:
14.s11.将ccd摄像头进行车辆寻迹时像素点的加权平均像素灰度值作为当前的曝光
反馈量;
15.s12.根据曝光反馈量计算像素点的实际电压偏差;
16.s13.判断计算得到的实际电压偏差的绝对值是否小于允许电压偏差,若是,则ccd摄像头的曝光时间不改变;若否,则执行步骤s14;
17.s14.判断计算得到的实际电压偏差是否大于允许电压偏差,若是,则增加曝光时间;若否,减少曝光时间。
18.进一步的,所述步骤s12中计算像素点的实际电压偏差,表示为:
19.error=m
value

a
value
20.其中,error表示ccd摄像头获取的像素点的实际电压偏差;m
value
表示表示正常光照下像素点的平均电压值;a
value
表示计算出的加权平均像素值的电压。
21.进一步的,所述步骤s13、s14具体为:
[0022][0023]
其中,time表示ccd摄像头的曝光时间。
[0024]
进一步的,所述步骤s2具体为:
[0025]
s21.遍历ccd摄像头进行车辆寻迹时像素点的灰度值;
[0026]
s22.将灰度值进行分组,并计算每组出现的像素点频率;
[0027]
s23.通过直方图分析方法筛选像素点分布最为密集的两个组;
[0028]
s24.根据筛选出的两个组计算二值化的阈值;
[0029]
s25.根据二值化阈值对像素点进行二值化处理。
[0030]
进一步的,所述步骤s24中二值化的阈值,表示为:
[0031][0032]
其中,ts
value
表示二值化的阈值;a1、a2分别表示对灰度值进行分组的灰度始末值;δ、n分别表示分组的间隔、组数;a
s
表示第一组灰度的中间值;peak[0]、peak[1]表示像素点分布最为密集的两个组(起始组号为0)。
[0033]
进一步的,所述步骤s25中对像素点进行二值化处理,表示为:
[0034][0035]
其中,pixel表示ccd摄像头采集的像素点的灰度值。
[0036]
相应的,还提供一种基于线性ccd摄像头的车辆寻迹系统,包括:
[0037]
获取模块,用于采集ccd摄像头进行车辆寻迹时的曝光反馈量,并根据采集的曝光反馈量获取ccd摄像头的曝光时间;
[0038]
第一处理模块,用于通过峰值法计算ccd摄像头相对应的二值化阈值,基于计算得到的二值化阈值对ccd摄像头的像素点进行二值化处理;
[0039]
第一筛选模块,用于筛选ccd摄像头进行车辆寻迹时轨道的左右边界,并对进行二值化处理后的像素点进行遍历,得到轨道的中线位置;
[0040]
第一判断模块,用于判断车辆寻迹是否结束。
[0041]
进一步的,所述获取模块具体为:
[0042]
设置模块,用于将ccd摄像头进行车辆寻迹时像素点的加权平均像素灰度值作为当前的曝光反馈量;
[0043]
第一计算模块,用于根据曝光反馈量计算像素点的实际电压偏差;
[0044]
第二判断模块,用于判断计算得到的实际电压偏差的绝对值是否小于允许电压偏差;
[0045]
第三判断模块,用于判断计算得到的实际电压偏差是否大于允许电压偏差。
[0046]
与现有技术相比,本发明的有益效果为:
[0047]
1、在数据采集和处理的过程中考虑到节省单片机资源,在不降低获取数据稳定性的前提下优化线性ccd摄像头的数据采集以及处理;
[0048]
2、该基于线性ccd摄像头的车辆寻迹方法简单,便于理解,调整参数少,数据处理高效、实时性高,实用性和适应性强。
附图说明
[0049]
图1是本实施例一提供的一种基于线性ccd摄像头的车辆寻迹方法流程图;
[0050]
图2是本实施例一提供的获取曝光时间的方法流程图;
[0051]
图3是本实施例一提供的二值化处理的方法流程图;
[0052]
图4是本实施例二提供的在实时调整曝光时间的前提下受较强光照时采集像素点的像素灰度值的分布情况示意图;
[0053]
图5是本实施例二提供的利用峰值法计算出合适的用来进行二值化的阈值示意图;
[0054]
图6是本实施例二提供的二值化后的像素灰度值的分布情况示意图。
具体实施方式
[0055]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0056]
本发明的目的是针对现有技术的缺陷,提供了一种基于线性ccd摄像头的车辆寻迹方法及系统。
[0057]
实施例一
[0058]
本实施例提供一种基于线性ccd摄像头的车辆寻迹方法,如图1所示,包括:
[0059]
s1.采集ccd摄像头进行车辆寻迹时的曝光反馈量,并根据采集的曝光反馈量获取ccd摄像头的曝光时间;
[0060]
s2.通过峰值法计算ccd摄像头相对应的二值化阈值,基于计算得到的二值化阈值
对ccd摄像头的像素点进行二值化处理;
[0061]
s3.筛选ccd摄像头进行车辆寻迹时轨道的左右边界,并对进行二值化处理后的像素点进行遍历,得到轨道的中线位置;
[0062]
s4.判断车辆寻迹是否结束,若否,则重复执行步骤s1

s3,直到完成车辆的寻迹。
[0063]
本实施例是针对目前较为复杂的车辆寻迹方法,提出一种理解直观、设计简单、易于实现的理念,且基于线性ccd摄像的车辆寻迹方法,该方法具有简单、优化的数据的采集、处理过程,且可以准确找寻轨道的中线。
[0064]
本实施例主要执行部分在车辆的自动巡航控制的单片机上运行实施,可以通过远程上位机实时获取采集处理后的数据。
[0065]
在步骤s1之前还包括:s0.预设ccd摄像头的曝光时间。
[0066]
在步骤s1中,采集ccd摄像头进行车辆寻迹时的曝光反馈量,并根据采集的曝光反馈量获取ccd摄像头的曝光时间。
[0067]
现有的调整曝光时间的方法处理时较为繁琐且较复杂,无法满足设备的普遍性应用,本实施例通过找到一个合适的反馈量,利用一个简单的闭环控制实时调整曝光时间。
[0068]
首先设定一个固定的曝光时间,然后通过实时调整曝光时间获取线性ccd摄像头的实际曝光量,其中,曝光参数调节的依据由目前线性ccd摄像头曝光量反馈得来;然而现有的方法中大多都是选取捕获的像素点的平均像素值作为曝光反馈量,但是本实施例发现在轨迹上的光线差异较大时,它的平均像素灰度值可能并没有较大变化,导致未能及时的对曝光时间做出调整,出现偏离轨迹等现象;相比之下本实施例采用的加权平均数更能反映数据的集中情况,即光照的改变情况,当出现明显的光照差异时也会随之而改变,所以本实施例选取上一次采取的像素点的加权平均像素灰度值作为此次的曝光反馈量,进而获取ccd摄像头的曝光时间。
[0069]
如图2所示为获取曝光时间的方法流程图,具体包括:
[0070]
s11.将ccd摄像头进行车辆寻迹时像素点的加权平均像素灰度值作为当前的曝光反馈量;
[0071]
s12.根据曝光反馈量计算像素点的实际电压偏差;表示为:
[0072]
error=m
value

a
value
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0073]
其中,error表示ccd摄像头获取的像素点的实际电压偏差;m
value
表示表示正常光照下像素点的平均电压值;a
value
表示计算出的加权平均像素值的电压。
[0074]
本实施例中的值都是电压值,这是由于像素值处理成电压值可以提高精度,处理方法为将像素值与255(像素最大值)的比值乘上总电压(取50v,以扩大数据来提高精度);m
value
为均匀光照下,所捕获的像素值所对应电压值,通过多次在均匀光照环境下取平均得来,通过与之对比,便可以得到当前光照的变化情况。
[0075]
其中m
value
、a
value
的计算需要基于下面二值化的分组参数,具体计算为:
[0076]
[0077]
其中,δ、n分别表示分组的间隔、组数;a
s
表示第一组灰度的中间值;mean[i]表示每组对应的灰度值与该组像素点所占权重的乘积(用每组的中间值代表该组的灰度值);y[i]为每组出现的像素点的权重,通过遍历所有像素点,统计出现在该组范围内的点的个数,其与总的像素点个数的比即为y[i];w
mean
表示将所有组的mean[i]求和,得到的加权值;a
value
通过加权值与灰度总值的比值乘以我们设定的50v的总电压得到。
[0078][0079]
其中,a
mean
为所有像素点的像素值的平均值;m
value
表示在正常均匀光照下计算出的平均电压值,实际上我们通过计算多次并取其平均得到最终的m
value
,并确定下来。
[0080]
s13.判断计算得到的实际电压偏差的绝对值是否小于允许电压偏差,若是,则ccd摄像头的曝光时间不改变;若否,则执行步骤s14;
[0081]
s14.判断计算得到的实际电压偏差是否大于允许电压偏差,若是,则增加曝光时间;若否,减少曝光时间。
[0082]
本实施例设a
error
为允许电压偏差,将公式(1)计算得到的实际电压偏差error与预设的允许电压偏差a
error
进行比较,得到最终的曝光时间,表示为:
[0083][0084]
其中,a
error
表示给预设的允许电压偏差,用来衡量允许光照的变化范围;time表示线性ccd摄像头的曝光时间,并定义time的上下限time
min
、time
max

[0085]
当error<

a
error
时,说明反馈量过大,像素值过大,即光照较强,所以曝光时间减少;当error>a
error
时,说明反馈量过小,像素值过小,即光照较弱,所以曝光时间增加;其他情况则说明光线较好,曝光时间不变;time
min
、time
max
用来保护曝光时间,防止其过大或者过小。
[0086]
在步骤s2中,通过峰值法计算ccd摄像头相对应的二值化阈值,基于计算得到的二值化阈值对ccd摄像头的像素点进行二值化处理。
[0087]
二值化的效果主要在于所选阈值的优劣,在大多数线性摄像头的寻迹二值化方法中,阈值选取都是在所捕获的像素点的最大和最小像素值上做功夫,但是会发现这样会忽视很多其余的像素点信息,在一些不太友好的环境下,二值化的效果很不理想;同时,由于线性ccd摄像头本身性能的限制,以及像素点分布的不规律性,因此没有办法以单个像素点为单位分析各个像素之间的关系;为此,本实施例通过优化、简化图像处理中的峰值分析法,以一种类似的直方图分析方法,分别找出代表目标色与背景色所代表的灰度值;所以本实施例通过确定一个合适的起始、终止灰度值以及间隔,将一段范围内的灰度值进行分组,遍历采集到的所有像素点的像素值,统计它们在每个组别出现的频率,并以组为单位,通过直方图分析找出像素点分布最为密集的两个组,即目标色与背景色代表的像素灰度值所在的组别,从而确定进行二值化的阈值,最后基于二值化阈值对像素点进行二值化处理。
[0088]
如图3所示为进行二值化处理的方法流程图,具体包括:
[0089]
s21.遍历ccd摄像头进行车辆寻迹时像素点的灰度值adv[128];
[0090]
s22.将灰度值进行分组,并计算每组出现的像素点频率y[i];
[0091]
s23.通过直方图分析方法筛选像素点分布最为密集的两个组;
[0092]
s24.根据筛选出的两个组计算二值化的阈值;表示为:
[0093][0094]
其中,ts
value
表示二值化的阈值;a1、a2分别表示对灰度值进行分组的灰度始末值;δ、n分别表示分组的间隔、组数;a
s
表示第一组灰度的中间值;peak[0]、peak[1]表示像素点分布最为密集的两个组,即统计不同组中像素点的个数达到的两个峰值(起始组号为0)。
[0095]
在本实施例中,peak[0]、peak[1]的确定是通过计算每个组别中包含对应像素点的频率,遍历这n组频率,找出像素点出现最多的两个组别。
[0096]
s25.根据二值化阈值对像素点进行二值化处理,表示为:
[0097][0098]
其中,pixel表示ccd摄像头采集的像素点的灰度值。
[0099]
在步骤s3中,筛选ccd摄像头进行车辆寻迹时轨道的左右边界,并对进行二值化处理后的像素点进行遍历,得到轨道的中线位置。
[0100]
通过找寻轨道的左右边界确定轨道的中线,遍历二值化后的128个像素点,将出现3个点等于0,2个点等于250的地方确定为左边界,类似的将出现2个点等于0,3个点等于250的地方确定为右边界,取两者的中间位置作为轨道的中线位置。
[0101]
在步骤s4中,判断车辆寻迹是否结束,若否,则重复执行步骤s1

s3,直到完成车辆的寻迹。
[0102]
通过上一次的数据采集得到像素点的加权平均电压值作为反馈量,根据公式(1)计算出128个像素点的实际电压偏差,根据公式(2)实时调整线性ccd摄像头的曝光时间获取稳定的数据;在稳定的数据基础上根据公式(3)得到合适的阈值将128个像素灰度值进行二值化,进而找到轨迹的左右边界来确定轨迹的中线;每一个数据采集周期都在调整曝光时间,等到曝光时间到达后,线性ccd摄像头开始曝光采集数据、计算得到阈值后进行二值化、找寻轨道的左右边界确定轨道中线,直到车辆寻迹结束。
[0103]
本实施例的有益效果为:
[0104]
1、在数据采集和处理的过程中考虑到节省单片机资源,在不降低获取数据稳定性的前提下优化线性ccd摄像头的数据采集以及处理;
[0105]
2、该基于线性ccd摄像头的车辆寻迹方法简单,便于理解,调整参数少,数据处理高效、实时性高,实用性和适应性强。
[0106]
相应的,本实施例还提供一种基于线性ccd摄像头的车辆寻迹系统,包括:
[0107]
获取模块,用于采集ccd摄像头进行车辆寻迹时的曝光反馈量,并根据采集的曝光反馈量获取ccd摄像头的曝光时间;
[0108]
第一处理模块,用于通过峰值法计算ccd摄像头相对应的二值化阈值,基于计算得
到的二值化阈值对ccd摄像头的像素点进行二值化处理;
[0109]
第一筛选模块,用于筛选ccd摄像头进行车辆寻迹时轨道的左右边界,并对进行二值化处理后的像素点进行遍历,得到轨道的中线位置;
[0110]
第一判断模块,用于判断车辆寻迹是否结束,若否,则重复执行步骤s1

s3,直到完成车辆的寻迹。
[0111]
进一步的,所述获取模块具体为:
[0112]
设置模块,用于将ccd摄像头进行车辆寻迹时像素点的加权平均像素灰度值作为当前的曝光反馈量;
[0113]
第一计算模块,用于根据曝光反馈量计算像素点的实际电压偏差;
[0114]
第二判断模块,用于判断计算得到的实际电压偏差的绝对值是否小于允许电压偏差;
[0115]
第三判断模块,用于判断计算得到的实际电压偏差是否大于允许电压偏差。
[0116]
实施例二
[0117]
本实施例提供的一种基于线性ccd摄像头的车辆寻迹方法与实施例一的不同之处在于:
[0118]
本实施例将实施过程分以下三个阶段,具体为:
[0119]
1、参数设置:在参数设置界面中,输入参数,如下:允许电压偏差a
error
=2、前期计算得出并给定的像素点的平均电压值m
value
=25v(为减小计算上的误差,将数据扩大10倍处理)、线性ccd摄像头的曝光时间time初始值=10ms、time的上下限time
min
=1s、time
max
=20s、进行分组的灰度始末值分别a1=11、a2=160、分组的组数n=30;由上位机将设置数据送入单片机存储单元ram中保存;
[0120]
2、离线调试:将控制单片机的数据传输接口通过数据线连接在电脑端的上位机,在上位机点击“go”按钮进入调试界面,启动主控单片机的cpu调用事先下载好的“线性ccd摄像头寻迹程序”便可以得到线性ccd摄像头的寻迹结果,具体实现过程如下:
[0121]
1)根据给定的允许电压偏差a
error
、给定的像素点的平均电压值m
value
,利用公式(2)计算当前的曝光时间time;
[0122]
2)通过进行分组的灰度始末值分别a1=11、a2=160、分组的组数n=30,根据方程公式(3)计算进行二值化的阈值,可以通过上位机中显示的像素点灰度值的分布效果,调整分组数n,确定一个良好的进行灰度值分组的组数n,在确定阈值后根据公式(4)进行二值化;
[0123]
3)根据二值化后的像素点的分布,确定轨道的左右边界,取左右边界的平均值作为轨道的中线;
[0124]
4)将计算结果保存到单片机存储单元ram中。
[0125]
3、在线运行:启动主控制单片机的cpu读取参数,通过上一次的数据采集得到像素点的加权平均电压值作为反馈量,根据公式(1)计算出128个像素点的实际电压偏差,根据公式(2)实时调整线性ccd摄像头的曝光时间获取稳定的数据;在稳定的数据基础上根据公式(3)得到合适的阈值将128个像素灰度值进行二值化,进而找到轨迹的左右边界来确定轨迹的中线;每一个数据采集周期都在调整曝光时间,等到曝光时间到达后,线性ccd摄像头开始曝光采集数据、计算得到阈值后进行二值化、找寻轨道的左右边界确定轨道中线。
[0126]
如图4为基于线性ccd摄像头的车辆寻迹方法中在实时调整曝光时间的前提下受较强光照时采集像素点的像素灰度值的分布情况。如图5为基于线性ccd摄像头的车辆寻迹方法中利用峰值法计算出合适的用来进行二值化的阈值。如图6为基于线性ccd摄像头的车辆寻迹方法中二值化后的像素灰度值的分布情况中。
[0127]
本实施例的有益效果为:
[0128]
1、在数据采集和处理的过程中考虑到节省单片机资源,在不降低获取数据稳定性的前提下优化线性ccd摄像头的数据采集以及处理;
[0129]
2、该基于线性ccd摄像头的车辆寻迹方法简单,便于理解,调整参数少,数据处理高效、实时性高,实用性和适应性强。
[0130]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献