物体三维模型的构建:3DSOM软件实现侧影轮廓方法
??本文介紹基于3DSOM軟件,實現側影輪廓方法的空間三維模型重建。
目錄- 
1 背景知識
- 1.1 三維信息獲取方法
 - 1.2 側影輪廓方法原理及其流程
 
 - 
2 三維模型制作
- 
2.1 馬鈴薯三維模型制作
- 2.1.1 多角度圖像導入
 - 2.1.2 圖像掩飾
 - 2.1.3 表面生成與優化
 - 2.1.4 紋理映射
 - 2.1.5 模型檢查
 - 2.1.6 模型定性描述
 - 2.1.7 模型定量描述
 
 - 
2.2 圣誕老人蠟燭三維模型制作
- 2.2.1 多角度圖像獲取與導入
 - 2.2.2 圖像掩飾
 - 2.2.3 表面生成與優化
 - 2.2.4 紋理映射
 - 2.2.5 模型定性描述
 - 2.2.6 模型定量描述
 
 
 - 
2.1 馬鈴薯三維模型制作
 - 
3 問題與思考
- 3.1 底部圖片位置移動問題
 - 3.2 頂部與底部圖片納入建模問題
 - 3.3 閾值對掩飾效果影響問題
 - 3.4 欠掩飾與過掩飾熱點區域問題
 - 3.5 紋理手動匹配配置問題
 - 3.6 多角度圖像橫、豎狀態問題
 - 3.7 模型底部凸起問題
 
 - 參考文獻
 
