视觉里程计技术综述

合集下载

px4 vio 融合原理 -回复

px4 vio 融合原理 -回复

px4 vio 融合原理-回复Px4 VIO 是指基于Px4 飞控系统的视觉惯性里程计(Visual-Inertial Odometry)融合技术。

本文将逐步回答关于Px4 VIO 的融合原理,从视觉和惯性数据的获取、特征提取与匹配、滤波融合等方面进行详细阐述,并简要介绍一些在VIO 中使用的常见传感器和算法。

一、数据获取Px4 VIO 主要依靠两类传感器获取数据,即视觉传感器(如相机)和惯性传感器(如加速度计和陀螺仪)。

视觉传感器能够提供相机图像序列,通过图像序列可以得到相机在不同时间点的位姿变化。

相机一般会提供相机内参(内部参数)矩阵和畸变参数,用于矫正图像。

此外,校准的相机视觉系统可以通过特征点地图来估计相机的位置和姿态。

而惯性传感器可以提供机身的线加速度和角速度信息,这些信息可以通过积分计算得到位姿变化。

二、特征提取与匹配特征提取是指从相机图像序列中提取出具有一定描述性和独特性的特征点。

常用的特征点包括角点、边缘等。

特征点在图像中的位置和描述子是唯一的,因此可以用于匹配不同图像之间的特征点。

特征匹配是指在不同图像之间找到对应的特征点,以建立关联关系。

三、滤波融合滤波融合是指通过滤波器将视觉和惯性数据进行融合,以得到更准确的位姿估计结果。

常见的滤波器包括卡尔曼滤波器和扩展卡尔曼滤波器。

这些滤波器能够通过不同的权重和协方差矩阵来融合两个或多个传感器的数据,并降低估计误差。

滤波器通常会维护一个状态向量来表示系统的状态,包括位置、速度和姿态等。

同时,滤波器还会维护一个协方差矩阵来表示状态估计的不确定性。

四、视觉和惯性信息融合在滤波融合的过程中,视觉和惯性信息会通过相关性匹配进行融合。

例如,当系统的相机减速时,由于相机图像序列的更新速度较慢,惯性传感器的数据可以用于提供较快的更新。

而当系统的相机速度较快时,相机图像序列的数据可以提供更精确的位置和姿态信息。

在融合过程中,滤波器还会考虑到不同传感器的误差特性和时间延迟。

rovio视觉里程计的笔记

rovio视觉里程计的笔记

rovio视觉⾥程计的笔记是⼀个紧耦合,基于图像块的滤波实现的VIO。

他的优点是:计算量⼩(EKF,稀疏的图像块),但是对应不同的设备需要调参数,参数对精度很重要。

没有闭环,没有mapping thread。

经常存在误差会残留到下⼀时刻。

我试了⼀些设备,要是精度在⼏⼗厘⽶,设备运动不快的,⼀般摄像头加⼀般imu,不是硬件同步就是正常的rostopic 发布的时间,也能达到。

代码主要分为EKF实现的部分,和算法相关的部分,EKF是作者⾃⼰写的⼀个框架。

