sfm點云代碼_VisualSFM使用方法與心得

關于VisualSfM的更多內容

組合多個模型(What if VisualSFM produces multiple models?):

按照上述步驟進行稀疏重建后,理論上可以得到很好的模型。如果結果產生了多個模型,要想把多個模型合成成一個,點擊菜單中的“SfM->More Functions->Merge Sparse Models”。log信息中會提示你各個模型中有多少共享的特征點,如果特征點數量小于程序默認的最小值,則不會進行模型融合。編輯VisualSfM路徑下的nv.ini文件,可以修改程序要求的最小值“param_model_merge_min_matches ”(默認是100),把該參數改成小于模型間共享特征點數量的一個數(不宜小于10),再執行“SfM->More Functions->Merge Sparse Models”應該就可以融合有共享特征的模型了。如果模型之間一個共享特征都沒有,那就只能從頭來了。

稠密重建(Dense reconstruction):

在稀疏重建結束后,點擊CMVS可以對模型進行稠密重建。CMVS會對樣本進行聚類,再根據每一個聚類生成一個ply模型文件,生成時間較長,需要耐心等待。

中國農業大學東校區體育館的稠密重建示例如下:

中國農業大學工學院的稠密重建示例如下:

輸出格式(The output format: N-View Match (NVM) & PLY):

NVM

理解NVM文件最簡單的方法就是用TXT文本文件或Sublime Text打開,就可以直觀的看到其組織方式。

NVM_V3

2

et007.jpg? ? 660.197875977 0.998820995653 0.0275106001103 -0.0259087505623 0.0304716951484 0 0 0 0 0

et008.jpg? ? 660.197875977 0.160476730087 -0.112869970691 -0.125560022607 -0.972492485698 -0.380315317109 -0.867596366593 0.320369513256 0 0

1111

-0.16864857602 0.290092727826 3.09711024403 231 201 214 2 0 0 -72.4277801514 22.055480957 1 3 158.19152832 -77.7308959961

…………

2代表2張照片,即下面2行,每一行是一個照片的參數。參數按空格分割依次是 0

然后1111代表有1111個點,每一行是一個點的信息,參數按空格分割依次是

一般我們只關心XYZ和RGB,取前6維數據即可。

util.h文件提供了C++版本的nvm文件解析方法。我自己用python寫了一個。其實就是按行解析,每一行以空格' '作為分隔符,就可以得到如下文件,因為pandas存儲CSV是無序的,所以列沒有按順序保存。

其中dataframe是每一張照片對應的相機參數,坐標(XYZ)和四元數(WPQR)如下:

point_dataframe是點云文件,每一行對應一個點的顏色(RGB)和坐標(XYZ)如下:

PLY

是一種電腦檔案格式,全名為多邊形檔案(Polygon File Format)或斯坦福三角形檔案(Stanford Triangle Format)。

稠密重建的結果會保存成PLY文件格式。它的具體格式如下:

ply

format ascii 1.0

element vertex 257684

property float x

property float y

property float z

property float nx

property float ny

property float nz

property uchar diffuse_red

property uchar diffuse_green

property uchar diffuse_blue

end_header

-0.721213 -2.01925 2.6344 0.130806 0.0792633 -0.988234 205 214 218

-0.991508 -1.99528 2.58972 0.163215 0.0746168 -0.983765 195 202 202

…………

前門是頭文件,property描述了頭文件之后的每一列的特征。也就是說,在end_header之后,按空格分隔,這9個數字依次代表點的坐標XYZ,法向量nx、ny、nz,和像素RGB。

這樣只需要按類似方法解析就可以使用了。

坐標系統(coordinate system):

Documentation原文說”As for the image coordinate system, X-axis points right, and Y-axis points downward, so Z-axis points forward.”

即X軸指右,Y軸指下,Z軸指前。這和openGL與Unity的坐標系統都不同,使用時注意坐標矯正。

用Unity游戲引擎進行可視化(Visualization with Unity):

Unity的Asset store上有很多點云庫,我隨便下載了一個。