??從本文開始,我們將基于空間三維建模方面的相關原理、基本操作與結果分析等,通過幾篇博客,對其加以盡可能詳細的介紹與實戰。
??那么我們首先從側影輪廓建模方法開始。本文我們將基于3D Software Object Modeler(3DSOM)這一軟件,對上述方法加以完整的操作,并對結果加以分析。
??本文所用到的數據包括馬鈴薯多角度圖片若干與圣誕老人蠟燭多角度圖片若干。其中,馬鈴薯圖片數據并不是我自己拍攝的,而是他人拍攝后發給我的(也因此遺憾這一圖像數據集不能一并提供給大家);為方便大家理解三維建模的基本操作,在對馬鈴薯加以建模后,在本文的2.2部分,我們重新從拍照這一基本環節開始,選取一個圣誕老人蠟燭這一新的物件,完整地走一遍三維建模流程,從而讓整個操作方法更加明了。
1 背景知識
??通過建立正確模型對不同事物各種屬性加以描述和表現,是現代科學探索事物本身發展、運行規律的一個普遍而重要方法[1]。隨著計算機軟、硬件技術快速發展,三維立體建模作為一種于數字空間中對研究對象形狀、位置、運動等屬性加以再現的技術,逐漸在各領域研究中發揮重要作用。
??本文第一部分——原理部分,由作物三維信息獲取方法這一角度展開,并著重綜合探討側影輪廓建模方法原理及其操作步驟。
1.1 三維信息獲取方法
??在接觸方式角度,作物三維形態信息的獲取可分為接觸式(Contact-)方法與非接觸式(Non-contact-)方法。依據相關文獻[2],對上述兩種三維信息獲取方法加以討論。
??接觸式方法依據采集過程不同,進一步可分為人工采集方法與三維數字化儀采集方法。其中,人工采集方法主要用于傳統作物幾何形態測量,借助卷尺、量角器等工具,以手工和肉眼觀測為主。其觀測方法的不精確導致研究效率低,所得結果受主觀因素影響較大。目前,人工采集方法使用較少,主要作為一種補充測量手段。
??三維數字化儀采集主要指通過傳感器記錄、跟蹤探頭于三維空間中的位置,從而實現目標物數字化。其常用儀器包括坐標測量機(Coordinate Measuring Machine,CMM)、機械臂式三維掃描儀與電磁式三維數字化儀等。三維數字化儀采集較之人工采集,效率相對有所提高,但其仍具有操作復雜、存取速度較慢與無法獲取目標物表面紋理(探頭僅僅可獲得位置信息)等問題。因此,其在三維建模領域亦未發揮主要作用。
??非接觸式方法則隨著計算機技術的飛速發展而產生。其依據測量原理不同,可進一步分為主動式方法與被動式方法。其中,主動式方法借助儀器主動發出的可控輻射(激光、超聲波等,由這點看與主動遙感、被動遙感的定義有近似之處),依據目標物透射或反射特性,獲取其三維空間特征。依據輻射源或計算原理,主動式方法可繼續分為脈沖測距法、結構光與編碼光法與CT(Computed Tomography,電子計算機斷層掃描)和MRI(Magnetic Resonance Imaging,核磁共振成像)法。
??被動式方法則無需主動面向目標物發射輻射,而僅收集目標物所反射的太陽輻射。其所需儀器相對較為簡單,往往直接由目標物體對應圖像(如本文中側影輪廓方法所需物體的多角度圖像)提取信息,以建立空間三維模型。依據提取信息基于的信息源,被動式方法可進一步分為單幅圖像法、立體視覺法、基于側影輪廓法、基于運動圖像法與逐層切片恢復法等。
??上述各類方法或所需儀器從屬關系如圖1所示。
圖1 作物三維信息獲取方法
1.2 側影輪廓方法原理及其流程
??前述各類作物三維形態信息獲取方法中,側影輪廓三維建模方法由于相對簡便易行,運算速度快,穩定性高[2],因此廣泛應用于農業等領域。本文便采用這一信息獲取方法。將此方法原理與具體操作流程結合,探討如下。
??側影輪廓為物體投影在成像平面上圖像的外形線條[3],是理解物體幾何形狀的一條重要線索[4]。當以透視投影方式由多個視角觀察某一空間目標對象時, 于各視角對應畫面中均可得到一條該物體側影輪廓線;此處側影輪廓線與對應透視投影中心共同確定三維空間中一個一般形狀的錐體,而所觀察對象物體便位于這一立體錐體內部。以此類推,不斷由不同方向增加對目標物體的觀測視角數量,便可使得各對應錐體的外形不斷逼近對象物體表面,從而對目標物體外形特征加以空間三維的可視化。上述這一由錐體的交構成的空間包絡被稱作物體的可見外殼(Visual Hull)[5]。
??為獲取更加逼近實際物體表面的可見外殼,使得三維建模效果更加準確,往往需要由多種方向入手,獲取大量視角對應圖像;這即為側影輪廓方法的“多角度圖像獲取”步驟。該步驟為本方法基礎數據來源,后期對目標物體進行三維建模所需信息均來源于上述多角度圖像。而多角度圖像在拍攝時需要通過旋轉物體或旋轉攝像機實現不同方位畫面的采集,從而改變目標物體對應視角的方向與俯仰角度;而后期進行三維建模時需要將不同方向視角的圖像建立聯系并結合。因此,各圖像之間空間位置的關系顯得尤為重要。為實現這一重要步驟,需要對所獲取多角度圖像進行“相機定標”,從而確定各圖像對應相機拍攝方位及其內部相關參數[3]。
??相機定標具有多種實現方法。鄭國威等[6]利用平面鏡反射性質等理論,提出一種基于平面鏡的相機內參標定方法;曹煜等[3]對平面鏡定標加以改進,提出一種基于成角度平面鏡裝置的圖像三維重建方法,通過幾何方法實現相機標定;使用已標定的固定相機或標記點等標定裝置進行輔助標定同樣是一種常用的相機定標方法[7]。本文即采取標定裝置的輔助相機定標方法,利用定標墊(Calibration Target)對各多角度圖像拍攝方位加以確定[8]。定標墊如圖2所示。
圖2 3D S.O.M.軟件定標墊
??定標墊由15組點集合構成,每個點集合包含四個點,呈放射狀排布;點分為大點和小點,不同大小分別代表不同得分;各點集合對應大點或小點個數均不一致,亦即各點集合對應得分不同,得分不同進而可以確定不同的點集合分布情況。3D S.O.M.軟件將依據各圖像中不同點集合的位置,從而確定對應圖像的拍攝方位,并進一步將若干多角度圖像位置關系加以求解。相機定標操作在圖像導入3D S.O.M.軟件時自動加以完成。
??此外,各多角度圖像還需進行噪聲去除、畸變校正等基本圖像操作的預處理過程。
??結合前述錐體輪廓生成原理,3D S.O.M.軟件通過“輪廓逼近、頂點分析、三角劃分”(SAVANT)方法對模型加以建立。首先對所導入的若干多角度圖像加以掩飾(Mask)處理,選擇各圖片中目標物體所處位置,并將與目標物體無關的背景、定標墊區域等加以識別;依據各多角度圖像目標物體部分信息,獲取若干多邊形近似輪廓,并為每一個近似輪廓加以編號;隨后由多邊形輪廓計算得到三個頂點,并記錄各頂點信息;最后,利用三角格網,將完整表面進行劃分,從而勾勒出表面細節[8]。上述即為側影輪廓方法的“輪廓提取”與“頂點計算及可視外殼生成”步驟的實現。至此,生成了目標物體的外形輪廓模型,但并未包含其具體外表紋理信息。其中,以馬鈴薯為例,所得三角格網體積模型如圖3所示;所得外表面如圖4所示。
??此外,上述步驟中值得一提的是,在由三角格網生成初始表面(體積)后,還需對其加以體積優化、細化表面等進一步優化操作,方可得到最終的目標物體表面形態模型。
圖3 馬鈴薯三角格網外表面
圖4 馬鈴薯未紋理映射外表面
??最終,還需依據上述所得三維表面輪廓模型對應方位信息特點,結合不同多角度圖像方位信息,為三維模型表面進行紋理映射,從而使得模型具有更多可視化特征,更好描述實際物體特點。如圖5所示。
圖 5 馬鈴薯紋理映射外表面
??在執行自動紋理映射后,可能存在部分目標物體表面區域仍未有紋理或紋理出現明顯跳躍等現象;這多為多角度圖像拍攝時因部分角度未拍攝而出現相關信息丟失導致。針對這一問題,可借助對應圖像,面向相關紋理信息丟失方向進行紋理手動匹配,對細節部分的紋理信息加以補充。
??將側影輪廓方法具體操作流程整合,如圖6所示。
圖 6 側影輪廓方法流程
2 三維模型制作
2.1 馬鈴薯三維模型制作
??本部分以馬鈴薯為例,展示利用3D S.O.M.軟件,借助側影輪廓方法制作三維模型的具體流程。同時,對本文操作過程中出現或值得思考的問題、存在的不足等探討附于本文第三部分。
2.1.1 多角度圖像導入
??在3D S.O.M.軟件中,單擊“File”→“New Project”,在彈出的文件選擇窗口中選擇馬鈴薯多角度圖像,并選擇“打開”。若需打開已有模型文件,可在前述“File”中選擇“Open”。
2.1.2 圖像掩飾
??圖像掩飾可通過兩種方法進行。一是借助“Processing”菜單欄中“Mask All Images”模塊加以批量掩飾,二是直接進入單張圖像“Edit Masks”界面,借助“Auto Mask”模塊中按鈕加以單張掩飾。二者在具體掩飾效果方面并無差異,而若選擇后者,則會自動打開掩飾閾值控制條。下圖左側為第一種掩飾方法執行后界面,右側為第二種掩飾方法執行后界面。
??掩飾時需要注意,不要對目標物體頂部與底部圖像加以處理,以防止此類圖像掩飾后與其他正常掩飾圖像混雜并參與建模,從而導致結果錯誤或模型殘缺等情況。
??操作過程中,為防止軟件崩潰帶來的不便,可以及時對所做成果加以保存。保存默認格式為“.som”文件,該文件包含多角度圖像及其掩飾、建模等全部信息。
??在對自動掩飾結果進行完善過程中,可分別借助“Round Brush”與“Outline curve”對錯分區域加以修改。在個人實際操作中發現,兩種修改工具各有其利與弊——“Round Brush”方法對一些零散、細碎的錯分小區域的修改效率較高,但相對較為容易觸碰到無錯區域(即將土豆表面錯誤修改為非土豆表面);而針對后者,“Outline curve”方法通過圈畫區域的方式糾錯,對較大錯分區域的修改較為方便,但圈畫過程自身整體較為耗時,對于零星存在的錯分區域而言修改效率不如前者。下圖所示分別為“Round Brush”修改方法與“Outline curve”修改方法。
??分別對全部多角度圖像(頂部與底部圖像除外)進行同樣操作,完成所有掩飾工作。
2.1.3 表面生成與優化
??在3D S.O.M.軟件中,單擊“Processing”→“Generate Surface”,在彈出的選項窗口中選擇第一項“線框生成”。該界面共有三個選項,其次分別為“表面優化”與“細分表面配置”;在生成表面過程中,需要依次執行上述三個選項所對應步驟。
??其中,在生成原始外表面而未對其加以優化時,可以看到所得馬鈴薯表面具有明顯尖銳部分,如同“刀痕”;而在對表面進行優化后,則可以觀察到對應尖銳區域明顯緩和,突出部位被削弱。由此可以看出優化表面步驟對所得模型加以了適當平滑處理。
??下圖分別展示出優化前馬鈴薯表面兩處尖銳部分(前兩圖)及其優化后的結果(后兩圖)。
??此外,在執行表面生成或優化步驟時,可以明顯看到3D S.O.M.軟件在操作時視圖會隨之發生及時的改變,方便用戶實時根據建模過程中物體表面所發生的變化加以調整(如暫停或停止程序執行)。這一特點與我專業前期接觸到的許多相關軟件(ArcMap、ENVI等)有所不同。
??下圖即為執行表面優化時截圖;執行時可以明顯看到原本尖銳的區域轉為平滑。
??最終所得優化后的表面生成結果如下所示。可以看到,所得最終結果較之原始馬鈴薯外形十分接近,且其上尖銳部分得到充分平滑,視覺方面亦顯得尤為逼真。
2.1.4 紋理映射
??紋理映射即將原有目標物體表面顏色、形狀分布等特點映射至前述步驟所得表面模型。
??在3D S.O.M.軟件中,單擊“Processing”→“Generate Texture Maps”,配置相關參數后即可開始自動紋理映射。可以看到,在紋理映射操作執行過程中,馬鈴薯模型表面同樣實時發生著變化。其變化以區域為單元,每次紋理映射或調整往往是區域性整體發生變化(如馬鈴薯某一方向表面瞬間整體出現紋理)。由這一變化規律或許可以推測,3D S.O.M.軟件的紋理映射同樣是基于多角度圖像方位信息與前述所得模型已有位置信息,將某一方向拍攝圖片的紋理映射至該方向對應表面模型位置。另一方面,隨后的紋理手動匹配操作同樣可以證明這一可能性。
??紋理自動映射結束后,得到帶有表面紋理信息的馬鈴薯空間三維模型;但同時,由于受到拍攝角度等影響,馬鈴薯紋理在其頂部與底部具有一定殘缺或突變等,分別如下圖所示。
??顯然,需要對上述紋理錯誤加以解決。而如前所述,多角度圖像中頂部拍攝與底部拍攝對應圖片均未參與建模;其作用之一即為為自動生成紋理后的模型表面加以細節區域或遮擋區域的紋理優化。
??選中頂部或底部圖片,右鍵選擇“Align Images”選項,即可將此幅圖像與所得模型同時顯示于窗口中。當圖片中馬鈴薯與模型馬鈴薯在位置、角度等方面均一致時,即可確定自動紋理映射操作。
??同時,自動紋理映射模塊具有許多操作選項。關于這些操作選項的嘗試與結果對比,附于本文第三部分。
??操作結束,分別查看馬鈴薯模型頂部與底部紋理情況,可以看到其原本突兀的殘缺或突變均得以解決,整體效果良好。
2.1.5 模型檢查
??通過前述步驟,成功獲得具有表面紋理特征的馬鈴薯空間三維模型。此時,還可對模型加以進一步檢查,確定其表面是否具有明顯體積錯誤或紋理殘缺等問題。
??在檢查過程中,發現個人所得結果在馬鈴薯尖頭位置處存在一塊殘缺。找到對應角度的圖像,進行手動紋理匹配。所得結果雖有一定改善,但這一殘缺依然存在。個人認為這一問題可能是由于掩飾過程中個別區域過掩飾導致的。
2.1.6 模型定性描述
??結合所得模型,嘗試對其加以一定定性描述。
??外形方面,本文所得模型呈現出較為細長的橢圓形,整體較為規則(具體形狀會隨著模型觀察角度發生一定變化);橢圓長軸兩端所對應位置呈現出一端較粗、一端較細的分布特征,如下圖所示。上述特點與市面上常見馬鈴薯十分接近。
??表面紋理特征方面,所得模型整體顏色為土黃色,未觀察到青色、微綠色等不健康顏色,由這一角度表明其較為新鮮,可食用。其中一面多數區域顏色較淺(但亦有部分顏色較深的小區域),另一面相對則較深;表面分布有較多黑斑,多數黑斑面積較小,但亦有個別面積較大黑斑。長期潮濕土壤掩埋、薯類重茬導致的晚疫病等均可能造成馬鈴薯黑斑,屬于正常現象;而本模型對應馬鈴薯黑斑整體情況較好,但其小面積黑斑數量整體偏多,若食用還需加以注意。此外,由表面紋理、平滑等角度觀之,可以看到馬鈴薯在拍攝多角度圖像前經過一定清洗,并無土壤顆粒等雜物。
??下圖即為此馬鈴薯表面整體顏色偏暗、黑斑較多區域。
2.1.7 模型定量描述
??借助尺子工具對馬鈴薯模型尺寸加以定量描述。
??在3D S.O.M.軟件中,單擊“Model Tools”→“Measure Model”,即可通過鼠標選擇模型中待測量點,并自動求出其對應距離。
??此處需要注意的是,軟件自動距離測量依賴于所選用定標墊的大小。由于此馬鈴薯多角度圖像并不是我自己拍攝的,因此我也暫未無法獲取其拍攝時對應定標墊半徑大小,因此對于馬鈴薯模型的測量并未更改其單位長度。
??測量得到,在默認單位距離條件下,這一馬鈴薯空間三維模型的長度(對應橢圓形的長軸)為78.71mm,寬度(對應橢圓形的短軸)為37.41mm。當然,此處未確定單位距離的定量數值并不具有實際意義。
??在接下來的2.2部分,對個人自選物件進行空間三維建模后,所測定尺寸數據均已進行單位長度修改,具有實際意義。
2.2 圣誕老人蠟燭三維模型制作
??本部分以第二個范例——圣誕老人蠟燭為例,展示利用3D S.O.M.軟件,借助側影輪廓方法制作三維模型的全部具體流程。同時,對操作過程中出現的問題、存在的不足等探討附于本文第三部分。
??另一方面,由于在這一圣誕老人蠟燭模型建立前,已先通過馬鈴薯對模型制作、軟件使用等加以較為詳細的介紹,因此本部分內容較之前者描述相對簡潔明了。
2.2.1 多角度圖像獲取與導入
??借助側影輪廓方法建模時,其對物體的外形特征、拍攝光照與角度等具有一定的要求。在確定利用圣誕老人蠟燭進行空間三維建模前,曾分別多次嘗試不同物體(包括不同顏色、不同外形、不同大小等)、不同拍攝環境(包括臨近窗口、遠離窗口等)與不同光照條件(包括純日照、臺燈光源、手電筒光源等)等圖片的建模,并最終依據所得拍攝圖像效果、圖像掩飾效果等確定選用圣誕老人蠟燭所對應多角度圖像進行后續操作。
??其中,在選擇目標物體、選擇拍攝環境與實際拍攝過程中,具有較多需要注意之處。如在目標物體選擇上,需要注意物體不要過于細微或復雜,不具有或較少具有透明部分,且不可以過大導致遮擋大部分定標墊點集合信息;在拍攝環境選取上,需注意背景(由于在家中完成本文,暫時未找到類似幕布的背景)不可過于繁雜,尤其需要與目標物體顏色具有較強區分度,且朝向目標物體的光線應當充足;在拍攝過程中,務必控制目標物體與定標墊之間位置不發生相對移動,且圖片需要盡可能多地包含定標墊點集合。
??圣誕老人蠟燭的多角度圖像拍攝完畢后,將其導入軟件,如下圖(其中僅列出部分圖像)。
??下圖即為部分圣誕老人蠟燭對應圖像。
2.2.2 圖像掩飾
??依據本文2.1部分所示方法,對所導入的圣誕老人蠟燭多角度圖像進行圖像掩飾。
??或許是由于家中圖像拍攝效果不如實驗室專業儀器拍攝效果,個人自選物件的多角度圖像自動掩飾效果較之前述馬鈴薯等作物較差,圖像中往往具有較大面積區域需要通過“Round Brush”與“Outline curve”工具加以處理。其中,一副自動掩飾效果相對較好的圖像如下。
2.2.3 表面生成與優化
??圖像掩飾完畢后,運用前述方法對圣誕老人蠟燭圖像分別進行線框生成、表面優化與細分表面配置。
??考慮到本次自選物件的圖像拍攝與掩飾效果較之前述馬鈴薯略差,因此在執行表面生成與優化步驟時亦曾擔心所得效果可能不理想。而隨著程序執行,可以看到圣誕老人的模型逐步顯現。
??下圖為初始表面生成所得結果。
??下圖為表面生成并優化后所得結果。
??下圖為表面生成、優化并細分后所得結果。
??可以看到,上述初始表面已具有一定圣誕老人形態,但其表面尖銳處相對較多;優化后將一些明顯的尖銳或突變部分加以消除,但其依然存在一定數量的尖銳地帶;最終細分結果則完全將模型外表面的不合理溝壑加以平滑,從而進一步加深了圣誕老人的原有形態。
2.2.4 紋理映射
??依據前述方法,由多角度圖像(包括頂部與底部圖像)對圣誕老人蠟燭模型進行紋理映射。所得結果如下圖(其中將軟件View Model的背景顏色修改為藍紫色)。
2.2.5 模型定性描述
??依據所得模型最終結果,對其加以定性描述。
??在顏色方面,可以看到模型顏色十分鮮艷,其紅色外套、綠色手套、青色禮品袋、黃色臉頰與皮帶扣,以及白色胡須與頭發、黑色皮帶與皮鞋等都表現得十分清晰。同時可以注意到,圣誕老人外形反光程度較為明顯。究其原因,一是因為原始物件為蠟燭,自身原本反光較為明顯;二是由于在拍攝時個人開啟了手電筒作為光源,從而在照片中出現反光區域。而與此同時,在圣誕老人身體部位的側方與后方,部分區域出現顆粒狀、不均勻的顏色分布趨勢;這一問題一方面是由于該物件原本顏色分布就有不均勻情況,另一方面猜測亦與拍攝時光照條件有關。
??在外形方面,可以看到包括臉頰、胡須波動、衣擺在內的細節都被清晰刻畫出。但同樣在其身側(右側臂下,如下圖)出現一定模糊部分。針對這一模糊情況,個人認為是由于其位于胳膊下方,在多角度圖像中并未拍攝到具體信息;而底部圖像則由于其腳掌較大,導致遮擋視線,同樣不可以獲取到圣誕老人臂下的信息。
2.2.6 模型定量描述
??此處同樣借助尺子工具對圣誕老人模型加以定量描述。
??如前所述,在對模型進行測量時,需要首先明確所用定標墊的單位長度。通過測量,獲知我在拍攝圣誕老人圖像時對應定標墊半徑長度為83.2mm,因此先將這一數據導入軟件后進行測量。
??經過測量,可知圣誕老人蠟燭空間三維模型高(由頂部蠟燭芯至底部皮鞋)為82.07mm,寬(由左手禮品袋至右手)為52.81mm,厚(由前胸位置至后背位置)為41.07mm。
3 問題與思考
??前述操作部分已列舉部分實踐過程中自己的思考與理解,本部分則對前述未提及的問題加以探討。
3.1 底部圖片位置移動問題
??如前所述,多角度圖像在拍攝時,目標物體與定標墊之間不允許出現相對移動。而若需對物體底部加以拍攝,其往往需要改變物體位置(如將馬鈴薯原本朝下一面翻轉至朝上、將圣誕老人蠟燭倒置等)。這似乎看上去不滿足相對位置不移動的要求。
??針對這一問題,查閱相關資料可知,頂部與底部圖像并不屬于“多角度圖像”范疇,因此相對位置這一限定對其而言并無要求。此外,進一步思考還可以發現,在利用頂部與底部圖片進行紋理手動匹配時,我們需要手動調整圖像中目標物體與已有模型的相對位置——這一步在一些角度上可以認為是通過“人工”的方式進行了頂部或底部圖像的“定標”;而之所以要求前述多角度圖像相對位置不變正是由于軟件需要借助其與定標墊的位置關系加以自動進行定標。因此,便可以解釋底部圖片(包括頂部圖片)無需規定相對位置不變的原因。亦正因如此,在發現圣誕老人蠟燭無法自主倒立后,我嘗試用手協助其自主倒立,且軟件并未報錯。
3.2 頂部與底部圖片納入建模問題
??在使用馬鈴薯進行空間三維建模時,我嘗試不剔除頂部與底部圖片,而是將其納入建模圖片范圍;原本希望觀察這種操作可能會帶來何種錯誤結果,但發現軟件并未報錯,且生成的模型無異常。
??針對這一問題,目前個人認為,這是由于在掩飾過程中,我并未直接選擇所有圖像的批量掩飾,而是對其它角度的圖像分別加以掩飾——即最終參與建模的圖像分別為經過掩飾的多角度圖像與未經過掩飾的頂部與底部圖像。而建模時軟件可能直接不考慮未掩飾的頂部與底部圖像(或軟件亦考慮頂部與底部圖像,但由于其未經過掩飾,使得程序無法由這些圖片中獲取有用的信息),從而進一步得到了無錯誤的建模結果。
3.3 閾值對掩飾效果影響問題
??在調整掩飾閾值控制條時發現,有些情況下閾值大小與掩飾效果似乎并無絕對關系。例如,在實踐中,往往應當掩飾閾值控制條越大,過掩飾的可能性即越大(即目標物體被當作非目標物體的可能性越大),反之則反;而在一副馬鈴薯圖像中發現,增大控制條反而可以得到較好的馬鈴薯圖像掩飾結果,調小閾值控制條則使得馬鈴薯被過掩飾,僅剩余支撐架。如下所示,左圖對應較大閾值控制條,右圖為較小閾值控制條。
??針對這一問題,目前暫未完全清楚;但個人認為是由于算法、閾值數值與對應這幅馬鈴薯圖像像素分布特征綜合導致的。
3.4 欠掩飾與過掩飾熱點區域問題
??對若干多角度圖像執行自動掩飾,往往會出現欠掩飾與過掩飾現象。操作中發現,出現這類問題的區域往往是距離目標物件較近、與目標物件顏色較類似的區域,如下所示。
??由此可知,3D S.O.M.軟件的掩飾算法應當是借助于臨近像元之間的像素差異及其關系等加以實現的。
3.5 紋理手動匹配配置問題
??本文多次運用紋理手動匹配操作。在匹配前,需要調整對應圖像與所建立模型之間的位置關系,這一步驟對應了軟件中較多選項或配置。嘗試對這些選項加以嘗試。
??首先,在界面中存在“Guess Orientation”選項。結合其英文解釋與實際操作情況,個人判斷這一選項是對圖像與模型之間最有可能的位置關系加以遍歷,并保存最為接近的位置關系,從而方便用戶選擇二者最匹配的空間位置。而在圖像與模型位置相差較大時這一選項不可選。如下圖。
??而在二者位置相對較為吻合時,這一選項可選。如下圖。
??其次,這一步驟中還包括“Optimise Alignment”選項。同樣結合英文說明與操作實際情況,個人認為這一選項是為了方便用戶在將圖像與模型結合后,依據圖像對模型的幾何形狀加以完善。其所對應的三個選項可分別供用戶選擇更準確的幾何對象(用以手動匹配紋理的圖像更準確、已有的模型更準確、二者一樣準確),并在后期執行操作時依據用戶的選擇加以適當調整。
??如下圖,可以看出圖像中馬鈴薯的輪廓對原有馬鈴薯的幾何表示優于已有模型的表達,因此選用第一個選項;則后續紋理匹配過程中若遇到問題,可能將優先以圖像中的幾何輪廓為準。
??而這一選項下方的“Start”,則應為自動判斷圖像與模型幾何孰優孰劣的按鈕。如下圖,圖像與模型幾乎嚴絲合縫;其執行“Start”后程序自動選中了“the same”選項。
??此外,在配置完畢后,所彈出的窗口顯示可進行的操作不單單是紋理匹配,還可以同時對幾何表面加以完善,如下圖所示。這或許可以進一步表明上述“Optimise Alignment”選項對模型的優化意義。
3.6 多角度圖像橫、豎狀態問題
??在本文實踐過程中發現,由于借助手機拍攝多角度圖像,部分圖像可能會出現尺寸與其他圖片不符合的情況,尤其是圖像的橫、豎狀態不一致這一問題較為容易出現。
??先后嘗試修改照片屬性、利用Windows照片應用編輯等操作均無果。隨后發現,若在一個從未出現過異常尺寸圖像的Project中,選擇任意圖像并替換,可以使得替換圖像符合該Project原有尺寸,如下圖。
??將這幅原本橫向的圖片替換為一幅原本為豎向的圖像“test.jpg”,可以看到進入Project的“test.jpg”自動變為橫向。
??而若Project在創建后出現過異常尺寸圖像,則該方法無效。如下圖,其中已含有豎向圖像(打叉的三幅圖),則無論怎樣替換,進入的圖像均不再自動調整為橫向。
3.7 模型底部凸起問題
??在制作圣誕老人蠟燭模型完畢后,發現所得模型下部(圣誕老人腳部)具有略微凸出部分,如下圖紅線內部。
??個人認為,導致這一現象的原因是由于在拍攝多角度圖像過程中,對其身體下側角度的拍攝不夠充分,從而軟件對圣誕老人底部的建模更多是依據其側身角度的圖像加以完成,從而在底部出現一定偏差。
??針對這一問題,目前發現兩種解決方法。首先可以借助“Alignment”,直接依據其側身圖像手動對模型表面加以修改(如本文3.5部分);其次可以通過“Edit Geometry”模塊“Move clip plane”與“Clip model”相結合的方式加以底部凸出部分裁剪。
??首先,針對上述第一種解決方法,個人嘗試后發現利用圣誕老人蠟燭的側身圖像對模型表面加以調節后,其建模效果似乎確實有所改變,但這一效果非常不明顯——甚至懷疑其有所改變可能只是自己的心理作用導致;推測這一結果同樣是由于我的拍攝照片整體角度過高(俯角偏大)導致的。因此隨后嘗試利用上述第二種解決方法。但發現,這一解決方法較之第一種,確實可以明顯實現模型底部凸出部分的裁剪(如下圖);但由于裁剪操作執行后需利用“Clip model”功能將裁剪應用至模型,而點擊“Clip model”后其表面紋理將被自動抹去(若不點擊“Clip model”,會出現如下下圖所示情況),因此需要重新生成紋理;而在重新生成紋理的過程中,我的軟件總是會在操作執行5%左右時停止片刻,并隨后強制退出。盡管經過多次嘗試,而這一紋理映射時強制退出的錯誤均未解決。
??除上述操作之外,目前自己并未找到針對模型底部凸出部分的第三種解決方法。盡管這一問題并未得到良好解決,但自己加深了拍攝角度對側影輪廓方法影響的認識。其原理亦十分簡單,即多角度圖像的拍攝角度、照片數量與質量等都將對物體的輪廓產生影響;而物體的側影輪廓是這一三維模型重建方法的核心。因此,模型最終外表與多角度圖像拍攝情況密切相關。
參考文獻
[1] 欒悉道, 應龍, 謝毓湘, 等. 三維建模技術研究進展[J]. 計算機科學, 2008(02):208-210.
[2] 張建, 李宗南, 張楠, 等. 基于實測數據的作物三維信息獲取與重建方法研究進展[J]. 華中農業大學學報, 2013,32(04):126-134.
[3] 曹煜, 陳秀宏. 基于側影輪廓的圖像三維重建方法[J]. 計算機工程, 2012,38(05):224-226.
[4] 劉鋼, 彭群生, 鮑虎軍. 基于圖像建模技術研究綜述與展望[J]. 計算機輔助設計與圖形學學報, 2005(01):18-27.
[5] Laurentini A. The visual hull concept for silhouette based image understanding[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994,16(2):150-162.
[6] 鄭國威, 高滿屯, 董巧英. 基于平面鏡的攝像機內參數線性標定方法[J]. 計算機工程與應用, 2006(28):86-88.
[7] 谷月霞, 張維忠, 王曉燕, 等. 基于未標定圖像的三維重建算法[J]. 計算機工程, 2010,36(08):214-216.
[8] Baumberg A, Lyons A, Taylor R. 3D S.O.M.—A commercial software solution to 3D scanning[J]. Graphical Models, 2005,67(6):476-495.
總結
以上是生活随笔為你收集整理的物体三维模型的构建:3DSOM软件实现侧影轮廓方法的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 二进制安装Kubernetes(k8s)
 - 下一篇: windows11配置wsl2虚拟lin