先分析EKF代码lightweight_filteringFilterBase.hpptemplate<typename Meas>class MeasurementTimeline{typedef Meas mtMeas;//imu测量的数据存在map中,相当于⼀个buffer,key是时间,value 是加速度或者⾓速度或者图像⾦字塔std::map<double,mtMeas> measMap_;void addMeas(const mtMeas& meas,const double &t);}EKF的整个流程框架template<typename Prediction,typename... Updates>class FilterBase: public PropertyHandler{//imu和图像的两个MeasurementTimelineMeasurementTimeline<typename mtPrediction::mtMeas> predictionTimeline_;std::tuple<MeasurementTimeline<typename Updates::mtMeas>...> updateTimelineTuple_;//加⼊imu测量值void addPredictionMeas(const typename Prediction::mtMeas& meas, double t){if(t<= safeWarningTime_) {std::cout << "[FilterBase::addPredictionMeas] Warning: included measurements at time " << t << " before safeTime " << safeWarningTime_ << std::endl;}if(t<= frontWarningTime_) gotFrontWarning_ = true;predictionTimeline_.addMeas(meas,t);}//图像的MeasurementTimelinetemplate<int i>void addUpdateMeas(const typename std::tuple_element<i,decltype(mUpdates_)>::type::mtMeas& meas, double t){if(t<= safeWarningTime_) {std::cout << "[FilterBase::addUpdateMeas] Warning: included measurements at time " << t << " before safeTime " << safeWarningTime_ << std::endl;}if(t<= frontWarningTime_) gotFrontWarning_ = true;std::get<i>(updateTimelineTuple_).addMeas(meas,t);}//根据传⼊时间进⾏EKF的更新void updateSafe(const double *maxTime = nullptr){//根据最新的imu测量时间,得到最近的图像测量的时间,nextSafeTime返回的是最新的图像测量时间bool gotSafeTime = getSafeTime(nextSafeTime);update(safe_,nextSafeTime);//清楚safetime之前的数据,但是⾄少留下⼀个测量量clean(safe_.t_);}void update(mtFilterState& filterState,const double& tEnd){while(filterState.t_ < tEnd){tNext = tEnd;//要是上⼀次更新之后,没有新的图像来到,就不要更新了if(!getNextUpdate(filterState.t_,tNext) && updateToUpdateMeasOnly_){break; // Don't go further if there is no update available}int r = 0;//参数usePredictionMerge_是不是设置,对应的是EKF中的预测⽅程的f(x)设置的不⼀样,看代码就知道if(ePredictionMerge_){r = mPrediction_.predictMerged(filterState,tNext,predictionTimeline_.measMap_);if(r!=0) std::cout << "Error during predictMerged: " << r << std::endl;logCountMerPre_++;} else {while(filterState.t_ < tNext && (predictionTimeline_.itMeas_ = predictionTimeline_.measMap_.upper_bound(filterState.t_)) != predictionTimeline_.measMap_.end()){r = mPrediction_.performPrediction(filterState,predictionTimeline_.itMeas_->second,std::min(predictionTimeline_.itMeas_->first,tNext)-filterState.t_);if(r!=0) std::cout << "Error during performPrediction: " << r << std::endl;logCountRegPre_++;}}// imu和图像的时间戳不是对齐的,存在偏差,这⼀段时间的imu也要做EKF预测if(filterState.t_ < tNext){r = mPrediction_.performPrediction(filterState,tNext-filterState.t_);if(r!=0) std::cout << "Error during performPrediction: " << r << std::endl;logCountBadPre_++;}// 图像的更新doAvailableUpdates(filterState,tNext);}}}Prediction.hppint predictMerged(mtFilterState& filterState, double tTarget,const std::map<double, mtMeas>& measMap) {switch (filterState.mode_) {case ModeEKF:return predictMergedEKF(filterState, tTarget, measMap);case ModeUKF:return predictMergedUKF(filterState, tTarget, measMap);case ModeIEKF:return predictMergedEKF(filterState, tTarget, measMap);default:return predictMergedEKF(filterState, tTarget, measMap);}}virtual int predictMergedEKF(mtFilterState& filterState,const double tTarget, const std::map<double, mtMeas>& measMap){const typename std::map<double, mtMeas>::const_iterator itMeasStart = measMap.upper_bound(filterState.t_);if (itMeasStart == measMap.end())return 0;typename std::map<double, mtMeas>::const_iterator itMeasEnd = measMap.lower_bound(tTarget);if (itMeasEnd != measMap.end())++itMeasEnd;double dT = std::min(std::prev(itMeasEnd)->first, tTarget) - filterState.t_;if (dT <= 0)return 0;// Compute mean MeasurementmtMeas meanMeas;typename mtMeas::mtDifVec vec;typename mtMeas::mtDifVec difVec;vec.setZero();double t = itMeasStart->first;for (typename std::map<double, mtMeas>::const_iterator itMeas = next(itMeasStart);itMeas != itMeasEnd; itMeas++) {itMeasStart->second.boxMinus(itMeas->second, difVec);//这个是应该是减的vec = vec - difVec * (std::min(itMeas->first, tTarget) - t);t = std::min(itMeas->first, tTarget);}vec = vec / dT;//得到这段时间的imu平均测量itMeasStart->second.boxPlus(vec, meanMeas);preProcess(filterState, meanMeas, dT);meas_ = meanMeas;//雅可⽐矩阵的求解this->jacPreviousState(filterState.F_, filterState.state_, dT);this->jacNoise(filterState.G_, filterState.state_, dT); // Works for time continuous parametrization of noisefor (typename std::map<double, mtMeas>::const_iterator itMeas =itMeasStart; itMeas != itMeasEnd; itMeas++) {meas_ = itMeas->second;this->evalPredictionShort(filterState.state_, filterState.state_,std::min(itMeas->first, tTarget) - filterState.t_);filterState.t_ = std::min(itMeas->first, tTarget);}filterState.cov_ = filterState.F_ * filterState.cov_* filterState.F_.transpose()+ filterState.G_ * prenoiP_ * filterState.G_.transpose();filterState.state_.fix();enforceSymmetry(filterState.cov_);filterState.t_ = std::min(std::prev(itMeasEnd)->first, tTarget);postProcess(filterState, meanMeas, dT);return 0;}update.hppint performUpdateEKF(mtFilterState& filterState, const mtMeas& meas) {meas_ = meas;if (!useSpecialLinearizationPoint_) {this->jacState(H_, filterState.state_);Hlin_ = H_;this->jacNoise(Hn_, filterState.state_);this->evalInnovationShort(y_, filterState.state_);} else {filterState.state_.boxPlus(filterState.difVecLin_, linState_);this->jacState(H_, linState_);if (useImprovedJacobian_) {filterState.state_.boxMinusJac(linState_, boxMinusJac_);Hlin_ = H_ * boxMinusJac_;} else {Hlin_ = H_;}this->jacNoise(Hn_, linState_);this->evalInnovationShort(y_, linState_);}if (isCoupled) {C_ = filterState.G_ * preupdnoiP_ * Hn_.transpose();Py_ = Hlin_ * filterState.cov_ * Hlin_.transpose()+ Hn_ * updnoiP_ * Hn_.transpose() + Hlin_ * C_+ C_.transpose() * Hlin_.transpose();} else {Py_ = Hlin_ * filterState.cov_ * Hlin_.transpose() + Hn_ * updnoiP_ * Hn_.transpose();}y_.boxMinus(yIdentity_, innVector_);// Outlier detection // TODO: adapt for special linearization point//根据⽅差和residual的乘积是否超多阀值判断outlieroutlierDetection_.doOutlierDetection(innVector_, Py_, Hlin_);Pyinv_.setIdentity();Py_.llt().solveInPlace(Pyinv_);if(outlierDetection_.isOutlier(0)){LOG(INFO) << "innovation vector: " << innVector_(0) << " , " << innVector_(1);// LOG(INFO) << "covariance :\n " << Py_.block(0,0,2,2);}// Kalman Updateif (isCoupled) {K_ = (filterState.cov_ * Hlin_.transpose() + C_) * Pyinv_;} else {K_ = filterState.cov_ * Hlin_.transpose() * Pyinv_;}filterState.cov_ = filterState.cov_ - K_ * Py_ * K_.transpose();if (!useSpecialLinearizationPoint_) {updateVec_ = -K_ * innVector_;} else {filterState.state_.boxMinus(linState_, difVecLinInv_);updateVec_ = -K_ * (innVector_ + H_ * difVecLinInv_); // includes correction for offseted linearization point, dif must be recomputed (a-b != (-(b-a)))}filterState.state_.boxPlus(updateVec_, filterState.state_);// LOG(INFO) << "updateVec pos vel:\n " << updateVec_.block(0,0,6,1).transpose();return 0;}State.hpp旋转量使⽤四元数表⽰是4个⾃由度,但是旋转只要3个⾃由度表⽰,要⽤李代数表⽰。

室内移动机器人导航中信息获取方法研究综述

室内移动机器人导航中信息获取方法研究综述


摘 要 :应 用 传 感器 感知 环 境 信 息实 现 室 内移 动 机 器人 导航 是 自主 移 动 机 器 人 最 基 本 、也 是 最 关 键 的方 法 。本 文 对 室 内移 动 机 器 人 导 航 所 采 取 的信 息 获 取 方 法 进 行 了 综述 ,分 析 比较 了各 国 研 究 人 员 为 实现 室 内 自主 移 动 机 器 人 导 航 所 采 用 的 各 种 不 同 的信 息 获 取 方 法 及 多 传 感 器 融 合 算 法 。并 总 结 了 各 种 方 法 的优 缺 点 。 探 讨 了现 有 的信 息获 取 方 法 的存 在 的难 点 问题 , 并 提 出 了 该研 究 的 发展 方 向 。 关键 词 :信 息 获 取 ;导 航 ; 多 传 感 器 ; 信 息 融 合
应 用 传感 器 感 知 的信 息来 实现 可 靠 的 导航 是 自
主 移 动机 器 人 最 基 本 、最 重 要 的 功 能 之 一 , 也 是 移 动 机 器 人 实 现 自主 移 动 的 核 心 技 术 , 是 机 器 人 研 究 领 域 的重 点 和 难 点 问题 。 研 究 人 员跟 据 所 应 用 的 传 感 器 技 术 ,对 了机 器 人 的导 航 方 法 进 了长 期 、深 入 的研 究 , 取 得 了许 多 理 论 性 和应 用 性 的成 果 。
和定位 。为了获得机器 人的位姿和 环境地 图,机 器人
必 须 具 备 能 够 感 知 外 部 世 界 的相 关 传 感 器 。 根 据 自主 移 动 机 器 人 在 导 航 采 用 的 传 感 器 信 息 获 取 方 法 分 为 两
号 ,经 目标反射后被接收系统收集,通过测量反射
运 行 时 间而 确 定 目标 的距 离 。利用 激 光 测距 仪 进 行 穆 机 器 人 自主 导航 的有 很 多 。L vn e Tm s e e t a a 等人 在 柳 人 上 安装 激 光 测距 仪 来 实现 导 航 , 实验 证 明其 扫 描线 叠超过5% 0 ,能 实 现 精 确 定 位 。J n f I用 激 光 传 J eset

全景视觉与激光雷达融合的SLAM技术

全景视觉与激光雷达融合的SLAM技术

全景视觉与激光雷达融合的SLAM技术一、引言1.SLAM技术的重要性及应用领域SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)技术是机器人和自动驾驶领域中的关键技术之一。

它允许机器人在未知环境中自主导航,同时构建环境的地图。

SLAM技术在智能家居、工业自动化、救援机器人、无人驾驶车辆等领域有着广泛的应用前景。

