??從本文開始宫盔,我們將基于空間三維建模方面的相關(guān)原理绰疤、基本操作與結(jié)果分析等,通過幾篇博客柑肴,對其加以盡可能詳細(xì)的介紹與實(shí)戰(zhàn)霞揉。
??那么我們首先從側(cè)影輪廓建模方法開始。本文我們將基于3D Software Object Modeler(3DSOM)軟件晰骑,對上述方法加以完整的操作适秩,并對結(jié)果加以分析。其中硕舆,關(guān)于3DSOM軟件的具體介紹大家可以參考這里(https://www.sciencedirect.com/science/article/abs/pii/S152407030500010X)或官方手冊(http://www.3dsom.com/userguide/)秽荞。
??本文所用到的數(shù)據(jù)包括馬鈴薯多角度圖片若干與圣誕老人蠟燭多角度圖片若干。其中抚官,馬鈴薯圖片數(shù)據(jù)并不是我自己拍攝的扬跋,而是他人拍攝后發(fā)給我的(也因此遺憾這一圖像數(shù)據(jù)集不能一并提供給大家);為方便大家理解三維建模的基本操作凌节,在對馬鈴薯加以建模后钦听,在本文的2.2部分,我們重新從拍照這一基本環(huán)節(jié)開始倍奢,選取一個圣誕老人蠟燭這一新的物件朴上,完整地走一遍三維建模流程,從而讓整個操作方法更加明了卒煞。所用圣誕老人蠟燭多角度圖片下載:
??鏈接:https://pan.baidu.com/s/1lByMi_-hdujt1dYOupla5A
??提取碼:csdn
??本文所用軟件為:3D Software Object Modeler(3DSOM)4.2.7.4軟件痪宰、Microsoft照片2020軟件。
1 背景知識
??通過建立正確模型對不同事物各種屬性加以描述和表現(xiàn),是現(xiàn)代科學(xué)探索事物本身發(fā)展酵镜、運(yùn)行規(guī)律的一個普遍而重要方法[1]碉碉。隨著計算機(jī)軟柴钻、硬件技術(shù)快速發(fā)展淮韭,三維立體建模作為一種于數(shù)字空間中對研究對象形狀、位置贴届、運(yùn)動等屬性加以再現(xiàn)的技術(shù)靠粪,逐漸在各領(lǐng)域研究中發(fā)揮重要作用。
??本文第一部分——原理部分毫蚓,由作物三維信息獲取方法這一角度展開占键,并著重綜合探討側(cè)影輪廓建模方法原理及其操作步驟。
1.1 三維信息獲取方法
??在接觸方式角度元潘,作物三維形態(tài)信息的獲取可分為接觸式(Contact-)方法與非接觸式(Non-contact-)方法畔乙。依據(jù)相關(guān)文獻(xiàn)[2],對上述兩種三維信息獲取方法加以討論翩概。
??接觸式方法依據(jù)采集過程不同牲距,進(jìn)一步可分為人工采集方法與三維數(shù)字化儀采集方法。其中钥庇,人工采集方法主要用于傳統(tǒng)作物幾何形態(tài)測量牍鞠,借助卷尺、量角器等工具评姨,以手工和肉眼觀測為主难述。其觀測方法的不精確導(dǎo)致研究效率低,所得結(jié)果受主觀因素影響較大吐句。目前胁后,人工采集方法使用較少,主要作為一種補(bǔ)充測量手段嗦枢。
??三維數(shù)字化儀采集主要指通過傳感器記錄择同、跟蹤探頭于三維空間中的位置,從而實(shí)現(xiàn)目標(biāo)物數(shù)字化净宵。其常用儀器包括坐標(biāo)測量機(jī)(Coordinate Measuring Machine敲才,CMM)、機(jī)械臂式三維掃描儀與電磁式三維數(shù)字化儀等择葡。三維數(shù)字化儀采集較之人工采集紧武,效率相對有所提高,但其仍具有操作復(fù)雜敏储、存取速度較慢與無法獲取目標(biāo)物表面紋理(探頭僅僅可獲得位置信息)等問題阻星。因此,其在三維建模領(lǐng)域亦未發(fā)揮主要作用。
??非接觸式方法則隨著計算機(jī)技術(shù)的飛速發(fā)展而產(chǎn)生妥箕。其依據(jù)測量原理不同滥酥,可進(jìn)一步分為主動式方法與被動式方法。其中畦幢,主動式方法借助儀器主動發(fā)出的可控輻射(激光坎吻、超聲波等,由這點(diǎn)看與主動遙感宇葱、被動遙感的定義有近似之處)瘦真,依據(jù)目標(biāo)物透射或反射特性,獲取其三維空間特征黍瞧。依據(jù)輻射源或計算原理诸尽,主動式方法可繼續(xù)分為脈沖測距法、結(jié)構(gòu)光與編碼光法與CT(Computed Tomography印颤,電子計算機(jī)斷層掃描)和MRI(Magnetic Resonance Imaging您机,核磁共振成像)法。
??被動式方法則無需主動面向目標(biāo)物發(fā)射輻射年局,而僅收集目標(biāo)物所反射的太陽輻射际看。其所需儀器相對較為簡單,往往直接由目標(biāo)物體對應(yīng)圖像(如本文中側(cè)影輪廓方法所需物體的多角度圖像)提取信息某宪,以建立空間三維模型仿村。依據(jù)提取信息基于的信息源,被動式方法可進(jìn)一步分為單幅圖像法兴喂、立體視覺法蔼囊、基于側(cè)影輪廓法、基于運(yùn)動圖像法與逐層切片恢復(fù)法等衣迷。
??上述各類方法或所需儀器從屬關(guān)系如圖1所示畏鼓。
圖1 作物三維信息獲取方法
1.2 側(cè)影輪廓方法原理及其流程
??前述各類作物三維形態(tài)信息獲取方法中,側(cè)影輪廓三維建模方法由于相對簡便易行壶谒,運(yùn)算速度快云矫,穩(wěn)定性高[2],因此廣泛應(yīng)用于農(nóng)業(yè)等領(lǐng)域汗菜。本文便采用這一信息獲取方法让禀。將此方法原理與具體操作流程結(jié)合,探討如下陨界。
??側(cè)影輪廓為物體投影在成像平面上圖像的外形線條[3]巡揍,是理解物體幾何形狀的一條重要線索[4]。當(dāng)以透視投影方式由多個視角觀察某一空間目標(biāo)對象時, 于各視角對應(yīng)畫面中均可得到一條該物體側(cè)影輪廓線菌瘪;此處側(cè)影輪廓線與對應(yīng)透視投影中心共同確定三維空間中一個一般形狀的錐體腮敌,而所觀察對象物體便位于這一立體錐體內(nèi)部紊婉。以此類推零蓉,不斷由不同方向增加對目標(biāo)物體的觀測視角數(shù)量丈积,便可使得各對應(yīng)錐體的外形不斷逼近對象物體表面鬼悠,從而對目標(biāo)物體外形特征加以空間三維的可視化。上述這一由錐體的交構(gòu)成的空間包絡(luò)被稱作物體的可見外殼(Visual Hull)[5]捌木。
??為獲取更加逼近實(shí)際物體表面的可見外殼油坝,使得三維建模效果更加準(zhǔn)確,往往需要由多種方向入手钮莲,獲取大量視角對應(yīng)圖像免钻;這即為側(cè)影輪廓方法的“多角度圖像獲取”步驟彼水。該步驟為本方法基礎(chǔ)數(shù)據(jù)來源崔拥,后期對目標(biāo)物體進(jìn)行三維建模所需信息均來源于上述多角度圖像。而多角度圖像在拍攝時需要通過旋轉(zhuǎn)物體或旋轉(zhuǎn)攝像機(jī)實(shí)現(xiàn)不同方位畫面的采集凤覆,從而改變目標(biāo)物體對應(yīng)視角的方向與俯仰角度链瓦;而后期進(jìn)行三維建模時需要將不同方向視角的圖像建立聯(lián)系并結(jié)合。因此盯桦,各圖像之間空間位置的關(guān)系顯得尤為重要慈俯。為實(shí)現(xiàn)這一重要步驟,需要對所獲取多角度圖像進(jìn)行“相機(jī)定標(biāo)”拥峦,從而確定各圖像對應(yīng)相機(jī)拍攝方位及其內(nèi)部相關(guān)參數(shù)[3]贴膘。
??相機(jī)定標(biāo)具有多種實(shí)現(xiàn)方法。鄭國威等[6]利用平面鏡反射性質(zhì)等理論略号,提出一種基于平面鏡的相機(jī)內(nèi)參標(biāo)定方法刑峡;曹煜等[3]對平面鏡定標(biāo)加以改進(jìn),提出一種基于成角度平面鏡裝置的圖像三維重建方法玄柠,通過幾何方法實(shí)現(xiàn)相機(jī)標(biāo)定突梦;使用已標(biāo)定的固定相機(jī)或標(biāo)記點(diǎn)等標(biāo)定裝置進(jìn)行輔助標(biāo)定同樣是一種常用的相機(jī)定標(biāo)方法[7]。本文即采取標(biāo)定裝置的輔助相機(jī)定標(biāo)方法羽利,利用定標(biāo)墊(Calibration Target)對各多角度圖像拍攝方位加以確定[8]宫患。定標(biāo)墊如圖2所示。
圖2 3D S.O.M.軟件定標(biāo)墊
??定標(biāo)墊由15組點(diǎn)集合構(gòu)成这弧,每個點(diǎn)集合包含四個點(diǎn)娃闲,呈放射狀排布;點(diǎn)分為大點(diǎn)和小點(diǎn)匾浪,不同大小分別代表不同得分皇帮;各點(diǎn)集合對應(yīng)大點(diǎn)或小點(diǎn)個數(shù)均不一致,亦即各點(diǎn)集合對應(yīng)得分不同户矢,得分不同進(jìn)而可以確定不同的點(diǎn)集合分布情況。3D S.O.M.軟件將依據(jù)各圖像中不同點(diǎn)集合的位置,從而確定對應(yīng)圖像的拍攝方位捌年,并進(jìn)一步將若干多角度圖像位置關(guān)系加以求解瓢娜。相機(jī)定標(biāo)操作在圖像導(dǎo)入3D S.O.M.軟件時自動加以完成。
??此外礼预,各多角度圖像還需進(jìn)行噪聲去除眠砾、畸變校正等基本圖像操作的預(yù)處理過程。
??結(jié)合前述錐體輪廓生成原理托酸,3D S.O.M.軟件通過“輪廓逼近褒颈、頂點(diǎn)分析、三角劃分”(SAVANT)方法對模型加以建立励堡。首先對所導(dǎo)入的若干多角度圖像加以掩飾(Mask)處理谷丸,選擇各圖片中目標(biāo)物體所處位置,并將與目標(biāo)物體無關(guān)的背景应结、定標(biāo)墊區(qū)域等加以識別刨疼;依據(jù)各多角度圖像目標(biāo)物體部分信息,獲取若干多邊形近似輪廓鹅龄,并為每一個近似輪廓加以編號揩慕;隨后由多邊形輪廓計算得到三個頂點(diǎn),并記錄各頂點(diǎn)信息扮休;最后迎卤,利用三角格網(wǎng),將完整表面進(jìn)行劃分玷坠,從而勾勒出表面細(xì)節(jié)[8]蜗搔。上述即為側(cè)影輪廓方法的“輪廓提取”與“頂點(diǎn)計算及可視外殼生成”步驟的實(shí)現(xiàn)。至此侨糟,生成了目標(biāo)物體的外形輪廓模型碍扔,但并未包含其具體外表紋理信息。其中秕重,以馬鈴薯為例不同,所得三角格網(wǎng)體積模型如圖3所示;所得外表面如圖4所示溶耘。
??此外二拐,上述步驟中值得一提的是,在由三角格網(wǎng)生成初始表面(體積)后凳兵,還需對其加以體積優(yōu)化百新、細(xì)化表面等進(jìn)一步優(yōu)化操作,方可得到最終的目標(biāo)物體表面形態(tài)模型庐扫。
圖3 馬鈴薯三角格網(wǎng)外表面
圖4 馬鈴薯未紋理映射外表面
??最終饭望,還需依據(jù)上述所得三維表面輪廓模型對應(yīng)方位信息特點(diǎn)仗哨,結(jié)合不同多角度圖像方位信息,為三維模型表面進(jìn)行紋理映射铅辞,從而使得模型具有更多可視化特征厌漂,更好描述實(shí)際物體特點(diǎn)。如圖5所示斟珊。
圖 5 馬鈴薯紋理映射外表面
??在執(zhí)行自動紋理映射后苇倡,可能存在部分目標(biāo)物體表面區(qū)域仍未有紋理或紋理出現(xiàn)明顯跳躍等現(xiàn)象;這多為多角度圖像拍攝時因部分角度未拍攝而出現(xiàn)相關(guān)信息丟失導(dǎo)致囤踩。針對這一問題旨椒,可借助對應(yīng)圖像,面向相關(guān)紋理信息丟失方向進(jìn)行紋理手動匹配堵漱,對細(xì)節(jié)部分的紋理信息加以補(bǔ)充综慎。
??將側(cè)影輪廓方法具體操作流程整合,如圖6所示怔锌。
圖 6 側(cè)影輪廓方法流程
2 三維模型制作
2.1 馬鈴薯三維模型制作
??本部分以馬鈴薯為例寥粹,展示利用3D S.O.M.軟件变过,借助側(cè)影輪廓方法制作三維模型的具體流程埃元。同時,對本文操作過程中出現(xiàn)或值得思考的問題媚狰、存在的不足等探討附于本文第三部分岛杀。
2.1.1 多角度圖像導(dǎo)入
??在3D S.O.M.軟件中,單擊“File”→“New Project”崭孤,在彈出的文件選擇窗口中選擇馬鈴薯多角度圖像类嗤,并選擇“打開”。若需打開已有模型文件辨宠,可在前述“File”中選擇“Open”遗锣。
2.1.2 圖像掩飾
??圖像掩飾可通過兩種方法進(jìn)行。一是借助“Processing”菜單欄中“Mask All Images”模塊加以批量掩飾嗤形,二是直接進(jìn)入單張圖像“Edit Masks”界面精偿,借助“Auto Mask”模塊中按鈕加以單張掩飾。二者在具體掩飾效果方面并無差異赋兵,而若選擇后者笔咽,則會自動打開掩飾閾值控制條。下圖左側(cè)為第一種掩飾方法執(zhí)行后界面霹期,右側(cè)為第二種掩飾方法執(zhí)行后界面叶组。
??掩飾時需要注意,不要對目標(biāo)物體頂部與底部圖像加以處理历造,以防止此類圖像掩飾后與其他正常掩飾圖像混雜并參與建模甩十,從而導(dǎo)致結(jié)果錯誤或模型殘缺等情況船庇。
??操作過程中,為防止軟件崩潰帶來的不便侣监,可以及時對所做成果加以保存溢十。保存默認(rèn)格式為“.som”文件,該文件包含多角度圖像及其掩飾达吞、建模等全部信息张弛。
??在對自動掩飾結(jié)果進(jìn)行完善過程中,可分別借助“Round Brush”與“Outline curve”對錯分區(qū)域加以修改酪劫。在個人實(shí)際操作中發(fā)現(xiàn)吞鸭,兩種修改工具各有其利與弊——“Round Brush”方法對一些零散、細(xì)碎的錯分小區(qū)域的修改效率較高覆糟,但相對較為容易觸碰到無錯區(qū)域(即將土豆表面錯誤修改為非土豆表面)刻剥;而針對后者,“Outline curve”方法通過圈畫區(qū)域的方式糾錯滩字,對較大錯分區(qū)域的修改較為方便造虏,但圈畫過程自身整體較為耗時,對于零星存在的錯分區(qū)域而言修改效率不如前者麦箍。下圖所示分別為“Round Brush”修改方法與“Outline curve”修改方法漓藕。
??分別對全部多角度圖像(頂部與底部圖像除外)進(jìn)行同樣操作,完成所有掩飾工作挟裂。
2.1.3 表面生成與優(yōu)化
??在3D S.O.M.軟件中享钞,單擊“Processing”→“Generate Surface”,在彈出的選項窗口中選擇第一項“線框生成”诀蓉。該界面共有三個選項栗竖,其次分別為“表面優(yōu)化”與“細(xì)分表面配置”;在生成表面過程中渠啤,需要依次執(zhí)行上述三個選項所對應(yīng)步驟狐肢。
??其中,在生成原始外表面而未對其加以優(yōu)化時沥曹,可以看到所得馬鈴薯表面具有明顯尖銳部分份名,如同“刀痕”;而在對表面進(jìn)行優(yōu)化后架专,則可以觀察到對應(yīng)尖銳區(qū)域明顯緩和同窘,突出部位被削弱。由此可以看出優(yōu)化表面步驟對所得模型加以了適當(dāng)平滑處理部脚。
??下圖分別展示出優(yōu)化前馬鈴薯表面兩處尖銳部分(前兩圖)及其優(yōu)化后的結(jié)果(后兩圖)想邦。
??此外,在執(zhí)行表面生成或優(yōu)化步驟時委刘,可以明顯看到3D S.O.M.軟件在操作時視圖會隨之發(fā)生及時的改變丧没,方便用戶實(shí)時根據(jù)建模過程中物體表面所發(fā)生的變化加以調(diào)整(如暫陀ソ罚或停止程序執(zhí)行)。這一特點(diǎn)與我專業(yè)前期接觸到的許多相關(guān)軟件(ArcMap呕童、ENVI等)有所不同漆际。
??下圖即為執(zhí)行表面優(yōu)化時截圖;執(zhí)行時可以明顯看到原本尖銳的區(qū)域轉(zhuǎn)為平滑夺饲。
??最終所得優(yōu)化后的表面生成結(jié)果如下所示奸汇。可以看到往声,所得最終結(jié)果較之原始馬鈴薯外形十分接近擂找,且其上尖銳部分得到充分平滑,視覺方面亦顯得尤為逼真浩销。
2.1.4 紋理映射
??紋理映射即將原有目標(biāo)物體表面顏色贯涎、形狀分布等特點(diǎn)映射至前述步驟所得表面模型。
??在3D S.O.M.軟件中慢洋,單擊“Processing”→“Generate Texture Maps”塘雳,配置相關(guān)參數(shù)后即可開始自動紋理映射∑粘铮可以看到败明,在紋理映射操作執(zhí)行過程中,馬鈴薯模型表面同樣實(shí)時發(fā)生著變化斑芜。其變化以區(qū)域為單元肩刃,每次紋理映射或調(diào)整往往是區(qū)域性整體發(fā)生變化(如馬鈴薯某一方向表面瞬間整體出現(xiàn)紋理)。由這一變化規(guī)律或許可以推測杏头,3D S.O.M.軟件的紋理映射同樣是基于多角度圖像方位信息與前述所得模型已有位置信息,將某一方向拍攝圖片的紋理映射至該方向?qū)?yīng)表面模型位置沸呐。另一方面醇王,隨后的紋理手動匹配操作同樣可以證明這一可能性。
??紋理自動映射結(jié)束后崭添,得到帶有表面紋理信息的馬鈴薯空間三維模型寓娩;但同時,由于受到拍攝角度等影響呼渣,馬鈴薯紋理在其頂部與底部具有一定殘缺或突變等棘伴,分別如下圖所示。
??顯然屁置,需要對上述紋理錯誤加以解決焊夸。而如前所述,多角度圖像中頂部拍攝與底部拍攝對應(yīng)圖片均未參與建模蓝角;其作用之一即為為自動生成紋理后的模型表面加以細(xì)節(jié)區(qū)域或遮擋區(qū)域的紋理優(yōu)化阱穗。
??選中頂部或底部圖片饭冬,右鍵選擇“Align Images”選項,即可將此幅圖像與所得模型同時顯示于窗口中揪阶。當(dāng)圖片中馬鈴薯與模型馬鈴薯在位置昌抠、角度等方面均一致時,即可確定自動紋理映射操作鲁僚。
??同時炊苫,自動紋理映射模塊具有許多操作選項。關(guān)于這些操作選項的嘗試與結(jié)果對比冰沙,附于本文第三部分劝评。
??操作結(jié)束,分別查看馬鈴薯模型頂部與底部紋理情況倦淀,可以看到其原本突兀的殘缺或突變均得以解決蒋畜,整體效果良好。
2.1.5 模型檢查
??通過前述步驟撞叽,成功獲得具有表面紋理特征的馬鈴薯空間三維模型姻成。此時,還可對模型加以進(jìn)一步檢查愿棋,確定其表面是否具有明顯體積錯誤或紋理殘缺等問題科展。
??在檢查過程中,發(fā)現(xiàn)個人所得結(jié)果在馬鈴薯尖頭位置處存在一塊殘缺糠雨。找到對應(yīng)角度的圖像才睹,進(jìn)行手動紋理匹配。所得結(jié)果雖有一定改善甘邀,但這一殘缺依然存在琅攘。個人認(rèn)為這一問題可能是由于掩飾過程中個別區(qū)域過掩飾導(dǎo)致的。
2.1.6 模型定性描述
??結(jié)合所得模型松邪,嘗試對其加以一定定性描述坞琴。
??外形方面,本文所得模型呈現(xiàn)出較為細(xì)長的橢圓形逗抑,整體較為規(guī)則(具體形狀會隨著模型觀察角度發(fā)生一定變化)剧辐;橢圓長軸兩端所對應(yīng)位置呈現(xiàn)出一端較粗、一端較細(xì)的分布特征邮府,如下圖所示荧关。上述特點(diǎn)與市面上常見馬鈴薯十分接近。
??表面紋理特征方面褂傀,所得模型整體顏色為土黃色忍啤,未觀察到青色、微綠色等不健康顏色紊服,由這一角度表明其較為新鮮檀轨,可食用胸竞。其中一面多數(shù)區(qū)域顏色較淺(但亦有部分顏色較深的小區(qū)域),另一面相對則較深参萄;表面分布有較多黑斑卫枝,多數(shù)黑斑面積較小,但亦有個別面積較大黑斑讹挎。長期潮濕土壤掩埋校赤、薯類重茬導(dǎo)致的晚疫病等均可能造成馬鈴薯黑斑,屬于正惩怖#現(xiàn)象马篮;而本模型對應(yīng)馬鈴薯黑斑整體情況較好,但其小面積黑斑數(shù)量整體偏多怜奖,若食用還需加以注意浑测。此外,由表面紋理歪玲、平滑等角度觀之迁央,可以看到馬鈴薯在拍攝多角度圖像前經(jīng)過一定清洗,并無土壤顆粒等雜物滥崩。
??下圖即為此馬鈴薯表面整體顏色偏暗岖圈、黑斑較多區(qū)域。
2.1.7 模型定量描述
??借助尺子工具對馬鈴薯模型尺寸加以定量描述钙皮。
??在3D S.O.M.軟件中蜂科,單擊“Model Tools”→“Measure Model”,即可通過鼠標(biāo)選擇模型中待測量點(diǎn)短条,并自動求出其對應(yīng)距離导匣。
??此處需要注意的是,軟件自動距離測量依賴于所選用定標(biāo)墊的大小慌烧。由于此馬鈴薯多角度圖像并不是我自己拍攝的逐抑,因此我也暫未無法獲取其拍攝時對應(yīng)定標(biāo)墊半徑大小,因此對于馬鈴薯模型的測量并未更改其單位長度屹蚊。
??測量得到,在默認(rèn)單位距離條件下进每,這一馬鈴薯空間三維模型的長度(對應(yīng)橢圓形的長軸)為78.71mm汹粤,寬度(對應(yīng)橢圓形的短軸)為37.41mm。當(dāng)然田晚,此處未確定單位距離的定量數(shù)值并不具有實(shí)際意義嘱兼。
??在接下來的2.2部分,對個人自選物件進(jìn)行空間三維建模后贤徒,所測定尺寸數(shù)據(jù)均已進(jìn)行單位長度修改芹壕,具有實(shí)際意義汇四。
2.2 圣誕老人蠟燭三維模型制作
??本部分以第二個范例——圣誕老人蠟燭為例,展示利用3D S.O.M.軟件踢涌,借助側(cè)影輪廓方法制作三維模型的全部具體流程通孽。同時,對操作過程中出現(xiàn)的問題睁壁、存在的不足等探討附于本文第三部分背苦。
??另一方面,由于在這一圣誕老人蠟燭模型建立前潘明,已先通過馬鈴薯對模型制作行剂、軟件使用等加以較為詳細(xì)的介紹,因此本部分內(nèi)容較之前者描述相對簡潔明了钳降。
2.2.1 多角度圖像獲取與導(dǎo)入
??借助側(cè)影輪廓方法建模時厚宰,其對物體的外形特征、拍攝光照與角度等具有一定的要求遂填。在確定利用圣誕老人蠟燭進(jìn)行空間三維建模前铲觉,曾分別多次嘗試不同物體(包括不同顏色、不同外形城菊、不同大小等)备燃、不同拍攝環(huán)境(包括臨近窗口、遠(yuǎn)離窗口等)與不同光照條件(包括純?nèi)照樟杌!⑴_燈光源并齐、手電筒光源等)等圖片的建模,并最終依據(jù)所得拍攝圖像效果客税、圖像掩飾效果等確定選用圣誕老人蠟燭所對應(yīng)多角度圖像進(jìn)行后續(xù)操作况褪。
??其中,在選擇目標(biāo)物體更耻、選擇拍攝環(huán)境與實(shí)際拍攝過程中测垛,具有較多需要注意之處。如在目標(biāo)物體選擇上秧均,需要注意物體不要過于細(xì)微或復(fù)雜食侮,不具有或較少具有透明部分,且不可以過大導(dǎo)致遮擋大部分定標(biāo)墊點(diǎn)集合信息目胡;在拍攝環(huán)境選取上锯七,需注意背景(由于在家中完成本文,暫時未找到類似幕布的背景)不可過于繁雜誉己,尤其需要與目標(biāo)物體顏色具有較強(qiáng)區(qū)分度眉尸,且朝向目標(biāo)物體的光線應(yīng)當(dāng)充足;在拍攝過程中,務(wù)必控制目標(biāo)物體與定標(biāo)墊之間位置不發(fā)生相對移動噪猾,且圖片需要盡可能多地包含定標(biāo)墊點(diǎn)集合霉祸。
??圣誕老人蠟燭的多角度圖像拍攝完畢后,將其導(dǎo)入軟件袱蜡,如下圖(其中僅列出部分圖像)丝蹭。
??下圖即為部分圣誕老人蠟燭對應(yīng)圖像。
2.2.2 圖像掩飾
??依據(jù)本文2.1部分所示方法戒劫,對所導(dǎo)入的圣誕老人蠟燭多角度圖像進(jìn)行圖像掩飾半夷。
??或許是由于家中圖像拍攝效果不如實(shí)驗室專業(yè)儀器拍攝效果,個人自選物件的多角度圖像自動掩飾效果較之前述馬鈴薯等作物較差迅细,圖像中往往具有較大面積區(qū)域需要通過“Round Brush”與“Outline curve”工具加以處理巫橄。其中,一副自動掩飾效果相對較好的圖像如下茵典。
2.2.3 表面生成與優(yōu)化
??圖像掩飾完畢后湘换,運(yùn)用前述方法對圣誕老人蠟燭圖像分別進(jìn)行線框生成、表面優(yōu)化與細(xì)分表面配置统阿。
??考慮到本次自選物件的圖像拍攝與掩飾效果較之前述馬鈴薯略差彩倚,因此在執(zhí)行表面生成與優(yōu)化步驟時亦曾擔(dān)心所得效果可能不理想。而隨著程序執(zhí)行扶平,可以看到圣誕老人的模型逐步顯現(xiàn)帆离。
??下圖為初始表面生成所得結(jié)果。
??下圖為表面生成并優(yōu)化后所得結(jié)果结澄。
??下圖為表面生成哥谷、優(yōu)化并細(xì)分后所得結(jié)果。
??可以看到麻献,上述初始表面已具有一定圣誕老人形態(tài)们妥,但其表面尖銳處相對較多;優(yōu)化后將一些明顯的尖銳或突變部分加以消除勉吻,但其依然存在一定數(shù)量的尖銳地帶监婶;最終細(xì)分結(jié)果則完全將模型外表面的不合理溝壑加以平滑,從而進(jìn)一步加深了圣誕老人的原有形態(tài)齿桃。
2.2.4 紋理映射
??依據(jù)前述方法惑惶,由多角度圖像(包括頂部與底部圖像)對圣誕老人蠟燭模型進(jìn)行紋理映射。所得結(jié)果如下圖(其中將軟件View Model的背景顏色修改為藍(lán)紫色)短纵。
2.2.5 模型定性描述
??依據(jù)所得模型最終結(jié)果集惋,對其加以定性描述。
??在顏色方面踩娘,可以看到模型顏色十分鮮艷,其紅色外套、綠色手套养渴、青色禮品袋雷绢、黃色臉頰與皮帶扣,以及白色胡須與頭發(fā)理卑、黑色皮帶與皮鞋等都表現(xiàn)得十分清晰翘紊。同時可以注意到,圣誕老人外形反光程度較為明顯藐唠。究其原因帆疟,一是因為原始物件為蠟燭,自身原本反光較為明顯宇立;二是由于在拍攝時個人開啟了手電筒作為光源踪宠,從而在照片中出現(xiàn)反光區(qū)域。而于此同時妈嘹,在圣誕老人身體部位的側(cè)方與后方柳琢,部分區(qū)域出現(xiàn)顆粒狀、不均勻的顏色分布趨勢润脸;這一問題一方面是由于該物件原本顏色分布就有不均勻情況柬脸,另一方面猜測亦與拍攝時光照條件有關(guān)。
??在外形方面毙驯,可以看到包括臉頰倒堕、胡須波動、衣擺在內(nèi)的細(xì)節(jié)都被清晰刻畫出爆价。但同樣在其身側(cè)(右側(cè)臂下垦巴,如下圖)出現(xiàn)一定模糊部分。針對這一模糊情況允坚,個人認(rèn)為是由于其位于胳膊下方魂那,在多角度圖像中并未拍攝到具體信息;而底部圖像則由于其腳掌較大稠项,導(dǎo)致遮擋視線涯雅,同樣不可以獲取到圣誕老人臂下的信息。
2.2.6 模型定量描述
??此處同樣借助尺子工具對圣誕老人模型加以定量描述展运。
??如前所述活逆,在對模型進(jìn)行測量時,需要首先明確所用定標(biāo)墊的單位長度。通過測量,獲知我在拍攝圣誕老人圖像時對應(yīng)定標(biāo)墊半徑長度為83.2mm姐浮,因此先將這一數(shù)據(jù)導(dǎo)入軟件后進(jìn)行測量瘟仿。
??經(jīng)過測量,可知圣誕老人蠟燭空間三維模型高(由頂部蠟燭芯至底部皮鞋)為82.07mm屈尼,寬(由左手禮品袋至右手)為52.81mm矮湘,厚(由前胸位置至后背位置)為41.07mm览露。
3 問題與思考
??前述操作部分已列舉部分實(shí)踐過程中自己的思考與理解所灸,本部分則對前述未提及的問題加以探討丽惶。
3.1 底部圖片位置移動問題
??如前所述,多角度圖像在拍攝時爬立,目標(biāo)物體與定標(biāo)墊之間不允許出現(xiàn)相對移動钾唬。而若需對物體底部加以拍攝,其往往需要改變物體位置(如將馬鈴薯原本朝下一面翻轉(zhuǎn)至朝上侠驯、將圣誕老人蠟燭倒置等)抡秆。這似乎看上去不滿足相對位置不移動的要求。
??針對這一問題吟策,查閱相關(guān)資料可知儒士,頂部與底部圖像并不屬于“多角度圖像”范疇,因此相對位置這一限定對其而言并無要求踊挠。此外乍桂,進(jìn)一步思考還可以發(fā)現(xiàn),在利用頂部與底部圖片進(jìn)行紋理手動匹配時效床,我們需要手動調(diào)整圖像中目標(biāo)物體與已有模型的相對位置——這一步在一些角度上可以認(rèn)為是通過“人工”的方式進(jìn)行了頂部或底部圖像的“定標(biāo)”睹酌;而之所以要求前述多角度圖像相對位置不變正是由于軟件需要借助其與定標(biāo)墊的位置關(guān)系加以自動進(jìn)行定標(biāo)。因此剩檀,便可以解釋底部圖片(包括頂部圖片)無需規(guī)定相對位置不變的原因憋沿。亦正因如此,在發(fā)現(xiàn)圣誕老人蠟燭無法自主倒立后沪猴,我嘗試用手協(xié)助其自主倒立辐啄,且軟件并未報錯。
3.2 頂部與底部圖片納入建模問題
??在使用馬鈴薯進(jìn)行空間三維建模時运嗜,我嘗試不剔除頂部與底部圖片壶辜,而是將其納入建模圖片范圍;原本希望觀察這種操作可能會帶來何種錯誤結(jié)果担租,但發(fā)現(xiàn)軟件并未報錯砸民,且生成的模型無異常。
??針對這一問題奋救,目前個人認(rèn)為岭参,這是由于在掩飾過程中,我并未直接選擇所有圖像的批量掩飾尝艘,而是對其它角度的圖像分別加以掩飾——即最終參與建模的圖像分別為經(jīng)過掩飾的多角度圖像與未經(jīng)過掩飾的頂部與底部圖像演侯。而建模時軟件可能直接不考慮未掩飾的頂部與底部圖像(或軟件亦考慮頂部與底部圖像,但由于其未經(jīng)過掩飾背亥,使得程序無法由這些圖片中獲取有用的信息)秒际,從而進(jìn)一步得到了無錯誤的建模結(jié)果悬赏。
3.3 閾值對掩飾效果影響問題
??在調(diào)整掩飾閾值控制條時發(fā)現(xiàn),有些情況下閾值大小與掩飾效果似乎并無絕對關(guān)系程癌。例如舷嗡,在實(shí)踐中,往往應(yīng)當(dāng)掩飾閾值控制條越大嵌莉,過掩飾的可能性即越大(即目標(biāo)物體被當(dāng)作非目標(biāo)物體的可能性越大),反之則反捻脖;而在一副馬鈴薯圖像中發(fā)現(xiàn)锐峭,增大控制條反而可以得到較好的馬鈴薯圖像掩飾結(jié)果,調(diào)小閾值控制條則使得馬鈴薯被過掩飾可婶,僅剩余支撐架沿癞。如下所示,左圖對應(yīng)較大閾值控制條矛渴,右圖為較小閾值控制條椎扬。
??針對這一問題,目前暫未完全清楚具温;但個人認(rèn)為是由于算法蚕涤、閾值數(shù)值與對應(yīng)這幅馬鈴薯圖像像素分布特征綜合導(dǎo)致的。
3.4 欠掩飾與過掩飾熱點(diǎn)區(qū)域問題
??對若干多角度圖像執(zhí)行自動掩飾铣猩,往往會出現(xiàn)欠掩飾與過掩飾現(xiàn)象揖铜。操作中發(fā)現(xiàn),出現(xiàn)這類問題的區(qū)域往往是距離目標(biāo)物件較近达皿、與目標(biāo)物件顏色較類似的區(qū)域天吓,如下所示。
??由此可知峦椰,3D S.O.M.軟件的掩飾算法應(yīng)當(dāng)是借助于臨近像元之間的像素差異及其關(guān)系等加以實(shí)現(xiàn)的龄寞。
3.5 紋理手動匹配配置問題
??本文多次運(yùn)用紋理手動匹配操作。在匹配前汤功,需要調(diào)整對應(yīng)圖像與所建立模型之間的位置關(guān)系物邑,這一步驟對應(yīng)了軟件中較多選項或配置。嘗試對這些選項加以嘗試冤竹。
??首先拂封,在界面中存在“Guess Orientation”選項。結(jié)合其英文解釋與實(shí)際操作情況鹦蠕,個人判斷這一選項是對圖像與模型之間最有可能的位置關(guān)系加以遍歷冒签,并保存最為接近的位置關(guān)系,從而方便用戶選擇二者最匹配的空間位置钟病。而在圖像與模型位置相差較大時這一選項不可選萧恕。如下圖刚梭。
??而在二者位置相對較為吻合時,這一選項可選票唆。如下圖朴读。
??其次,這一步驟中還包括“Optimise Alignment”選項走趋。同樣結(jié)合英文說明與操作實(shí)際情況衅金,個人認(rèn)為這一選項是為了方便用戶在將圖像與模型結(jié)合后,依據(jù)圖像對模型的幾何形狀加以完善簿煌。其所對應(yīng)的三個選項可分別供用戶選擇更準(zhǔn)確的幾何對象(用以手動匹配紋理的圖像更準(zhǔn)確氮唯、已有的模型更準(zhǔn)確、二者一樣準(zhǔn)確)姨伟,并在后期執(zhí)行操作時依據(jù)用戶的選擇加以適當(dāng)調(diào)整惩琉。
??如下圖,可以看出圖像中馬鈴薯的輪廓對原有馬鈴薯的幾何表示優(yōu)于已有模型的表達(dá)夺荒,因此選用第一個選項瞒渠;則后續(xù)紋理匹配過程中若遇到問題,可能將優(yōu)先以圖像中的幾何輪廓為準(zhǔn)技扼。
??而這一選項下方的“Start”伍玖,則應(yīng)為自動判斷圖像與模型幾何孰優(yōu)孰劣的按鈕。如下圖淮摔,圖像與模型幾乎嚴(yán)絲合縫私沮;其執(zhí)行“Start”后程序自動選中了“the same”選項。
??此外和橙,在配置完畢后仔燕,所彈出的窗口顯示可進(jìn)行的操作不單單是紋理匹配,還可以同時對幾何表面加以完善魔招,如下圖所示晰搀。這或許可以進(jìn)一步表明上述“Optimise Alignment”選項對模型的優(yōu)化意義。
3.6 多角度圖像橫办斑、豎狀態(tài)問題
??在本文實(shí)踐過程中發(fā)現(xiàn)外恕,由于借助手機(jī)拍攝多角度圖像,部分圖像可能會出現(xiàn)尺寸與其他圖片不符合的情況乡翅,尤其是圖像的橫鳞疲、豎狀態(tài)不一致這一問題較為容易出現(xiàn)。
??先后嘗試修改照片屬性蠕蚜、利用Windows照片應(yīng)用編輯等操作均無果尚洽。隨后發(fā)現(xiàn),若在一個從未出現(xiàn)過異常尺寸圖像的Project中靶累,選擇任意圖像并替換腺毫,可以使得替換圖像符合該P(yáng)roject原有尺寸癣疟,如下圖。
??將這幅原本橫向的圖片替換為一幅原本為豎向的圖像“test.jpg”潮酒,可以看到進(jìn)入Project的“test.jpg”自動變?yōu)闄M向睛挚。
??而若Project在創(chuàng)建后出現(xiàn)過異常尺寸圖像,則該方法無效急黎。如下圖扎狱,其中已含有豎向圖像(打叉的三幅圖),則無論怎樣替換叁熔,進(jìn)入的圖像均不再自動調(diào)整為橫向委乌。
3.7 模型底部凸起問題
??在制作圣誕老人蠟燭模型完畢后,發(fā)現(xiàn)所得模型下部(圣誕老人腳部)具有略微凸出部分荣回,如下圖紅線內(nèi)部。
??個人認(rèn)為戈咳,導(dǎo)致這一現(xiàn)象的原因是由于在拍攝多角度圖像過程中心软,對其身體下側(cè)角度的拍攝不夠充分,從而軟件對圣誕老人底部的建模更多是依據(jù)其側(cè)身角度的圖像加以完成著蛙,從而在底部出現(xiàn)一定偏差删铃。
??針對這一問題,目前發(fā)現(xiàn)兩種解決方法踏堡。首先可以借助“Alignment”猎唁,直接依據(jù)其側(cè)身圖像手動對模型表面加以修改(如本文3.5部分);其次可以通過“Edit Geometry”模塊“Move clip plane”與“Clip model”相結(jié)合的方式加以底部凸出部分裁剪顷蟆。
??首先诫隅,針對上述第一種解決方法,個人嘗試后發(fā)現(xiàn)利用圣誕老人蠟燭的側(cè)身圖像對模型表面加以調(diào)節(jié)后帐偎,其建模效果似乎確實(shí)有所改變逐纬,但這一效果非常不明顯——甚至懷疑其有所改變可能只是自己的心理作用導(dǎo)致;推測這一結(jié)果同樣是由于我的拍攝照片整體角度過高(俯角偏大)導(dǎo)致的削樊。因此隨后嘗試?yán)蒙鲜龅诙N解決方法豁生。但發(fā)現(xiàn),這一解決方法較之第一種漫贞,確實(shí)可以明顯實(shí)現(xiàn)模型底部凸出部分的裁剪(如下頁首圖)甸箱;但由于裁剪操作執(zhí)行后需利用“Clip model”功能將裁剪應(yīng)用至模型,而點(diǎn)擊“Clip model”后其表面紋理將被自動抹去(若不點(diǎn)擊“Clip model”迅脐,會出現(xiàn)如下頁第二幅圖所示情況)芍殖,因此需要重新生成紋理;而在重新生成紋理的過程中仪际,我的軟件總是會在操作執(zhí)行5%左右時停止片刻围小,并隨后強(qiáng)制退出昵骤。盡管經(jīng)過多次嘗試,而這一紋理映射時強(qiáng)制退出的錯誤均未解決肯适。
??除上述操作之外变秦,目前自己并未找到針對模型底部凸出部分的第三種解決方法。盡管這一問題并未得到良好解決框舔,但自己加深了拍攝角度對側(cè)影輪廓方法影響的認(rèn)識蹦玫。其原理亦十分簡單,即多角度圖像的拍攝角度刘绣、照片數(shù)量與質(zhì)量等都將對物體的輪廓產(chǎn)生影響樱溉;而物體的側(cè)影輪廓是這一三維模型重建方法的核心。因此纬凤,模型最終外表與多角度圖像拍攝情況密切相關(guān)福贞。
參考文獻(xiàn)
[1] 欒悉道, 應(yīng)龍, 謝毓湘, 等. 三維建模技術(shù)研究進(jìn)展[J]. 計算機(jī)科學(xué), 2008(02):208-210.
[2] 張建, 李宗南, 張楠, 等. 基于實(shí)測數(shù)據(jù)的作物三維信息獲取與重建方法研究進(jìn)展[J]. 華中農(nóng)業(yè)大學(xué)學(xué)報, 2013,32(04):126-134.
[3] 曹煜, 陳秀宏. 基于側(cè)影輪廓的圖像三維重建方法[J]. 計算機(jī)工程, 2012,38(05):224-226.
[4] 劉鋼, 彭群生, 鮑虎軍. 基于圖像建模技術(shù)研究綜述與展望[J]. 計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報, 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ī)內(nèi)參數(shù)線性標(biāo)定方法[J]. 計算機(jī)工程與應(yīng)用, 2006(28):86-88.
[7] 谷月霞, 張維忠, 王曉燕, 等. 基于未標(biāo)定圖像的三維重建算法[J]. 計算機(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.