0
本文作者: AI研習(xí)社-譯站 | 2019-01-21 10:51 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
Tutorial: Stereo 3D reconstruction with openCV using an iPhone camera. Part I.
作者 | Omar Padierna
翻譯 | yaya牙牙
校對(duì) | Disillusion 審核 | 醬番梨 整理 | 菠蘿妹
原文鏈接:
https://medium.com/@omar.ps16/stereo-3d-reconstruction-with-opencv-using-an-iphone-camera-part-i-c013907d1ab5
教程:使用iPhone相機(jī)和openCV來完成3D重建
(第一部分)
本篇教程由三段內(nèi)容組成,這是第二部分和第三部分的鏈接。
我注意到其他大多數(shù)關(guān)于三維重建的教程都讓人感覺少了點(diǎn)東西。誠(chéng)然,這些教程都非常的棒,但它們有些是支離破碎的,要么對(duì)理論方面過于深究,或者兩者兼而有之。
更糟糕的是,他們使用專門的數(shù)據(jù)集(例如Tsukuba),這就造成對(duì)一些數(shù)據(jù)集之外的東西的時(shí)候使用這些算法的時(shí)候會(huì)有點(diǎn)問題。(因?yàn)閰?shù)微調(diào))
我相信關(guān)于三維重建(廣義的計(jì)算機(jī)視覺)的很酷的事情就是重建你周圍的世界,而不是其他人的世界(比如數(shù)據(jù)集中的世界)。本教程將嘗試幫助你用OpenCV的力量重新創(chuàng)造你自己的世界。
簡(jiǎn)單的說,本教程帶你通過使用你自己的手機(jī)攝像頭和圖片實(shí)現(xiàn)從零開始到點(diǎn)云。讓我們開始吧。
為了避免寫一篇非常長(zhǎng)的文章,本教程分為三個(gè)部分
第一部分(理論和需求):簡(jiǎn)要概述了立體三維重建所需的步驟
第二部分(相機(jī)校正):包括用代碼校正你相機(jī)的基礎(chǔ)知識(shí)
第三部分(視差圖和點(diǎn)云):介紹了重建圖片基礎(chǔ)知識(shí)利用前面用代碼標(biāo)定過的相機(jī)。
如果你很忙或者想直接跳到實(shí)際的代碼部分,可以直接進(jìn)入我的GitHub。
重建周圍的世界有很多的方法但最終他們都需要一張準(zhǔn)確的深度圖。
深度圖中的每一個(gè)像素都表示的是深度信息(而不是顏色信息)。它一般都是用灰度圖的形式展現(xiàn)出來。
Tsukuba 數(shù)據(jù)集的深度圖。由OpenCV提供
如同前面提到的得到一張深度圖有很多種方法而這些方法都依賴于所使用的傳感器。一種傳感器可以是簡(jiǎn)單的相機(jī)(從現(xiàn)在起本文我們將其稱為RGB相機(jī))但它也可以是其他的傳感器比如激光雷達(dá),紅外線或者它們的組合。
傳感器的類型將會(huì)決定深度圖的精確程度。根據(jù)精確度從大到小排列依次是激光雷達(dá)>紅外線>相機(jī)。深度圖也可以著色以更好的顯示深度。
Kinect相機(jī)自拍圖
根據(jù)所使用的傳感器類型,實(shí)際獲取深度圖所需的步驟或多或少。例如,Kinect攝像頭使用紅外傳感器和RGB相機(jī)相結(jié)合,這樣你馬上就能得到一張深度圖(因?yàn)樗怯杉t外傳感器處理的信息)。
但是如果你除了手機(jī)攝像頭什么都沒有呢?在這種情況下你需要做立體重建。立體重建和大腦、眼睛理解深度的原理是一樣的。
它的要旨在于從兩個(gè)不同的角度看同一幅畫,在兩幅畫中尋找相同的東西,并根據(jù)位置的不同推斷深度。這叫做立體匹配。
為了做立體匹配,兩張圖片必須具有完全相同的特性。換言之,這兩張不應(yīng)該有任何的失真。這是一個(gè)問題,因?yàn)榇蠖鄶?shù)的相機(jī)中的鏡頭都會(huì)導(dǎo)致了畸變。這意味著,為了精確的進(jìn)行立體匹配,就需要知道攝像機(jī)的光學(xué)中心和焦距。
在大多數(shù)情況下,這些信息將是未知的(尤其是對(duì)于你的手機(jī)攝像頭),這就是立體三維匹配需要以下的步驟的原因:
1.相機(jī)校正:利用一組圖片推斷相機(jī)的光學(xué)中心和焦距。
2.圖像畸變:消除重建所用圖像中的鏡頭畸變。
3.特征匹配:在兩張圖片之間查找相似的特征并構(gòu)建深度圖
4.重投影點(diǎn):使用深度映射將像素重投影到三維空間中
5.建立點(diǎn)云:生成一個(gè)新的文件,這個(gè)文件包含了三維空間中的點(diǎn),以便可視化。
6.構(gòu)建網(wǎng)格來得到實(shí)際的三維模型(不在本教程范圍之內(nèi),但很快會(huì)出現(xiàn)在不同的教程中。
步驟1只需要執(zhí)行一次,除非你更換攝像頭。
而第2-5步在你每次得到一對(duì)新的圖片都需要執(zhí)行一次,差不多就是這樣了。
實(shí)際的數(shù)學(xué)理論(為什么)要復(fù)雜的多,但在本教程之后會(huì)變得更容易理解,因?yàn)樵诒疚慕Y(jié)束時(shí)你將有一個(gè)實(shí)例讓你可以進(jìn)行各種實(shí)驗(yàn)。
在下一部分,我們將會(huì)探討如何實(shí)際校準(zhǔn)手機(jī)攝像頭,以及一些校正的最佳操作,屆時(shí)再見。
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
長(zhǎng)按鏈接點(diǎn)擊打開或點(diǎn)擊【教程:使用iPhone相機(jī)和openCV來完成3D重建(第一部分)】:
https://ai.yanxishe.com/page/TextTranslation/1412
AI研習(xí)社每日更新精彩內(nèi)容,觀看更多精彩內(nèi)容:雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
等你來譯:
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。