2.全景视觉与激光雷达在SLAM中的作用全景视觉通过广角相机捕捉360度的图像,提供丰富的环境信息,有助于机器人对环境进行感知和理解。

激光雷达则通过发射激光束并测量反射回来的时间,获取环境的精确距离信息,为机器人的定位和地图构建提供准确的数据。

3.融合全景视觉与激光雷达的意义和优势全景视觉和激光雷达各自具有独特的优势,但也存在局限性。

全景视觉对环境的外观和光照条件敏感,而激光雷达则对环境的结构和距离信息敏感。

将全景视觉与激光雷达融合,可以充分利用两者的互补性,提高SLAM系统的鲁棒性和准确性。

融合后的系统能够在复杂环境中实现更稳定的定位和更精确的地图构建。

4.论文目的与主要研究内容本文旨在研究全景视觉与激光雷达融合的SLAM技术,探索有效的融合策略和优化算法,提高SLAM系统的性能。

主要研究内容包括全景视觉和激光雷达的数据预处理、融合SLAM算法设计、实验验证与结果分析等。

二、相关工作综述1.SLAM技术发展历程及现状自从SLAM技术提出以来,它经历了从基于滤波的方法到基于优化的方法的演变。

近年来,随着深度学习的发展,基于深度学习的SLAM技术也取得了显著的进展。

目前,SLAM技术已经成为机器人和自动驾驶领域的研究热点之一。

2.全景视觉SLAM技术研究现状全景视觉SLAM技术利用全景相机捕捉的360度图像进行定位和地图构建。

现有的全景视觉SLAM算法主要包括基于特征的方法和基于深度学习的方法。

基于特征的方法通过提取图像中的特征点进行匹配和位姿估计,而基于深度学习的方法则利用神经网络学习图像的特征表达并进行位姿估计。

基于环境语义信息的同步定位与地图构建方法综述

基于环境语义信息的同步定位与地图构建方法综述

