一种单摄像头测距方法与流程

文档序号:11196716阅读:784来源:国知局
一种单摄像头测距方法与流程

本发明涉及测距方法领域,尤其涉及一种单摄像头测距方法。



背景技术:

目前利用摄像头进行测距的方法,最常见的是双目视差法,这种方法用两个摄像头采集图像数据,并根据物体上的某一点在两个摄像头中的视差成像确定该点到摄像头的距离,但双目视差法测距硬件成本较高,计算量大,测距结果易受特征点误匹配的影响;现有用单个摄像头测量两点距离的方法通常为摄像头加激光发射机的方法,但相比普通光源,激光发射机成本较高,而且操作起来也比较繁琐;现在也有通过移动摄像头和三角函数计算获得距离信息的方法,但其测量系统需要有个移动过程才能完成距离测量,不具备良好的实时性;也有利用对单目摄像头测距模型建模以获得距离信息的方法,但其过程需要经过大量的三角函数计算,计算方法较为复杂,无疑增加了计算成本和延长了测距时间,不具备良好的用户体验,也难以满足实时性要求。

如何利用单个摄像头准确、方便、实时的测量摄像头到物体的距离,成为亟待解决的问题。



技术实现要素:

本发明的目的在于提供一种单摄像头测距方法,目的在于解决传统的测距方法中利用激光发射机测距成本较高的问题,还用于解决利用三角函数测距法测距计算方法复杂、且不具备良好实时性的问题。

为了实现上述目的,本发明采用以下技术方案:

一种单摄像头测距方法,包括以下步骤:

s1:在采样物体表面粘贴目标图像,目标图像中有一条宽度为x厘米的竖直线,竖直线的颜色与目标图像的背景颜色不同;在目标图像的正前方、距离目标图像l厘米处放置并启动摄像头;

s2:将摄像头采集到的图像发送给微处理器进行预处理,并将摄像头采集到的图像转换为黑白图像,竖直线所在区域为黑色图像,目标图像背景所在区域为白色图像;

s3:利用微处理器在黑白图像上取m行、n列共m*n个点作为采样点,定义数字“0”和“1”分别代表处于黑白图像黑色区域的采样点和处于黑白图像白色区域的采样点;

s4:将m*n个采样点中数字为“0”的采样点作为特征点,利用微处理器获取并计算平均每行的特征点个数,即平均每行“0”的个数;

s5:改变摄像头与采样物体之间的相对距离l共q次(q>3),每次改变后均重复s1-s4步骤,其中,第q次改变后的相对距离表示为lq,第q次平均每行的特征点个数表示为

s6:建立与lq的关系的数据库并利用matlab工具得到与lq的非线性近似方程;

s7:在任意被测物体前粘贴步骤s1所述的目标图像,并在被测物体前任意距离处放置摄像头,重复步骤s2-s4,得到由被测物体生成的黑白图像中平均每行特征点个数,调用步骤s6中的非线性近似方程,即可得到被测物体与摄像头之间的距离l。

所述步骤s2包括以下步骤:

s21:将摄像头采集到的图像发送给微处理器,微处理器对摄像头采集到的图像进行预处理,滤除干扰信号,并输出灰度图像;

s22:微处理器对灰度图像进行进一步处理,将灰度图像转化为黑白图像。

步骤s3所述的利用微处理器在黑白图像上取m*n个点作为采样点的具体过程如下:在黑白图像的左上角选一起点,起点必须在黑色图像区域的左边,并水平向右以相等间距取n个点作为第一行采样点,所设间距要使第n个点必须在竖直线对应的黑色图像右边且不能在整幅图像之外;然后以第一行的每个点作为起始点,分别竖直向下取(m-1)个点,且使第m个点不能在图像之外,以形成m行n列共m*n个点作为采样点。

步骤s4中所述的计算平均每行的特征点个数的方法为:

其中,q代表采样次数,m代表采样点行数,kmq表示第q次采样第m行的特征点个数,表示摄像头距离采样物体距离为lq时对应的特征点个数的平均值。

所述步骤s6包括以下步骤:

s61:通过q次采样,建立平均每行特征点个数与相对距离lq的数据库;

s62:利用matlab中的非线性回归函数工具nlinfit()求解相对距离l与平均每行特征点个数的非线性近似方程。

本发明的有益效果:

利用本发明所述的一种单摄像头测距方法,无需使用造价昂贵的激光发射机,也不需经过复杂计算,只需将目标图像粘贴在采样物体前方,在目标图像生成的黑白图像上取m*n个采样点,求解摄像头与采样物体之间相对距离和平均每行特征点个数的非线性近似方程;需测距时,只需将被测物体表面粘贴上述的目标图像,然后在被测距离处利用微处理器取m*n个采样点,得到平均每行特征点个数,代入非线性近似方程即可求得被测距离;本发明所述的一种单摄像头测距方法具有干扰小(针对超声波),硬件成本低,体积小,结构简单,操作方便(针对加激光传感器的情况),测距方式灵敏、快速,实时性好(针对需要移动过程和三角函数计算的情况),测距精度高等优点,在室内移动机器人、工业自动化车间等需要检测距离的领域具有广阔的应用前景。

附图说明

为了更清楚地说明本发明具体实施方式中的技术方案,下面将对具体实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的方法流程图;

图2为微处理器将摄像头采集到的图像转换为灰度图像的示意图;

图3为微处理器将摄像头采集到的图像转换为黑白图像并取采样点的示意图;

图4为分别定义位于黑色区域和位于白色区域内的采样点为“0”和“1”的示意图;

图5为利用matlab得到的非线性回归分析结果示意图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示:本发明所述的一种单摄像头测距方法,利用单摄像头即可测出摄像头与采样物体之间的距离,具体包括以下步骤:

s1:在采样物体表面粘贴目标图像,目标图像中有一条宽度为x厘米的竖直线,竖直线的颜色与目标图像的背景颜色不同;在目标图像的正前方、距离目标图像l厘米处放置并启动摄像头;

其中,优选方案为:竖直线采用黑色直线,目标图像的背景颜色为白色或者灰色,黑色与白色或灰色对比明显,有利于微处理器对摄像头采集的图像进行处理;摄像头焦距固定不变,摄像头采用逐行扫描方式,摄像头在采集图像时需要保证扫描行所在平面与目标图像所在的平面保持平行,同时需要保证扫描行与竖直线垂直;同时保持光源稳定。

s2:将摄像头采集到的图像发送给微处理器进行预处理,并将摄像头采集到的图像转换为黑白图像,竖直线所在区域为黑色图像,目标图像背景所在区域为白色图像;具体包括以下步骤:

s21:如图2所示:首先将摄像头采集到的图像发送给微处理器进行预处理,滤除干扰信号,并输出灰度图像;

s22:如图3所示:利用微处理器将预处理后的灰度图像转换为黑白图像;

这里需要说明的是:利用微处理器对摄像头采集到的图像进行预处理并输出灰度图像属于现有成熟技术,利用微处理器将灰度图像转换为黑白图像也属于现有成熟技术,这里不再赘述。

s3:如图4所示:利用微处理器在黑白图像上取m行、n列共m*n个点作为采样点,定义数字“0”和“1”分别代表处于黑色区域的采样点和处于白色区域的采样点;

在黑白图像上取m*n个点作为采样点的具体过程如下:在黑白图像的左上角选一起点,起点必须在黑色图像区域的左边,并水平向右以相等间距取n个点作为第一行采样点,所设间距要使第n个点必须在竖直线对应的黑色图像右边且不能在整幅图像之外;然后以第一行的每个点作为起始点,分别竖直向下取(m-1)个点,且使第m个点不能在图像之外,以形成m行n列共m*n个点作为采样点。

s4:定义m*n个采样点中数字为“0”的采样点作为特征点,利用微处理器获取并计算平均每行的特征点个数,即平均每行“0”的个数;所述的计算平均每行的特征点个数的方法为:

其中,q代表采样次数,m代表采样点行数,kmq表示第q次采样第m行的特征点个数,表示摄像头距离采样物体距离为lq时对应的平均每行特征点个数的平均值。

s5:改变摄像头与采样物体之间的相对距离l共q次(q>3),每次改变后均重复s1-s4步骤,其中,第q次改变后的相对距离记为lq,相对距离为lq时对应的平均每行特征点个数记为因为相对距离的改变将引起竖直线的宽度占画面整行的比例发生变化,即每改变一次距离,均取m*n个点,则平均每行特征点的个数均会不同,即相对距离与平均每行特征点的个数存在着非线性关系;

s6:建立与lq的关系的数据库并利用matlab工具得到与lq的非线性近似方程,具体包括以下步骤;

s61:通过q次采样,建立平均每行特征点个数与相对距离lq的数据库;

s62:利用matlab中的非线性回归函数工具nlinfit()求解相对距离l与平均每行特征点个数的非线性近似方程。

s7:在任意被测物体前粘贴步骤s1所述的目标图像,并在被测物体前任意距离处放置摄像头,重复步骤s2-s4,得到由被测物体生成的黑白图像中平均每行特征点个数,调用步骤s6中的非线性近似方程,即可得到被测物体与摄像头之间的距离l。

