自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

转载 双目立体匹配算法:ADCensus概述

ADCensus立体匹配算法是Xing Mei, Xun Sun, Mingcai Zhou等几个人在2011年,发表的一篇题目为:《On Building an Accurate Stereo Matching System on Graphics Hardware》中提出的。ADCensus双目立体匹配算法曾一度排在MiddleBurry官网上第一的位置,引用量很高。其

2017-12-30 12:14:21 14335 11

转载 一文搞懂HMM(隐马尔可夫模型)

什么是熵(Entropy)简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,,熵越小,系统越有序,意味着具有确定和有规则的运动状态。熵的中文意思是热量被温度除的商。负熵是物质系统有序化,组织化,复杂化状态的一种度量。熵最早来原于物理学. 德国物理学家鲁道夫·克劳修斯首次提出熵的概念,用来表示任何一种能

2017-12-20 14:57:55 389 1

转载 实用教程|快速搭建自动导航机器人(三)

系统整体坐标系:输出底盘调试信息  在配置MCU固件代码的时候,如果需要输出调试信息,可以连接J7调试输出口至电脑USB用SSCOM工具查看调试信息。  请自行下载SSCOM工具,并运行。  比如在底盘代码中加入DBG_OUT(),格式与printf()一致。  然后连接J7和电脑的COM口,用SSCOM工具查看调试信息:

2017-08-31 17:51:39 1001

转载 实用教程|快速搭建自动导航机器人( 二)

4. STM32固件配置  底盘的固件代码需要修改为适应当前底盘的具体参数,可以用slamware_config_tool.exe工具来自动生成配置文件:  配置工具链接:http://pan.baidu.com/s/1qXHWDzQ密码:3hs6  打开slamware_config_tool.exe, 添加以下参数:  (1) 底盘直径:将Robot Diame

2017-08-31 17:50:18 1470

转载 实用教程|快速搭建自动导航机器人(一)

服务机器人的核心问题在于自主定位与导航,它主要包括几大问题: 无需用户干预,机器人自主构建环境地图?实时、高精度的获取机器人所在位置?有效规避环境障碍,抵达目标地点?在未知环境中,有效规划两地之间最短路线? 有了相应解决方案后,对于服务机器人厂商,还需要考虑如何快速与现有系统整合,加快产品上市?在高性能与低成本间如何获得平衡? 

2017-08-31 17:49:15 1757

转载 OPENCV3.0 单目摄像头标定(使用官方自带的标定图片)

// opencv_test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include "cv.h" #include #include using namespace std; using namespace cv; const int image

2017-05-10 23:20:59 1146

转载 OPENCV3.0 双目立体标定

这里是在上一篇单目标定的基础上拓展来的进行双目标定的程序。在这个程序里面,默认是先对两个摄像头分别进行了单目标定的,也就是说相机的内参数和畸变向量是知道了的。所以在进行标定的时候,参数选择的是CALIB_USE_INTRINSIC_GUESS。此程序依然是使用系统自带的标定的图片,其路径在OpenCV的安装目录下:opencv\sources\samples\data。本程序最终的

2017-05-10 23:18:45 2495

转载 用VS+Opencv3.1从双目立体视差图中重建三维点云

基本原理详细原理请阅读这篇文章http://www.360doc.com/content/14/0205/15/10724725_349968116.shtml.基本流程代码本代码运行需要在VS上配置好opencv3.1+openNI+PCL,opencv3.1的配置可以在网上找到很多资料,openNI和PCL的配置可以参看上一篇博文

2017-05-02 20:12:31 2530 4

转载 Mastering Opencv ch4:SFM详解(三)