基于环境语义信息的同步定位与地图构建方法综述李小倩,何 伟,朱世强,李月华✉,谢 天之江实验室,杭州 311100✉通信作者,E-mail: ********************摘 要 同步定位与地图构建技术(SLAM )是当前机器人领域的重要研究热点,传统的SLAM 技术虽然在实时性方面已经达到较高的水平,但在定位精度和鲁棒性等方面还存在较大缺陷,所构建的环境地图虽然一定程度上满足了机器人的定位需要,但不足以支撑机器人自主完成导航、避障等任务,交互性能不足. 随着深度学习技术的发展,利用深度学习方法提取环境语义信息,并与SLAM 技术结合,越来越受到学者的关注. 本文综述了环境语义信息应用到同步定位与地图构建领域的最新研究进展,重点介绍和总结了语义信息与传统视觉SLAM 在系统定位和地图构建方面结合的突出研究成果,并对传统视觉SLAM 算法与语义SLAM 算法做了深入的对比研究. 最后,展望了语义SLAM 研究的发展方向.关键词 视觉同步定位与地图构建技术;深度学习;系统定位;地图构建;语义同步定位与地图构建技术分类号 TP24Survey of simultaneous localization and mapping based on environmental semantic informationLI Xiao-qian ,HE Wei ,ZHU Shi-qiang ,LI Yue-hua ✉,XIE TianZhejiang Lab, Hangzhou 311100, China✉Corresponding author, E-mail: ********************ABSTRACT The simultaneous localization and mapping (SLAM) technique is an important research direction in robotics. Althoughthe traditional SLAM has reached a high level of real-time performance, major shortcomings still remain in its positioning accuracy and robustness. Using traditional SLAM, a geometric environment map can be constructed that can satisfy the pose estimation of robots.However, the interactive performance of this map is insufficient to support a robot in completing self-navigation and obstacle avoidance.One popular practical application of SLAM is to add semantic information by combining deep learning methods with SLAM. Systems that introduce environmental semantic information belong to semantic SLAM systems. Introduction of semantic information is of great significance for improving the positioning performance of a robot, optimizing the robustness of the robot system, and improving the scene-understanding ability of the robot. Semantic information improves recognition accuracy in complex scenes, which brings more optimization conditions for an odometer, pose estimation, and loop detection, etc. Therefore, positioning accuracy and robustness is improved. Moreover, semantic information aids in the promotion of data association from the traditional pixel level to the object level so that the perceived geometric environmental information can be assigned with semantic tags to obtain a high-level semantic map. This then aids a robot in understanding an autonomous environment and human –computer interaction. This paper summarized the latest researches that apply semantic information to SLAM. The prominent achievements of semantics combined with the traditional visual SLAM of localization and mapping were also discussed. In addition, the semantic SLAM was compared with the traditional SLAM in收稿日期: 2020−11−09基金项目: 国家重点研发计划资助项目(2018AAA0102703);科工局稳定支持项目(HTKJ2019KL502005);第67批中国博士后科学基金面上资助项目(HTKJ2019KL502005)工程科学学报,第 43 卷,第 6 期:754−767,2021 年 6 月Chinese Journal of Engineering, Vol. 43, No. 6: 754−767, June 2021https:///10.13374/j.issn2095-9389.2020.11.09.006; detail. Finally, future research topics of advanced semantic SLAM were explored. This study aims to serve as a guide for future researchers in applying semantic information to tackle localization and mapping problems.KEY WORDS visual simultaneous localization and mapping;deep learning;localization;mapping;semantic simultaneous localization and mapping同步定位和建图(Simultaneous localization and mapping, SLAM)是机器人利用自身携带的视觉、激光等传感器,在完成自身定位的同时构建环境地图的过程,是提高机器人智能性、自主性的核心环节,也是机器人相关研究中的一个基本问题[1−2].通过相机采集图像信息作为环境感知信息源的SLAM系统称为视觉SLAM[3−4](Visual SLAM,V-SLAM),与其他SLAM系统(如激光SLAM[5−6])相比,V-SLAM可感知更加丰富的色彩、纹理等环境信息[7−8].V-SLAM系统大多将估计相机位姿作为主要任务,通过多视几何理论构建三维地图. 随着机器人的应用范围越来越广,使用者对于机器人的智能程度提出了更高的要求,传统利用环境中点、线、面等低级别几何特征信息的V-SLAM系统在系统定位精度和鲁棒性等方面已表现出明显不足,特别在应对弱纹理环境、光照变化和动态目标等方面依然有很多挑战[9]. 随着深度学习技术的迅速发展,其在计算机视觉(Computer vision,CV)的各个领域都有着非常成功的应用. 在此背景下,近年来,越来越多的SLAM研究者使用基于深度学习的方法提取环境语义信息,以获取高层次的场景感知和理解,并应用在V-SLAM系统中[10],辅助视觉SLAM系统提升定位性能、地图可视化,从而赋予机器人更高效的人机交互能力.本文专注于对语义SLAM方法进行分析和讨论,首先系统地介绍和分析环境语义信息与SLAM 系统结合在定位精度、鲁棒性和地图形式等方面的研究进展,并将语义SLAM技术与传统V-SLAM 技术进行分析和比较. 最后,讨论了语义SLAM技术最新的研究热点和发展方向,进行总结和展望.1 语义SLAM系统概述同步定位与建图的核心研究内容是机器人对自身的状态估计和对环境的感知描述,其中定位可以看作机器人对自身当前状态的估计,而地图可以认为是机器人对环境认识、描述的集合. 从应用层面分析,机器人对于“定位”的需求是相似的,即实现对自身位姿的状态估计;而对于地图构建来说,其需求是广泛的.现代V-SLAM系统主要包括传感器信息读取、前端视觉里程计、后端优化和建图4个部分[11],如图1所示. 视觉里程计[12](Visual odometry, VO)模块接收传感器所提供的数据,其任务包括特征提取,SLAM初始化,特征跟踪,估计相邻图像间相机的运动,构建局部地图,并根据图像间的多视几何关系确定机器人位姿,又可称为V-SLAM 的前端. 后端优化包括位姿优化[13−14]和场景重定位[15],其任务为接收多个时刻视觉里程计估计的相机位姿,并结合回环检测信息,进行优化,从而得到全局一致的轨迹和地图. 回环检测通过计算图像间的相似性判定当前场景与历史某个场景是否一致,并将检测结果输入后端优化,从而解决位置估计随时间漂移的问题. 最后,机器人根据优化后的运动轨迹和三维点云,建立满足任务要求的地图.图 1 V-SLAM系统框架Fig.1 Architecture of the V-SLAM system对SLAM系统而言,引入环境语义信息的SLAM 系统,均属于语义SLAM系统. 语义信息的引入,对于提升机器人的定位性能、优化机器人系统的鲁棒性、提高机器人的场景理解能力等方面具有重李小倩等: 基于环境语义信息的同步定位与地图构建方法综述· 755 ·要意义. 一方面,借助语义信息提升了复杂场景下的识别精度,为视觉里程计、位姿估计、回环检测等带来更多的优化条件,提高了定位精度和鲁棒性;另一方面,借助语义信息将数据关联从传统的像素级别提升到物体级别,将感知的几何环境信息赋以语义标签,进而得到高层次的语义地图,可帮助机器人进行自主环境理解和人机交互.2 语义与SLAM系统定位移动机器人对系统定位的性能要求主要包括3个方面:定位实时性、定位精度和定位鲁棒性.目前SLAM的实时性已达到较高的水平,因此对于SLAM技术真实应用于机器人领域,亟需提高SLAM系统的定位精度和鲁棒性. 本节针对SLAM 系统结合环境语义信息提高系统定位的这两项重要性能展开介绍.2.1 语义与定位精度定位是确定机器人在其工作环境中所处位置的过程,定位精度是SLAM系统中最为基本也是最重要的考核指标,是移动机器人开展导航和路径规划任务的先决条件. 利用语义分割和目标检测等技术将物体划分为更加具体的目标,非常适合SLAM这种需要精确几何约束问题的系统. 结合环境语义信息,可有效改善单目视觉定位过程中的尺度不确定性问题和累积漂移等问题,进而提高系统定位精度.(1)面向单目初始化.由于单目相机存在尺度不确定性问题,单目视觉SLAM系统不可避免地出现尺度模糊和随时间漂移等现象,无法准确估计移动机器人的位姿[16].因此,如何修正尺度模糊和漂移是单目视觉SLAM 系统初始化中的关键问题.Frost等[17]提出基于混合多尺度可变模型的目标检测系统[18]检测物体,并与SLAM系统中的关键帧进行数据关联,然后对物体尺寸进行估计,生成地图地标,最后地标与相机位姿共同参与局部优化,以解决尺度模糊和漂移的问题,保证了全局地图的一致性. Sucar与Hayet[19]在贝叶斯框架内,通过基于深度学习的目标检测算法观测物体,确定其先验高度,然后将局部地图中3D点投影到目标检测的2D图像上,确定目标检测区域的边界点并投影回3D空间,进而确定物体的实际高度,最后将先验高度与实际高度之比设置为尺度因子,用于单目SLAM系统中的尺度矫正,从而准确估计移动机器人位姿. 两项研究共同引入了环境语义信息,充分考虑目标对象的大小,使得单目尺度初始化处理更加高效和简洁. 基于公开数据集的实验结果验证了其在各种场景应用中的有效性.(2)面向数据关联.在V-SLAM框架中,根据更新频率,数据关联可以被分为两类:短期关联(如特征匹配)和长期关联(如回环检测). 基于环境语义信息的SLAM研究提出了一种基于中期数据关联机制的新思路.Bowman等[20]利用目标检测,整合尺度信息与语义信息,用于SLAM系统的位姿估计. 作者在应用时发现,目标对象的不合理数据关联,会严重影响定位与建图的结果. 因此提出了概率数据关联机制,在处理数据关联过程中充分考虑语义信息的不确定性. 通过引入最大期望估计(Expectation maximization,EM),根据语义分类结果计算数据关联的概率,成功地将语义SLAM转换成概率问题,获得了ICRA2017年的最佳论文.Lianos等[21]在此基础上,提出了全新的视觉语义里程计框架(Visual semantic odometry,VSO),利用重投影前后语义标签具有的一致性来实现中期(Medium-term)连续点跟踪. 使用距离变换将分割结果的边缘作为约束,利用重投影误差构造约束条件,整合语义约束到姿态和地图优化中,以改善系统的平移漂移问题. 所提算法可以直接融合进已有的直接法或间接法视觉里程计框架中,并分别在ORB-SLAM2[22](间接法VO代表)和PhotoBundle[23](直接法VO代表)系统中对语义信息引入的效果进行实验对比,结果表明,添加语义约束后有效减少了系统的平移漂移现象.(3)面向位姿优化.在V-SLAM系统中,需要解决的主要问题是机器人的状态估计问题,常见的优化算法为基于粒子滤波的优化算法和基于非线性优化的算法.在基于粒子滤波的优化算法中,可利用环境语义信息更新粒子状态,进而更精准地进行位姿估计. Bavle等[24]提出了一种基于双目视觉里程计和室内环境语义信息的粒子滤波优化方法. 粒子滤波器的预测阶段使用双目视觉里程计估计机器人的三维姿态,并使用惯性和语义信息更新三维姿势,进而对机器人进行无漂移的姿态估计.在基于非线性优化的算法中,可借助目标检测算法,将物体作为路标,融合到一个优化算法中,以提高系统定位精度. Nicholson等[25]提出了面向对象的语义SLAM系统 QuadricSLAM,利用椭圆体(对偶双曲面)对物体进行三维建模,紧凑· 756 ·工程科学学报,第 43 卷,第 6 期地表示物体的大小、位置和方向,并作为路标添加到优化公式中,联合估计相机位姿和对偶二次曲面,以提高系统的定位精度.类似的,卡内基梅隆大学机器人研究所Yang 与Scherer[26]提出了CubeSLAM系统,用单目相机实现了对象级的定位与建图. 作者利用目标检测算法生成2D边界框,通过消失点法(Vanishing points,VP)生成物体三维立方体,并将物体作为路标,结合物体约束信息与几何信息,融合到一个最小二乘公式中,改善相机位姿估计,提高了SLAM的定位精度. 与基于特征点的SLAM系统相比,对象级SLAM系统可以提供更多的几何约束和尺度一致性,所提算法在公开数据集上得到了较好的位姿估计精度,同时还提高了3D物体的检测精度. 同时,Yang与Scherer[27]在此基础上,结合Pop-up SLAM[28]的思想,提出了一个无需先验物体和模型的联合物体和平面估计的单目SLAM 系统. 首先,利用高阶图形模型,结合语义和遮挡等约束[29],推断单张图像中的三维物体和平面,然后将提取的物体和平面,结合相机和特征点位姿,放在统一的框架中进行优化. 实验结果表明,所提算法在ICL NUIM和TUM mono数据集中定位精度准确,并可以在结构化环境中生成稠密地图.(4)面向重定位与回环检测重定位和回环检测的目的不同,但通常可以采用相同的技术. 重定位主要是跟踪丢失时重新找回当前姿态,恢复相机姿态估计;回环检测是识别机器人曾经到过的场景,得到几何一致的映射,从而解决漂移问题,提高全局精度. 传统的SLAM 算法大都依赖于低级别的几何特征,使得重定位和回环检测通常依赖于相机的视角,在特征不明显或重复性的纹理环境中容易检测失败. 语义SLAM系统利用目标识别推测标志物的种类和大小,产生易于识别的标志物,进而提高系统的定位精度.Gawel等[30]提出了一种基于图的语义重定位算法,将具有语义目标位置的关键帧组合成一组三维图,并利用图匹配算法求解相机在全局地图中的位置. Konstantinos等[31]提出了一种基于地点视觉词描述的回环检测算法,通过对输入的图片流进行动态分割,定义一个个“地点”,并通过在线聚类算法,将图像的描述子转化为地图中的相应的视觉词. 系统通过概率函数判断回环检测的候选地点,并通过最近邻投票算法,匹配候选地点中最准确的那一帧图像. 实验表明,算法在精确和召回率上有很好的表现. 此外,所提算法仅通过将查询图像的局部描述子转换为词典的视觉词,就能判断已访问过的地点,不需要任何预训练的步骤,能够满足很好的实时性要求.张括嘉等[32]利用YOLOv3[33]目标检测算法获取环境中关键目标的语义信息,建立目标检测结果之间的相对位置关系,根据连续关键帧的相似度变化情况进行回环判断. 所提算法在公开数据集上取得了较好的效果,与单纯利用传统视觉特征的算法相比,环境语义信息的应用有效提高了室内场景下的闭环检测准确性.2.2 语义与定位鲁棒性定位鲁棒性是机器人安全运行的保证,是移动机器人系统重要的考量指标. 传统的V-SLAM 系统在纹理特征缺失、光照变化较大和高速动态等场景下,非常容易出现定位信息丢失的情况,尤其是在自动驾驶这种对安全性要求较高的应用领域,一旦定位信息丢失,后果将不堪设想. 利用环境语义信息可有效改善传统V-SLAM系统面临的这些问题,有效提升系统定位的鲁棒性.(1)面向弱纹理环境.传统V-SLAM方案中采用的图像特征语义级别低,造成特征的可区别性较弱,在弱纹理等缺少显著特征的环境中,传统基于特征点的方法难以进行准确的运动估计. 借助深度学习的方法提取环境中的立体特征,并用于优化位姿估计,可提升系统定位鲁棒性.Yang等[28]提出的Pop-up SLAM系统,验证了场景理解对弱纹理环境下机器人状态估计改善的有效性. 利用深度学习的方法提取环境中墙‒地的边界信息,并根据单幅图像生成立体平面模型,同时利用平面法线间的差、平面间的距离和平面间的投影重叠3个几何信息进行平面匹配. 然后将Pop-up模型提供的深度估计融合到LSD-SLAM[34]深度图中,提高LSD-SLAM的深度估计质量,以提高系统的鲁棒性. Ganti和Waslander[35]指出从信息熵较低的区域提取特征点,位姿估计的准确性低[36],对这些特征点跟踪,会增加错误数据关联的风险,他们提出了一种基于信息论的特征选取方法,利用语义分割的不确定性概念计算信息交叉熵. 该方法减少了对特征点数量的要求,显著提高了系统实时性和鲁棒性,而在精度上没有任何明显损失.Qin等[37]针对地下停车场自动代客泊车系统,提出了一种基于语义特征的定位方法. 在狭窄拥李小倩等: 基于环境语义信息的同步定位与地图构建方法综述· 757 ·挤且没有GPS信号的停车场环境中,环境结构相似,纹理特征不足,传统V-SLAM方法容易发生跟踪丢失的问题,作者首先利用深度学习将地面上的指路标志、停车线以及减速带等信息分割出来,再根据里程计的信息,将语义特征映射到全局的坐标系下,建立停车场的地图,然后通过将语义特征与先前的构建出来的地图进行匹配来对车辆进行定位,最后采用扩展卡尔曼滤波器将视觉定位结果与里程计融合,保证在缺少纹理信息的停车场环境中,系统能够输出稳定的定位结果.(2)面向光照变化.在传统V-SLAM系统中,特征描述子(如SIFT,ORB等)对于光照变化较敏感,光照的变化容易导致目标表面颜色等特征的变化,对系统定位鲁棒性造成干扰. 而环境中的物体类别与光照和时间变化无关,可利用环境语义信息构造新的特征描述子,从而有效降低由于光照变化对定位鲁棒性造成的不利影响.2018年,瑞典查尔姆斯理工大学信号处理研究小组的Stenborg等[38]提出了一种在已有的3D地图上,将语义类别作为地图点描述子的定位算法,有效解决了长时间跨季度定位系统中环境光照变化等对定位系统的影响. Schönberger等[39]提出了一种基于3D几何和语义信息进行视觉定位的新方法,通过训练语义场景完备化作为辅助任务,学习出鲁棒的局部描述符,以此建立查询和数据库映射之间3D-2D的匹配,将匹配结果用于位姿估计与矫正,成功解决了大范围观测条件下的鲁棒性视觉定位问题. 在KITTI和NCLT数据集上运行结果表明,所提方法在极端视角、照明和几何变化情况下,表现出了系统的高可靠性. 此类方法相较于基于传统描述子的方法节省了大量的存储空间,但语义描述子的应用也有一定的局限性,如在较单一类别的场景中容易产生误差.此外,还可通过优化特征选择策略,结合语义信息进行过滤,使得所关注目标对于光照变化更加鲁棒. Naseer等[40]提出了一种判别整体图像内容的方法,能够根据图像语义信息生成一个密集的场景显著性描述. 通过训练感知环境变化大的数据集学习显著性描述,保证能够在图片上分割出更加稳定的区域,剔除易随时间变化的区域,并将显著区域的特征和现有的整体图像上的特征进行融合,从而得到了一个更加鲁棒的场景描述. Liang等[41]在稀疏直接法里程计(Direct sparse odometry, DSO)[42]基础上,改变了跟踪点的选取策略,通过在图像上的感兴趣区域上选取点(感兴趣区域即显著性图),并利用语义分割的结果对显著性图进行滤波,调整每个像素点的显著性得分,从而降低了无信息区域(例如墙,天花板和地板等)的显著性得分. 实验结果表明显著性区域的点对于光照和视角的变化更加鲁棒.(3)面向动态场景.传统的V-SLAM系统大多基于静态环境假设,在处理动态环境的定位问题时,容易发生错误匹配. 近年来,针对动态场景的语义SLAM系统逐渐受到越来越多的关注[43−44],通过引入环境语义信息有效地对静态和动态特征点进行划分,移除动态特征点,从而减少动态干扰,以提高SLAM系统的鲁棒性.Yu等[45]基于ORB-SLAM2提出了一种动态环境下鲁棒的语义SLAM系统(DS-SLAM),该系统基于光流金字塔算法进行运动一致性校验,并结合语义分割网络获取物体轮廓,剔除位于移动物体上的特征点,减少动态对象对姿态估计的影响,提升了系统定位鲁棒性. 在TUM RGB-D数据集以及真实环境下测试结果表明,该系统的绝对轨迹精度比ORB-SLAM2提高了一个数量级. 但是,该算法能识别的语义类别较少,且只定义人为动态物体,另外,该地图在回环失败时需要重新建图,地图的可移植能力不足. Bescos等[46]也在ORB-SLAM2系统上,提出了一种面向动态物体检测和背景修复的V-SLAM系统(DynaSLAM),通过使用多视几何和深度学习的方法实现移动物体的检测,并通过对动态物体遮挡的背景帧进行修复,生成静态场景地图. 实验结果表明,DynaSLAM提供的单目、双目和RGB-D 3种运行状态在动态场景中均有较好的鲁棒性,并能输出场景的静态地图,更符合机器人长时间运行的使用需要.目前大多数语义信息用于动态场景都是将所有潜在运动的物体直接去除,但如若动态目标物体并没有发生运动,且占据相机视角的大部分,那么将目标物体上的点都去除会对位姿估计产生很严重的影响. Brasch等[47]针对此类现象提出了一种改进方案,其引入对于地图点是否为静态点的概率估计“静态率”(Inlier ratio),实现地图点在动静态之间的平滑过渡. 首先,根据语义分割网络的输出赋予静态率一个先验值,例如车具有较低的静态率,建筑具有较高的静态率等,然后根据不断地引入新的观测数据来更新该地图点的静态率,以在具有挑战性的条件下实现定位鲁棒性. Cui· 758 ·工程科学学报,第 43 卷,第 6 期与Ma[48]提出了一种基于ORB-SLAM2 RGB-D模式的面向动态环境的视觉语义SLAM系统(SOF-SLAM). 该系统采用一种新的语义光流动态特征检测方法,使用SegNet[49]产生像素级的语义分割结果,获取运动先验(静态、潜在动态的和动态),并将运动先验作为掩膜去除动态和潜在动态特征之间的匹配,然后利用语义静态特征的匹配计算基本矩阵,最后利用基本矩阵和对极约束寻找并剔除真正的动态特征,在跟踪和优化模块中保留剩余的静态特征,实现动态环境下相机位姿的精确估计. 在公开的TUM RGB-D数据集和真实环境中的实验结果表明,所提算法可有效应对动态环境.由上可见,利用环境语义信息通过特征选择和优化数据关联等方法可有效提高系统定位的精度,通过对目标物体的跟踪,可以提高弱纹理环境、光照变化和动态场景下SLAM系统的鲁棒性.相较于传统V-SLAM系统,基于语义的SLAM系统直接提取图像特征,无需人工特征提取和匹配,更加简洁直观;基于语义的SLAM系统能够更充分表达环境信息,进而实现高层次的场景感知和理解,保障了系统的定位精度和鲁棒性. 但是,目前对环境理解的算法主要基于深度学习等方法,不同学习算法之间的网络架构设计差异性大,且对训练数据库有较强的依赖性. 同时,系统性能严重依赖于环境目标识别和语义分割结果的准确性. 此外,当前环境语义信息多与SLAM局部的子模块相结合,如位姿优化或回环检测等,部分语义SLAM学者也开始关注如何搭建一个端到端的SLAM系统[50],将深度学习架构应用于整个SLAM 系统,也是未来研究的一个重要方向.3 语义与SLAM地图构建在传统的SLAM研究中,地图构建主要服务于机器人定位,即利用构建的环境地图提高机器人的定位精度,此时地图的表现形式主要是稀疏的点云地图. 而当SLAM技术逐渐应用于机器人和自动驾驶领域,其需要利用环境地图完成导航和避障,因此需要稠密的环境地图,如稠密点云地图、八叉树地图等. 随着机器人和智能化程度提高,机器人逐渐服务于日常生活和工业生产,需要更加利于交互的环境地图. 近年来,深度学习技术快速发展,利用深度学习方法构建具有语义信息的环境地图成为提高机器人交互能力一种可行的方案.基于环境语义信息的SLAM技术不仅提取环境中的几何信息,还能充分利用环境中的语义信息,即环境中个体的属性,从而提高机器人执行任务的智能水平. 21世纪初,Vasudevan等[51]和Galindo等[52]先后提出了机器人语义地图的概念,阐述了构建具有语义信息的环境地图可以提高机器人的感知能力,并且地图中的语义信息使机器人具有一定的推算能力. 得益于SLAM技术的快速发展,研究人员希望将这种含有语义信息的地图形式应用到SLAM系统中,即构建环境语义地图. 早期的语义地图构建算法大多采用离线的方式,基于马尔可夫等方法对几何地图进行语义标注[53−54],这种方法需要离线对地图进行处理,无法在机器人上实际使用. 随着机器学习技术的发展,部分学者使用条件随机场(Conditional random field,CRF)、随机决策森林(Random forest)等算法获取场景中的语义标签[55−56],但是此类算法语义融合的效率较低、精度较差,亦不能将其应用到实际场景. 同时,部分学者针对机器人与环境中实体的交互问题,提出将地图与预先构建的物体模型进行融合,把实体从地图中分割出来[57−58],但是这种方法依赖先验知识,限制了地图的应用场景. 近年来,深度学习技术快速发展,越来越多的研究人员将深度学习方法与SLAM技术结合,利用目标检测、语义分割等算法[59]提取环境的语义信息,并将其融入到环境地图中,以构建环境语义地图.目前针对语义信息与SLAM地图构建融合的研究主要分为两个方向,包括面向场景的语义地图构建和面向对象的语义地图构建,如表1所示. 其中,面向场景的语义地图侧重于机器人对环境的感知,而面向对象的语义地图更侧重于机器人与实体进行交互,接下来本文将围绕这两个方面进行综述.3.1 面向场景的语义地图面向场景的语义地图是指使用语义分割算法对2D图像进行像素级分割,提取图片中的语义信息,并将其与3D点云进行融合,以构建全场景的语义地图. McCorma等[60]基于卷积神经网络提出了SemanticFusion算法,实现了室内环境语义地图构建,是构建像素级语义地图的典型代表. 该算法构建了一个完整的语义SLAM系统,实现了传统SLAM框架与语义分割的结合,解决了传统语义标注算法中语义类别少、需要离线标注等问题,并且引入了一种节点概率更新算法和语义修正方法,在语义地图构建算法精度上具有较高水平. 同李小倩等: 基于环境语义信息的同步定位与地图构建方法综述· 759 ·。

