關鍵詞:基於圖像的三維重建
單目視覺
極簡原理
整體框架
做者:李二 日期:14/04/2020 - 16/04/2020node
本系列博客從這裏開始,進入第二部分,也就是三維重建。
我以爲不能一下就陷入到具體的步驟或者流程中去,講東西最好先給你們一個總的輪廓以及其核心原理,這樣由淺入深,由粗到精,更容易接受與吸取。web
本期博客僅僅介紹三維重建的核心原理,裏面涉及的要素或模塊,我將在後面的幾期中逐個展開。算法
話很少說,仍是恢復講故事模式。話說李二在家喜歡上了寫博客,每天在陽臺上碼字,家裏人越看他越不順眼,由於感受他彷佛並無幹什麼正經事,因而就有了下面的對話。網絡
李二的老婆Mme.Zhang問:我說咱每天地也不出去溜達溜達,看你都快廢了。前幾天看你在朋友圈裏面發二維成像與三維重建,費勁巴力的寫了這麼長時間,想幹點啥? 話說什麼是三維重建?app
李二以爲可貴老婆想了解本身作了點啥事,因而便高興地說道:簡單點說,三
維重建≈三維點雲獲取
。若是較起真來,三維重建=三維點雲獲取+幾何結構恢復+場景繪製
。框架我講的三維重建指的是
基於圖像的三維重建
,直白點說,就是從一系列圖像中恢復三維點雲。編輯器
注意:點雲構建以後的幾何結構恢復(即三維格網化)和場景繪製(即紋理貼圖),則不在本系列的scope以內。svg
Mme.Zhang:那三維重建有什麼用處?優化
李二:太多了。根據重建到的三維物體,能夠準確測量它的三維結構。spa
例1. 好比我們去巴黎的時候,很遺憾的沒有參觀巴黎聖母院,他 不是被火燒了嘛。這時咱們根據之前測量到的三維結構,就能夠原汁原味的恢復它火燒以前的面貌。 例2. 再好比,如今虛擬現實、加強現實不是都很火嘛,關鍵就是把三維建出來。 例3. 還有關於個人近地面植被遙感工做,只有把樹和做物的三維創建出來,才能更好地測量他們的一些參數,好比生物量、葉傾角之類的。 假如咱們只看圖像,它缺失了距離信息,扭曲了物體之間的角度信息,咱們無法基於影像作一些準確的測量。
瞭解一下:計算機視覺包含兩個基本方向,物體識別和三維重建。
圖像識別
的突破性進展源自於2012年卷積神經網絡的興起(AlexNet)
三維重建
是將來的必然趨勢,咱們生活在三維空間裏,必須將虛擬世界恢復到三維,才能和環境進行交互。
Mme.Zhang突然以爲李二天天也不是瞎胡鬧了,卻是有點用處了,因而便問起來:那用什麼設備能獲取三維信息呢?
李二見老婆挺上道,話匣子便打開了:剛纔我說了,三維重建其實能夠認爲就是獲取三維點雲,那麼點雲獲取的方式有三種:
激光雷達LiDAR,直接對三維進行測量, 直接獲得三維點雲
;深度相機,好比Kinect,也是直接獲取三維信息,其實感受不能叫作三維,算是 2.5維
,獲得深度圖
;雙目立體視覺,兩個 標定好的相機
,經過同時拍照以及立體視差
獲取三維信息,能夠類比於人眼;攝影測量就是這麼幹的。單目視覺,也就是一個相機,經過 一系列照片
,根據某些算法,恢復三維。
(每一項的具體信息,不作展開了,各位看官請自行出門左轉了解)
Mme.Zhang堅決的說:那還弄啥嘞,直接LiDAR上呀。
李二忽然一下不知道該咋解釋了,便含糊的說道:
LiDAR不是貴嘛,目前通常人買不起,等到跟相機差很少錢了可能就好了。 深度相機的左右距離有限,只能最多 3-5米
的範圍吧。雙目立體視覺須要 兩個位置、姿態標定好的相機
,弄起來比較費勁,萬一你磕了碰了弄彎了,還得從新標定。單目視覺就很方便了,一個相機, 經過運動,就能夠恢復三維,並且這個還有紋理與色彩信息,對於圖像識別也是有好處的。
(我解釋的可能不夠,可是應該把主要問題包含了)
Mme.Zhang如有所思,忽然說道:其實單個相機也很差,由於這樣大家男生能夠只用一個手機,準確計算出女生的三圍、身高、體重了。 李二:這..... 唉.....
Mme.Zhang終於開始問點關鍵的了:那你大體說說怎麼樣基於一個相機恢復三維點雲呀,就是你前面說的
基於圖像的三維重建
。不過我是文科生,你別講太深了。
李二自信滿滿的說:別說你是文科生,你就是初中生,我都給你講明白了。核心原理十分簡單,確定能聽懂。
(各位看官如果看不懂,評論區寫差評)
李二開始了表演:
準備材料:咱們剛剛說到,必需要
一系列的圖像
才行,並且圖像之間要有重疊
,不能拍的東西徹底不一樣,不然咋重建。不妨拿四張圖像來解釋一下三維重建。
極簡思路:假如這四幅影像是在不一樣視角拍攝的同一地物,由下圖能夠看出,這四幅影像同時看到了地物的一些相同的地方,好比咱們知道每幅影像的拍攝位置(或者
光心(焦點)
位置) 以及姿態 (嗨,看官們,其實就是外方位元素),它們在不一樣視角都看到了點 ,那麼就能夠經過圖像 的 、點 對應的像素位置
恢復出視線(line of sight)
,一共四條視線。由於全部的視線都應該交於點 ,所以構成了6個空間三角形。
其實一個空間三角形,就可以肯定點 的空間位置,就是 三角定位(triangulation)
。在極簡思路中,你能夠認爲多出的空間三角形沒用。(備註一下,是很是有用的,由於噪聲的問題)。不必定在每幅圖像中都必須出現點 ,理想狀況下,兩幅就夠了,由於兩幅圖像的視線就能夠構造一個空間三角形進行三角定位。(備註一下,事實上至少三四張,纔能有理想結果)。 這四幅影像其實不止同時看到了點 ,他們可能同時也看到了其餘不少點,這時就可以構成點雲啦,也就恢復三維了
(若是僅僅想了解三維重建的核心原理的看官,看到這就夠了。以後無非是怎麼找特徵點,肯定同名點,三角定位肯定三維點,由於偏差因此須要不斷優化調整,獲得最終的三維點以及相機的內外方位元素)
Mme.Zhang很高興,她以爲她已經已經理解了,便說:就這麼點事呀,那你前段時間又買書又查資料的,又費勁巴力的寫二維成像的博客。個人護膚化妝品錢都然你給造了。
李二梗着脖子,漲紅了臉說道:哪有這麼簡單,實際中還有好多問題呢。好比我下面要講這些,直到本世紀初,它們的技術才慢慢成形呢,2010年左右才正式到了應用層次。
Mme.Zhang拗不過我,便說:行行行,你本身玩耍吧,我去護膚化妝去了。
題外話:我一看見一桌子護膚品,就想到,相同的錢買點電子產品也好呀。我是人窮志氣短呀!
李二看Mme.Zhang沒有聽下去的慾望,不知是爲了代表這事情真不容易,仍是由於其餘緣由,便自言自語地接着說了下去,在實際三維重建中咱們會發現幾個問題:
上面說到四幅圖像都看到空間點 ,對應在圖像上的像素點分別爲 ,這四個像素點是你人眼識別出來的,可是如今得讓計算機識別出來,並且識別出這四個像素點都對應同一個空間點 ,這就有點難度了。
特徵點檢測:圖像中會有不少像素點,一些比較有特徵的點更容易識別和表達出來,好比灰度變化劇烈的點,這些點被稱爲 特徵點
或者關鍵點
,所以咱們能夠把每幅圖像的這些特徵點先提取出來,這就是特徵點檢測。
特徵點匹配:每幅圖像的特徵點被檢測出以後,咱們須要知道圖像與圖像之間,哪些特徵點是對應的(好比 ),稱之爲 同名點
,這就須要對特徵點進行匹配。
誤匹配刪除:實際匹配結果可能存在 偏差
,也就是不少錯誤匹配的點,所以須要經過某種方式對誤匹配的點進行刪除;
集束調整(或光束法平差):偏差或者噪聲什麼時候何地都是存在的,在構建三角幾何關係時,也不例外。 實際狀況中,不一樣圖像對於同一空間點的視線並不必定能保證交於這一點,所以須要經過某種方式對視線進行調整,使其交於一點。在此過程當中,基於成像模型,咱們也恢復了相機的位置與姿態等外方位元素,同時實現了點雲的構建;
稠密重建:因爲通常特徵點數量並非特別多,所以重建出來的點雲比較稀疏。可是有了相機位姿以後,每幅圖像的每一個像元對應的視線咱們都知道了,這是就能夠根據某種方式,創建稠密點雲,造成比較完整的三維。 這就是基於圖像的三維重建的各個模塊,每一個模塊中涉及了不少內容,沒有那麼簡單。可是三維重建的核心東西就是這些。
其實全部的商業或開源三維重建軟件的技術路線基本都是同樣,可是一些技術細節不一樣,形成結果的差別。說明具體的技術細節仍是十分重要吧!正如對於世界上絕大多數國家來講,即便拿到DF-17的詳細圖紙,也不必定能造出來。
以上故事純屬虛構,若是Mme.Zhang看到,企盼理解,不要揍我。
接下來的幾期博客,我可能不會講的太細了,由於好多具體內容我本身也不瞭解,更不敢打腫臉充胖子給各位看官講了。我我的認爲:若是不是專門作這個的,僅知其大略或思路便可,沒必要苛求過深,思路對於咱們的借鑑意義更大一些。