使用iPhone相机和OpenCV来完成3D重建(第一部分)
正文字?jǐn)?shù):1497 ?閱讀時長:2分鐘
這個教程將帶你使用自己的手機(jī)攝像頭和圖片實現(xiàn)從零開始到點云。
Posted by?Omar Padierna?
url :?https://becominghuman.ai/stereo-3d-reconstruction-with-opencv-using-an-iphone-camera-part-i-c013907d1ab5
這是一個由3部分組成的系列文章。
我注意到,其他大多數(shù)關(guān)于三維重建的教程都在某種程度上有點欠缺。別誤會,我認(rèn)為它們是十分優(yōu)秀的成果,但是在某種程度上它們是支離破碎的,或者它們當(dāng)中有一部分過于深入地研究理論,或者兩者兼而有之。
更糟糕的是,他們使用專門的數(shù)據(jù)集(如Tsukuba),這就會造成對一些數(shù)據(jù)集之外的任何東西在使用這種算法時,因為參數(shù)調(diào)微調(diào)會產(chǎn)生一些麻煩。
我相信三維重建(廣義的計算機(jī)視覺)最酷的事情是重建你周圍的世界,而不是別人的世界(比如數(shù)據(jù)集中的世界)。本教程是一個初步的嘗試,旨在幫助您使用OpenCV的強(qiáng)大功能重新創(chuàng)建自己的世界。
簡單地說,這個教程將帶你使用自己的手機(jī)攝像頭和圖片實現(xiàn)從零開始到點云。所以,廢話不多說,讓我們開始吧。
注意
為了避免寫一篇非常長的文章,本教程分為三個部分。
第1部分(理論和需求):概述了一個非常簡單的立體三維重建所需要的步驟。
第2部分(相機(jī)校正):包括用代碼校正你相機(jī)的基礎(chǔ)設(shè)置/知識。
第3部分(視差圖和點云):介紹了重建圖片基礎(chǔ)知識利用前面用代碼標(biāo)定過的相機(jī)。
三維重建所需的步驟
有很多方法可以重建周圍的世界,但都可以歸結(jié)為需要得到一張準(zhǔn)確的深度圖。
深度圖中的每一個像素都表示的是深度信息(而不是顏色信息)。它一般都是用灰度圖的形式展現(xiàn)出來。
Tsukuba 數(shù)據(jù)集的深度圖。由OpenCV提供
如前所述,獲取一張深度圖有很多不同的方法,而這些方法都取決于所使用的傳感器。一種傳感器可以是一個簡單的攝像機(jī)(從現(xiàn)在起在我們將稱為RGB攝像機(jī)),但也可以使用其他傳感器,如激光雷達(dá)或紅外線或兩者的組合。
傳感器的類型將決定深度圖的精準(zhǔn)程度。根據(jù)精確度從大到小排列依次是激光雷達(dá)>紅外線>相機(jī)。深度圖也可以著色以更好的顯示深度。
我的Kinect相機(jī)自拍圖
根據(jù)所用傳感器的類型,實際獲取深度圖需要的步驟或多或少。例如,Kinect相機(jī)使用結(jié)合了RGB相機(jī)和紅外傳感器,因此您可以立即獲得一張深度圖(因為它是由紅外傳感器處理的信息)。
但是,如果您除了手機(jī)攝像頭之外什么都沒有,該怎么辦?在這種情況下,您需要進(jìn)行立體重建。立體重建和使用您的大腦和眼睛用來實際理解深度的原理是一樣的。
其要點在于從兩個不同的角度看同一張圖片,并在兩張圖片中尋找相同的事物,并從位置的差異推斷出深度。這稱為立體匹配。
為了進(jìn)行立體匹配,重要的是使兩張圖片具有完全相同的特征。換一種說法,兩張照片都不應(yīng)該有任何失真。這是一個問題,因為大多數(shù)相機(jī)的鏡頭會導(dǎo)致不同程度的畸變。這意味著為了精確地進(jìn)行立體匹配,需要知道相機(jī)的光學(xué)中心和焦距。
在大多數(shù)情況下,這些信息是未知的(尤其是對于您的手機(jī)攝像頭),這就是為什么立體3D重建需要以下步驟的主要原因:
1. 相機(jī)校正:使用一組圖像推斷相機(jī)的焦距和光學(xué)中心
2. 圖像畸變:去除重建要用到的圖像中的鏡頭畸變
3. 特征匹配:在兩張圖片之間尋找相似的特征并構(gòu)建深度圖
4. 重投影點:使用深度映射將像素重投影到三維空間中。
5. 構(gòu)建點云:生成一個包含三維空間中的點的新文件以進(jìn)行可視化。
6. 構(gòu)建網(wǎng)格以獲得實際的三維模型(不在本教程的范圍內(nèi),但很快將在其他教程中提供)
步驟1只需執(zhí)行一次,除非更換攝像機(jī)。而每次你獲得一對新照片時,都需要重新執(zhí)行一遍第2-5步……大概就是這樣子。
實際的數(shù)學(xué)理論(為什么)要復(fù)雜得多,但是在本教程之后,它將更容易處理和理解,因為你將在閱讀完本文之后獲取一個實例,你可以進(jìn)行各種的實驗。
在下一部分中,我們將探討如何實際校準(zhǔn)手機(jī)攝像頭,以及一些校準(zhǔn)的最佳實踐操作。
LiveVideoStackCon 2020?北京
2020年10月31日-11月1日
點擊【閱讀原文】了解更多詳細(xì)信息
總結(jié)
以上是生活随笔為你收集整理的使用iPhone相机和OpenCV来完成3D重建(第一部分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重要通知
- 下一篇: 【线上分享】基于AI的超分辨技术在RTC