3D重建算法原理

3D重建算法原理

3D重建算法原理3D重建算法原理三维重建(3D Reconstruction)技术⼀直是计算机图形学和计算机视觉领域的⼀个热点课题。

早期的三维重建技术通常以⼆维图像作为输⼊,重建出场景中的三维模型。

但是,受限于输⼊的数据,重建出的三维模型通常不够完整,⽽且真实感较低。

随着各种⾯向普通消费者的深度相机(depth camera)的出现,基于深度相机的三维扫描和重建技术得到了飞速发展。

以微软的Kinect,华硕的XTion以及因特尔的RealSense等为代表的深度相机造价低廉,体积适当,操作⽅便,并且易于研究者和⼯程师进⾏开发。

三维重建技术也是增强现实(Augmented Reality,简称AR)技术的基础,经过扫描重建后的三维模型可以直接应⽤到AR或VR的场景中。

本⽂将简单介绍基于深度相机的三维重建技术的基本原理及其应⽤。

背景对⼏何3D模型不断增长的需求:电影游戏虚拟环境等⾏业VR&AR的⽕爆房地产三维地图等领域的需求中国古代建筑三维数字化保护三维数字化城市三维地图VR&&AR游戏,电影等医疗⾏业:三维⼼脏教育⾏业等应⽤⽅法介绍传统的三维重建主要是依靠昂贵的三维扫描设备,并且需要被扫描的⽬标保持⼀段时间的稳定。