把我們的點云數據轉成了它要的off文件,就可以使用在unity里查看點云了。需要注意的是,要把讀取坐標的代碼修改一下,讀取坐標y的時候要乘以-1,這樣顯示結果才是正確的。

off文件具體形式如下:

COFF

20733 0 0

0.253539073845 -0.100282664831 4.76099905695 20 24 12 255

1.53241726658 -2.33590458129 5.98022141801 62 58 52 255

…………

第二行表示點的數量

后面的參數按行分割就是每一個點,按空格分割是XYZ和RGB。

我們也可以對相機位姿進行可視化,可以看到可上圖結果是差不多的。需要注意的是相機的y坐標和四元數Q也要乘以-1。

最后用unity自帶相機對重建結果進行可視化驗證。把相機坐標和角度賦值給unity相機以后,調整unity相機的Fov(field of view),我這里是50。然后以當前位姿拍攝的照片作為相機背景,即可得到如下效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

macos mojave_使Ubuntu看起來像macOS Mojave的黑暗模式

macos mojaveIf you’re a Linux user who likes the look of the dark mode coming in macOS Mojave, you’re in luck: there’s a GTK theme just for you. 如果您是Linux用戶,并且喜歡macOS Mojave中的黑暗模式外觀,那么您很幸運:這里有一…

html的列表標簽

列表一般應用在布局中的新聞標題列表和文章標題列表以及網頁菜單等。 例如這個就是一個列表&#xff1a; 列表標簽有幾種&#xff0c;分別是有序列表&#xff0c;無序列表&#xff0c;定義列表。 有序列表<!DOCTYPE html> <html lang"en"> <head>&…

撬鎖錘怎么用_安全錘是啥?消防蜀黍教你怎么選?如何快速破拆逃生?

逃生錘又叫安全錘&#xff0c;生活中很多地方都可以看到&#xff0c;公交車、地鐵窗邊都少不了它們的身影它的款式也是五花八門&#xff0c;那么問題來了當遇到突發狀況被困車內時&#xff0c;哪種破窗工具最有效&#xff1f;又該如何快速逃生自救&#xff1f;近日&#xff0c;…

WSUS技術概覽

WSUS新功能展示: 支持更多微軟產品更新-->Windows Office MS SQL Server Exchange ......基于產品及分類篩選下載更新的能力更多語言支持定位更新目標計算機或計算機組的能力-->分發前,測試更新; 保護運行特定應用程序的計算機; 靈活使用Deadline; ...... 見下…

Java基礎學習總結(16)——Java制作證書的工具keytool用法總結

2019獨角獸企業重金招聘Python工程師標準>>> 一、keytool的概念 keytool 是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書&#xff0c;用于&#xff08;通過數字簽名&#xff09;自我認證&#xff08;用戶向別的用戶/服務認證自己&#xff09…

什么是文件擴展名?

A file extension, or filename extension, is a suffix at the end of a computer file. It comes after the period, and is usually two-four characters long. If you’ve ever opened a document or viewed a picture, you’ve probably noticed these letters at the end…

變量與常量

什么是變量/常量&#xff1f; 變量是計算機內存中的一塊區域&#xff0c;變量可以存儲規定范圍內的值&#xff0c;而且值可以改變。基于變量的數據類型&#xff0c;解釋器會分配指定內存&#xff0c;并決定什么數據可以被存儲在內存中。常量是一塊只讀的內存區域&#xff0c;常…

python藍牙編程_藍牙編程經典程序!

文檔從網絡中收集&#xff0c;已重新整理排版.word版本可編輯.歡迎下載支持.1word版本可編輯.歡迎下載支持.L2CAP socketsExample 4-4. l2cap-server.c#include #include #include #include #include int main(int argc, char **argv){struct sockaddr_l2 loc_addr { 0 }, rem…

[項目總結]在ios中使用soundtouch庫實現變聲

這篇文章是項目總結了。 做了段時間的項目&#xff0c;過程中也遇到了很多麻煩&#xff0c;但是好在終于都解決了&#xff0c;這里是這里是項目之后憑著記憶總結出來&#xff0c;大家有遇到同樣的問題&#xff0c;希望能參考了&#xff0c;但是我記憶可能不太好了&#xff0c;要…

