【技术领域】
本发明涉及图像识别的技术领域,特别是面向盲人的基于图像特征标定的实时障碍物检测方法的技术领域。
背景技术:
据世界卫生组织2010年的统计数据显示,在中国盲人群体数量庞大,失明人士共有824.8万,数量位列世界第一。而在2016年,视障人数的数量已经迅速增长到了1731万人,也就是说,每八十个人中,大约就有一名失明人士。随着我国盲人数量的增加,盲人出行难的问题被愈加关注。然而,在我国有很多盲道都安装错误,没有达到合格的标准,而且盲道被其它设施占用或者阻碍的情况非常常见。有些盲人依靠导盲犬出行,但是,实际服役的导盲犬数量十分少,在北京目前登记注册的导盲犬也只有10条。由于成为导盲犬要求高,培训的费用很高,因此导盲犬帮助盲人出行尚未在社会上普及。
为了辅助盲人运动,现有技术中出现了不少关于视觉障碍物检测的方法。张建勋等人于《重庆理工大学学报》上发表了名为“图像多特征融合的障碍物检测”的论文,文中的方法通过对连续三帧图像提取特征和边缘信息进行线性加权,再利用高斯建模方法更新背景信息,最后将背景信息从图片中剔除,来得到图片中的障碍物。杨洁等人于《机械设计与制造》上发表了名为“基于改进sift算子的动态障碍物检测方法”的论文,文中的方法通过相邻帧间特征点位置估计改进sift匹配算子,然后利用三帧差分法对图像处理后,通过改进背景方差估计,最终得到障碍物。目前障碍物检测方法多为双目视觉进行视觉建模,效率极低,不满足盲人出行的实时性要求。同时目前单目视觉障碍物检测方法为通过背景差分法将背景剔除,无法直接获取出图像中的障碍物,检测精度不高。为此,需要一种面向盲人的基于特征值标定的障碍物检测算法,可以实时检测出障碍物的方向和距离。在满足实时输出(每秒输出率3-6次)的同时对设备性能要求大幅降低。
技术实现要素:
本发明的目的就是解决现有技术中的问题,提出一种基于图像特征标定的实时障碍物检测方法,通过高效的特征值匹配算法解决了盲人出行中障碍识别效率不高的问题,通过计算障碍物的方位与距离,便于对盲人进行提示。本发明通过使用单目视觉传感器进行图像采集,对采集到的前后两帧应用改进log算法进行特征提取,改进flann算法进行特征匹配;解决了目前单目视觉障碍物提取精度较低,同时效率低下的问题;经检测在单核1.5ghz、1g内存设备上,每秒输出率在3-6次左右,解决目前算法无法实时输出的问题。
为实现上述目的,本发明提出了一种基于图像特征标定的实时障碍物检测方法,包括以下步骤:
步骤一:图像采集与预处理:通过视觉传感器采集获得连续两帧的图像,对所述图像进行裁剪后再进行灰度化处理,获得连续两帧的灰度图;
步骤二:通过改进的log算法对所述灰度图进行图像特征的提取,获得连续两帧灰度图的特征图;
步骤三:通过改进的flann算法对特征图进行特征匹配,获得连续两帧的特征图之间的匹配关系图;
步骤四:通过a-d匹配过滤算法对匹配关系图内的特征点进行过滤,过滤特征点后获得新的匹配关系图;
步骤五:对障碍物进行标定:提取障碍物轮廓,获得障碍物的运动方向和距离。
作为优选,所述步骤二中改进的log对灰度图进行特征提取的具体步骤为:
步骤21:选取某个像素p,其像素值为vp,以p点为中心,画一个半径为σ像素的圆,圆上的(σ 1)2个像素记为
步骤22:确定决策阈值,记为θp;
步骤23:根据步骤21从p中选取的(σ 1)2个像素,获得决策变量为
步骤24:当有
步骤25:获得所有潜在的log特征点,形成潜在log特征点集合;
步骤26:验证潜在log特征点集合内的点,获得特征图:应用标准log算法对所有潜在log特征点集合内的特征点进行特征提取,获得最终的log特征点集合,并将log特征点表示于灰度图中,形成特征图。
作为优选,所述步骤三中改进的flann对特征图进行特征匹配的具体步骤为:
步骤31:假设簇划分为ci(i=1,2…k),簇ci的均值向量为μi,μi的表达式为:
步骤32:将
步骤33:将步骤32剩下的簇进行特征匹配:对任意两均值向量μi、μm,求欧式距离得到的最小的d(μi,μm)即为最佳匹配,d(μi,μm)的表达式为
步骤34:将所有最佳匹配后的特征点用线连接,得到连续两帧的特征图之间的匹配关系图。
作为优选,所述步骤四中通过a-d匹配过滤算法对匹配关系图内的关系进行过滤的具体步骤为:
步骤41:获取所需判断的两个特征点为kp1、kp2,kp1、kp2的坐标分别为
步骤42:获得两特征点的角度和距离:两特征点的角度为
步骤43:计算获得关联度ξ:两个特征点kp1与kp2的关联度ξ的表达式为
步骤44:根据过滤函数,确定保留还是剔除上述特征点,所述过滤函数为
作为优选,所述步骤五中的提取障碍物轮廓的具体步骤为:根据经步骤四过滤后图像上的特征点形成的特征点集,获得上述特征点集内特征点的横纵坐标的极值,即为xmin、xmax、ymin、ymax,根据极值画出矩形轮廓,所述矩形轮廓即为障碍物轮廓。
作为优选,所述步骤五中的障碍物的运动方向和距离的具体获得方法为:
步骤51:获得障碍物轮廓的重心:
步骤52:获得障碍物的运动方向的角度:
步骤53:获得障碍物的距离:
本发明的有益效果:本发明考虑盲人出行对算法实时性要求,改进了log算法和flann算法进行特征检测和匹配,再提取精度不变的前提下,特征提取的效率更高,对设备性能要求更低,更满足出行场景的实时性需求;构造了a-d匹配过滤算法,弥补了单目摄像头无法有效提取障碍物的问题;a-d匹配过滤算法有效提取了障碍物的特征,提取效率高,准确性好。
本发明的特征及优点将通过实施例结合附图进行详细说明。
【附图说明】
图1是本发明一种基于图像特征标定的实时障碍物检测方法的方法流程图;
图2是本发明一种基于图像特征标定的实时障碍物检测方法的视觉传感器采集的连续两帧的实测图;
图3是本发明一种基于图像特征标定的实时障碍物检测方法的裁剪并灰度处理后的灰度图;
图4是本发明一种基于图像特征标定的实时障碍物检测方法的改进log进行特征点的提取图;
图5是本发明一种基于图像特征标定的实时障碍物检测方法的规范化算子的图;
图6是本发明一种基于图像特征标定的实时障碍物检测方法的改进log进行特征提取后的特征图;
图7是本发明一种基于图像特征标定的实时障碍物检测方法的改进flann进行特征匹配后的匹配关系图;
图8是本发明一种基于图像特征标定的实时障碍物检测方法的a-d匹配过滤后的匹配关系图;
图9是本发明一种基于图像特征标定的实时障碍物检测方法的障碍物轮廓提取的效果图;
图10是本发明一种基于图像特征标定的实时障碍物检测方法的障碍物检测后的最终结果图。
【具体实施方式】
参阅图1-图10,本发明,包括以下步骤:
步骤一:图像采集与预处理:通过视觉传感器采集获得连续两帧的图像,对所述图像进行裁剪后再进行灰度化处理,获得连续两帧的灰度图;
步骤二:通过改进的log算法对所述灰度图进行图像特征的提取,获得连续两帧灰度图的特征图;
步骤三:通过改进的flann算法对特征图进行特征匹配,获得连续两帧的特征图之间的匹配关系图;
步骤四:通过a-d匹配过滤算法对匹配关系图内的特征点进行过滤,过滤特征点后获得新的匹配关系图;
步骤五:对障碍物进行标定:提取障碍物轮廓,获得障碍物的运动方向和距离。
具体的,所述步骤二中改进的log对灰度图进行特征提取的具体步骤为:
步骤21:选取某个像素p,其像素值为vp,以p点为中心,画一个半径为σ像素的圆,圆上的(σ 1)2个像素记为
步骤22:确定决策阈值,记为θp;
步骤23:根据步骤21从p中选取的(σ 1)2个像素,获得决策变量为
步骤24:当有
步骤25:获得所有潜在的log特征点,形成潜在log特征点集合;
步骤26:验证潜在log特征点集合内的点,获得特征图:应用标准log算法对所有潜在log特征点集合内的特征点进行特征提取,获得最终的log特征点集合,并将log特征点表示于灰度图中,形成特征图。
具体的,所述步骤三中改进的flann对特征图进行特征匹配的具体步骤为:
步骤31:假设簇划分为ci(i=1,2...k),簇ci的均值向量为μi,μi的表达式为:
步骤32:将
步骤33:将步骤32剩下的簇进行特征匹配:对任意两均值向量μi、μm,求欧式距离得到的最小的d(μi,μm)即为最佳匹配,d(μi,μm)的表达式为
步骤34:将所有最佳匹配后的特征点用线连接,得到连续两帧的特征图之间的匹配关系图。
具体的,所述步骤四中通过a-d匹配过滤算法对匹配关系图内的关系进行过滤的具体步骤为:
步骤41:获取所需判断的两个特征点为kp1、kp2,kp1、kp2的坐标分别为
步骤42:获得两特征点的角度和距离:两特征点的角度为
步骤43:计算获得关联度ξ:两个特征点kp1与kp2的关联度ξ的表达式为
步骤44:根据过滤函数,确定保留还是剔除上述特征点,所述过滤函数为
具体的,所述步骤五中的提取障碍物轮廓的具体步骤为:根据经步骤四过滤后图像上的特征点形成的特征点集,获得上述特征点集内特征点的横纵坐标的极值,即为xmin、xmax、ymin、ymax,根据极值画出矩形轮廓,所述矩形轮廓即为障碍物轮廓。
具体的,所述步骤五中的障碍物的运动方向和距离的具体获得方法为:
步骤51:获得障碍物轮廓的重心:
步骤52:获得障碍物的运动方向的角度:
步骤53:获得障碍物的距离:
本发明工作过程:
本发明一种基于图像特征标定的实时障碍物检测方法在工作过程中,结合附图进行说明。
图像采集与预处理:
图像采集:基于盲人出行中实时性与低功耗的需要,基于单目视觉传感器相较于双目视觉传感器功耗更低,对设备处理性能要求更低的特性。选择使用单目视觉传感器进行图像采集,采集到的图像为800*600像素大小的彩色图像。
画面裁剪:由于单目视觉传感器视角较广,对于盲人而言可能出现的障碍物区域仅为横向画面中部宽度
图像灰度化:基于盲人出行的实时性考虑,要求算法执行高效,输入与输出之间的低时延要求,同时为了后期特征值检测时处理效率,选择采取通过将彩色图转换为灰度图的方式对图像进行降维,每个像素的r、g、b通道值根据灰度公式:gray=0.299×r 0.587×g 0.114×b。计算得到图像像素的灰度值,生成新的灰度图,如附图3所示。
改进的log特征提取:
由于卷积操作的时间复杂度较高,并且对处理性能要求较高,所以改进了log特征提取算法:通过对所有的像素进行快速先决筛选,标记为可能的特征点;再对所有筛选后可能的特征点进行log特征提取的卷积操作,最终提取出特征点。
筛选的方法如下:
步骤21:选取某个像素p,其像素值为vp,以p点为中心,画一个半径为σ像素的圆,圆上的(σ 1)2个像素记为
步骤22:确定阈值,记为θp;
步骤23:根据步骤21从p中选取的(σ 1)2个像素,获得决策变量为
步骤24:当有
步骤25:获得所有潜在的log特征点,形成潜在log特征点集合;
步骤26:对于上述得到的可能的log特征点集,应用标准log特征提取对所有的特征点与高斯拉普拉斯函数进行卷积,最终得到log特征点集合。
上述标准log算法为:
利用高斯拉普通拉斯(laplaceofgaussian,log)算子检测图像特征点,对于二维高斯函数:
它的拉普拉斯变换为:
规范化的高斯拉普变换为:
规范化算法子在二维图像上显示是一个圆对称函数,如图5。我们可以用这个算子来检测图像中的特征点,并且可以通过改变σ的值,可以检测不同尺寸的特征点。
通过使用上述改进后的log算法提取出来的特征值结果较好,特征差异较为明显,如附图6所示,图中圆形标注的为识别到的特征点。
改进的flann算法进行特征匹配:
采用flann算法,来训练一个高维特征数据,花费相对较少的代价找到数据中的最近邻计算。但是当图片中提取的特征点集过大时,应用flann特征匹配的效率仍然不高,所以选择对flann进行改进。
flann算法的核心是通过欧式距离来寻找与实例点的最近邻的点,即当d距离值越小,就表明这些特征点对之间的距离越近,两者的相似程度越高。
首先我们需要构造k-meanstree将数据的所有维度进行聚类处理,k-means算法的数学原理如下。
我们假设簇划分为ci(i=1,2…k),算法的目标是最小化平方误差e:
其中μi是簇ci的均值向量,μi的表达式为:
从而对任意两均值向量μi、μj,应用下式求欧式距离,得到的最小的d即为最佳匹配:
但是基于应用flann进行匹配的两幅图像为行进中的前后两帧图像,同一特征点的位移较小,而为了得到最小d(μi,μj)需要进行大量匹配。所以对flann算法进行改进;
对于任意两簇ci,cj,定义其簇质心分别为
最终将所有最佳匹配用线连接,得到连续两帧的特征图之间的匹配关系图,得到的匹配效果如附图7所示。
障碍检测:
上述flann匹配得到的结果为整幅图中的匹配,其中包括了可能存在的障碍物与环境噪声的特征点的匹配,而我们只需要从中提取出障碍物的特征点。通过分析发现:环境噪声与障碍物之间随运动造成位移的同时会形成的不同的透视关系。所以利用这个原理可以过滤匹配中的噪声,获取障碍物的特征点,当有了障碍物的特征点后就可以大致计算障碍物的轮廓、距离、方位。
根据透视关系,由此定义了a-d(angle-distance)匹配过滤算法,通过结合匹配得到的两特征点的角度和距离,构造下式:
通过上述flann匹配和a-d过滤后得到的特征点就是障碍物的特征点,我们可以根据前一帧中的特征点集kp1和后一帧中的得到与kp1中特征点两两匹配的特征点集kp2。由此,我们可以根据kp1、kp2建立起障碍物两帧中的大小、角度与距离等信息,同时可以根据构造kp1→kp2之间的映射关系,获取障碍物的变化情况与变化规律。
考虑到盲人出行中实时性的要求,我们没有采用卷积等操作获取轮廓,而是选择了最简单的通过对kp1与kp2中的点集求最值的方法,得到点集的xmin、xmax、ymin、ymax后画出矩形轮廓,认为该轮廓即为障碍物的轮廓,如附图9中白框所示。
由于我们的目标是获取障碍物的方向和距离,而以上已经得到了障碍物的轮廓,求障碍物的方向只需要求轮廓的重心,然后计算中心位置与中轴线的夹角就可以计算出障碍物的大致方位:
其中β为矩形轮廓重心坐标,βx、βy为重心坐标的横坐标与纵坐标,w为画面宽度,α即为计算得到的障碍物角度。
对于障碍物距离,通过对摄像头画面尺度标定的方法得到经验数据,建立拟合数据模型,得到了障碍物距离计算公式:
其中hs为摄像头的安装高度,ymin为障碍物在画面中的最低点位置,htotal为画面总高度。
最终计算后第一帧障碍物的角度为0.01°距离为3.06米,第二帧中角度为0.02°距离为2.765米并在图上标注。如附图10所示。
本发明,通过改进log算法提取特征点保留了log算法特征提取算法准确性高的同时弥补了log特征提取算法效率较低的问题;通过改进flann算法进行特征匹配,相较于其他匹配算法匹配准确率更高,同时改进后的flann匹配效率有了大幅度提升;构造了a-d过滤算法,有效提取了障碍物的特征,提取效率高,准确性好;考虑算法执行效率,且盲人群体对精度要求不高,通过较为简单的线性模型估算距离和方位较为合适。
上述实施例是对本发明的说明,不是对本发明的限定,任何对本发明简单变换后的方案均属于本发明的保护范围。
1.一种基于图像特征标定的实时障碍物检测方法,其特征在于:包括以下步骤:
步骤一:图像采集与预处理:通过视觉传感器采集获得连续两帧的图像,对所述图像进行裁剪后再进行灰度化处理,获得连续两帧的灰度图;
步骤二:通过改进的log算法对所述灰度图进行图像特征的提取,获得连续两帧灰度图的特征图;
步骤三:通过改进的flann算法对特征图进行特征匹配,获得连续两帧的特征图之间的匹配关系图;
步骤四:通过a-d匹配过滤算法对匹配关系图内的特征点进行过滤,过滤特征点后获得新的匹配关系图;
步骤五:对障碍物进行标定:提取障碍物轮廓,获得障碍物的运动方向和距离。
2.如权利要求1所述的一种基于图像特征标定的实时障碍物检测方法,其特征在于:所述步骤二中改进的log对灰度图进行特征提取的具体步骤为:
步骤21:选取某个像素p,其像素值为vp,以p点为中心,画一个半径为σ像素的圆,圆上的(σ 1)2个像素记为
步骤22:确定决策阈值,记为θp;
步骤23:根据步骤21从p中选取的(σ 1)2个像素,获得决策变量为
步骤24:当有
步骤25:获得所有潜在的log特征点,形成潜在log特征点集合;
步骤26:验证潜在log特征点集合内的点,获得特征图:应用标准log算法对所有潜在log特征点集合内的特征点进行特征提取,获得最终的log特征点集合,并将log特征点表示于灰度图中,形成特征图。
3.如权利要求1所述的一种基于图像特征标定的实时障碍物检测方法,其特征在于:所述步骤三中改进的flann对特征图进行特征匹配的具体步骤为:
步骤31:假设簇划分为ci(i=1,2...k),簇ci的均值向量为μi,μi的表达式为:
步骤32:将
步骤33:将步骤32剩下的簇进行特征匹配:对任意两均值向量μi、μm,求欧式距离得到的最小的d(μi,μm)即为最佳匹配,d(μi,μm)的表达式为d(μi,μm)=||μi,
步骤34:将所有最佳匹配后的特征点用线连接,得到连续两帧的特征图之间的匹配关系图。
4.如权利要求1所述的一种基于图像特征标定的实时障碍物检测方法,其特征在于:所述步骤四中通过a-d匹配过滤算法对匹配关系图内的关系进行过滤的具体步骤为:
步骤41:获取所需判断的两个特征点为kp1、kp2,kp1、kp2的坐标分别为
步骤42:获得两特征点的角度和距离:两特征点的角度为
步骤43:计算获得关联度ξ:两个特征点kp1与kp2的关联度ξ的表达式为
步骤44:根据过滤函数,确定保留还是剔除上述特征点,所述过滤函数为
5.如权利要求1所述的一种基于图像特征标定的实时障碍物检测方法,其特征在于:所述步骤五中的提取障碍物轮廓的具体步骤为:根据经步骤四过滤后图像上的特征点形成的特征点集,获得上述特征点集内特征点的横纵坐标的极值,即为xmin、xmax、ymin、ymax,根据极值画出矩形轮廓,所述矩形轮廓即为障碍物轮廓。
6.如权利要求1所述的一种基于图像特征标定的实时障碍物检测方法,其特征在于:所述步骤五中的障碍物的运动方向和距离的具体获得方法为:
步骤51:获得障碍物轮廓的重心:
步骤52:获得障碍物的运动方向的角度:
步骤53:获得障碍物的距离:
