SFM建图小结

来源:互联网 发布:白鹿原 冷先生 知乎 编辑:程序博客网 时间:2024/06/07 18:04

最近写了点SFM建图的代码,记录一些思路。
网上成熟的SFM软件很多,像openMVG,visualSFM等

建图流程:

  1. 提取所有图片的特征点及描述子,这里我用的是sift特征,鉴于openCV提取sift太慢了,所以用了siftGPU,关于这个高翔博士在博客中有详细介绍:http://www.cnblogs.com/gaoxiang12/p/5149067.html
    按上述网址配置siftGPU,其中运行前需要运行 sudo ldconfig /usr/lib64/ 也可以export PATH=”$PATH:/usr/lib64/”
    将提取到的数据存储下来
  2. 指定一组起始像对,或者随机挑选多组图片进行匹配,找到一组匹配最多的作为起始像对(此处还需改进)。根据初始像对的匹配点计算基本矩阵F,再计算本质矩阵E,分解本质矩阵得位姿RT,初始化坐标体系以及初始三维点云。(由于这里是不知道相机内参的,所以需要给个大致的初始值,这里用了cx=imagewidth/2,cy=imageheight/2,fx=fy=cx+cy;如果内参已知那自然最好,但考虑到大规模建图使用的像片来自很多相机,内参全已知不太可行,虽然我只用了一个序列)
  3. 后续图片的加入。每新加入一张图片,需要去与已有的图片比较找相似的,这个过程直接使用了简单粗暴的逐帧匹配(由于是一个序列,取了当前前5帧进行匹配),这样效率非常低下,后面考虑使用词袋模型。这里找到匹配点后,由于已知三维点和二维点了,使用solvePnPRansac计算位姿。
  4. BA,局部BA和整体BA。由于打算在加入BoW后再加入回环检测,只有局部BA的。BA所使用的库是ceres-solver http://www.ceres-solver.org/,用起来稍有点麻烦,不过很方便。

几个问题:

匹配点寻找策略:
sift匹配得到的特征点数目偏少,所以需要增加。

  1. 纯sift特征匹配(匹配阈值可适当加严)
    另根据已有匹配点计算本质矩阵时
    cv::Mat F = cv::findFundamentalMat(point1, point2, errorstate, cv::FM_RANSAC, 1, 0.99);
    可通过errorstate来进一步筛选匹配点

  2. 根据已有匹配计算出多个Homography矩阵,用H矩阵来增加新的匹配点。(关于H矩阵http://blog.csdn.net/heyijia0327/article/details/53782094说的很好)。这里涉及到怎么定义匹配代价,我考虑了最邻近+极线约束,但是极线约束写的有问题,导致匹配点并不准确。需要改进。


BoW(有待补充)


BA:
BA时要考虑多种情况,根据是否固定内参,畸变,投影矩阵构造不同的CostFunctor。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机触摸局部失灵怎么办 苹果手机屏幕按键失灵怎么办 5s锁屏键坏了怎么办 平板版本太低怎么办 手机屏局部失灵怎么办 iphone8触屏不灵敏怎么办 苹果机8屏幕失灵怎么办 车钥匙丢车上怎么办 指纹锁华盖坏了怎么办 非法入了户口怎么办 司考成绩单丢了怎么办 小饭桌转让手续怎么办 两个领导不和你怎么办 两个领导意见不一致怎么办 两个领导对立我怎么办 投诉申通没用怎么办 领导作风有问题怎么办 做完火疗受风了难受怎么办 鼻子做的不好看怎么办 埋线双眼皮出血怎么办 割完双眼皮出血怎么办 全切双眼皮出血怎么办 割双眼皮出血了怎么办 割双眼皮后出血怎么办 双眼皮手术后出血怎么办 缝双眼皮开了怎么办 朋友网没了怎么办 压疮发生后怎么办 学籍账号已登录怎么办 护士学分不达标怎么办 高中学籍错了怎么办 定时器时间太短不够用怎么办? 考试时间不够用怎么办 感觉时间不够用怎么办 学习时间不够用怎么办 天天时间不够用怎么办 网贷骚扰通讯录怎么办 老被电话骚扰怎么办 对付广场舞噪音怎么办 普法平台考试不及格怎么办 假疫苗事件孩子怎么办