Myeclipse優化配置

2019獨角獸企業重金招聘Python工程師標準>>> 作為企業級開發最流行的工具&#xff0c;用Myeclipse開發java web程序無疑是最合適的&#xff0c;java web前端采用jsp來顯示&#xff0c;myeclipse默認打開jsp的視圖有卡頓的現象&#xff0c;那么如何更改jsp默認的打開…

Java多線程之靜態代理

1 package org.study2.javabase.ThreadsDemo.staticproxy;2 3 /**4 * Date:2018-09-18 靜態代理 設計模式5 * 1、真實角色6 * 2、代理角色&#xff1a;持有真實角色的引用7 * 3、二者實現相同的接口8 * 舉例說明&#xff1a;Couple類和Company類都實現了Marry&#xff0c;…

Google在Android P中隱藏了真棒的按應用自動旋轉功能

Historically, when you turn your phone on its side, the screen rotates. To keep this from happening, you can lock the orientation. But with Android P, Google included a way to have to the best of both worlds. 從歷史上看&#xff0c;當您將手機側放時&#xff…

python 位置參數、默認參數、可變參數位置關系_python的位置參數、默認參數、關鍵字參數、可變參數區別...

一、位置參數調用函數時根據函數定義的參數位置來傳遞參數#!/usr/bin/env python#codingutf-8defprint_hello(name, sex):sex_dict {1: u先生, 2: u女士}print hello %s %s, welcome to python world! %(name, sex_dict.get(sex, u先生))#兩個參數的順序必須一一對應&#xff0…

2015年終總結

2019獨角獸企業重金招聘Python工程師標準>>> 2015年終總結 用勇氣改變可以改變的事情&#xff0c;用胸懷接受不可以改變的事情&#xff0c;然后用智慧分辨兩者的不同&#xff01; 短信平臺sms 影像系統fastfile 統一信任中心uts(單點登錄&#xff09; 簡歷增加 總結…

筆記本本地連接顯示電纜拔出_沒有安全電纜槽的筆記本電腦如何固定?

筆記本本地連接顯示電纜拔出Historically laptops included a slot in the side for attaching security cables–as seen in the photo here–but increasingly more slender laptops like ultrabooks are omitting the lock-slot from their case design. How do you properl…

JMeter中添加dubbo相關插件異常問題解決

從網上下載了一個dubbo的插件&#xff0c;然后放到JMeter的/lib/ext目錄下&#xff1a; 然后啟動直接異常 發現啟動不了&#xff0c;然后下載了一個全新的JMeter3.2將dubbo插件放到同樣的目錄&#xff0c;啟動&#xff0c;沒有問題&#xff1a; 那應該不是JMeter本身的問題 通過…

向量空間余弦相似度

設向量a和向量b 則a?b|a||b|cos,|a|和|b|分別為兩向量的模 cos即為兩向量的余弦值&#xff0c;所以cosa?b/|a||b| 距離和相似性度量: http://blog.sina.com.cn/s/blog_6045a9da01011nk7.html 轉載于:https://www.cnblogs.com/lsai/p/3715948.html

linux提升文件夾權限命令_Linux常用命令_(文件權限)

Linux權限管理&#xff1a;二、權限管理1、3種基本權限在Linux中&#xff0c;將使用系統資源的人員分為4類&#xff1a;超級用戶、文件或目錄的屬主、屬主的同組人和其他人員。超級用戶擁有對Linux系統一切操作權限&#xff0c;對 于其他3類用戶都要指定對文件和目錄的訪問權限…

Servlet異常

一、http status 404 解決辦法&#xff1a;檢查web.xml中的配置文件&#xff0c;發現jsp頁面的提交路徑action和web.xml中的路徑不匹配&#xff0c;將其修改過來。轉載于:https://www.cnblogs.com/ltfxy/p/9671256.html

disk genius_如何預約Apple Store商店或Genius Bar

disk geniusMaybe you have a cracked iPhone screen or your MacBook Pro isn’t charging properly. Whatever your issue, there’s an app for that! If you need tech support or repairs for your Apple device, it’s easy to set up a service appointment right from …