基于建模的视觉定位(SFM-Based Positioning)
具体方法来自我参与的这篇journal:
Vision-Based Positioning for Internet-of-Vehicles, IEEE Transactions on Intelligent Transportation Systems, 2016.
过程:基于图像的3D建模 --> 点云压缩 --> 3D-2D的匹配
Method:http://www.clarenceliang.com/positioning
Dataset:http://www.clarenceliang.com/dataset
注:以下內容是個人筆記,source code目前還沒有release出來。但其中VisualSFM和2D-3D Matching的部份是公開的,可以在他們的主頁找到。
Introduction
images/: put your training images in this folder
testImages/: put your testing images in this folder
bundle/: put the .out file generated by visualSFM in this folder
file_gen/: files generated in the compression step
result/: results generated in the localization step
work_flow_2.m: do the model compression
BatchLocalizer.sh: script to do the localization of the test images
simple_test.m: generate the test result without ground truth
bash_test.m: generate the test result with ground truth
Steps to use the code
- Training Phase
1. Install visualSFM
http://ccwu.me/vsfm/
2. Open VisualSFM
3. Load Images
File->Open + Multi Images->select the training images at ‘Positioning/images/’
4. Feature Matching
Click on ‘Compute Missing Matches’
5. 3D Reconstruction
Click on ‘Compute 3D Reconstruction’
6. Re-order the cameras
Hit ENTER-> ‘sort’->ENTER
7. Save Results
Sfm->Extra Functions->Save Current Model->‘bundle.out’ at ‘Positioning/bundle/’
Save Current Cameras->
‘list.txt’ at ‘Positioning/’
8. Close VisualSFM
9. Model Compression
Command line -> ./bin/siftb2a list.txt
Execute ‘work_flow_2.m’ in Matlab,record the value of variablepwk.
- Testing Phase
10. Localization
Command line -> ./BatchLocalizer.sh bundle/bundle.out list.txt file_gen/cluster_k_185.txt 100(10^pwk)testImages/(path of testing images)result/(path
of results) 100(testing times) 0.4 100
11. Show Testing Result
Execute ‘simple_test.m’ in Matlab, get ‘trainM.mat’(positions of training images), ‘testM.mat’(positions of testing images), ‘point_position.mat’(positions of model points), ’point_color.mat’(colors of model
points).
12. Compute The Error With Ground Truth(optional)
Write the positions of the ground truth images into a new matrix ‘trainR.mat’. Then only keep the corresponding rows in ‘trainM’ and delete the others. Write the positions of the testing images into a new matrix
‘testR.mat’.
Execute ‘bash_test.m’ in Matlab, getrefand
dev. Variable refstores the position of each test image in the ground truth coordinate.Dev
is the error between each test image and the ground truth.
基于建模的视觉定位(SFM-Based Positioning)的更多相关文章
- 《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码
<zw版·Halcon-delphi系列原创教程>航母舰载机·视觉定位标志的识别代码 航母舰载机机身上的黄黑圆圈的标志是什么意思,辐射?核动力?战术核弹? <百度百科>介绍如下 ...
- 开源:基于Android的室内定位WiFi,iBeacon数据采集和定位脚本
最近有同学联系我,也在一些群里看到有新手同学挣扎在怎么获取定位数据,不知从何下手.所以整理并开源这个基于Android的数据采集软件和基于python的KNN定位demo,算是为新手同学建立一个Bas ...
- VisonPro · 视觉定位工具包示例
一.概述 视觉定位工具包一般包含: 1.相机取像: 2.图像九点标定: 3.Mark点粗定位: 4.建立粗定位坐标系: 5.Mark点精定位 6.输出Mark点坐标,角度等信息. 二.分类 1.单特征 ...
- Autoware 培训笔记 No. 2——基于点云的定位
1. 前言 构建出地图后,应该测试点云地图定位效果,这里用到ndt的scan_matching方法,这是一种scan-to-map方法.这里用的是我们自己采集的数据进行仿真. 本章内容有和No. 1重 ...
- 基于opencv 识别、定位二维码 (c++版)
前言 因工作需要,需要定位图片中的二维码:我遂查阅了相关资料,也学习了opencv开源库.通过一番努力,终于很好的实现了二维码定位.本文将讲解如何使用opencv定位二维码. 定位二维码不仅仅是为了识 ...
- 推荐召回--基于内容的召回:Content Based
目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...
- python基于opencv实现人脸定位
import cv2 # 读取图片 img = cv2.imread("image.jpg") # 加载模型,模型可以从https://github.com/opencv/open ...
- 高德AR & 车道级导航技术演进与实践
2020云栖大会于9月17日-18日在线上举行,阿里巴巴高德地图携手合作伙伴精心组织了"智慧出行"专场,为大家分享高德地图在打造基于DT+AI和全面上云架构下的新一代出行生活服务平 ...
- 基于 WiFi ( Wireless Fidelity) 的室内定位技术
系统的拓扑结构 基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 无线信号的信号强度随着传播距离的增加而衰减,接收方与发送方离得越近, 则接 ...
随机推荐
- 使用 Fetch完成AJAX请求
使用 Fetch完成AJAX请求 写在前面 无论用JavaScript发送或获取信息,我们都会用到Ajax.Ajax不需要刷新页面就能发送和获取信息,能使网页实现异步更新. 几年前,初始化Ajax一般 ...
- centos7基本环境搭建
1. 准备权限:让普通用户具备sudo执行权限 切换到root用户,su # vi /etc/sudoers 添加 koushengrui ALL=(ALL) ALL 这里很容易忘 ...
- prototype.js
(1)$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写, 就像这个DOM方法一样,这个方法返回参数传入的id的那个元素. (2)
- Linux下wget下载软件小技巧以及安装jdk、tomcat与ftp服务器
一.ftp的安装 装个ftp搞了一下午,感觉以前没那么麻烦的呀,结果到晚上才发现是实验室网的问题,换连手机的热点马上可以了,真是尴尬,把基本安装步骤记录一下: 1.检查安装vsftpd软件 使用如下命 ...
- vue-cli生成的重要代码详解
安装好vue-cli之后,我们可以在package.json中看到下面所示: { // 项目名称 "name": "myvue", // 项目版本 " ...
- JS arguments转array
JS arguments转array? Array.prototype.slice.call(arguments)
- 用Java 8 Lambda表达式实现设计模式:命令模式
在这篇博客里,我将说明如何在使用 Java 8 Lambda表达式 的函数式编程方式 时实现 命令 设计模式 .命令模式的目标是将请求封装成一个对象,从对客户端的不同类型请求,例如队列或日志请求参数化 ...
- Spring boot-(1) Spring Boot快速开始
本系列博客将学习并运用Spring Boot, 尽量会涉及到Spring Boot的方方面面,且会参考Spring Boot的官方文档,相关英文书籍,以及相关博客等知识,争取做到详尽易懂. 1. Sp ...
- 关于数学问题的urls
一个知乎账号, 分析了很多的数学问题: https://www.zhihu.com/people/matongxue/activities 关于三阶样条的解析: https://blog.csdn.n ...
- 关于docker remote api未授权访问漏洞的学习与研究
漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...