具体方法来自我参与的这篇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)的更多相关文章

  1. 《zw版·Halcon-delphi系列原创教程》航母舰载机·视觉定位标志的识别代码

    <zw版·Halcon-delphi系列原创教程>航母舰载机·视觉定位标志的识别代码 航母舰载机机身上的黄黑圆圈的标志是什么意思,辐射?核动力?战术核弹? <百度百科>介绍如下 ...

  2. 开源:基于Android的室内定位WiFi,iBeacon数据采集和定位脚本

    最近有同学联系我,也在一些群里看到有新手同学挣扎在怎么获取定位数据,不知从何下手.所以整理并开源这个基于Android的数据采集软件和基于python的KNN定位demo,算是为新手同学建立一个Bas ...

  3. VisonPro · 视觉定位工具包示例

    一.概述 视觉定位工具包一般包含: 1.相机取像: 2.图像九点标定: 3.Mark点粗定位: 4.建立粗定位坐标系: 5.Mark点精定位 6.输出Mark点坐标,角度等信息. 二.分类 1.单特征 ...

  4. Autoware 培训笔记 No. 2——基于点云的定位

    1. 前言 构建出地图后,应该测试点云地图定位效果,这里用到ndt的scan_matching方法,这是一种scan-to-map方法.这里用的是我们自己采集的数据进行仿真. 本章内容有和No. 1重 ...

  5. 基于opencv 识别、定位二维码 (c++版)

    前言 因工作需要,需要定位图片中的二维码:我遂查阅了相关资料,也学习了opencv开源库.通过一番努力,终于很好的实现了二维码定位.本文将讲解如何使用opencv定位二维码. 定位二维码不仅仅是为了识 ...

  6. 推荐召回--基于内容的召回:Content Based

    目录 1. 前言 2. 构建画像 3. 内容召回的算法 1. 前言 在之前总结过协同过滤的召回通路后,今天我们来总结下召回策略中的重头戏:基于内容的召回通路,也即我们常说的基于标签的召回.这里就要涉及 ...

  7. python基于opencv实现人脸定位

    import cv2 # 读取图片 img = cv2.imread("image.jpg") # 加载模型,模型可以从https://github.com/opencv/open ...

  8. 高德AR & 车道级导航技术演进与实践

    2020云栖大会于9月17日-18日在线上举行,阿里巴巴高德地图携手合作伙伴精心组织了"智慧出行"专场,为大家分享高德地图在打造基于DT+AI和全面上云架构下的新一代出行生活服务平 ...

  9. 基于 WiFi ( Wireless Fidelity) 的室内定位技术

    系统的拓扑结构 基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 无线信号的信号强度随着传播距离的增加而衰减,接收方与发送方离得越近, 则接 ...

随机推荐

  1. js中的内置对象

    在js里,一切皆为或者皆可以被用作对象.可通过new一个对象或者直接以字面量形式创建变量(如var i="aaa"),所有变量都有对象的性质.注意:通过字面量创建的对象在调用属性和 ...

  2. python 缺失值的处理

  3. SourceInsight,Understand,SecureCRT设置

    SourceInsight 设置字体 Option/Document  Option/Screen  Fonts   Understand https://scitools.com/download/ ...

  4. caffe学习资料

    1.利用Caffe做回归(regression) http://www.cnblogs.com/frombeijingwithlove/p/5314042.html

  5. Session有什么重大BUG,有什么方法可以解决

    [考点]ASP.NET中Session的多种保存方法.[出现频率]★★★☆☆[解答]使用进程内会话状态模式时,如果aspnet_wp.exe或应用程序域重新启动,则会话状态数据将丢失.可以用Sate ...

  6. 相同datatable合并

  7. ios 你必须了解的系统定义宏使用

    1. UNAVAILABLE_ATTRIBUTE __attribute__((unavailable)) - (instancetype)init UNAVAILABLE_ATTRIBUTE; 告诉 ...

  8. webpack-webpackConfig-plugin 配置

    ProvidePlugin 语法: module.export = { plugins: [ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jqu ...

  9. CSS 属性之中经常出现的百分比(转)

    CSS 的属性值中经常会出现百分比,搞清它们的基数是一件很重要的事情.我特意查看了一下 W3C 的 CSS2.1 标准,在此整理下: 百分比单位 乘以包含块的宽度 margin, padding, l ...

  10. GDB多线程调试分析

    0x00: 在Linux系统上Gdb提供了一组多线程调试命令,如表所示: 多线程调试的主要任务是准确及时地捕捉被调试程序线程状态的变化的事件,并且GDB针对根据捕捉到的事件做出相应的操作,其实最终的结 ...