CN115115672B - 基于目标检测和特征点速度约束的动态视觉slam方法 - Google Patents
基于目标检测和特征点速度约束的动态视觉slam方法 Download PDFInfo
- Publication number
- CN115115672B CN115115672B CN202211037460.2A CN202211037460A CN115115672B CN 115115672 B CN115115672 B CN 115115672B CN 202211037460 A CN202211037460 A CN 202211037460A CN 115115672 B CN115115672 B CN 115115672B
- Authority
- CN
- China
- Prior art keywords
- optical flow
- image
- dynamic
- target
- feature points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000001514 detection method Methods 0.000 title claims abstract description 20
- 230000003287 optical effect Effects 0.000 claims abstract description 76
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 29
- 238000012549 training Methods 0.000 claims abstract description 13
- 230000003068 static effect Effects 0.000 claims abstract description 12
- 238000005457 optimization Methods 0.000 claims abstract description 4
- 230000000007 visual effect Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000012855 volatile organic compound Substances 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 239000013598 vector Substances 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 230000001629 suppression Effects 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims 1
- 238000013135 deep learning Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 9
- 241000287828 Gallus gallus Species 0.000 description 3
- 235000013601 eggs Nutrition 0.000 description 3
- 239000010813 municipal solid waste Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 241000534944 Thia Species 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002507 cathodic stripping potentiometry Methods 0.000 description 1
- NMVPEQXCMGEDNH-TZVUEUGBSA-N ceftazidime pentahydrate Chemical compound O.O.O.O.O.S([C@@H]1[C@@H](C(N1C=1C([O-])=O)=O)NC(=O)\C(=N/OC(C)(C)C(O)=O)C=2N=C(N)SC=2)CC=1C[N+]1=CC=CC=C1 NMVPEQXCMGEDNH-TZVUEUGBSA-N 0.000 description 1
- 210000000991 chicken egg Anatomy 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开一种基于目标检测与特征点速度约束的动态视觉SLAM方法,属于计算机视觉和深度学习技术领域。该方法首先通过VOC数据集和真实数据集对YOLO_v5s模型进行训练;接着将RGB‑D相机采集到的图像输入到训练好的YOLO_v5s模型中得到潜在动态目标的检测框;然后通过ORB‑LK光流金字塔算法计算先验动态目标特征点的相对运动速度;根据目标在场景中的运动状态判断目标的真实动态性并剔除动态特征点;在后端优化中利用剩余静态特征点进行匹配与位姿估计,最终得到相机的最优运动轨迹。
Description
技术领域
本发明涉及一种基于目标检测和特征点速度约束的动态视觉SLAM方法,属于计算机视觉和深度学习技术领域。
背景技术
同时定位与建图(SLAM)技术在计算机视觉领域发挥着重要作用,以相机作为主要传感器的SLAM方案被称为视觉SLAM。通过视觉SLAM技术,机器人可以在移动时确定自身位置并构建环境地图,无需事先了解环境信息,在自动驾驶、虚拟现实、室内机器人导航等领域有着巨大的潜在应用。在过去的几十年里,大量学者在这一领域进行了研究,提出了许多先进的SLAM算法,如ORB-SLAM2、VINS-Mono等。
传统的视觉SLAM算法大都是基于静态环境的假设,在真实动态场景下系统将难以辨别载体的运动和环境中目标的运动,从而导致定位信息不准确、环境地图构建偏移严重。因此,如何提升视觉SLAM系统在动态场景下的定位精度和鲁棒性成为当下的研究热点。
现有的动态视觉SLAM方案可以归纳为两类:基于相机运动模型的动态视觉SLAM方法和不依赖相机自身运动的动态视觉SLAM方法。基于相机运动模型的方法在计算相机位姿的过程中,需要用到环境中的静态路标点,而剔除环境中动态路标点的过程中需要用到相机的位姿,形成“鸡生蛋、蛋生鸡”的矛盾问题;而不依赖相机自身运动的方法往往采用基于深度学习的动态目标剔除算法,更加侧重于具有先验信息的潜在动态目标判断,存在对目标的真实动态性产生误判的可能。
发明内容
本发明的目的是针对当前基于相机运动模型的动态SLAM方案中存在“蛋生鸡、鸡生蛋”以及基于深度学习的方案中缺乏对潜在目标真实动态性判断的问题,提供一种基于目标检测和特征点速度约束的动态视觉SLAM方法,利用YOLO_v5s模型对室内场景中的潜在动态目标进行检测,提供先验信息,同时通过ORB-LK光流金字塔算法判断先验动态目标的真实运动状态,更加合理地剔除动态特征点,提高视觉SLAM系统在动态环境下的定位精度和鲁棒性。
上述目的通过以下技术方案实现:
一种基于目标检测和特征点速度约束的动态视觉SLAM方法,该方法包括如下步骤:
(1)利用PASCAL VOC 2012数据集和所拍摄的真实场景数据集对YOLO_v5s模型进行训练,得到训练好的YOLO_v5s模型;
(2)通过RGB-D相机采集彩色和深度图像序列,采样频率为30Hz,将当前时刻包含彩色和深度图像的当前帧输入到步骤(1)得到的训练好的YOLO_v5s模型中,获得潜在动态目标的先验识别框;
(3)从步骤(2)当前帧获得的潜在动态目标的先验识别框中提取ORB特征点,当采集到包含彩色和深度图像的下一帧之后,通过LK光流算法追踪两帧之间的特征点;
(4)引入特征金字塔,从图像多尺度改进LK光流算法,并计算两帧之间特征点的相对运动速度;
(5)通过步骤(4)中的特征点相对运动速度判断潜在动态目标的真实动态性,根据潜在动态目标在场景中的真实动态性剔除图像中的动态特征点;
(6)剔除步骤(5)中的动态特征点后,利用剩余的静态特征点进行特征匹配与相机位姿估计,最终得到相机的最优运动轨迹。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(1)的具体方法是:
首先选择PASCAL VOC 2012数据集中对YOLO_v5系列中网络深度最小的YOLO_v5s模型进行第一次训练,该数据集由现实世界中的对象类组成;然后采用所拍摄的真实场景数据集对第一次训练后的模型进行第二次训练,目标类别设定为数据集中潜在的动态对象。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(2)的具体方法是:
首先通过RGB-D相机以30Hz的频率来采集彩色和深度图像序列,将包含彩色和深度图像的当前帧输入到步骤(1)里训练好的YOLO_v5s模型中;然后YOLO_v5s模型通过Focus结构对图片进行切片操作,并经过CBL模块进行卷积操作;在Backbone中,使用带残差结构的CSP1_X,在Neck中使用CSP2_X;接着将Neck中输出的特征图输入到预测层部分,采用CIOU_Loss Bounding box损失函数最小化预测框和目标框之间的归一化距离;然后采用加权非极大值抑制的方式对多目标框进行筛选;最终得到潜在动态目标的先验识别框的位置以及顶点坐标。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(3)的具体方法是:
先通过ORB算法提取经过畸变矫正、去噪处理的图像中的特征点。然后利用帧间像素的相似性,通过LK光流求解位移向量以实现特征点附近一个矩形窗口的匹配与跟踪。最后通过最小化窗口内的像素灰度差平方和来求解像素点光流d=[d x , d y ]T,如下式所示:
其中,x, y为特征邻域内的像素点,d x , d y 分别表示x和y方向上的光流,[·]T表示转置, 表示最小化d x ,d y 的函数,u x , u y 分别表示像素点的横纵坐标,m x , m y 为以像素点中心的矩形窗口长宽,I i (x,y)表示第i帧像素点的灰度值,I i+1(x+d x ,y+d y )表示第i+1帧像素点的灰度值。
步骤(3)中所述ORB算法特征提取的具体方法是,提取潜在动态目标检测框内的FAST特征点,定义图像矩为:
其中,a,b为矩的阶次,m ab 为a+b阶矩,利用图像矩计算质心坐标C,并定义方向因子为图像块中心到质心的方向角度θ:
其中m 10为a=1,b=0时的图像矩,m 01为a=0,b=1时的图像矩,m 00为a=0,b=0时的图像矩,arctan表示计算反正切;
然后引入旋转因子提取BRIEF描述子,其核心思想是在特征点周围选取n个点对,并把这n个点对的比较结果组合起来作为描述子,最终得到有旋转不变性的ORB特征点。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(4)的具体方法是:
引入特征金字塔模型,从图像多尺度改进LK光流算法,最终求解光流d,确保两帧间的特征点在不同分辨率下均构成匹配点对;将前一时刻的彩色图像和当前时刻的彩色图像进行金字塔分层,第s层图像的光流分为猜测光流g s =[g x , g y ]T与剩余光流r s =[r x , r y ]T(s=1,…,L-1,L),其中,g x , g y 分别表示x和y方向上的猜测光流,r x , r y 分别表示x和y方向上的剩余光流,s表示第s层金字塔,L表示最上层金字塔;定义猜测光流为上一层传递至下一层的光流,剩余光流为除猜测光流的剩余光流,根据猜测光流定义,最上层,即第L层猜测光流g L 为:
计算最上层剩余光流r L ,根据图像金字塔相邻两层间缩放倍数为2的关系,将第L层剩余光流与猜测光流之和作为第(L-1)层猜测光流g L-1 ,即:
计算第(L-1)层剩余光流r L-1,逐层递推至第0层,计算第0层的猜测光流g 0和剩余光流r 0,获得最终光流值d为:
从图像多尺度求解光流,最终解算得到特征点的相对运动速度。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(5)的具体方法是:
在真实场景中,由于存在处于准静态的目标在一段时间内是运动的;同时,处于动态的目标在一段时间内却是静止的这两种情况,对于真实场景中的目标需判断其真实动态性,通过步骤(3)中计算的特征点相对运动速度判断目标的真实动态性,如下式所示:
其中,表示第i帧图像特征点k的运动速度,/>表示第i帧图像整体场景的运动速度,status表示当前特征点k的运动状态,true表示真实运动,false表示相对静止。设定/>为阈值,当特征点的运动速度大于阈值时,将该特征点视为真实动态特征点并剔除。
所述的基于目标检测和特征点速度约束的动态视觉SLAM方法,步骤(6)的具体方法是:
从图像中剔除步骤(5)中的真实动态特征点,并利用剩余的静态特征点在两帧图像中进行特征匹配;然后利用BA的方法对相机的6自由度位姿和3D路标点同时进行优化,利用最小化重投影误差的方式计算当前帧的相机位姿和路标点的坐标/>,目标函数如下式所示:
其中,z i,j 表示路标点p j 在第i帧图像中特征点的像素坐标,f(*)为映射函数,T i,i-1 表示第i-1帧到第i帧的变换矩阵。进一步利用高斯—牛顿方法对目标函数进行求解。
同时引入滑动窗口的策略与回环检测算法来校正漂移的位姿优化得到相机的位姿估计,最终得到相机的最优运动轨迹。
有益效果:
(1)本发明提出的通过YOLO_v5s模型对场景中的潜在动态目标进行识别,可以为视觉SLAM前端的特征匹配环节提供先验信息,而且相比于基于语义分割的DS-SLAM等方法具有较快的运行速度,提高了动态SLAM系统的实时性;
(2)本发明提出的ORB-LK光流金字塔算法,能够从图像多尺度求解光流,提高特征点匹配精度与鲁棒性;
(3)本发明提出的将深度学习和特征点速度约束相结合的方法,一方面通过YOLO_v5s模型来判断具有先验信息的潜在动态目标,另一方面针对场景的真实运动状态,利用ORB-LK光流金字塔算法来判断潜在动态目标的真实动态性,更加合理地对特征点进行剔除或保留,大大提升了视觉SLAM系统在动态环境下的定位精度。
附图说明
图1 本发明原理示意图;
图2 基于YOLO_v5s模型的潜在动态目标检测线程;
图3 基于ORB-LK光流金字塔的特征点速度计算线程;
图4 真实场景中判断目标真实动态性可视化结果,其中,(a)表示拿起的水杯,(b)表示移动的垃圾桶,(c)表示推动的椅子,(d)表示浏览页面的显示器;
图5TUM数据集下剔除目标真实动态特征点过程,其中,(a)表示通过YOLO_v5s模型检测出的潜在动态目标,(b)表示通过ORB-LK光流金字塔判断潜在动态目标的真实动态性,(c)表示剔除动态特征点;
图6 ORB-SLAM2和本发明算法的绝对轨迹误差对比,其中,(a)表示ORB-SLAM2在序列fr3_walking_xyz下的绝对轨迹误差,(b)表示ORB-SLAM2在序列fr3_walking_rpy下的绝对轨迹误差,(c)表示ORB-SLAM2在序列fr3_walking_halfsphere下的绝对轨迹误差,(d)本发明方法在序列fr3_walking_xyz下的绝对轨迹误差,(e)表示本发明方法在序列fr3_ walking_rpy下的绝对轨迹误差,(f)表示本发明方法在序列fr3_walking_halfsphere下的绝对轨迹误差。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图1所示,本发明提供了一种基于目标检测和特征点速度约束的动态视觉SLAM方法。
具体步骤如下:
(1)利用PASCAL VOC 2012数据集和500张真实场景数据集对YOLO_v5s模型进行训练,得到训练好的YOLO_v5s模型;
(2)通过RGB-D相机采集彩色和深度图像序列,采样频率为30Hz,将当前时刻包含彩色和深度图像的当前帧输入到步骤(1)得到的训练好的YOLO_v5s模型中,获得潜在动态目标的先验识别框;
(3)从步骤(2)当前帧获得的潜在动态目标的先验识别框中提取ORB特征点,当采集到包含彩色和深度图像的下一帧之后,通过LK光流算法追踪两帧之间的特征点;
(4)引入特征金字塔模型,从图像多尺度改进LK光流算法,确保步骤(3)中两帧间的特征点在不同分辨率下均构成匹配点对,并计算两帧之间特征点的相对运动速度;
(5)通过步骤(4)中的特征点相对运动速度判断潜在动态目标的真实运动状态,根据潜在动态目标在场景中的真实动态性更加合理地剔除图像中的动态特征点;
(6)剔除步骤(5)中的动态特征点后,利用剩余的静态特征点进行特征匹配与相机位姿估计,最终得到最优运动轨迹。
进一步地,步骤(1)中,为了提高算法的实时性,选择YOLO_v5系列中深度最小、特征图宽度最小的YOLO_v5s模型,首先通过PASCAL VOC 2012数据集对其进行第一次训练。该数据集由现实世界中的20个对象类组成,对于大多数环境,可能出现的动态目标都包含在该数据集中。为了提高算法在真实场景下的识别能力,通过RGB-D相机采集500张真实场景照片,对其进行分类和标注,并划分训练集和测试集,其中400张作为训练集,100张作为测试集。为了减轻网络权重,目标类别设定为数据集中潜在的动态对象,共7类:人、椅子、杯子、垃圾桶、显示器、键盘、鼠标。训练过程如图2中的上半部分。
进一步地,步骤(2)中,如图2下半部分所示,通过RGB-D相机以30Hz的频率来采集彩色和深度图像序列,当获取到包含彩色和深度图像的当前帧后,使用步骤(1)中训练好的YOLO_v5s模型对当前帧进行目标检测。YOLO_v5s模型中通过Focus结构对图片进行切片操作,输入一个608×608×3的图片,经过切片操作后,变成304×304×12的特征图,然后经过CBL模块进行卷积操作,变成304×304×24的特征图。YOLOv5s模型在Backbone和Neck中使用了两种不同的CSP,在Backbone中,使用带有残差结构的CSP1_X,因为Backbone网络较深,残差结构的加入使得层和层之间进行反向传播时,梯度值得到增强,有效防止网络加深时所引起的梯度消失,得到的特征粒度更细;在Neck中使用CSP2_X,相对于单纯的CBL将主干网络的输出分成了两个分支,后将其Concatenate,使网络对特征的融合能力得到加强,保留了更丰富的特征信息。最终输出潜在动态目标的先验识别框的位置以及顶点坐标。
进一步地,步骤(3)中,首先提取潜在动态目标检测框内的FAST特征点,定义图像矩为:
其中,a,b为矩的阶次,m ab 为a+b阶矩,x, y为特征邻域内的像素点,利用图像矩计算质心坐标C,并定义方向因子为图像块中心到质心的方向角度θ:
其中m 10为a=1,b=0时的图像矩,m 01为a=0,b=1时的图像矩,m 00为a=0,b=0时的图像矩,arctan表示计算反正切;
然后引入旋转因子提取BRIEF描述子,其核心思想是在特征点周围选取n个点对,并把这n个点对的比较结果组合起来作为描述子,最终得到有旋转不变性的ORB特征点。
通过ORB算法提取经过畸变矫正、去噪处理的图像中的特征点后,利用帧间像素的相似性,通过LK光流求解位移向量以实现特征点附近一个矩形窗口的匹配与跟踪。最后通过最小化窗口内的像素灰度差平方和来求解像素点光流d=[d x , d y ]T,如下式所示:
其中,d x , d y 分别表示x和y方向上的光流,[·]T表示转置,表示最小化d x ,d y 的函数,u x , u y 分别表示像素点的横纵坐标,m x , m y 为以像素点中心的矩形窗口长宽,I i (x,y)表示第i帧像素点的灰度值,I i+1(x+d x ,y+d y )表示第i+1帧像素点的灰度值。
进一步地,步骤(4)中,为解决窗口选取大小对特征点匹配精度和鲁棒性的矛盾,引入特征金字塔模型,从图像多尺度改进LK光流算法,最终求解光流d,确保两帧间的特征点在不同分辨率下均构成匹配点对。将前一时刻的彩色图像和当前时刻的彩色图像进行金字塔分层,第s层图像的光流分为猜测光流g s =[g x , g y ]T与剩余光流r s =[r x , r y ]T(s=1,…,L-1,L),其中,g x , g y 分别表示x和y方向上的猜测光流,r x , r y 分别表示x和y方向上的剩余光流,s表示第s层金字塔,L表示最上层金字塔。定义猜测光流为上一层传递至下一层的光流,剩余光流为除猜测光流的剩余光流,根据猜测光流定义,最上层,即第L层猜测光流g L 为:
计算最上层剩余光流r L ,根据图像金字塔相邻两层间缩放倍数为2的关系,将第L层剩余光流与猜测光流之和作为第(L-1)层猜测光流g L-1 ,即:
计算第(L-1)层剩余光r L-1,逐层递推至第0层,计算第0层的猜测光流g 0 和剩余光流r 0 ,获得最终光流值d为:
特征点速度计算线程如图3所示,通过引入ORB-LK金字塔算法,从图像多尺度求解光流,确保两帧间的特征点在不同分辨率下均构成匹配点对,最终解算得到特征点的相对运动速度。
进一步地,步骤(5)中,在大部分场景下,经过深度学习目标检测的物体(如图4中的水杯、垃圾桶、椅子、显示器等)处于准静态情况,大部分动态SLAM方法没有判断其真实动态性,直接将其作为静态特征保留。然而在真实场景中,由于存在人拿起杯子喝水(图4(a))、移动垃圾桶(图4(b))和椅子(图4(c))、浏览显示器上的网页(图4(d))等情况,在一段时间内是运动的,需要判断其真实动态性。通过步骤(4)中计算的特征点相对运动速度判断目标的真实动态性,如下式所示:
其中,表示第i帧图像特征点k的运动速度,/>表示第i帧图像整体场景的运动速度,status表示当前特征点k的运动状态,true表示真实运动,false表示相对静止。设定/>为阈值,当特征点的运动速度大于阈值时,将其视为真实动态特征点并剔除。
从图像中剔除步骤(5)中的真实动态特征点,并利用剩余的静态特征点在两帧图像中进行特征匹配,然后通过BA的方法对相机的6自由度位姿和3D路标点同时进行优化,利用最小化重投影误差的方式计算当前帧的相机位姿和路标点的坐标/>,目标函数如下式所示:
其中,z i,j 表示路标点p j 在第i帧图像中特征点的像素坐标,f(*)为映射函数,T i,i-1 表示第i-1帧到第i帧的变换矩阵。进一步利用高斯—牛顿方法对目标函数进行求解,同时引入滑动窗口的策略与回环检测算法来校正漂移的位姿优化得到相机的位姿估计,最终得到相机的最优运动轨迹。
仿真实验:
基于目标检测和特征点速度约束的动态视觉SLAM方法实验的仿真环境为:GPUNVIDIA RTX3060,CPU R7-5800H,Ubuntu 20.04 LTS,CUDA 11.0,Pytorch 1.8.1。
选择公开数据集TUM Dynamic Objects RGB-D(30Hz)进行仿真,对于TUM DynamicObjects数据集,选择行走(freiburg3_walking)序列进行评估,该序列对应着三种相机运动方式:(1)xyz:相机沿x,y,z轴运动;(2)halfsphere:相机沿直径1m的半球面运动;(3)rpy:相机沿滚动、俯仰、偏航轴转动。在序列中,两个人在房间里随机运动并从摄像机前面经过,最终坐在椅子上,整个过程是动态的。
为了验证本发明算法在动态环境下的性能,选择TUM数据集中的动态子序列分别对ORB-SLAM2和本发明方法进行比较。图5显示了所提算法在TUM数据集下剔除目标真实动态特征点过程,其中,(a)表示通过YOLO_v5s模型检测潜在动态目标,(b)表示通过ORB-LK光流金字塔判断潜在动态目标的真实动态性,(c)表示剔除动态特征点,保留静态特征点;图6显示了ORB-SLAM2和本发明方法的绝对轨迹误差,其中,(a)(b)(c)分别表示ORB-SLAM2在序列fr3_walking_xyz、fr3_walking_rpy和fr3_walking_halfsphere的绝对轨迹误差,(d)(e)(f)分别表示本发明方法在对应序列下的绝对轨迹误差。表1显示了ORB-SLAM2和本发明方法的绝对轨迹误差(ATE)的均方根误差(RMSE),通过量化的对比结果表明本发明明显提升了视觉SLAM系统在动态环境下的定位精度。
表1 ORB-SLAM2和本发明方法的绝对轨迹误差的RMSE(m)
由此可以看出,本发明引入基于深度学习的潜在动态目标检测线程与基于ORB-LK光流金字塔的特征点速度计算线程,通过YOLO_v5s模型对场景中潜在的动态目标进行识别判断提供先验信息;同时通过ORB-LK光流金字塔计算图像中特征点的相对速度,并根据特征点速度约束判断目标的真实动态性,更加合理地剔除动态特征点,大大提高视觉SLAM系统在动态环境下的定位精度和鲁棒性。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。
Claims (1)
1.一种基于目标检测和特征点速度约束的动态视觉SLAM方法,其特征在于,该方法包括如下步骤:
(1)利用PASCAL VOC 2012数据集和所拍摄的真实场景数据集对YOLO_v5s模型进行训练,得到训练好的YOLO_v5s模型;
(2)通过RGB-D相机采集彩色和深度图像序列,将当前时刻包含彩色和深度图像的当前帧输入到步骤(1)得到的训练好的YOLO_v5s模型中,获得潜在动态目标的先验识别框;
(3)从步骤(2)当前帧获得的潜在动态目标的先验识别框中提取ORB特征点,当采集到包含彩色和深度图像的下一帧之后,通过LK光流算法追踪两帧之间的特征点;
(4)引入特征金字塔,从图像多尺度改进LK光流算法,并计算两帧之间特征点的相对运动速度;
(5)通过步骤(4)中的特征点相对运动速度判断潜在动态目标的真实动态性,根据潜在动态目标在场景中的真实动态性剔除图像中的动态特征点;
(6)剔除步骤(5)中的动态特征点后,利用剩余的静态特征点进行特征匹配与相机位姿估计,最终得到相机的最优运动轨迹;
步骤(1)的具体方法是:
首先选择PASCAL VOC 2012数据集中对YOLO_v5系列中网络深度最小的YOLO_v5s模型进行第一次训练,该数据集由现实世界中的对象类组成;然后采用所拍摄的真实场景数据集对第一次训练后的模型进行第二次训练,目标类别设定为数据集中潜在的动态对象;
步骤(2)的具体方法是:
首先将RGB-D相机采集的包含彩色和深度图像的当前帧输入到步骤(1)里训练好的YOLO_v5s模型中;然后YOLO_v5s模型通过Focus结构对图片进行切片操作,并经过CBL模块进行卷积操作;在Backbone中,使用带残差结构的CSP1_X,在Neck中使用CSP2_X;接着将Neck中输出的特征图输入到预测层部分,采用CIOU_LossBounding box损失函数最小化预测框和目标框之间的归一化距离;然后采用加权非极大值抑制的方式对多目标框进行筛选;最终得到潜在动态目标的先验识别框的位置以及顶点坐标;
步骤(3)的具体方法是:
先通过ORB算法提取经过畸变矫正、去噪处理的图像中的特征点;然后利用帧间像素的相似性,通过LK光流求解位移向量以实现特征点附近一个矩形窗口的匹配与跟踪;最后通过最小化窗口内的像素灰度差平方和来求解像素点光流d=[dx,dy]T,如下式所示:
其中,x,y为特征邻域内的像素点,dx,dy分别表示x和y方向上的光流,[·]T表示转置,表示最小化dx,dy的函数,ux,uy分别表示像素点的横纵坐标,mx,my为以像素点中心的矩形窗口长宽,Ii(x,y)表示第i帧像素点的灰度值,Ii+1(x+dx,y+dy)表示第i+1帧像素点的灰度值;
步骤(4)的具体方法是:
引入特征金字塔模型,从图像多尺度改进LK光流算法,最终求解光流d,确保两帧间的特征点在不同分辨率下均构成匹配点对;将前一时刻的彩色图像和当前时刻的彩色图像进行金字塔分层,第s层图像的光流分为猜测光流gs=[gx,gy]T与剩余光流rs=[rx,ry]T(s=1,…,L-1,L),其中,gx,gy分别表示x和y方向上的猜测光流,rx,ry分别表示x和y方向上的剩余光流,s表示第s层金字塔,L表示最上层金字塔;定义猜测光流为上一层传递至下一层的光流,剩余光流为除猜测光流的剩余光流,根据猜测光流定义,第L层,即最上层猜测光流gL为:
gL=[0 0]T
计算最上层剩余光流rL,根据图像金字塔相邻两层间缩放倍数为2的关系,将第L层剩余光流与猜测光流之和作为第(L-1)层猜测光流gL-1,即:
gL-1=2(gL+rL)
计算第(L-1)层剩余光流rL-1,逐层递推至第0层,计算第0层的猜测光流g0和剩余光流r0,获得最终光流值d为:
d=g0+r0
从图像多尺度求解光流,最终解算得到特征点的相对运动速度;
步骤(5)的具体方法是:
在真实场景中,由于存在处于准静态的目标在一段时间内是运动的,处于动态的目标在一段时间内却是静止的这两种情况,对于真实场景中的目标需判断其真实动态性,通过步骤(3)中计算的特征点相对运动速度判断目标的真实动态性,如下式所示:
其中,表示第i帧图像特征点k的运动速度,/>表示第i帧图像整体场景的运动速度,status表示当前特征点k的运动状态,true表示真实运动,false表示相对静止,设定为阈值,当特征点的运动速度大于阈值时,将该特征点视为真实动态特征点并剔除;
步骤(3)中所述ORB特征提取的具体方法是,提取潜在动态目标检测框内的FAST特征点,定义图像矩为:
其中,a,b为矩的阶次,mab为a+b阶矩,利用图像矩计算质心坐标C,并定义方向因子为图像块中心到质心的方向角度θ:
θ=arctan(m01,m10)
其中m10为a=1,b=0时的图像矩,m01为a=0,b=1时的图像矩,m00为a=0,b=0时的图像矩,arctan表示计算反正切;
然后引入旋转因子提取BRIEF描述子,其核心思想是在特征点周围选取n个点对,并把这n个点对的比较结果组合起来作为描述子,最终得到有旋转不变性的ORB特征点;
步骤(6)的具体方法是:
从图像中剔除步骤(5)中的真实动态特征点,并利用剩余的静态特征点在两帧图像中进行特征匹配;然后利用BA的方法对相机的6自由度位姿和3D路标点同时进行优化,利用最小化重投影误差的方式计算当前帧的相机位姿和路标点的坐标/>目标函数如下式所示:
其中,zi,j表示路标点pj在第i帧图像中特征点的像素坐标,f(*)为映射函数,Ti,i-1表示第i-1帧到第i帧的变换矩阵,进一步利用高斯-牛顿方法对目标函数进行求解,优化得到相机的位姿估计,最终得到相机的最优运动轨迹;
优化相机位姿的过程中采用滑动窗口的策略并利用回环检测算法来校正漂移的位姿;
步骤(2)中所述通过RGB-D相机采集彩色和深度图像序列频率为30Hz。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211037460.2A CN115115672B (zh) | 2022-08-29 | 2022-08-29 | 基于目标检测和特征点速度约束的动态视觉slam方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211037460.2A CN115115672B (zh) | 2022-08-29 | 2022-08-29 | 基于目标检测和特征点速度约束的动态视觉slam方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115115672A CN115115672A (zh) | 2022-09-27 |
CN115115672B true CN115115672B (zh) | 2023-07-18 |
Family
ID=83335565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211037460.2A Active CN115115672B (zh) | 2022-08-29 | 2022-08-29 | 基于目标检测和特征点速度约束的动态视觉slam方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115115672B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115719466A (zh) * | 2022-12-06 | 2023-02-28 | 佳源科技股份有限公司 | 输电线路舞动检测方法、装置、计算机设备及存储介质 |
CN116067360B (zh) * | 2023-01-09 | 2023-08-22 | 安徽工程大学 | 一种基于双重约束的机器人地图构建方法、存储介质及设备 |
CN116147618B (zh) * | 2023-01-17 | 2023-10-13 | 中国科学院国家空间科学中心 | 一种适用动态环境的实时状态感知方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112446882A (zh) * | 2020-10-28 | 2021-03-05 | 北京工业大学 | 一种动态场景下基于深度学习的鲁棒视觉slam方法 |
CN114677323A (zh) * | 2021-12-31 | 2022-06-28 | 北京工业大学 | 一种室内动态场景下基于目标检测的语义视觉slam定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114565675B (zh) * | 2022-03-03 | 2024-09-24 | 南京工业大学 | 一种在视觉slam前端去除动态特征点的方法 |
-
2022
- 2022-08-29 CN CN202211037460.2A patent/CN115115672B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112446882A (zh) * | 2020-10-28 | 2021-03-05 | 北京工业大学 | 一种动态场景下基于深度学习的鲁棒视觉slam方法 |
CN114677323A (zh) * | 2021-12-31 | 2022-06-28 | 北京工业大学 | 一种室内动态场景下基于目标检测的语义视觉slam定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115115672A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115115672B (zh) | 基于目标检测和特征点速度约束的动态视觉slam方法 | |
CN110276316B (zh) | 一种基于深度学习的人体关键点检测方法 | |
CN108334847B (zh) | 一种真实场景下的基于深度学习的人脸识别方法 | |
CN111709310B (zh) | 一种基于深度学习的手势跟踪与识别方法 | |
CN103390164B (zh) | 基于深度图像的对象检测方法及其实现装置 | |
CN111368769B (zh) | 基于改进锚点框生成模型的船舶多目标检测方法 | |
CN109241913A (zh) | 结合显著性检测和深度学习的船只检测方法及系统 | |
CN109816689A (zh) | 一种多层卷积特征自适应融合的运动目标跟踪方法 | |
CN105160310A (zh) | 基于3d卷积神经网络的人体行为识别方法 | |
CN107886120A (zh) | 用于目标检测跟踪的方法和装置 | |
CN103886325B (zh) | 一种分块的循环矩阵视频跟踪方法 | |
CN107784663A (zh) | 基于深度信息的相关滤波跟踪方法及装置 | |
CN107784291A (zh) | 基于红外视频的目标检测跟踪方法和装置 | |
CN108564120B (zh) | 基于深度神经网络的特征点提取方法 | |
CN110647802A (zh) | 基于深度学习的遥感影像舰船目标检测方法 | |
CN113762009B (zh) | 一种基于多尺度特征融合及双注意力机制的人群计数方法 | |
CN111444764A (zh) | 一种基于深度残差网络的手势识别方法 | |
CN114926747A (zh) | 一种基于多特征聚合与交互的遥感图像定向目标检测方法 | |
CN110334656A (zh) | 基于信源概率加权的多源遥感图像水体提取方法及装置 | |
CN113469097B (zh) | 一种基于ssd网络的水面漂浮物多相机实时检测方法 | |
CN109242019A (zh) | 一种水面光学小目标快速检测与跟踪方法 | |
CN110826575A (zh) | 一种基于机器学习的水下目标识别方法 | |
WO2024060978A1 (zh) | 关键点检测模型训练及虚拟角色驱动的方法和装置 | |
CN108734200A (zh) | 基于bing特征的人体目标视觉检测方法和装置 | |
CN110135237A (zh) | 一种手势识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |