三維重建技術概述

基于視覺的三維重建,指的是通過攝像機獲取場景物體的數據圖像,并對此圖像進行分析處理,再結合計算機視覺知識推導出現實環境中物體的三維信息。


1. 相關概念


(1)彩色圖像與深度圖像

彩色圖像也叫作RGB圖像,R、G、B三個分量對應于紅、綠、藍三個通道的顏色,它們的疊加組成了圖像像素的不同灰度級。RGB顏色空間是構成多彩現實世界的基礎。深度圖像又被稱為距離圖像,與灰度圖像中像素點存儲亮度值不同,其像素點存儲的是該點到相機的距離,即深度值。圖2-1表示深度圖像與灰度圖像之間的關系。

這里寫圖片描述
圖2-1 深度圖像與灰度圖像
Fig.2-1 The depth image and gray image

深度值指的目標物體與測量器材之間的距離。由于深度值的大小只與距離有關,而與環境、光線、方向等因素無關,所以深度圖像能夠真實準確的體現景物的幾何深度信息。通過建立物體的空間模型,能夠為深層次的計算機視覺應用提供更堅實的基礎。

這里寫圖片描述
圖2-2 人物的彩色圖像與深度圖像
Fig.2-2 Color image and depth image of the characters

(2)PCL

PCL(Point Cloud Library,點云庫)是由斯坦福大學的Dr.Radu等學者基于ROS(Robot Operating System,機器人操作系統)下開發與維護的開源項目,最初被用來輔助機器人傳感、認知和驅動等領域的開發。2011年PCL正式向公眾開放。隨著對三維點云算法的加入與擴充,PCL逐步發展為免費、開源、大規模、跨平臺的C++編程庫。

PCL框架包括很多先進的算法和典型的數據結構,如濾波、分割、配準、識別、追蹤、可視化、模型擬合、表面重建等諸多功能。能夠在各種操作系統和大部分嵌入式系統上運行,具有較強的軟件可移植性。鑒于PCL的應用范圍非常廣,專家學者們對點云庫的更新維護也非常及時。PCL的發展時至今日,已經來到了1.7.0版本。相較于早期的版本,加入了更多新鮮、實用、有趣的功能,為點云數據的利用提供了模塊化、標準化的解決方案。再通過諸如圖形處理器、共享存儲并行編程、統一計算設備架構等領先的高性能技術,提升PCL相關進程的速率,實現實時性的應用開發。

在算法方面,PCL是一套包括數據濾波、點云配準、表面生成、圖像分割和定位搜索等一系列處理點云數據的算法。基于不同類型區分每一套算法,以此把整合所有三維重建流水線功能,保證每套算法的緊湊性、可重用性與可執行性。例如PCL中實現管道運算的接口流程:

①創建處理對象,例如濾波、特征估計、圖像分割等;
②通過setInputCloud輸入初始點云數據,進入處理模塊;
③設置算法相關參數;
④調用不同功能的函數實現運算,并輸出結果。

為了實現模塊化的應用與開發,PCL被細分成多組獨立的代碼集合。因此便可方便快捷的應用于嵌入式系統中,實現可移植的單獨編譯。如下列舉了部分常用的算法模塊:

libpcl I/O:完成數據的輸入、輸出過程,如點云數據的讀寫;
libpcl filters:完成數據采樣、特征提取、參數擬合等過程;
libpcl register:完成深度圖像的配準過程,例如迭代最近點算法;
libpcl surface:完成三維模型的表面生成過程,包括三角網格化、表面平滑等。

此類常用的算法模塊均具有回歸測試功能,以確保使用過程中沒有引進錯誤。測試一般由專門的機構負責編寫用例庫。檢測到回歸錯誤時,會立即將消息反饋給相應的作者。因此能提升PCL和整個系統的安全穩定性。

(3)點云數據

如圖2-3所示,展示了典型的點云數據(Point Cloud Data,PCD)模型。

這里寫圖片描述
圖2-3 點云數據及其放大效果

點云數據通常出現在逆向工程中,是由測距設備獲取的物體表面的信息集合。其掃描資料以點的形式進行記錄,這些點既可以是三維坐標,也可以是顏色或者光照強度等信息。通常所使用的點云數據一般包括點坐標精度、空間分辨率和表面法向量等內容。點云一般以PCD格式進行保存,這種格式的點云數據可操作性較強,同時能夠提高點云配準融合的速度。本文研究的點云數據為非結構化的散亂點云,屬于三維重建特有的點云特點。

(4)坐標系
在三維空間中,所有的點必須以坐標的形式來表示,并且可以在不同的坐標系之間進行轉換。首先介紹基本坐標系的概念、計算及相互關系。

①圖像坐標系

圖像坐標系分為像素和物理兩個坐標系種類。數字圖像的信息以矩陣形式存儲,即一副像素的圖像數據存儲在維矩陣中。圖像像素坐標系以為原點、以像素為基本單位,U、V分別為水平、垂直方向軸。圖像物理坐標系以攝像機光軸與圖像平面的交點作為原點、以米或毫米為基本單位,其X、Y軸分別與U、V軸平行。圖2-4展示的是兩種坐標系之間的位置關系:

這里寫圖片描述
圖2-4 圖像像素坐標系與物理坐標系
Fig.2-4 Image pixel coordinate system and physical coordinate system

令U-V坐標系下的坐標點(u0,v0),與代表像素點在X軸與Y軸上的物理尺寸。那么圖像中的所有像素點在U-V坐標系與在X-Y坐標系下的坐標間有著如式(2-1)表示的關系:
這里寫圖片描述

其中指的是圖像坐標系的坐標軸傾斜相交而形成的傾斜因子(Skew Factor)。

②攝像機坐標系
攝像機坐標系由攝像機的光心及三條、、軸所構成。它的、軸對應平行于圖像物理坐標系中的、軸,軸為攝像機的光軸,并與由原點、、軸所組成的平面垂直。如圖2-5所示:

這里寫圖片描述
圖2-5攝像機坐標系

令攝像機的焦距是f,則圖像物理坐標系中的點與攝像機坐標系中的點的關系為:

③世界坐標系

考慮到攝像機位置具有不確定性,因此有必要采用世界坐標系來統一攝像機和物體的坐標關系。世界坐標系由原點及、、三條軸組成。世界坐標與攝像機坐標間有著(2-3)所表達的轉換關系:

這里寫圖片描述
這里寫圖片描述

這里寫圖片描述