近年来,由于计算机硬件⼤规模计算能⼒的发展,特别是GPU和分布式计算的发展,实时⾼效的解决⽅案成为了可能。

⽬前主流的⽅法主要分为以下两类:基于深度相机的三维重建基于图像的三维重建原理主要有以下三种:结构光,这个技术的代表产品是 Kinect ⼀代,它的传感器芯⽚⽤的是 PrimeSense 家的。

PrimeSense 现在是苹果旗下的公司。

TOF,time-of-flight,代表产品是 Kinect ⼆代,由于微软对于 One 这个单词的热爱,它的官⽅名字是 Kinect One。

双⽬摄像头,代表产品是 Google Tango 以及 Leap Motion,前者配有四台摄像头,后者有两个三维重建算法⼴泛应⽤于⼿机等移动设备中,常见的算法有SfM,REMODE和SVO等。

扫地机器人自主导航与路径规划算法研究

扫地机器人自主导航与路径规划算法研究

扫地机器人自主导航与路径规划算法研究综述:随着人工智能技术的发展和普及,扫地机器人逐渐成为家庭和办公场所的常见设备。

其中,自主导航与路径规划算法被认为是扫地机器人实现智能化的关键技术。

本文将深入探讨扫地机器人自主导航与路径规划算法的研究现状和发展趋势。

