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