一、照片采集的實用概念
根據照片進行三維重建的過程中,有人沒怎么遇到坑,有人被坑的不輕。可能是模型的紋理失真,模型的法線錯了,模型會生成我們各種也想不到的結果,那么,是什么導致三維重建效果這么差的?是建模操作中哪一步設置錯了?還是航拍之前的航帶准備不充分還是天氣光照的影響?今天我將和大家一起好好說說建模前期都有哪些拍照要求和技巧。
首先,在這之前,我先說明幾個專業詞匯概念,有助於后面文章的理解。
【內方位元素】:指的是相機的內部參數,包括相機傳感器的尺寸、鏡頭焦距、像平面主點的位置坐標、鏡頭畸變。
【外方位元素】:指的是相機光學中心的三維坐標位置和三個姿態角參數。
【同名點】:兩個或多個不同照片的像素對應場景中同一物理位置的投影。
【影像組】:由具有相同內方位元素的影像組成。
【CCD感光元件】:電荷耦合元件是一種半導體器件,能夠把光學影像轉化為數字信號。
二、影像獲取的注意點
照片的采集是整個三維模型重建過程中非常重要的一步,重建結果的好壞往往與照片采集有很大的關系,而不是軟件操作的問題,跟采集的航拍影像關系較大,影像分辨率高、重疊度大、清晰度高,拍攝光照條件好,建成的三維模型效果自然會好。下面從幾個方面對照片采集的基礎知識和一些細節要求做些說明:
- 拍攝
模型重建對象的每一部分應至少3個不同的視點(但比較接近)進行拍攝。一般來說,連續影像之間的重疊部分應該超過60%。物體的同一部分的不同拍攝點間的分隔應該小於15度。

對於簡單的小物件,單反或手機拍攝可以環繞式地從物體周圍均勻分隔地采集至少大約30-50張影像。為了保留更多的物體細節,需要保證一定的重疊度,如下圖:

為了最大程度地還原照片重建后的紋理信息,在采集拍照的時候要注意分層,可以由遠至近拍三個距離,但是太多的拍照層次又會使得照片在進行空三運算時失敗,這也是為啥要拍三個層次,讓中間層聯系遠近兩層的原因了。示意圖如下:

對於有一定高度的小物件,比如說一個雕像,需要從高度上分層次拍照,如下圖:

還有,遇到的建模對象紋理比較單一的,我們需要在拍攝范圍中加一個背景,這樣可以使每張照片的相對位置不同,有利於空三計算和點雲生成,比如下面的這只羊的紋理是比較沒有區分度的,我們需要在下面放本書或者放張報紙作為背景參照:

在做人物建模時,人的頭發是很難被正確建模的,所以可別忘了在頭頂加一圈拍照,除此之外,還需要保證盡可能減少拍攝范圍中的背景,盡可能增加人物在影像中的范圍,示意圖如下:

對於航空攝影,建議采集航向重疊不小於80%,旁向重疊不小於50%的影像。如下圖所示:




為實現更好的效果,更好地還原建築物外立面、狹窄的街道和各種庭院,建議同時采集垂直和傾斜影像。雖然Smart3D對非系統化亂序采集的圖像具有非常強的適用性,但還是仍然建議先准備合適的飛行計划以系統化獲取影像而避免疏漏。
- 相機
Smart3D支持廣泛多樣的影像采集設備,如手機、卡片數碼相機、數碼單反相機、攝影測量專用相機及多角度攝相機系統。不僅可以處理靜態影像,也可以處理從數字攝影機攝像動畫中截取的視頻幀。但是注意到的是,Smart3D不支持線性推掃式相機。
雖然Smart3D對相機分辨率沒有最小要求,但是高分辨率的相機可以以較少影像數量以指定精度完成對物體影像采集,而且處理速度要快於低分辨率的相機。
另外,Smart3D需要知道相機感光體CCD的寬度。如果攝相機型號沒有在自帶的數據庫中列出,可以百度搜索下相機的型號,就可以查到對應的CCD寬度,將這些信息手動輸入。
- 影像精度
影像精度指的是由傳統航空攝影的地面分辨率擴展到更加廣義(而不僅僅是航空圖像)的獲取圖像的分辨率設置。生成三維模型的精度和分辨率與采集的影像精度直接相關。為達到預定的影像精度,必須使用准確的焦距及拍攝距離來采集影像。相關計算公式如下:
影像精度(米/像素) × 焦距(毫米) × 圖像的最大尺寸(像素) = 傳感器寬度(毫米) × 拍攝距離(米)
可以看到,傳感器的寬度、焦距、圖像的像素是固定的,那么,想要多少的影像精度,就可以通過拍攝距離來調整。
由於Smart3D能自動識別應用不同精度的影像來生產三維模型而無需固定統一精度的影像,因此整個項目可以允許不同影像精度、不同影像重疊度組成的多重數據源。然而,Smart3D不能自動識別處理精度區別過大的影像,如果項目需要必須采集精度跨度較大的影像,那么就需要補充采集一直數個級別的中間精度級別的影像以建立平滑過渡。
- 焦距
整個圖像獲取過程采用固定的焦距。
如果需要獲得非統一的影像精度,可以調整拍攝距離來實現。如果無法避免使用不同的焦距設置,比如拍攝距離的限制等因素,應在每個焦距設置下各采集一定數量的影像組,避免某個焦距只有非常少量的影像的情況。
當使用可變焦距鏡頭,應需保持在一組影像上使用同一焦距,可以利用膠帶將手動可變焦距鏡頭固定住。注意不要使用數碼變焦,避免使用超廣角鏡頭或魚眼鏡頭,因為Smart3D很難計算出極端的鏡頭畸變。
- 曝光
盡量選用可避免重影、散焦與噪聲、曝光過度或不足等的曝光設置,因為這些問題將會嚴重影響三維建模質量。手動曝光設置能有效降低3D模型貼圖產生色差的可能性,所以如果攝影技術允許,同時有比較穩定和統一的光照條件時,推薦使用手動曝光。如果不具備條件,自動曝光獲取的影像也能被處理。
這里推薦關閉光學或數碼圖像穩定功能。
- 光照
相對於直射光和(或)不斷變化的光照,穩定的環境光源是更好的選擇,因為前者增加了曝光過度和曝光不足的風險。室內拍照時,固定光源比試用閃光燈更好;室外拍攝時,多雲的天氣比大晴天更好。如果必須在晴天拍攝,最好選擇中午左右使陰影區域最小化。下圖是一個夕陽下拍攝的航片重得到的模型:

看到上面的模型有沒有被驚艷到?所以正確適當曝光下采集的陰影並不影響Smart3D的模型生成質量,軟件會在3D模型的貼圖中還原陰影的正確位置。
- 影像預處理
在把原始影像導入Smart3D之前,不要進行任何編輯,包括改變尺寸、裁剪、旋轉、降低噪音、銳化或調整亮度、對比度、飽和度或色調。某些相機有自動旋轉影像的功能,需要把這個功能禁用。
Smart3D不支持拼接的全景圖作為原始數據,但是可以使用生成這些全景圖的原始圖像作為導入數據。
- 遮罩
遮罩是指在圖像處理過程中用於某原始影像匹配制作的單色圖像將圖像指定部分(如遮擋物、反射)進行忽略運算的方法。有效的遮罩文件是黑白單色且與原始影像匹配的尺寸的TIFF格式圖片。被遮罩的黑色部分遮擋的圖像像素在空中三角測量和重建過程中將被忽略處理。
遮罩的文件名必須與原始影像的文件名對應,如果對於目錄下所有的同樣大小尺寸的原始影像進行遮罩處理,只需將遮罩文件放置到該目錄下,且命名為“mask.tif”。例如,圖像名為“IMG0002564.jpg”對應的遮罩文件為“IMG0002564_mask.tif”
- 影像組
為了獲得最優精度和最佳性能,Smart3D會將同一台相機在同一焦距和影像尺寸(同樣的內方位元素)拍攝的影像定義為一個影像組。它可以自動建立相關的影像組,如果按采集影像的相機來設置原始影像的目錄結構,不同的相機(即使型號相同)拍攝的影像應放置到不同的獨立的子目錄下。相反,由同一台相機拍攝的影像應當都放置在同一子目錄下。

三、軟件支持的影像文件格式
Smart3D能直接支持JPEG與TIFF格式的圖像,也能讀取一些常見的RAW格式,還能直接讀取影像文件自帶的Exif元數據。
支持的文件格式有:
- JPEG
- Tag Image File Format (TIFF)
- 松下Panasonic RAW (RW2)
- 佳能Canon RAW (CRW, CR2)
- 尼康Nikon RAW (NEF)
- 索尼Sony RAW (ARW)
- 哈蘇Hasselblad (3FR)
- Adobe Digital Negative (DNG)
四、位置信息數據
Smart3D建模軟件一個比較牛的功能,也是一大突破性功能,是能夠處理那些完全不帶有定位數據的影像。也就是說,通過無人機航拍的沒有pos信息的照片也可以重建出三維模型。因此,Smart3D可以支持從任意位置、旋轉與比例的原始影像數據來生成三維模型,並通常能還原它的正確姿態方向。同時,Smart3D也原生支持兩種類型的定位數據:GPS標簽(GPS tags)和控制點(Control Points)。
如果在原始影像的Exif元數據中包含GPS標簽,也就是照片中含有pos信息,Smart3D可以自動讀取並用它來作為生成三維模型的坐標依據。也可以手動制作表格,后面的系列教程會講到,如下圖:

其中不完整的GPS標簽將會被忽略,比如只具有經度與緯度坐標,但不具有高程。
當處理需要優化GPS坐標精確度,或者需要控制和消除由於數字積累誤差造成的遠距離幾何失真時,此時建議引入控制點。建立地理參照系必須至少三個控制點,更多數量且分布均勻的控制點可以消除遠距離幾何失真。控制點的精確三維坐標可通過傳統測量方法獲得。通過Smart3D控制點模塊或其他第三方工具在原始影像(最少兩張,建議三張以上)中標出該控制點位置的方式來輸入控制點。
除了GPS標簽與控制點,還可以通過專用的XML格式導入幾乎任何定位信息(如慣性導航系統的數據)或第三方軟件的空中三角測量的結果。這樣導入后可以節約了大量的空三運算的時間。
五、小結
以上就是照片采集中的一些細節注意點,你get到了嗎?下次采集照片時,不妨對照上面的列表試一下,看看重建后的模型效果是否會有優化,我這里也給大家一組示例數據,可以觀察下導入到軟件里看看航帶的布局安排,關注Wish3D微信公眾號(底部有二維碼)回復“2”即可獲得(更多學習資料回復“1”)。
Ok,關於三維重建中的照片采集就先到這里了,那么照片采集后如何充分利用Smart3D軟件進行三維重建呢?想知道Smart3D每個模塊的功能應用?我將在下周同一時間(每周三下午)Wish3D微信公眾號里更新 Smart3D系列教程3之《論照片三維重建中Smart3D幾個工作模塊的功能意義》,歡迎各位同仁一起探討!

Wish3D出品的Smart3D系列教程:
第一講——《淺談無人機傾斜攝影建模的原理與方法》
(http://www.cnblogs.com/sunnyCXX/p/6073905.html)
第二講——《為什么三維重建效果這么差?——探探那些被忽略的拍照要求和技巧》(http://www.cnblogs.com/sunnyCXX/p/6101947.html)
…………