一、自主导航算法1.1 传感器技术扫地机器人实现自主导航的首要任务是感知周围环境。

传感器技术在其中扮演着重要的角色。

常见的传感器包括激光雷达、红外传感器、触摸传感器以及摄像头等。

借助这些传感器,扫地机器人能够获取环境地图、障碍物位置、楼层变化等重要信息。

1.2 地图构建在机器人感知到环境之后,需要对环境进行地图构建。

地图构建的方法包括激光测距法、视觉法、超声波法等。

此外,还可以将多个传感器进行融合,获得更加精确的地图信息。

1.3 定位技术为了实现机器人在环境中的准确定位,需要运用定位技术。

定位技术一般可分为绝对定位和相对定位两种。

其中,绝对定位包括全球定位系统(GPS)和基于地标的定位等,而相对定位包括自我定位和里程计定位等。

融合多种定位方法能够提高定位的准确性和稳定性。

二、路径规划算法2.1 图搜索算法图搜索算法是路径规划的常见方法之一,主要包括广度优先搜索算法、深度优先搜索算法和A*算法等。

广度优先搜索算法通过逐层扩展搜索状态来找到最短路径;深度优先搜索算法则逐个分支搜索,直到找到目标位置。

A*算法是一种综合考虑启发式函数的最短路径搜索算法,具有较高的搜索效率。

2.2 取样优化算法取样优化算法是针对复杂环境中的路径规划问题提出的一种解决方案。

其中,著名的算法有RRT(Rapidly-Exploring Random Tree)和PRM(Probabilistic Roadmaps)等。

RRT算法通过不断扩展树形结构来找到一条合适的路径;而PRM算法则建立了一个随机采样的图结构,并通过图搜索算法找到最佳路径。

2.3 动态规划算法动态规划算法主要用于求解具有最优效应的问题。

基于深度学习的三维重建算法

基于深度学习的三维重建算法

前言目前,三维重建技术已在游戏、电影、测绘、定位、导航、自动驾驶、VR/AR、工业制造以及消费品领域等方面得到了广泛的应用。

方法同样也层出不穷,我们将这些方法依据原理分为两类:•基于传统多视图几何的三维重建算法•基于深度学习的三维重建算法总地来说,尽管目前传统的三维重建算法依旧占据研究的主要部分,但是越来越多的研究者开始关注于用CNN探索三维重建,或者说,两者之间的交叉与融合。

有人问,在三维重建中引入深度学习方法有什么意义?我将意义概括为三部分:•为传统重建算法性能优化提供新的思路一项名为 Code SLAM1 的工作,这项研究获得了CVPR 2018年的best paper提名奖,研究利用神经网络框架,并结合图像几何信息实现了单目相机的稠密SLAM。

主要贡献在于使用了深度学习方法从单张图像中用神经网络提取出若干个基函数来表示场景的深度,这些基函数表示可以极大简化传统几何方法中的优化问题。

显然,深度学习方法的引入可以给传统方法的性能提升提供新的思路,而以前,这部分工作大多由机器学习方法来做。

•将深度学习重建算法和传统三维重建算法进行融合,优势互补业界对算法的鲁棒性要求比较高,因此多传感器、乃至多种算法的融合以提升算法鲁棒性是个必然趋势,而深度学习在一些场景中具有天然优势,比如不可见部分的建模,传统算法就很难凭借“经验”来估计物体的深度。

•模仿动物视觉,直接利用深度学习算法进行三维重建动物跟人类直接基于大脑而非严格的几何计算来进行物体的三维重建,那么直接基于深度学习的方法在原理上也是可行的。

特别需要注意的是,在一些研究中,有些方法直接基于单张图像(非单目,单目指利用单个摄像头)进行三维重建。

理论上讲,单张图像已经丢失了物体的三维信息,因此在原理上即不能恢复深度信息,但是人类又能凭借经验大致估计物体的距离,因而也具有一定的“合理性”。