利用本发明所述的一种单摄像头测距方法,无需使用造价昂贵的激光发射机,也不需经过复杂计算,只需将目标图像粘贴在采样物体前方,在目标图像生成的黑白图像上取m*n个采样点,求解摄像头与采样物体之间相对距离和平均每行特征点个数的非线性近似方程;需测距时,只需将被测物体表面粘贴上述的目标图像,然后在被测距离处利用微处理器取m*n个采样点,得到平均每行特征点个数,代入非线性近似方程即可求得被测距离。

下面结合实施例对本发明所述的一种单摄像头测距方法进行进一步说明:

s1:在采样物体表面粘贴目标图像,目标图像中有一条宽度为x厘米的黑色竖直线,目标图像的背景为白色;在目标图像的正前方、距离目标图像l厘米处放置并启动摄像头;所述的摄像头采用ov7620数字摄像头,分辨率为640*480,逐行扫描方式,目标图像中竖直线的宽度为x=1.7厘米。

s2:将摄像头采集到的图像发送给微处理器进行预处理,并将摄像头采集到的图像转换为黑白图像,竖直线所在区域为黑色图像,目标图像背景所在区域为白色图像,具体包括以下步骤:

s21:首先将摄像头采集到的图像发送给微处理器进行预处理,滤除干扰信号,并输出灰度图像;

s22:利用微处理器将预处理后的灰度图像转换为黑白图像;

所述微处理器采用mk60dn512vlq10,mk60dn512vlq10为是32位armcortex-m4处理器,内核频率高达100mhz,完全能够满足图像数据的处理需求。

s3:利用微处理器在黑白图像上取m*n个点作为采样点,定义数字“0”和“1”分别代表处于黑色区域的采样点和处于白色区域的采样点,具体的m=60,n=260;

s4:定义m*n个采样点中数字为“0”的采样点作为特征点,利用微处理器获取并计算平均每行特征点个数,即平均每行“0”的个数;所述的计算平均每行的特征点个数的方法为:

其中,q代表采样次数,m代表采样点行数,kmq表示第q次采样第m行的特征点个数,表示摄像头距离采样物体距离为lq时对应的特征点个数的平均值。

s5:改变摄像头与采样物体之间的相对距离l共9次(q=9),每次改变后均重复s1-s4步骤,其中,第q次改变后的相对距离记为lq,摄像头距离采样物体距离为lq时对应的平均每行的特征点个数记为

s6:建立与lq的关系的数据库并利用matlab工具得到与lq的非线性近似方程,具体包括以下步骤;

s61:通过改变相对距离进行q次采样,建立平均每行特征点个数与相对距离lq的数据库,如下表所示:

s62:利用matlab中的非线性回归函数工具nlinfit()求解相对距离l与平均每行特征点个数的非线性近似方程,具体采用以下步骤:

观察数据后发现,相对距离lq与平均每行特征点数之间存在反比例关系,建立非线性近似方程的回归函数原型为反比例函数

于是得到:

其中a,b,c为回归系数,因此利用matlab中的非线性回归函数工具nlinfit(x,y,f,[0;0;0]),求得回归系数a,b,c的值,具体的,执行程序与执行结果如下,并得到如图5所示的非线性回归分析结果示意图:

l=[5,7,10,15,20,25,30,35,40];

k=[84,59,44,30,24,20,17,13,12];

f=@(beta,l)beta(1)./(l+beta(2))+beta(3);

beta=nlinfit(l,k,f,[0;0;0]);

a=beta(1),b=beta(2),c=beta(3)

ll=1:.1:45;

kk=a./(ll+b)+c;

plot(l,k,'o',ll,kk)

a=

412.0258

b=

0.1004

c=

2.6106

于是,得到相对距离l与平均每行特征点个数k的非线性近似方程为:

s7:在任意被测物体前粘贴步骤s1所述的目标图像,并在被测物体前任意距离处放置摄像头,重复步骤s2-s4,得到由被测物体生成的黑白图像中平均每行特征点个数,调用步骤s6中的非线性近似方程,即可得到被测物体与摄像头之间的距离l,本实施例中,在不同的相对距离下,相对距离l的测量值与相对距离的实际值的绝对误差如下表所示:

通过上述实施例的测量结果可以看出,本发明所述的一种单摄像头测距方法具有干扰小(针对超声波),硬件成本低,体积小,结构简单,操作方便(针对加激光传感器的情况),测距方式灵敏、快速,实时性好(针对需要移动过程和三角函数计算的情况),测距精度高等优点,在室内移动机器人、工业自动化车间等需要检测距离的领域具有广阔的应用前景。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1