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

一种机器人双目视觉实时定位装置的制作方法

2022-03-19 12:51:54 来源:中国专利 TAG:


1.本发明涉及视觉实时定位技术领域,尤其涉及一种机器人双目视觉实时定位装置。


背景技术:

2.智能机器人是目前科学技术发展最活跃的领域之一,受到了世界各国的普遍重视;随着性能的不断完善和拓展,机器人巳经成功应用于工业、农业、医疗、服务等行业,在城市安全、国防和空间探测等有危险场合更是大显身手;视觉实时定位系统是智能机器人采集外部信号的关键技术之一,但传统中实时定位系统容易受到外界因素的影响,从而影响实时定位的准确性。
3.因此,我们提出了一种机器人双目视觉实时定位装置用于解决上述问题。


技术实现要素:

4.本发明的目的是为了解决现有技术中存在传统中实时定位系统容易受到外界因素的影响,从而影响实时定位的准确性的缺点,而提出的一种机器人双目视觉实时定位装置。
5.为了实现上述目的,本发明采用了如下技术方案:
6.一种机器人双目视觉实时定位装置,包括视觉在线定位数学模型推导模块,所述视觉在线定位数学模型推导模块包括双目视觉定位模块、双目视觉定位检测模块、双目视觉定位学习模块和数据整合模块。
7.优选的,所述视觉在线定位数学模型推导模块采用tld算法;且双目视觉定位模块采用基于前后误差估计的l-k光流法;所述双目视觉定位学习模块采用p-n学习算法,且双目视觉定位检测模块包括方差分类模块、集合分类模块和最近邻分类模块。
8.优选的,所述视觉在线定位数学模型推导模块用于当目标定位结果漂移或在视野中消失时,根据在线学习得到的目标模型,对每一帧进行全图的图像块检测,确定图像块,纠正定位模块的错误。
9.优选的,所述双目视觉定位检测模块连接有级联分类模块,且双目视觉定位检测模块用于按照初始定位波门大小扫描整个图像,然后将图像块归一化后送入级联分类模块进行分类,并将通过分类的样本送入数据整合模块,所述双目视觉定位模块采用基于前后误差估计的l-k光流法进行目标定位,并通过残差判断定位是否成功,如成功则把定位结果送入数据整合模块。
10.优选的,所述tld算法采用在线模型,用于在第一帧开始后,手动标定要定位的目标,此时算法将目标以及周围的背景加入到在线模型中,目标模型由最近邻分类模块来进行更新,用集合m来表示正负样本构成的集合,那么集合m为其中p-为目标周围背景图像块,p

为目标图像块;在添加时,所有图像块均按照时间顺序,也就是新获得的和分别加到正样本和负样本的末
尾;给定任意的目标模型m和任意图像块p,定义如下的相似度度量:正样本最近邻的相似度负样本最近邻的相似度前50%的正样本最近邻的相似度相关相似度相关相似度的取值在[0,1]之间,相关相似度sr值描述了图像块是目标的可信度;保守相似度保守相似度的取值是在[0,1]之间,保守相似度sc则描述了图像块在集合m的前50%正样本的可信度。
[0011]
优选的,所述在tld算法中,识别任意图像块与在线模型之间关系用的就是保守相似度和相关相似度(sr,sc);保守相似度和相关相似度还被用于定义最近邻分类模块,若相似度大于某一阈值,既sr(p,m)>θ
nn
,图像块p就被归为正样本,反之归为负样本。
[0012]
优选的,所述双目视觉定位模块的前后误差:图像序列i
t
={i1,...,i
t
,i
t 1
,...};假设当前帧为i
t
,那么下一帧为i
t 1
,双目视觉定位模块的正序定位轨迹为f,双目视觉定位模块的逆序定位轨迹为b;将定位算法前后误差估计定义为:fb=||f1 b1||,双目视觉定位模块在相邻帧之间通过目标边界框来定位目标;对于目标框内部,采用均匀设置采样点的方法,采取100个采样点,并设置为特征点,利用前后误差的lk光流法将不好的特征点去除,再将剩余的点进行评估,利用上一帧对应像素点的邻域和当前帧定位到的像素点的邻域进行匹配,得到归一化互相关系数ncc,即式中pi(x,y)、pj(x,y)分别为上一帧与当前帧对应像素点归一化值;取ncc中值,将小于其中值的像素点排除;得到最佳定位点。
[0013]
优选的,所述双目视觉定位检测模块用于在双目视觉定位模块定位失败后,重新对定位其进行初始化;双目视觉定位检测模块利用滑动窗口对每一帧图像进行处理,且每一个窗口产生相应的图像块,判断此图像块是否含有目标;滑动窗口的大小与第一帧初始时的定位波门有关。
[0014]
优选的,所述方差分类模块用于经过滑动窗产生的所有图像块,且用于排除方差小于初始目标边界框方差50%的图像块;方差分类模块计算图像块的方差:d(x)=e(x2)-e2(x);其中,x表示图像块区域,e(x2)表示图像块区域灰度值平方的均值,e(x)表示图像块区域的灰度值均值,d(x)表示图像块区域的灰度值方差;集合分类模块用于将通过方差分类模块之后的图像块基于随机森林进行分类,利用了图像的2bit特征;随机森林包含多个基本分类模块,也就是决策树;每一个决策树都将初始目标的像素点和在候选区域采集的像素点进行两两比较,生成相应的二进制编码x,x指向决策树的后验概率:pi(y|x),y∈{0,1};其中的个数总共有2d个,d是像素点对的个数,通常取值为13,因此二进制编码就有可能8192种的编码方式,而对于所有的二进制编码都用其各自的后验概率所代表;定义后验概率为:其中m
p
和mn分别代表着正样本图像块和负样本图像块的个数;最
近邻分类模块利用在线模型来计算图像块与目标模型的相关相似度;如果一个图像块与在线模型的相关相似度大于给定的阈值,既sr(p,m)>θ
nn
,那么此图像块便分类为目标样本,否则为背景图像块。
[0015]
优选的,所述双目视觉定位学习模块用于添加在线模型中的目标模型,且用于对每一帧中检测器的分类结果进行评估;双目视觉定位学习模块通过p-n学习对视频序列进行在线处理逐步改善检测器性能;对于视频中的每一帧图像数据,需要评估检测模块在当前帧中的误检,并利用此方法来更新目标模型。
[0016]
与现有技术相比,本发明的有益效果是:
[0017]
本发明具备了能适应实际场景中的复杂变化,在保持原算法高效率的同时,提高了鲁棒性和准确性,并且减轻困扰传统双目的轨迹漂移问题,提供更准确,更鲁棒的定位结果,解决了视觉实时定位系统是智能机器人采集外部信号的关键技术之一,但传统中实时定位系统容易受到外界因素的影响,从而影响实时定位的准确性的问题。
附图说明
[0018]
图1为本发明提出的一种机器人双目视觉实时定位装置的原理框图;
[0019]
图2为本发明提出的一种机器人双目视觉实时定位装置的tld算法整体框图;
[0020]
图3为本发明提出的一种机器人双目视觉实时定位装置的级联分类模块框图;
[0021]
图4为本发明提出的一种机器人双目视觉实时定位装置的p-n学习算法框图;
[0022]
图5为本发明提出的一种机器人双目视觉实时定位装置的并行处理结构框图。
[0023]
图中:1视觉在线定位数学模型推导模块、2双目视觉定位模块、3双目视觉定位检测模块、31方差分类模块、32集合分类模块、33最近邻分类模块、4双目视觉定位学习模块、5数据整合模块。
具体实施方式
[0024]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0025]
参照图1-5,一种机器人双目视觉实时定位装置,包括视觉在线定位数学模型推导模块1,所述视觉在线定位数学模型推导模块1包括双目视觉定位模块2、双目视觉定位检测模块3、双目视觉定位学习模块4和数据整合模块5。
[0026]
本发明中,所述视觉在线定位数学模型推导模块1采用tld算法;且双目视觉定位模块2采用基于前后误差估计的l-k光流法;所述双目视觉定位学习模块4采用p-n学习算法,且双目视觉定位检测模块3包括方差分类模块31、集合分类模块32和最近邻分类模块33。
[0027]
本发明中,所述视觉在线定位数学模型推导模块1用于当目标定位结果漂移或在视野中消失时,根据在线学习得到的目标模型,对每一帧进行全图的图像块检测,确定图像块,纠正定位模块的错误。
[0028]
本发明中,所述双目视觉定位检测模块3连接有级联分类模块,且双目视觉定位检测模块3用于按照初始定位波门大小扫描整个图像,然后将图像块归一化后送入级联分类模块进行分类,并将通过分类的样本送入数据整合模块5,所述双目视觉定位模块2采用基
于前后误差估计的l-k光流法进行目标定位,并通过残差判断定位是否成功,如成功则把定位结果送入数据整合模块5。
[0029]
本发明中,所述tld算法采用在线模型,用于在第一帧开始后,手动标定要定位的目标,此时算法将目标以及周围的背景加入到在线模型中,目标模型由最近邻分类模块33来进行更新,用集合m来表示正负样本构成的集合,那么集合m为其中p-为目标周围背景图像块,p