两者形成了各自的理论和体系,但未来三维重建领域研究一定是传统优化方法与深度学习的结合。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
滤波完成运动估计 。
1 3 总结 .
Nsr i6 的方法为 :) t a 在一个 确定 数 目的 图像 帧 问跟踪 特征 , 在
三 帧图像 中 利用 五 点算 法 估 计 相 对位 姿 , 随后 利 用 优先 R NA A S C的方法迭代提纯 ;) b 利用每一跟踪特征中的第一个和 最后一个观测值 , 将观察 的特征跟踪通过三角测量法转换为三
A s at i a oo e y V b t c :V s l d m t ( O)i at h o g hc i s oet a em t nb s gv u l n r ai ,n sdte r u r s c n l yw i a s m t t oi yu i i a if m t n a d ue e o h m t i eh o n s o o h
体视 觉里程计 , 然后从 鲁棒性 、 实时性 和精确 性三 个方 面详细讨 论 了视 觉里 程计技 术 的研 究现 状 , 最后 对 视 觉里
程 计 的发展趋 势进行 了展 望 。
关键词 :视 觉里程计 ; 自主移动机 器人 ;单 目视 觉里程计 ;立体 视 觉里程计 ;鲁棒 性 ;实 时性 ;精确 性 中图分 类号 :T 3 3 0 P 9.4 文 献标 志码 :A 文章 编号 :10 — 6 5 2 1 ) 8 2 0 . 5 0 13 9 ( 0 2 0 . 8 10
lpme tte d o o n r n fVO.
Ke r s iu lo o t ; a t n mo s mo i o os mo o u a y wo d :v s a d mer y u o o u bl r b t ; e n c l rVO;se e O ;r b s e s e lt ; a c r c tr o V o u t s ;r a — me c u a y n i
d i1 .9 9 ji n 10 -6 5 2 1 . 8 0 1 o:0 36 /.s .0 13 9 .0 2 0 .0 s
Re iw n vs a d mer e h oo y ve o iu lo o ty tc n lg
I - o J Yu b ,ZHU X a —h u, L i n,Z I ioz o U Hu — mi HANG Hu i
单个 相机作为图像 获取 载体 , 通常又包括利用折反射式的全 向
视觉里程计和一般透视 相机的非 全向视觉 里程计 ; 立体视觉里
在此过程 中, 机器人通过相机 所获取前 、 后两 帧图像 ( ) 间 对 之 的视觉特征匹配 , 结合两 帧图像 ( ) 的极线 几何 约束 , 对 间 在视
收 稿 日期 :2 1- 22 0 20 —0;修 回 日期 :2 1 -3 2 0 2 0 —9
目视觉里程计和立体视觉里程计 。对 于视 觉里程计 , 通常可以
从鲁棒性 、 时性 和精确性三方面进行评估分析 。本文将分别 实 对上 述内容进行综 述。
1 视 觉 里程计 分 类
视觉 里程计 可以根 据系统所 配置 的相 机数分 为单 目视 觉 里程计 和立体 视觉 里程计 。单 目视觉里程 计是视 觉系统使用
o o er to n t epr c s . e meho f rna i ain a o aiain,h st c n l y a e n a p id i h utn— d m ty meh d i h o e s Asa n w t d o vg to ndl c l t z o t i e h oog h sb e p le nt e a o o u b l o os s c sf ly. hi pe nr du e woo h s o lrVO c r n c l rVO n tr o VO , mo s mo ie r b t uc e su l T spa ri to c d t ft e mo tp pu a whih wee mo o u a a d see
a d i a ay e h u r n e e r h sau f r m o u t e s r a—i n c u a y At a t i as r s e td t e d v - n t n lz d t e c r tr s a c tt s o e VO f o r b sn s ,e l me a d a c r c . s , lop o p c e h e e t l t
第2 9卷 第 8期
21 0 2年 8月
计 算 机 应 用 研 究
Ap l ain Re e rh O o u es p i t s ac fC mp tr c o
Vo . 9 No 8 12 . Au .2 2 g 01
视 觉 里 程 计 技 术 综 述
李右 图像对之间的特征 匹配 , 计算特征点对 应的三维 坐标 , 然后在连续立体 图像 对 中跟踪特 征 , 算特征 计
点对应的新三维坐标 , 利用前后两帧 的三维坐标的变换恢复 相
机运动。对于运动估计 , 先利用最 小二乘进 行粗略估计 , 利 再 用最大似然估 计进行精 确估计 , 并在最小二乘估计过程 中加入
( 国防科 学技 术大 学 机 电工程与 自 动化 学院 , 长沙 40 7 ) 103
摘 要 :视 觉里程计 是通过 视 觉信息估 计运 动信 息的技 术 , 中采 用 了里程计 式 的方法 。该 技 术作 为一 种新 的 其
导航定 位方 式 , 已成功 地运 用于 自主移动机 器人 中。首先介 绍 了常用 的两种视 觉里程 计 即单 目 觉里程 计和 立 视
相比传统 的里程计技术 , 视觉里程计更具优势。它仅利 用
相机 完成 , 无须场景和运动 的先验信 息 ; 会存在 编码器读 数 不 不准 、 传感器精度降低或惯 导漂移等 因素引起 的数据误 差 ; 可 以运 用于非结 构化 的环境 或非 常规 的任 务和 平 台, G S不 如 P 能满 足的星际探索和导航等任务 , 很难满足条件的城市环境或 室内环境 , 以及传统里程计不能应用 的腿式机器人 的导航和定 位等。另外 , 系统在利用视 觉信息完 成里程计 的 同时, 还可 以 提供丰富的景象特征 , 完成 障碍物识 别 、 目标检测 和可通行 区 域的划 分等任务 , 为机器人 的实时导航提供更充分 的支持 。 视觉里程计技术根据所 使用的视 觉系统不 同 , 以分为单 可
Moa e l r v c_

他利用一 个可 滑动 相机 获取视 觉信 息作 为 输人 ,
完成 了机器 人室 内导 航。18 9 0年 , ati 等 人 提 出 了视 Mt e hs 觉里程计 的概念 , 并设计 了从 特征提取 、 特征 匹配 与跟踪 到运 动估计 的理论框架 。该框架 至今仍 为大多数 视觉 里程计 系统 所遵循 。这一 阶段 的视觉里 程计均 以简单 的结构 化室 内环 境 为主 。20 04年 , i6 等人 设 计 了一种 实时 的视 觉 里程计 Ns r t 系统 , 真正意义上实现了机器 人室外运 动导航 , 同时还提 出了 两类视觉里程计的实现途径和流程 , 即单 目视觉和立 体视觉的 方法 , 这为后来视觉里程计 的研究奠定 了新 的基 础。之后 的视 觉里程计研究主要 围绕单 目视觉和立体视觉 的方法各 自展开 。
视觉里程计 ( O) V 是一个仅利用单个或 多个相机 的输入信
觉 系统 已标定好 的前提 下 , 可恢复 出视 觉系统 的运动信 息 , 进 而获得机器人 的运 动信 息。
息估计智能体 的运动信息 的过程… 。作为基 于视觉技 术 的一
种, 在最 近十几 年的时间里 已广泛应用 于各类机器人 的导航定
维坐标 。
第2 9卷
体, 在相机 同步采集 图像 的过 程 中, 以根 据极线几 何的关 系 可 和 三角测量 原理 获取 景深信息 , 恢复空间结 构。
1 1 单 目视 觉 里 程 计 .
在 Ma n 等人 的方 法 中, i e mo 利用 兴趣 算子 进行 特征 检 测, 通过广 义归 一化 相关 ( su onr a zdcr lt n P C) ped-om i or a o , N l e e i
R S C的外点剔除方法。 AN A ,
Sn ehu 等人 将稀 疏光 束法 平 差 (preb n l a — t draf i sa u d d s e js etS A 扩展运用 于立体 视觉 里程计 中 , ut n,B ) m 在初始 三维 模 型和相机运动未知的情况下 , 对左右立体 图像对 中获取 的特征 运用滑动窗 口(l i i o S A方法 , sdn wn w) B i g d 结合简单的运动阈值
生, 主要研 究方 向为机器人控 制 ; 卢惠民(9 0 ) 男, 18 . , 讲师 , 博士 , 主要研 究方向为机 器人视 觉、 图像处理 ; 张辉( 9 1 ) 男, 17 - , 教授 , 博士 , 主要研究方
向 为机 器人 控 制 、 工 智 能 . 人

20 8 2・
计 算 机 应 用 研 究
位 中, 中最成 功 的应用 当属 美 国 N S 其 A A开 发 的火 星探 测器
“ 勇气号 ” “ 和 机遇 号”2 。除此 以外 , L , 还用 于无人 空 中飞行 器 J水下机器人 ’ 、 、 室内/ 外陆地机器人 “ 等 。 视觉里程计是视觉导航 的一种特殊形式 , 最早 可追 溯到 其
( ol eo carn n ier g& A tm t n N t n l nvrt o De neTcnl y h nsa4 0 7 ,C ia C lg e fMeht iE gnei oc n uo ai , ai a i syf f s ehoo ,C agh 10 3 hn ) o o U e i e g
在视觉里程计 的具体运用 中, 系统通过单 目或双 目相 机获
相关文档
最新文档