前面已经利用分解本质矩阵E得到两幅图像的姿态R1,R2,t1,t2. 如何把这四个值组合成P1,得到正确的解,接下来就要分析。1:利用三维重构求取在摄像机前面的重构点的所占比,得出最高占比的那个P1,就是要求得解。P1 = Matx34d(R1(0,0), R1(0,1), R1(0,2), t1(0), R1(

2017-05-01 15:55:40 819

转载 Mastering Opencv ch4:SFM详解(二)

前文分析了如何进行特征检测匹配,接下来分析如何求解摄像机矩阵。I:求解基础矩阵首先介绍两个代码段,关于关键点和Point2f相互转化的函数void KeyPointsToPoints(const vector& kps, vector& ps) { ps.clear(); for (unsigned int i=0; i<kps.size(); i++) p

2017-05-01 15:51:52 680

转载 Mastering Opencv ch4:SFM详解(一)

主要内容: 1:从两幅图像估计摄像机的运动姿态。 2:重构场景 3:从视图中重构 4:重构细化 5:可视化三维点云I:假定使用一个标定过的摄像机——一个先前标定过的摄像机。前面的博客也提到如何进行相机标定。因此,我们假定摄像机内参数存在,并且具体化到K矩阵中,K矩阵为摄像机标定过程的一个结果输出。 在程序中初始化相机标定内参数://load calibratio

2017-05-01 15:45:34 728 1

转载 使用Opencv保存视频

使用相机或图片集,读取后保存成视频,可以调用OpenCV内部API,蛮简单的,主要就是VideoWriter类的使用;这里简单记录下,方便查询。#include #include #include using namespace cv;using namespace std;int main(int, char**){ Mat src; // use default

2017-05-01 15:38:05 2102

转载 一起做RGB-D SLAM 第二季 (二)

本节目标  我们要实现一个基本的文件IO,用于读取TUM数据集中的图像。顺带的,还要做一个参数文件的读取。设计参数文件读取的类:ParameterReader    首先,我们来做一个参数读取的类。该类读取一个记录各种参数文本文件,例如数据集所在目录等。程序其他部分要用到参数时,可以从此类获得。这样,以后调参数时只需调整参数文件,而不用重新编译整个程序,可以节省调试时间

2017-04-13 15:29:36 811

转载 一起做RGB-D SLAM 第二季 (一)

小萝卜:师兄!过年啦!是不是很无聊啊!普通人的生活就是赚钱花钱,实在是很没意思啊!  师兄:是啊……  小萝卜:他们都不懂搞科研和码代码的乐趣呀!  师兄:可不是嘛……  小萝卜:所以今年过年,我们再做一个SLAM吧!之前写的那个太烂了啦,我都不好意思说是我做的了!  师兄:嗯那可真是对不住你啊……  小萝卜:没事!你再写一个好一点的,我就原谅你了!

2017-04-13 15:25:43 2023

转载 视觉SLAM实战(二):ORB-SLAM2 with Kinect2

前言  实战系列很久没有更新了。近期拿到了一台不错的Thinkpad和Kinect v2,前两天orbslam2又放出,于是想要在kinect2下尝试一下orb slam。整个过程没有特别多的技术含量,读者可以把它当成一个实验步骤的总结。ORB-slam  orb-slam是15年出的一个单目SLAM,也可以说是单目中做的非常好的一个实现。另一方面,他的代码也极其清爽,

2017-04-13 15:21:20 2358

转载 视觉SLAM中的数学基础 第三篇 李群与李代数

视觉SLAM中的数学基础 第三篇 李群与李代数前言 小结  最后,我们对之前介绍的李群李代数进行一个简单的小结。概而言之,李群有以下两个重要用处:李代数表达的正切空间,具有和对应李群相同的自由度。指数映射能把正切空间中任意向量正好映射到原李群。

2017-04-13 15:15:30 1056

转载 视觉SLAM中的数学基础 第二篇 四元数

视觉SLAM中的数学基础 第二篇 四元数什么是四元数  相比欧拉角,四元数(Quaternion)则是一种紧凑、易于迭代、又不会出现奇异值的表示方法。它在程序中广为使用,例如ROS和几个著名的SLAM公开数据集、g2o等程序都使用四元数记录机器人的姿态。因此,理解四元数的含义与用法,对学习SLAM来说是必须的。本节我们就来讲讲四元数。  首先,请读者不要对四元数有什么神秘的

2017-04-13 15:08:33 775

转载 视觉SLAM的数学基础 第一篇 3D空间的位置表示

视觉SLAM中的数学基础 第一篇 3D空间的位置表示前言  转眼间一个学期又将过去,距离我上次写《一起做RGBD SLAM》已经半年之久。《一起做》系列反响很不错,主要由于它为读者提供了一个可以一步步编码、运行的SLAM程序,为读者理解SLAM实现的细节作了详细的介绍。但是我也有很多对它不满意的地方。作为面向实现的介绍,它的代码不够稳定可靠,例如,甚至没有对匹配丢失的情况进行处理,

2017-04-13 15:01:24 606

转载 SLAM拾萃(1):octomap

本篇是《SLAM拾萃》第一篇,介绍一个建图工具:octomap。和往常一样,我会介绍它的原理、安装与使用方式,并提供例程供读者学习。必要时也会请小萝卜过来吐槽。(小萝卜真是太好用了,它可以代替读者提很多问题。) 什么是octomap?  RGBD SLAM的目的有两个:估计机器人的轨迹,并建立正确的地图。地图有很多种表达方式,比如特征点地图、网格地图、拓扑地图等等。在《一起做》

2017-04-13 14:45:59 5097

转载 一起做RGB-D SLAM(8) (关于调试与补充内容)

“一起做”系列完结后,我收到不少同学给我的反馈。他们提了一些在程序编译/运行过程中的问题。我把它们汇总起来,组成了这个“补充篇”。你也可以看成是一个Q&A。Q: OpenCV的版本?A: 我用的是2.4.9。可以使用2.4系列,不会有太大差别。而3.0系列则在接口上有一些明显的改动,可能需要修改源码。Q: 第二讲的点云如何查看?A: 使用pcl_viewer。当点云显示时,先用r键

2017-04-13 14:35:53 478

转载 一起做RGB-D SLAM(7) (完结篇)

第七讲 添加回环检测 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。回环检测的阈值作出了相应的调整。请以现在的github上源码为准。简单回环检测的流程  上一讲中,我们介绍了图优化软件g2o的使用。本讲,我们将实现一个简单的回环检测程序,利用g2o提升slam轨迹与地图的质量。本讲结束后,读者朋友们将得到一个

2017-04-13 14:34:38 548

转载 一起做RGB-D SLAM (6)

2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。OpenCV可以使用 apt-get install libopencv-dev ,一样能成功。因为换成了ORB,所以调整了good match的阈值,并且匹配时需要使用 Brute Force match。请以现在的github上源码为准。  在上一讲中,我们介绍了如何使用两两匹

2017-04-13 14:31:42 912

转载 一起做RGB-D SLAM (5)

第五讲 Visual Odometry (视觉里程计) 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。去掉了cv::cv2Eigen函数,因为有些读者找不到这个函数。检查了minDis为零的情况。之前t的访问时,行和列颠倒了,会对结果产生一定影响,现在修正了。请以现在的github上源码为准。  读者朋友们大家好,又到

2017-04-13 14:22:44 538

转载 一起做RGB-D SLAM (4)

第四讲 点云拼接上讲回顾  上一讲中,我们理解了如何利用图像中的特征点,估计相机的运动。最后,我们得到了一个旋转向量与平移向量。那么读者可能会问:这两个向量有什么用呢?在这一讲里,我们就要使用这两个向量,把两张图像的点云给拼接起来,形成更大的点云。  首先,我们把上一讲的内容封装进slamBase库中,代码如下:  include/slamBase.h

2017-04-13 09:36:54 622

转载 一起做RGB-D SLAM (3)

第三讲 特征提取与配准 2016.11 更新把原文的SIFT替换成了ORB,这样你可以在没有nonfree模块下使用本程序了。OpenCV可以使用 apt-get install libopencv-dev ,一样能成功。因为换成了ORB,所以调整了good match的阈值,并且匹配时需要使用 Brute Force match。请以现在的github上源码为准。

2017-04-13 09:27:18 620

转载 一起做RGB-D SLAM (2)

第二讲 从图像到点云  本讲中,我们将带领读者,编写一个将图像转换为点云的程序。该程序是后期处理地图的基础。最简单的点云地图即是把不同位置的点云进行拼接得到的。  当我们使用RGB-D相机时,会从相机里读到两种数据:彩色图像和深度图像。如果你有Kinect和ros,可以运行:1 roslaunch openni_launch openni.launch  使

2017-04-13 09:14:18 495

转载 一起做RGB-D SLAM (1)

SLAM,即Simultaneous Localization and Mapping,中文译作同时定位与地图创建,是近几十年里机器人领域有重大发展的研究方向。作为自主机器人的核心技术,SLAM在机器人导航、控制、生产等方面都有着重要的研究意义。尤其在二十一世纪,以视觉传感器为中心的视觉SLAM技术,在理论和方法上都经历了明显的转变与突破,正逐步从实验室研究迈向成熟的市场应用。在国外研究如火如荼之

2017-04-13 08:40:49 491

转载 编程经验:关于OpenCV源码调试的好文章转载~

这么长时间看到的关于OpenCV+VS+Cmake的配置文章,尤其是关于opencv源码调试的文章,一下两篇写的最好,于是转载分享给大家,希望大家以后不要在配置上再花费“无谓”的时间。第一篇:《VS2010重编译OpenCV2.4.9 用于调试源代码》,http://blog.csdn.NET/szlcw1/article/details/38489311.1、

2017-03-15 17:11:57 993

转载 Stereo Matching文献笔记之(十):经典算法Semi-Global Matching(SGM)之碉堡的动态规划~

上一篇博客中提到了SGM的第一部分,基于分层互信息(HMI)的代价计算,本文继续说说自己对SGM代价聚合部分的理解。SGM的代价聚合,其实仔细看看,这并不是严格意义上的代价聚合,因为SGM是为了优化一个能量函数,这和一般的全局算法一样,如何利用优化算法求解复杂的能量函数才是重中之重,其能量函数如下所示:其中,C(p, Dp)代表的就是基于互信息的代价计算项,后面两项

2017-03-15 17:08:00 702

转载 Stereo Matching文献笔记之(九):经典算法Semi-Global Matching(SGM)之神奇的HMI代价计算~

SGM算法源于《Stereo Processing by Semi-Global Matching and Mutual Information》一文,我认为这篇文章是立体匹配算法中最给力的,放眼KITTI,可以发现目前排名前五十的算法几乎一半都是对SGM的改进,具有最强的实用价值。SGM中文名称“半全局匹配”,顾名思义,其介于局部算法和全局算法之间,所谓半全局指的是算法既没有只考虑像素的局部

2017-03-15 17:06:21 1146 7

转载 Stereo Matching文献笔记之(八):《On Building an Accurate Stereo Matching System on Graphics Hardware》读后感~

今天写写今年四月份精读过的一篇文章《On Building an Accurate Stereo Matching System on Graphics Hardware》,文章名咋看起来有点像硬件相关文献,为什么叫做一个系统,我想可能是由于作者来自于企业的研究院才这么起名的,但说出它的别名大家就都知道了,就是AD-Census,这是2011年提出来的算法,作者与SegmentTree是同一人,引

2017-03-15 17:04:13 520

转载 Stereo Matching文献笔记之(七):《Spatial-Depth Super Resolution for Range Images》读后感~

这篇博客主要介绍一下自己对立体匹配文献《Spatial-Depth Super Resolution for Range Images》一文的理解,本文是杨庆雄的又一篇经典文章,发表于CVPR2007,引用次数颇高。再加上,当时在是《Stereo Matching Using Tree Filtering》看到的引用,十分好奇,所以拿来说说自己的分析,与大家分享。1. 相关概念

2017-03-15 17:01:32 638 1

转载 Stereo Matching文献笔记之(五):经典算法DoubleBP读后感~

DoubleBP是一个立体匹配全局算法,来自于论文《Stereo Matching with Color-Weighted Correlation, Hierarchical Belief Propagation, and Occlusion Handling》,PAMI2009年提出,这是我第一篇读的,关于立体匹配方向的论文,当时感觉立体匹配太难了,很多概念都不知道是啥意思,比如说Color

2017-03-15 16:55:44 1127

转载 Stereo Matching文献笔记之(四):《Stereo Matching Using Tree Filtering》读后感~

前段时间研究了non-local算法在双目立体匹配上的应用,这几天又看到作者在PAMI上发表的这篇文章,于是仔细的拜读了一下,惊讶的发现原来NL算法竟然可以应用在多个方向,其实在《A Non-Local Cost Aggregation Method for Stereo Matching》一文中,已经有过关于refinement方面的论述,但是被自己给“忽略”掉了,原来自己的算法知识面还是很

2017-03-15 16:49:29 427

转载 Stereo Matching文献笔记之(三):《Segment-Tree based Cost Aggregation for Stereo Matching》读后感~

本文介绍的文章就是CVPR2013的《Segment-Tree based Cost Aggregation for Stereo Matching》一文,介绍它原因有以下几点:1.它是NLCA的变种。2.它是CVPR的文章。本文还是从Segment-Tree的算法思想,算法核心,算法效果三方面进行分析,这篇文章的源代码链接是:https://github.com/kc42

2017-03-15 16:35:18 1166 1

转载 Stereo Matching文献笔记之(二):《A Non-Local Cost Aggregation Method for Stereo Matching》读后感~

最近一直在做stereo matching方向的研究,仔细研读了包括局部算法,全局算法,以及半全局算法三个方面的算法文献,对该方向有了比较清晰的了解,这次分享一下我对杨庆雄的经典文献《A Non-Local Cost Aggregation Method for Stereo Matching》(简称NL算法)的一些理解。之所以想分享这篇文献,是因为文献明确抛弃了suppo

2017-03-15 16:33:01 902 2

转载 Stereo Matching文献笔记之(一):《Cross-Scale Cost Aggregation for Stereo Matching》读后感~

最近,在做立体匹配方向相关的研究,先去网上找最新鲜的论文,看到了这篇文献(简称CSCA),来源于CVPR2014,令我惊奇的是,作者竟然提供了详细的源代码,配置运行了一下,效果还真不错,速度也还可以,具有一定的实用价值,所以拿来和大家分享一下。1. 立体匹配概念立体匹配的意思是基于同一场景得到的多张二维图,还原场景的三维信息,一般采用的图像是双目图像,如下所示,第一幅图和第二幅

2017-03-15 16:28:27 701 4

转载 OpenCV 三种图像遍历方法

实验目的:通过颜色压缩(color reduction)示例理解学习OpenCV中遍历图像的三种方法;实验代码:#include#include#includeusing namespace cv;using namespace std;// 1:使用指针遍历图像void colorReduceByPointer(Mat& image, int div =

2016-12-19 17:28:16 2119

转载 关于理解middlebury提供的立体匹配代码后的精减

Middlebury立体匹配源码总结优化方法图像可否预处理代价计算可否采用BT方式可选代价计算方法可否代价聚合可否MinFilter优化原始代价WTA-Box可以可以AD/SD可以,聚合尺寸可变,迭代次数1次可以WT

2016-11-17 17:23:07 2252

转载 几种典型的立体匹配算法

使用左右两张图片,计算深度图。一下几种算法代码参考 http://www.360doc.com/content/13/0129/11/11533449_263014896.shtml,经验证可行。并得到一下的深度图,貌似DP算法比较快并且效果还蛮好的。SAD算法#include #include #include using namespace

2016-11-14 10:19:57 6585

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除