为目标图像块;在添加时,所有图像块均按照时间顺序,也就是新获得的和分别加到正样本和负样本的末尾;给定任意的目标模型m和任意图像块p,定义如下的相似度度量:正样本最近邻的相似度负样本最近邻的相似度前50%的正样本最近邻的相似度相关相似度相关相似度的取值在[0,1]之间,相关相似度sr值描述了图像块是目标的可信度;保守相似度保守相似度的取值是在[0,1]之间,保守相似度sc则描述了图像块在集合m的前50%正样本的可信度。
[0030]
本发明中,所述在tld算法中,识别任意图像块与在线模型之间关系用的就是保守相似度和相关相似度(sr,sc);保守相似度和相关相似度还被用于定义最近邻分类模块33,若相似度大于某一阈值,既sr(p,m)>θ
nn
,图像块p就被归为正样本,反之归为负样本。
[0031]
本发明中,所述双目视觉定位模块2的前后误差:图像序列i
t
={i1,...,i
t
,i
t 1
,...};假设当前帧为i
t
,那么下一帧为i
t 1
,双目视觉定位模块2的正序定位轨迹为f,双目视觉定位模块2的逆序定位轨迹为b;将定位算法前后误差估计定义为:fb=||f1 b1||,双目视觉定位模块2在相邻帧之间通过目标边界框来定位目标;对于目标框内部,采用均匀设置采样点的方法,采取100个采样点,并设置为特征点,利用前后误差的lk光流法将不好的特征点去除,再将剩余的点进行评估,利用上一帧对应像素点的邻域和当前帧定位到的像素点的邻域进行匹配,得到归一化互相关系数ncc,即式中pi(x,y)、pj(x,y)分别为上一帧与当前帧对应像素点归一化值;取ncc中值,将小于其中值的像素点排除;得到最佳定位点。
[0032]
本发明中,所述双目视觉定位检测模块3用于在双目视觉定位模块2定位失败后,重新对定位其进行初始化;双目视觉定位检测模块3利用滑动窗口对每一帧图像进行处理,且每一个窗口产生相应的图像块,判断此图像块是否含有目标;滑动窗口的大小与第一帧初始时的定位波门有关。
[0033]
本发明中,所述方差分类模块31用于经过滑动窗产生的所有图像块,且用于排除方差小于初始目标边界框方差50%的图像块;方差分类模块31计算图像块的方差:d(x)=e(x2)-e2(x);其中,x表示图像块区域,e(x2)表示图像块区域灰度值平方的均值,e(x)表示图像块区域的灰度值均值,d(x)表示图像块区域的灰度值方差;集合分类模块32用于将通过
方差分类模块31之后的图像块基于随机森林进行分类,利用了图像的2bit特征;随机森林包含多个基本分类模块,也就是决策树;每一个决策树都将初始目标的像素点和在候选区域采集的像素点进行两两比较,生成相应的二进制编码x,x指向决策树的后验概率:pi(y|x),y∈{0,1};其中的个数总共有2d个,d是像素点对的个数,通常取值为13,因此二进制编码就有可能8192种的编码方式,而对于所有的二进制编码都用其各自的后验概率所代表;定义后验概率为:其中m
p
和mn分别代表着正样本图像块和负样本图像块的个数;最近邻分类模块33利用在线模型来计算图像块与目标模型的相关相似度;如果一个图像块与在线模型的相关相似度大于给定的阈值,既sr(p,m)>θ
nn
,那么此图像块便分类为目标样本,否则为背景图像块。
[0034]
本发明中,所述双目视觉定位学习模块4用于添加在线模型中的目标模型,且用于对每一帧中检测器的分类结果进行评估;双目视觉定位学习模块4通过p-n学习对视频序列进行在线处理逐步改善检测器性能;对于视频中的每一帧图像数据,需要评估检测模块在当前帧中的误检,并利用此方法来更新目标模型。
[0035]
本发明中,双目视觉定位模块2使用一种基于前后误差估计的l-k光流法;前后误差估计就是假设一个好的定位算法,对于正序和逆序定位产生的轨迹应该是相同的;而光流法理论基于三个假设;第一,假设运动随时间的变化比较缓慢或时间连续;第二,假设亮度恒定,像素点被逐帧定位时其亮度不发生改变,即光照不会发生大的变化;第三,假设空间一致,即一个场景中同一表面上邻近的点具有相似的运动,基于上面三个假设,那么可以确定一个双目视觉定位模块2的前后误差:若图像序列i
t
={i1,...,i
t
,i
t 1
,...}假设当前帧为i
t
,那么下一帧为i
t 1
,对于一个双目视觉定位模块2,它的正序定位轨迹为f,逆序定位轨迹为b;假设(a)和(b)是相邻的两个视频帧,(b)位于(a)的下一帧;在视频帧(a)中选定像素点1,通过前向定位,在下一帧(b)中得到所预测的像素点3;然后通过后向定位,用光流法逆向定位下一帧图像的像素点3,可以发现像素点3在当前帧图像中后向预测得到的点与原始选定的像素点1重合;那么对于这个像素点的前向所产生的前向轨迹和后向定位所产生的后向轨迹是完全相同的,则判定定位有效;相反,在视频帧(a)中选定像素点2,通过前向定位,在下一帧(b)中得到所预测的像素点4;然后后向定位这个点,在当前帧产生像素点5,像素点5与原始选定的像素点2距离较远,则判定定位无效;这种不一致性很容易识别出来。
[0036]
本发明中,双目视觉定位检测模块3作用是在双目视觉定位模块2定位失败后,重新对定位其进行初始化;双目视觉定位检测模块3利用滑动窗口对每一帧图像进行处理,且每一个窗口产生相应的图像块,判断此图像块是否含有目标;滑动窗口的大小与第一帧初始时的定位波门有关,它的参数设定如下:
[0037]
1)尺度的缩放比例为1.2,共有21种尺度变换(实现中尺度变化范围取0.16151~6.19174);
[0038]
2)水平步长系数是初始目标边界框宽度的10%;
[0039]
3)垂直步长系数是初始目标边界框高度的10%;
[0040]
4)最小的边界框的大小是20像素。
[0041]
双目视觉定位检测模块3中包含三个级联的分类模块,首先通过一个滑动窗口将一帧图像分割为n个候选图像块;然后将这些图像块送入级联分类模块,级联的三个分类模
块分别为方差分类模块31、随机森林的集合分类模块32和最近邻分类模块33。
[0042]
方差分类模块31:经过滑动窗产生的所有图像块都经过方差分类模块31,排除方差小于初始目标边界框方差50%的图像块,它的目的是滤除一些较为平坦的区域,减少计算量,方差分类模块31计算图像块的方差:d(x)=e(x2)-e2(x);其中,x表示图像块区域,e(x2)表示图像块区域灰度值平方的均值,e(x)表示图像块区域的灰度值均值,d(x)表示图像块区域的灰度值方差。
[0043]
集合分类模块32的输入是通过方差分类模块31之后的图像块,此分类模块基于随机森林进行分类,利用了图像的2bit特征;。随机森林包含多个基本分类模块,也就是决策树;每一个决策树都将初始目标的像素点和在候选区域(也就是方差分类模块输出的图像块)采集的像素点进行两两比较,生成相应的二进制编码x,x指向决策树的后验概率:pi(y|x),y∈{0,1};其中的个数总共有2d个,d是像素点对的个数,通常取值为13,因此二进制编码就有可能8192种的编码方式,而对于所有的二进制编码都用其各自的后验概率所代表;定义后验概率为:其中m
p
和mn分别代表着正样本图像块和负样本图像块的个数。
[0044]
最近邻分类模块33:由于各个决策树是相互独立的,因此对于每个决策树的后验概率取平均值m,那么能进入最近邻分类模块33的前提条件为,m大于50%;最近邻分类模块33利用在线模型来计算图像块与目标模型的相关相似度;如果一个图像块与在线模型的相关相似度大于给定的阈值,既sr(p,m)>θ
nn
,那么此图像块便分类为目标样本,否则为背景图像块。
[0045]
双目视觉定位学习模块4采用的是p-n学习算法;在线模型中的目标模型由双目视觉定位学习模块4进行添加,双目视觉定位学习模块4对每一帧中检测器的分类结果进行评估。
[0046]
双目视觉定位学习模块4通过p-n学习对视频序列进行在线处理逐步改善检测器性能;对于视频中的每一帧图像数据,需要评估检测模块在当前帧中的误检,并利用此方法来更新目标模型,从而使得在以后的视频帧处理过程中避免类似的错误再次发生;p-n学习算法的关键就是对于两种类型的experts:p-experts能够检测出哪些本应是正样本数据,而被错误分类为负样本数据;n-experts能够检测出哪些本应是负样本数据,而被错误分类为正样本数据;不过即便是这样,不可避免的会出现p-experts和n-experts本身的偏差,但只要错误率低于0.5,两个expert可以相互弥补。
[0047]
首先利用有标签的数据进行半监督的学习方法来进行训练,这个过程相当于对分类模块进行初始化操作;然后利用所得到的分类模块对未赋予标签的数据进行分类并进行标记,之后利用p-n学习算法来找出被错误分类的样本数据,并对产生冲突的样本数据进行纠正,并以此来修正训练样本数据集,这样便改善了下一次迭代训练之后得到的分类模块的性能;在初始化分类模块的过程中,确定了先验约束条件,所以p-experts可以依据先验约束条件来对纠正分类模块的错误,将那些被分类模块错误的分类为负样本的数据,重新赋予“正”的标签,并加到训练集中;同样的,n-experts则利用先验的约束条件将那些被分类模块错误的分类为正样本的数据,重新赋予“负”的标签,并加到训练集中;两者相辅相成,共同增加了分类模块的鲁棒性和判别能力。而先验约束条件则通过分类模块进行更新。
[0048]
在具体实现中,p-n学习采用了两种假设:
[0049]
假设目标移动是沿着某一轨迹运动的,那么相邻帧间的位置移动很小,且存在一定的相关性,p-experts正是利用视频序列中这种时域上的结构特性;p-experts记录目标在前一帧中的位置,再根据帧与帧之间的lk光流算法来预测目标在当前帧的位置;如果双目视觉定位检测模块3将定位算法预测到的目标在当前帧中的位置标记为负标签,那么p-experts就产生一个正的训练样本;假设在一个视频帧中,目标出现的位置只有可能是唯一确定的,也就是只有一个位置是目标出现的位置,那么n-experts利用视频序列中这种空域上的结构特性,对双目视觉定位模块2的输出结果以及双目视觉定位检测模块3在当前帧中的所有输出结果进行评估和分析,并找到那个具有最大可能的区域;若对于当前帧,所有目标可能出现的区域中,某个区域与最大可能区域之间没有重叠,那么就将其认定为负样本;并且,通过那个具有最大可能的区域进行定位模块的重新初始化。
[0050]
双目视觉实时里程计的软件实现:
[0051]
vo是一种为移动机器人提供定位功能的实用型算法,当前时刻的位姿信息是移动机器人进行路径规划、行为控制、任务选择等决策的基础,这意味着vo需要适应机器人的移动速度,实时地完成定位;这里的“实时”并非一个特定的频率,而是依赖于机器人的移动速度、导航所需的定位频率、相机视场等多方面因素。但在同样的条件下,vo系统的实时性基本等价于处理速度,处理速度越快,实时性越强;从另一个角度讲,实时性关系到vo的应用范围,的实时性越强,其应用范围就越广,因此,实时性是衡量vo系统性能的关键指标之一。
[0052]
计算代价不随图像序列长度的增长而增长,是vo相比v-slam和基于图像匹配的全局定位的最大优势,但这只说明vo具有实时定位的理论基础,要想根据具体应用场景实现可实时工作的vo系统,还要面对极大挑战。在选择构建vo系统的具体算法时,要面临实时性与精度之间的取舍,通常精度更高的方法需要更多的处理时间,而计算代价较低的方法精度往往逊色一些,在保证精度的前提下,算法模块与系统结构的选择空间受到了很大限制。
[0053]
gpu与cpu比较:
[0054]
gpu(graphic processing unit)和cpu具有强大的运算能力,但cpu性能更加全面,兼顾指令运算和数值运算;而拥有更多可以并行处理的算术逻辑单元(arithmetic and logical unit,alu),注于数值运算。
[0055]
cpu在提高制程和主频方面遇到了工艺壁垒,暂时很难突破,对于大量数据的并行处理,cpu面临越来越大的困难。而从1993年开始cpu性能以每年2.8倍的速度增长,目前gpu的优势主要是可并行的浮点运算,但在处理逻辑指令时仍有短板。在这样的背景下,cpu与gpu共同参与数据处理巳经成为一种趋势。
[0056]
传统gpu不具备可编程能力,只能实现固定功能的道染流水线,如direct3d和opengl等3d api与图形硬件交互时都是作为一个状态机来实现的。用户通过3d api提供的函数设置好相应的状态,比如变换矩阵、材质参数、光源参数、纹理混合模式等,然后传入顶点流。图形硬件则利用内置的固定道染流水线和道染算法对这些顶点进行几何变换、光照计算、光栅化、纹理混合、雾化等操作,并最终将处理结果写入巾贞缓冲区。这种渲染体系下,用户只能使用图形硬件中固化的各种道染算法,可以满足对道染质量要求不高的应用,但难以实现客户定义的、灵活性更高的实时图形应用。
[0057]
为了解决这一难题,现代gpu的3d道染流程中加入了两个可编程处理器——顶点
处理器(vertex engine,ve)和像素处理器(pixel engine,pe)。它们都由算术逻辑单元和相应的寄存器组成。这两个可编程引擎分别可以取代相应的固定流水线。顶点处理器和像素处理器都没有内存的概念,所有的运算都在寄存器上进行。除了顶点处理器和像素处理器之外,还有两个着色器的概念被引入到可编程图形处理器之中。顶点染色器就是运行于ve之上的程序,它的工作是进行几何变换和光照计算等操作。而运行于pe之上的片段染色器则主要进行纹理混合等操作。可编程处理器和染色器为gpu提供了更加强大和灵活的3d渲染能力,也给gpgpu的诞生提供了条件,在3d引擎的发展史上具有十分重要的意义。
[0058]
把现代gpu强大的并行处理能力和可编程流水线用于通用计算,允许使用流处理器处理非图形数据,这项工作称为gpgpu(general purpose computation on gpus)。在符合单指令多数据(simd)且数据处理的运算量远大于数据调度和传输时,gpgpu在性能上大大超越了传统的cpu。gpgpu在异构协同处理计算模型中将cpu与gpu结合起来加以利用,应用程序的串行部分在cpu上运行,而计算任务繁重的可并行数值计算部分则由gpu来加速。
[0059]
基于glsl和gpgpu的软件实现:
[0060]
glsl(opengl shading language)一种以c语言为基础的高阶着色语言,由opengl arb建立,为gpu的程序开发提供了方便的接口。作为opengl的正式成员,glsl继承了opengl的一切优点。首先,它具有平台无关性,可以运行在所有opengl支持的操作系统上,也可以运行在所有文持图形流水线定义的可编程硬件gpu的上。其次,glsl提供尽可能底层的硬件接口,具有很高的运行效率和灵活性。同时,glsl语言在语法上近似于c/c ,易于开发。
[0061]
片段染色器变量及接口图中,texture类型变量是最主要的数据输入输出媒介,需要并行处理的大块数据一般以纹理的形式传入染色器,经过处理后的结果再以纹理的形式输出。uniform类型变量为全局变量,在染色器内部是只读的。而varying类型的变量可以从顶点染色器向片段染色器传递参数。
[0062]
基于gpgpu和sift的算法:
[0063]
基于gpgpu对算法进行加速,首要任务是分析目标算法中每个模块的可并行性,可并行的程度越高,加速效果越明显。在提取sift特征的过程中,几乎所有步骤都符合单指令多数据的特点,可以使用gpu对其进行并行处理,这里需要把sift中可并行的算法模块写入片段染色器,具体包括图像采样、高斯模糊、差分高斯图像、尺度空间极值点检测、关键点亚像素定位、关键点主方向计算、关键点描述符计算。
[0064]
由于glsl语言的函数接口与c语言非常接近,每个染色器的实现过程基本与传统算法一致。不同的是,模块需要处理的数据以纹理形式传递给cpu,而模块需要执行的操作以染色器的形式调用,在使用染色器进行道染后,即可获得相应的以纹理形式输出的处理结果。
[0065]
双目视觉实时定位系统网络控制设计:
[0066]
在构建双目定实时位系统时,需要考虑一些阈值参数的设置问题。比如在sift,特征提取时,dog响应阈值会影响特征点的个数;在运动估计模块中,ransac随机采样的次数会影响获得最优运动模型的概率等等。一般来讲,在不考虑实时性的情况下,每个模块输出的信息越完备越准确,对于后续处理越有利。但考虑到实时性,就需要对每个模块的参数进行精细化控制,尽量不让计算资源浪费在不必要的开支上。阈值调整的难点在于实际情况的复杂性,固定的阈值无法适应所有可能出现的情况。例如,使用slft默认的阈值,在纹理
较为丰富的环境中,一张640*480分辨率图像可以提取约6000个特征点,立体匹配后约保留2000对匹配点,前后匹配后约保留1000对匹配点,这个数量级的匹配点对不仅足够进行运动估计,还需要适当减少以加快处理速度。但在弱纹理环境中,使用同样的阈值,提取出来的特征点可能只有不到1000个,最终前后顿间匹配的三维点对数量只有100左右,并且往往包含较多的误配点,在这种情况下还需要想办法增加匹配成功的特征点对,以提高运动估计的精度。
[0067]
经过实验验证,在使用tlbba算法进行优化的情况下,前后侦间匹配的三维点数量在100-200之间时,运动估计精度较高,同时处理速度较快。为了这个目标,我们使用一种基于网格筛选的特征匹配控制方法,具体步骤如下:
[0068]
1)首先将整幅图像均等地划分为约个网格,在提取特征点时,按照特征响应函数的响应值对网格内的关键点进行排序,每个网格保留前个关键点。由于在天空、地面等弱纹理区域特征点很少,所以整幅图像一共可提取约1000-1500个特征点;
[0069]
2)在特征立体匹配过程中,按照特征匹配代价对网格内的特征进行排序,每个网格保留前4-8对特征点。由于三维重建时对距离较远的环境点重建精度较低,所以在匹配时给予图像下方网格更高的优先级,它们可以保留更多的特征点。经过立体匹配,大约保留400对匹配特征点。
[0070]
3)在特征前后侦匹配过程中,同样按照特征匹配代价对网格内的特征进行排序,每个网格保留对1-2特征点,一共保留对匹配特征点。经过基于网格的特征控制,一方面可以在纹理丰富的场景中,去除冗余的特征点信息,减少了不必要的计算代价;一方面在弱纹理情况下,保留了绝大多数有用的特征点,防止因单纯地调整阈值参数导致特征点数过少。另外,使用基于网格的特征控制,可以最大程度帮助特征点对均句地分布在整个图像上,这祥有利于提高运动估计过程的稳定性和准确性。
[0071]
基于多线程的并行处理:
[0072]
尽管cpu并不擅长大批量数据的并行处理,但即使是普通的个人电脑,也已经具备4个核心,8个线程的计算资源,虽然逊色于gpu那样强大的并行能力,但在逻辑判断方面更具优势。为了进一步利用cpu的资源,我们把整个双目视觉定位系统分为两个线程进行并行处理;特征匹配线程负责特征点提取、匹配和三维点对重建;运动估计线程负责进行基于ransac结合horn方法的运动估计、两阶段局部双目光束法平差(tlbba)、累积单步运动参数得到机器人全局位姿。由于运动估计线程需要使用匹配的三维点对信息,所以需要延迟于特征匹配线程1帧的时间。
[0073]
综上所述,具备了能适应实际场景中的复杂变化,在保持原算法高效率的同时,提高了鲁棒性和准确性,并且减轻困扰传统双目的轨迹漂移问题,提供更准确,更鲁棒的定位结果,解决了视觉实时定位系统是智能机器人采集外部信号的关键技术之一,但传统中实时定位系统容易受到外界因素的影响,从而影响实时定位的准确性的问题。
[0074]
工作原理:该机器人双目视觉实时定位装置在使用时,双目视觉定位检测模块3将每一帧图像单独处理,按照初始定位波门大小扫描整个图像,当目标消失在视野中或者产生漂移时,它利用双目视觉定位学习模块4在线学习到的目标模型对每一帧做图像块检测,将图像块归一化之后送入级联分类模块进行分类,分类后的样本送入数据整合模块5,双目视觉定位模块2是利用帧间的信息,采用基于l-k光流法的前后误差估计来进行定位,定位
结果通过残差来进行判断,若成功,就把定位结果送入数据整合模块5,数据整合模块5融合双目视觉定位检测模块3和双目视觉定位模块2的结果,通过一定的准则判断出当前帧目标的位置和大小,当然,如果双目视觉定位检测模块3和双目视觉定位模块2的结果均不符合要求,则无结果输出。
[0075]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

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

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

相关文献