( 2

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

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

相關文章

【ArcGIS微課1000例】0032:ArcGIS中河流(曲線)、湖泊(水體色)圖例制作案例教程

河流作為線要素,在符號化的過程中使用的大多都是直線符號,但是為了能夠在出圖的使用表現形象的河流對象,就有了使用曲線表示河流圖例的需求,湖泊亦是如此。本文講解在ArcGIS中制作標準的河流和湖泊圖例的完整教程。 文章目錄 一、案例效果二、圖例制作三、圖例修改一、案例…

從shiro源碼角度學習工廠方法設計模式

緒論 shiro是一個簡單易用,功能強大的Java安全框架,學習其源碼設計思想對我們的編碼水平的提高大有裨益。現在,就從源碼角度帶大家學習一下shiro里面的工廠方法模式。 這里的前提是讀者有過使用shiro的基礎,沒有也行,關…

淺談微信小程序對于房地產行業的影響

前幾日,我們曾經整理過一篇文章是關于微信小程序對于在線旅游業的影響的一些反思(淺談微信小程序對OTA在線旅游市場的影響),近日由于生活工作的需要走訪了一些房地產的住宅商品房,突然想到微信小程序對于房地產行業會有…

新型基礎測繪與實景三維中國建設技術文件【1】名詞解釋

文章目錄一、新型基礎測繪 new fundamental surveying and mapping**二、實景三維 3D real scene**三、時空大數據平臺 spatio-temporal big data platform**四、地理實體 geo-entity**五、基礎地理實體 fundamental geo-entity**六、組合地理實體數據 combined geo-entity dat…

Android.bp 和 Android.mk 的對應關系

參考 Soong 構建系統 Android.mk 轉為 Android.bp 沒有分支、循環等流程控制的簡單的 Android.mk ,可以通過 androidmk 命令轉化為 Android.bp source 、lunch 之后執行即可。 androidmk Android.mk > Android.bp對應關系 Android 13 ,build/soon…

深入理解javascript原型和閉包

原文鏈接http://www.cnblogs.com/wangfupeng1988/p/3977924.html 對象是屬性的集合。 function show(x) {console.log(typeof(x)); // undefinedconsole.log(typeof(10)); // numberconsole.log(typeof(abc)); // stringconsole.log(typeof(true)); // booleanconsole.lo…

薪資高壓線

閱讀本文大概需要5分鐘。最近一名讀者咨詢一個問題:洋哥,最近公司有一名同事因為打探其他人薪資被開除了,為啥我們公司要把薪資設置為高壓線。這是個好問題,解答完他的疑惑后想起了一年多前寫過一篇,彼時讀者還比較少&…

達摩院年終預測出爐:2022 十大科技趨勢,AI for Science 高居榜首

作為“一所探索科技未知的研究院”,阿里巴巴達摩院成立至今已經四年了。 這四年來,達摩院秉持著“探索科技位置,以人類愿景為驅動力,開展基礎科學和顛覆式技術創新研究”的原則與使命,在基礎科研和硬科技發展上“遍地生…

chrome調試工具高級不完整使用指南(基礎篇)

一、前言 本文記錄的是作者在工作上面對chrome的一些使用和情況的分析分享,內容僅代表個人的觀點。轉發請注明出處(http://www.cnblogs.com/st-leslie/),謝謝合作 二、瀏覽器模塊介紹 由于chrome瀏覽器一直在不斷的進行更新迭代,會不斷的新增功能&#x…

新型基礎測繪與實景三維中國建設技術文件【2】基礎地理實體分類、粒度及精度基本要求

《新型基礎測繪體系建設試點技術大綱》指出,新型基礎測繪將以“基礎地理實體”為核心的成果模式創新為切入點,帶動技術體系、生產組織體系和政策標準體系的全面創新,從而實現基礎測繪高質量發展。 基礎地理實體作為新型基礎測繪產品體系的核心…

構建和實現單點登錄解決方案(轉載于IBMdeveloperWorks)

將一個開放源碼的基于 Java 的身份驗證組件集成進 Web 門戶中 在現有的應用程序中實現單點登錄解決方案(single sign-on,SSO,即登錄一次,就可以向所有網絡資源驗證用戶的身份)是非常困難的,但是在構建復雜的…

分享一個基于Abp 和Yarp 開發的API網關項目

這個項目起源于去年公司相要嘗試用微服務構建項目,在網關的技術選型中,我們原本確認了ApiSix 網關,如果需要寫網關插件需要基于Lua腳本去寫,我和另外一個同事當時基于這個寫了一個簡單的插件,但是開發測試以及發布都很麻煩,而且使用Lua腳本作為插件的開發語言本身也不是我們強項…

羅振宇2022“時間的朋友”跨年演講全文稿(pdf)

2021年12月31日20:30,五糧液成都金融城演藝中心,羅振宇“時間的朋友”跨年演講如約而至。 羅胖曾發下大愿望:跨年演講要連辦二十年。今年是第七場,也是最特殊的一場,羅胖面對12000個空座位,用53個好故事&am…

08.LoT.UI 前后臺通用框架分解系列之——多樣的Tag選擇器

LOT.UI分解系列匯總:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI開源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 這個必須說下,本來是用Bootstrap-Select做的,很漂亮,正好…

jquery文檔加載完畢后執行的幾種寫法

2019獨角獸企業重金招聘Python工程師標準>>> 1.js文檔加載完畢 標簽內 οnlοad"test()"window.οnlοadfunction(){}2.jquery文檔加載完畢 //方式1 $(document).ready(function(){//TODO }); //方式2 $(function(){//TODO }) //方式3 $(function($){//TO…

新型基礎測繪與實景三維中國建設技術文件【3】基礎地理實體空間身份編碼規則

基礎地理實體是新型基礎測繪產品體系中的核心成果,是推動基礎測繪工作轉型升級的關鍵。與現有的測繪地理信息數據不同,基礎地理實體具有多粒度、多模態、多層次,以及搭載結構化、半結構化和非結構化多樣化信息的鮮明特點。 基礎地理實體空間…

oracle 表 視圖 存儲過程 序列 job

table 表--delete tabledrop table Test1;-- Create tablecreate table TEST1(ID NUMBER,T_NAME VARCHAR2(100),DT DATE);-- 添加注釋comment on column TEST1.T_NAME is 名稱;--添加age字段alter table Test1 add (age NUMBER(8));--刪除字段alter table TABLE_NAME …

[轉]Docker 大勢已去,Podman 即將崛起

Podman Podman 什么是Podman?Podman和Docker的主要區別是什么?Podman的使用與docker有什么區別?Podman 常用命令 容器鏡像部署 PodmanPodman 加速器使用 Podman 運行一個容器列出運行的容器檢查正在運行的容器查看一個運行中容器的日志查看一…

基于Kubernetes v1.24.0的集群搭建(一)

一、寫在前面 K8S 1.24作為一個很重要的版本更新,它為我們提供了很多重要功能。該版本涉及46項增強功能:其中14項已升級為穩定版,15項進入beta階段,13項則剛剛進入alpha階段。此外,另有2項功能被棄用、2項功能被刪除。…

mvc設計模式和mvc框架的區別

一組概念需要先理解,因為后面需要用: 架構:簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象組件,并且能夠描述這些抽象組件之間的通信和調用。 框架:軟件框架是項目軟件…