一种基于视觉的运动状态估计方法及智能装置
文献发布时间:2024-04-18 20:00:50
【技术领域】
本发明涉及计算机视觉技术领域,具体涉及一种基于视觉的运动状态估计方法及智能装置。
【背景技术】
运动状态的估计,在轮式机器人、无人机、智能驾驶等领域有着重要的意义。准确且及时的运动状态估计,能够为下游模块提供运动先验信息,降低下游算法模块的处理难度,提升系统稳定性。当前对于运动状态的估计主要基于以下四种方案:第一种方案通过视觉SLAM、激光SLAM等定位建图算法,估算出载体准确的旋转量和平移量;第二种方案通过位姿传感器获得定位结果,包括用惯性导航传感器的角速度和加速度积分得到相对旋转量和相对平移量,以及通过卫星定位系统获得全局坐标和姿态,或是两种相结合的组合导航技术;第三种方案将当前的局部感知与经验地图相匹配,以估计出当前在地图中的位置和角度;第四种方案基于车辆轮速编码器获取运动状态信息。
上述第一种方案需要较复杂的算法,以及较大的计算量,计算出准确的旋转量和平移量,然而在部分场景中仅需要判断前进、静止、转弯等运动状态即可,并不需要准确的旋转和位移数值,且第一种方案通用性较差,在不同平台间移植时需要调大量的参数才能达到稳定的效果;上述第二种方案需要配置额外的组合导航设备,且需要较为复杂的滤波算法和融合算法,且在非开阔场景卫星信号受到遮挡时效果较差;第三种方案需要提前建立高精度地图,不适用于没有地图的场景,在地图的精度或鲜度不高时效果较差,且该方案对局部感知的性能较高,需要大量训练数据提前训练神经网络模型;上述第四种方法较为直接,但无法应用在没有轮速编码器的平台上,且该方法只能估计出二维平面的运动状态,无法反馈三维运动状态,应用场景较为局限。
相对位姿估计(relative pose estimation)是三维视觉的基础之一;基于平面特征点的位姿估计(测量),已知:相机内参数;多个平面上的特征点在目标坐标系(3D)和相平面坐标系(2D)坐标;输出:目标坐标系相对相机坐标系的位置和姿态。
SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题。
以“视觉定位+运动检测+运动状态估计”作为关键词,检索到相关专利。
相关检索结果1:申请(专利)号、CN200710119290.1,名称、对图像进行运动检测的装置和方法,装置主要包括:视频编码单元和运动检测单元。方法概述如下:视频编码单元载入当前图像和参考图像,对当前图像进行运动估计,并将获得的当前图像的运动矢量输出给运动检测单元进行帧间运动矢量累加;当进行了运动估计的图像总数达到预先设定的运动检测帧间隔值时,当前图像即为待检测图像,运动检测单元根据累加后的运动矢量和参考图像,对待检测图像进行运动信息提取。该专利通过视觉图像判断运动信息;但是仅能检测出物体是否运动,不能够准确估计出相机或载体的前行、转弯等运动状态;通过将多帧运动矢量进行累加获得像素运动矢量,在运动剧烈或运动状态复杂时累加结果误差较大,不是通过对视觉角点的连续跟踪,获得像素角点的移动矢量,通用性较差。
相关检索结果2:申请(专利)号、CN201210442082.6,名称、一种基于光流的车辆运动状态估计方法,适用于估计道路交通环境下低速行驶在平坦沥青路面上的车辆的运动状态。首先在车辆后桥中心位置安装俯视高精度单目摄像机,并通过标定算法获取摄像机参数;接着采用直方图均衡化对获取的图像序列进行预处理,以凸显沥青路面角点特征,降低路况及光照变化带来的不利影响;再采用高效的哈里斯Harris角点检测算法进行实时路面角点特征检测;然后根据卢卡斯-柯乃德Lucas-Kanade光流算法进行前、后帧的角点匹配跟踪,选用随机采样一致RANSAC算法进一步优化匹配角点,进而获取较为准确的光流信息;最后,由图像光流重构出车辆载体坐标系下纵向速度、横向速度和质心侧偏角等车辆实时运动参数,由此获得较高精度的车辆对地运动状态的估计。该专利同样通过跟踪视觉角点估计出相机或载体的运动状态。但是仅适用于在平坦路面上运动的车辆,限定应用场景和载具,不可应用于汽车、无人机、穿戴设备、机器人等领域。该专利通过光流点二维移动向量,重构出角点三维移动向量,地面纹理重复度较高容易产生错误的光流跟踪;该专利需要角点落在特定平面上,不通用。该专利中的方案依赖相机标定参数,将角点像素位移反算得到角点物理位移,对相机标定参数的精度要求非常高,而且在上下坡、颠簸、汽车胎压变化等情况下相机标定参数失准时无法运行。
相关检索结果3:申请(专利)号、CN202010894625.2,名称、一种基于图像的运动检测方法,具体为:采集检测对象的基准图像,在基准图像上设置若干个第一检测点,以第一检测点为中心在基准图像上提取基础标识,将所有基础标识分为若干个类别;采集检测对象的检测图像;在检测图像中匹配各个基础标识,获取偏移向量,根据基础标识的偏移向量的模判断该基础标识是否发生移动;判断每个类别中发生移动的基础标识的数量占比是否大于第三设定阈值,若是则判断该类别发生移动,否则该类别未发生移动;根据各个类别是否发生运动判断检测对象的运动情况。该专利基于图像中点的移动来判断运动情况。该专利针对图像中指定对象进行运动检测;不是估计相机或载体的运动状态。该专利仅能判断出对象是否发生运动,可估计出更具体地相机或载体运动状态;该专利匹配已知物体的基础标识,对于非已知物体无法处理,且点的数量有限,不通用,跟踪不稳定。
本发明针对自动驾驶领域和机器人领域,运动状态估计存在的算法复杂、通用性较差,需要配置额外的组合导航设备,需要提前建立高精度地图,无法应用在没有轮速编码器的平台上的技术问题,对运动状态估计方法及智能装置进行了技术改进。
【发明内容】
本发明的目的是,提供一种基于视觉、通过图像角点匹配统计估计运动状态的方法。
为实现上述目的,本发明采取的技术方案是一种基于视觉的运动状态估计方法,包括以下步骤:
S1、利用智能装置上的相机拍摄图像,在当前时刻图像和上一时刻图像之间识别图像中的角点,进行角点匹配;
S2、根据步骤S1获得的角点匹配结果,判断智能装置当前时刻的运动状态是否为静止,如果静止结束;
S3、根据步骤S1获得的角点匹配结果,统计角点移动方向分布;
S4、基于步骤S3获得的角点移动方向分布统计,根据角点移动方向的整体趋势,结合不同运动状态下视觉角点移动对应不同整体趋势的几何规律,归纳出智能装置当前时刻的运动状态。
优选地,步骤S1包括以下子步骤:
S11、对当前时刻图像和上一时刻图像执行角点检测算法,以识别图像中的角点;
S12、通过比较前时刻图像和上一时刻图像中角点进行角点匹配,确定匹配的角点对。
优选地,步骤S1采用光流法进行角点匹配,具体地:
步骤S11使用Harris角点检测器或Shi-Tomasi角点检测器算法来识别图像中的角点;
步骤S12在连续的当前时刻图像和上一时刻图像之间计算光流,采用光流法来估计图像之间的像素位移。
优选地,步骤S1采用ORB算法进行角点匹配,具体地:
步骤S11使用Oriented FAST算法来检测图像中的角点,为检测到的角点分配方向,并计算旋转后的BRIEF描述子;
步骤S12通过计算特征描述子之间的汉明距离,确定匹配的角点对。
优选地,步骤S2包括以下子步骤:
S21、对于角点匹配的每一对角点,计算角点在当前时刻图像和上一时刻图像上的移动距离;
S22、统计角点移动距离的分布;
S23、根据步骤S22移动距离的分布,判断智能装置当前时刻的运动状态是否为静止。
优选地,步骤S2所述移动距离是两个角点之间的欧式距离,具体地:
步骤S21对于角点匹配的每一对角点,计算角点在当前时刻图像和上一时刻图像坐标之间的欧式距离,作为角点的移动距离;
步骤S22设定一个距离阈值,统计角点移动距离小于所述阈值的角点数量。
步骤S23设定一个比例阈值,计算所述移动距离小于所述距离阈值的角点在所有角点中所占的比例,如果所述比例大于所述比例阈值,则判定智能装置当前运动状态为静止。
优选地,步骤S3包括以下子步骤:
S31、对于角点匹配的每一对角点,计算角点在当前时刻图像和上一时刻图像上的移动方向;
S32、统计所有角点的移动方向分布情况,确定角点整体移动方向趋势;
S33、找出与角点整体移动方向趋势不一致的角点,将其归纳为噪点;
S34、将所述噪点过滤后,重新统计角点移动方向分布情况。
优选地,步骤S3所述角点移动方向的计算采用计算向量的方式、或者采用对移动方向进行枚举归纳的方式,所述分布情况的统计采用直方图的方式,所述噪点过滤采用直方图峰值过滤的方法、或者采用RANSAC算法。
优选地,步骤S4:
所述角点移动方向整体一致向左,归纳出智能装置当前时刻的运动状态为向右;
所述角点移动方向整体一致向右,归纳出智能装置当前时刻的运动状态为向左;
图像左半部分所述角点移动方向整体一致向左,图像右半部分所述角点移动方向整体一致向右,归纳出智能装置当前时刻的运动状态为前行;
图像左半部分所述角点移动方向整体一致向右,图像右半部分所述角点整体一致向左,归纳出智能装置当前时刻的运动状态为后退;
所述角点移动方向整体一致向上,归纳出智能装置当前时刻的运动状态为向下;
所述角点移动方向整体一致向下,归纳出智能装置当前时刻的运动状态为向上。
本发明的又一目的是,提供一种基于视觉、通过图像角点匹配统计估计运动状态的智能装置。
为实现上述又一目的,本发明采取的技术方案是一种基于视觉的运动状态估计智能装置,用于执行上述的一种基于视觉的运动状态估计方法。
本发明一种基于视觉的运动状态估计方法及系统有益效果如下:1、使用视觉传感器,基于简单的计算估计出运动状态,硬件成本较低;2、仅基于通用的视觉算法模块,可以直接利用在机器人、无人机、智能驾驶汽车上通常已经具备的算法模块,几乎无新增计算量,也无需标注和模型训练;3、具有较强的泛用性,可以在较低的移植成本下,适配多种不同场景、不同载具。
【附图说明】
图1是一种基于视觉的运动状态估计方法工作流程图。
图2是本发明一实施例中前进运动状态下视觉角点的移动趋势示例图。
图3是本发明一实施例中向左运动状态下视觉角点的移动趋势示例图。
图4是本发明一实施例中向上运动状态下视觉角点的移动趋势示例图。
【具体实施方式】
下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明构思的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
实施例
本实施例实现一种基于视觉的运动状态估计方法。
本实施例涉及到以下的重要技术术语。
1)光流法是一种计算机视觉技术,用于估计相邻两帧图像中物体的运动情况。它基于像素点在不同时间拍摄的图像中位置的变化量来计算物体的运动速度和方向。光流法常用于在连续的图像帧之间跟踪特征点的运动轨迹。
2)Lucas-Kanade光流法是一种基于局部最小二乘法的光流计算方法,主要用于估计图像序列中稀疏特征点的运动信息。该方法假设邻近像素具有相似的运动,通过解决一个线性方程组来计算每个特征点的运动向量。
3)Horn-Schunck光流法是一种基于全局优化策略的光流计算方法,用于估计图像序列中每个像素的运动信息。该方法结合平滑度约束和数据一致性约束,在整个图像上求解运动场,以获得更连续且光滑的光流场
4)角点是图像中像素值发生明显变化的位置,通常是指图像中两条边缘相交的点或者是纹理变化较为明显的位置。在视觉算法中,角点是用来进行图像特征提取和目标跟踪的重要特征点之一。
5)Harris角点检测器(Harris Corner Detector)是一种基于图像局部变化的角点检测方法。它通过计算图像中每个像素的梯度来找到角点。对于具有较大梯度变化的区域,算法会认为这些区域是角点。
6)Shi-Tomasi角点检测器(Shi-Tomasi Corner Detector):Shi-Tomasi角点检测器是对Harris角点检测器的改进。它使用了不同的评分函数来计算角点,因此可以检测到更多的角点,而且对噪声更为鲁棒。
7)FAST(Features from Accelerated Segment Test)是一种基于加速分割测试的角点检测方法。它通过比较图像上的连续点与中心点的像素值来快速找到角点。由于它的速度很快,所以特别适合实时应用。
8)ORB(Oriented FAST and Rotated BRIEF)是一种高效且鲁棒的特征匹配方法。ORB结合了Oriented FAST特征检测器和Rotated BRIEF特征描述器,以实现实时的、旋转不变的特征匹配。ORB特别适用于实时应用,如SLAM、增强现实和图像拼接等。
9)SLAM是即时定位与建图技术,以相机、惯导、雷达等传感器数据为输入,估计自身在环境中的位置,并可以建立局部地图。SLAM框架包括特征提取、数据关联、标定、状态估计等技术。
10)直方图是一种用矩形条表示数据频数分布的图表,其中每个矩形条的高度表示该数值范围内数据的频数或频率。直方图可用于快速识别数据的中心趋势、分布形状、异常值和离群值等特征,通常用于探索性数据分析和数据可视化。直方图可以轻松地用于比较不同数据集之间的分布差异,同时也可以用于了解单个数据集内不同变量之间的相关性。
11)RANSAC是随机采样一致性算法,用于在带有噪声的数据中迭代估计出数学模型。
图1是一种基于视觉的运动状态估计方法工作流程图。如附图1所示,本实施例方法可分为以下步骤:
步骤1:在当前时刻图像和上一时刻图像之间进行角点匹配。该方法涉及识别和匹配图像中的独特角点。
所述角点匹配方法可进一步包括以下步骤:
步骤1.1:对输入图像执行角点检测算法,以识别图像中的角点。
步骤1.2:通过比较两个图像中角点,确定匹配的角点对。
在具体实施例中,所述角点匹配方法可以采用光流法、Oriented FAST andRotated BRIEF(ORB)等角点匹配算法。
在一个具体实施例中,所述角点匹配方法可以采用光流法。在此实施例中,所述方法可以进一步包括以下步骤:
步骤1.1a:从输入图像中提取角点。在具体实施例中,可以使用Harris角点检测器、Shi-Tomasi角点检测器或其他适用的角点检测算法来识别图像中的角点。
步骤1.2a:在连续的图像帧之间计算光流。在具体实施例中,可以采用Lucas-Kanade光流法、Horn-Schunck光流法或其他适用的光流计算方法来估计图像之间的像素位移。
在另一个具体实施例中,所述角点匹配方法可以采用ORB算法。在此实施例中,所述方法可以进一步包括以下步骤:
步骤1.1b:使用Oriented FAST算法对输入图像执行角点检测。
步骤1.2b:为检测到的角点分配方向,并计算旋转后的BRIEF描述子。
步骤1.3b:通过计算特征描述子之间的汉明距离,确定匹配的角点对。
通过采用不同的角点匹配算法,可以实现在各种应用场景下的高性能角点匹配。
步骤2:根据步骤1获得的所述角点匹配的结果,判断当前运动状态是否为静止。
所述判断当前运动状态是否静止的方法可以包括以下步骤:
步骤2.1:对于所述匹配角点对中的每一对,计算角点在当前时刻图像和上一时刻图像上的移动距离。
步骤2.2:统计角点移动距离的分布。
步骤2.3:根据所述移动距离的分布,判断当前的运动状态是否为静止。
在具体实施例中,所述计算移动距离可以计算两个角点之间的欧式距离,所述统计角点移动距离分布可以统计移动距离小于阈值的角点比例。欧式距离一般指欧几里得度量,在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。
在一个具体实施例中,所述统计移动距离分布可以进一步包括以下步骤:
步骤2.1a:对于所述匹配角点对中的每一对,计算角点在当前时刻图像和上一时刻图像上的坐标之间的欧式距离,作为角点的移动距离。
步骤2.2b:设定一个距离阈值,统计所述移动距离小于所述阈值的角点数量。
步骤2.3c:设定一个比例阈值,计算所述移动距离小于所述阈值的角点在所有角点中所占的比例,如果所述比例大于所述比例阈值,则判定当前运动状态为静止,跳过以下步骤;否则进入步骤3。
步骤3:根据步骤1获得的所述角点匹配的结果,统计角点移动方向分布。该方法涉及角点移动方向的计算,分布统计,以及噪点过滤。
所述角点移动方向和移动距分布统计方法可进一步包括以下步骤:
步骤3.1:对于所述匹配角点对中的每一对,计算角点在当前时刻图像和上一时刻图像上的移动方向。
步骤3.2:统计所有角点的移动方向的分布情况。
步骤3.3:找出与整体移动方向趋势不一致的角点,将其归纳为噪点。
步骤3.4:将所述噪点过滤后,重新统计角点移动方向的分布情况。所述噪点过滤的步骤可以过滤掉动态物体以及误匹配。
在具体实施例中,所述角点移动方向的计算可以用采用计算向量的方式,也可以采用对移动方向进行枚举归纳的方式。所述分布情况的统计可以采用直方图的方式。所述噪点过滤可以采用直方图峰值过滤的方法,也可以采用RANSAC算法。
在一个具体实施例中,所述角点移动方向的计算可以采用计算方向向量的方式,所述分布情况的统计可以采用直方图统计的方式,所述噪点过滤可以采用直方图峰值过滤的方法。在此实施例中,所述方法可以进一步包括以下步骤:
步骤3.1a:对于所述匹配角点对中的每一对,计算当前时刻图像和上一时刻图像上角点之间的运动向量,其中所述运动向量可由当前时刻角点的坐标减去上一时刻角点的坐标获得。
步骤3.2a:将所述每个运动向量转换为对应的移动方向,其中所述移动方向可通过计算运动向量的反正切值获得,反正切值的计算公式为atan2(y,x),其中x为运动向量在x轴上的分量,y为运动向量在y轴上的分量。
步骤3.3a:根据所述角点移动方向的最大和最小值,自适应选择一个合适的直方图区间数量。
步骤3.4a:根据所述移动方向,将每个角点分配到相应方向区间。
步骤3.5a:对于每个所述方向区间,统计包含的角点数量,以生成角点移动方向直方图。
步骤3.6a:在所述直方图上找出角点数量前二的峰值,将移动方向与所述峰值所在区间差距较大的角点归纳为噪点。
步骤3.7a:过滤掉所述噪点,重复步骤2.4.a,重新统计角点移动方向直方图。
步骤4:基于步骤3所述的角点移动方向分布统计,归纳出当前时刻的运动状态。
在具体实施例中,所述归纳当前运动状态的方法可以根据角点移动方向的整体趋势,结合不同运动状态下视觉角点的移动对应不同趋势的几何规律,归纳出当前的运动状态。
图2是本发明一实施例中前进运动状态下视觉角点的移动趋势示例图。如附图2所示,本实施例不同运动状态下视觉角点的移动对应的不同趋势示意。
在具体实施例中,判断角点移动方向是否整体一致朝向一个具体方向,可以设定一个比例阈值,并计算移动方向为指定方向的角点数量占比,如果所述占比大于所述比例阈值则认为整体一致朝向该方向,否则认为不是整体一致。
在具体实施例中,可以将所述视觉角点的移动方向的统计与当前时刻运动状态的对应关系归纳如下:
1、所述角点移动方向整体一致向左,可以归纳出当前运动状态为向右。
2、图3是本发明一实施例中向左运动状态下视觉角点的移动趋势示例图。如附图3所示,所述角点移动方向整体一致向右,可以归纳出当前运动状态为向左。
3、如附图2所示,图像左半部分所述角点移动方向整体一致向左,图像右半部分所述角点移动方向整体一致向右,可以归纳出当前运动状态为前行。
4、图像左半部分所述角点移动方向整体一致向右,图像右半部分所述角点整体一致向左,可以归纳出当前运动状态为后退。
5、所述角点移动方向整体一致向上,可以归纳出当前运动状态为向下。
6、图4是本发明一实施例中向上运动状态下视觉角点的移动趋势示例图。如附图4所示,所述角点移动方向整体一致向下,可以归纳出当前运动状态为向上。
其中,
本实施例步骤1中角点检测和角点匹配算法,通常在机器人、无人机、自动驾驶汽车等应用平台上已经具备。
本实施例步骤2中的角点移动距离统计方法,步骤3中的角点移动方向统计方法,和步骤4中的角点移动方向统计方法,都是在步骤1的角点匹配结果基础上做便捷的数值统计和归纳,几乎没有新增的计算量。
因此,本实施例方法具体实施时,可以直接利用应用平台上已部署的算法模块,无额外的计算资源需求,具有较强的泛用性。
总体而言,本实施例方法核心特征在于:
1)本实施例提出的运动状态估计算法,能够以较为轻便的方式直接估计当前运动状态,无需计算出精确的旋转和平移量。
2)本实施例基于纯视觉估计出运动状态,无需额外运动传感器的辅助。
3)本实施例提出的运动状态估计算法,仅基于已有的通用算法模块,无需额外的工程开发量,没有额外的计算资源消耗。
4)本实施例提出的运动状态估计算法,可以适配于各种不同的环境和不同的载具,无需复杂的参数调节,具有较强的泛用性。
本领域普通技术人员可以理解,实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
- 半导体结构、测试系统、测试方法及半导体结构的制作方法
- 半导体结构、测试系统、测试方法及半导体结构的制作方法
- 一种挡土板结构及挡土板结构的制作方法
- 一种基于壁虎仿生结构辅助的真空吸附结构及制作方法
- 电路板结构、半导体结构及半导体结构的制作方法
- 半导体结构的制作方法及半导体结构、半导体器件