徐明亮, 段景輝
(三亞學(xué)院 a. 藝術(shù)學(xué)院, b. 信息與智能工程學(xué)院, 海南 三亞 572000)
在進(jìn)行工業(yè)設(shè)計(jì)時(shí),設(shè)計(jì)師往往都會(huì)將其自身的創(chuàng)意與設(shè)計(jì)理念通過繪制產(chǎn)品草圖與效果圖來實(shí)現(xiàn)[1].CAD技術(shù)出現(xiàn)后,工業(yè)設(shè)計(jì)可直接通過三維造型實(shí)現(xiàn).然而大部分優(yōu)秀的設(shè)計(jì)師更加喜歡通過手繪的方式畫出產(chǎn)品效果圖[2].傳統(tǒng)CAD系統(tǒng)僅可完成建模,無法將創(chuàng)意可視化,導(dǎo)致繪制產(chǎn)品效果圖與自身創(chuàng)意不符.計(jì)算機(jī)圖像技術(shù)的發(fā)展,令計(jì)算機(jī)識(shí)別草圖構(gòu)建三維模型成為可能.
目前,常用的三維模型重建方法主要有基于RHINO的模型重建方法[3]、基于非量測相機(jī)圖像的設(shè)計(jì)圖模型三維重建方法[4]和自由形態(tài)建模方法[5]等,然而上述方法均需對(duì)深度坐標(biāo)進(jìn)行計(jì)算,建模周期長、成本高,實(shí)現(xiàn)過程復(fù)雜.本文在計(jì)算機(jī)輔助工業(yè)設(shè)計(jì)(CAID)軟件設(shè)計(jì)的基礎(chǔ)上,提出一種工業(yè)設(shè)計(jì)透視草圖三維模型重建方法.
計(jì)算機(jī)輔助工業(yè)設(shè)計(jì)技術(shù)為工業(yè)設(shè)計(jì)理論和CAD技術(shù)的結(jié)合,能夠和工業(yè)設(shè)計(jì)特點(diǎn)與工業(yè)設(shè)計(jì)師設(shè)計(jì)思維相適應(yīng).CAID系統(tǒng)將工業(yè)設(shè)計(jì)知識(shí)當(dāng)成主體,將計(jì)算機(jī)當(dāng)成輔助設(shè)計(jì)工具[6],充分展現(xiàn)了工業(yè)設(shè)計(jì)理念,完成對(duì)設(shè)計(jì)的定量化描述,借助計(jì)算機(jī)快速高效的特點(diǎn),令工業(yè)設(shè)計(jì)效果更加合理化.
基于CAID的工業(yè)設(shè)計(jì)透視草圖三維模型重建方法主要包括兩個(gè)重要階段,首先需對(duì)透視草圖進(jìn)行識(shí)別,然后對(duì)其進(jìn)行三維模型重建.
通過分步處理的方式對(duì)透視草圖進(jìn)行識(shí)別,先依據(jù)草繪筆劃特征對(duì)筆劃進(jìn)行分段,然后對(duì)其進(jìn)行識(shí)別.
1.1.1 草圖筆劃分段
筆劃分段又被稱作關(guān)鍵點(diǎn)檢測,關(guān)鍵點(diǎn)就是筆劃的分段點(diǎn),通常是拐點(diǎn)或角點(diǎn)[7-8].關(guān)鍵點(diǎn)檢測主要是按照筆劃特征,對(duì)用戶設(shè)計(jì)意圖進(jìn)行捕捉,把某個(gè)筆劃分割成若干子段[9].因?yàn)橹煌ㄟ^某類信息對(duì)筆劃進(jìn)行分段會(huì)造成分段點(diǎn)數(shù)量太多,按照用戶草繪習(xí)慣,通過草繪過程中筆劃的特征對(duì)筆劃進(jìn)行分段處理,詳細(xì)過程如下:
1) 對(duì)輸入點(diǎn)集合Pj中不同點(diǎn)的坐標(biāo)進(jìn)行采集,對(duì)角度范圍閾值A(chǔ)、速度范圍閾值V以及曲率范圍C進(jìn)行初始化處理.
2) 通過下述公式求出與兩向量相連的角度值aj,其表達(dá)式為
dj=|Pj+1-Pj|
(1)
d′j=|Pj+2-Pj|
(2)
(3)
式中:dj為相連兩點(diǎn)間的間隔;d′j為每間隔一點(diǎn)后兩點(diǎn)間的間隔.
3) 第j點(diǎn)的速度值vj的計(jì)算公式為
(4)
式中:Δdj為兩個(gè)向量的長度偏差;t為采樣所需的平均時(shí)間.
4) 相連兩個(gè)點(diǎn)的近似曲率改變值Δej的計(jì)算公式為
(5)
(6)
Δej=ej+1-ej
(7)
式中:ej為第j點(diǎn)的近似曲率值;δj為向量PjPj+1和x軸間的夾角.
5) 如果δj小于A,則認(rèn)為Pj+1為分段點(diǎn),將其添加至集合Pout中.如果δj角度在[170°,180°]范圍內(nèi),且vj低于V,|Δej|≤C,那么Pj為分段點(diǎn),將其添加至點(diǎn)集中.
6) 把透視草圖筆劃的第一個(gè)點(diǎn)和最后一個(gè)點(diǎn)當(dāng)成分段點(diǎn)添加至點(diǎn)集Pout中.
7) 輸出點(diǎn)集Pout.
1.1.2 圖形擬合與識(shí)別
圖形擬合即找到和輸入筆跡相近程度最高的圖形,筆跡分段則把所有筆跡都分成準(zhǔn)直線,所以僅需通過最小二乘法進(jìn)行直線擬合即可[10-11].
針對(duì)透視草圖每條筆跡,通過鏈表形式對(duì)其進(jìn)行保存.可將筆跡R當(dāng)成是m個(gè)像素P(i)的集合,即
R={P(i)=(x(i),y(i))}
(8)
式中,x(i)與y(i)為像素點(diǎn)的坐標(biāo).針對(duì)各草圖筆跡,通過下述過程進(jìn)行分析:
1) 對(duì)筆跡是否是折線進(jìn)行判斷,獲取筆跡首尾點(diǎn)P(0)與第m-1個(gè)P(i),計(jì)算由P(0)與第m-1個(gè)P(i)相連的直線方程L.
2) 獲取筆跡的長度與寬度,對(duì)閾值τ進(jìn)行計(jì)算.
3) 把R中不同點(diǎn)P(i)與直線L間的間隔d(i)和閾值τ相比,如果d(i)<τ,則認(rèn)為筆跡是直線,通過直線擬合獲取端點(diǎn)值.如果d(i)≥τ,則認(rèn)為筆跡是折線,需對(duì)其進(jìn)行處理.
4) 求出R中不同點(diǎn)P(i)和L間的間隔,獲取間隔值最大的點(diǎn),將其當(dāng)成角點(diǎn),把角點(diǎn)保存至角點(diǎn)序列Sii中,從該角點(diǎn)處對(duì)筆跡進(jìn)行分段處理.
5) 對(duì)新分段的筆跡繼續(xù)進(jìn)行折線判斷,直至獲取全部角點(diǎn).
按照順序?qū)κ掷L草稿過程中角點(diǎn)序列進(jìn)行排序,獲取新的角點(diǎn)序列Sii,對(duì)角點(diǎn)序列中Sii-1、Sii、Sii+1進(jìn)行處理分析,獲取Sii-1與Sii+1連成的直線段L1L2,計(jì)算Sii到線段L1L2的垂足O,如果O在線段L1L2中,則繼續(xù)對(duì)其進(jìn)行處理;反之對(duì)下一個(gè)角點(diǎn)組進(jìn)行同樣分析.求出Sii與線段L1L2間的間隔d,如果d低于閾值τ,那么Sii為偽角點(diǎn),將其從角點(diǎn)序列中刪除,對(duì)下一角點(diǎn)組進(jìn)行處理[12].
依據(jù)新角點(diǎn)序列對(duì)保存的草圖筆跡數(shù)據(jù)鏈表進(jìn)行分段處理,獲取分段后各條直線的鏈表,完成對(duì)其的直線擬合,獲取不同端點(diǎn)值,實(shí)現(xiàn)對(duì)草圖的識(shí)別.
1.1.3 草圖規(guī)整
草圖規(guī)整即把初步識(shí)別獲取的線元集轉(zhuǎn)變成規(guī)則的幾何圖形,是透視草圖三維模型重建的基礎(chǔ)與關(guān)鍵[13-14].因?yàn)槌醪阶R(shí)別獲取的為零散的線元,未得到最終的空間關(guān)系.透視草圖規(guī)整即判斷零散線元可能存在的幾何關(guān)系,同時(shí)引入約束,形成規(guī)則的幾何圖像.
透視草圖中含有設(shè)計(jì)者的設(shè)計(jì)意圖,按照所處環(huán)境找到線元可能的空間關(guān)系是規(guī)整的重要階段[15].采用依據(jù)規(guī)則與透視草圖上下文的方式完成規(guī)整,保證了多圖元的規(guī)整.依據(jù)規(guī)則對(duì)圖元和坐標(biāo)軸的位置關(guān)系進(jìn)行判斷,確定圖元間的連接關(guān)系.具體方法如下:
1) 依據(jù)規(guī)則完成判斷.如果圖元和坐標(biāo)軸夾角在既定閾值范圍內(nèi),即可確定位置關(guān)系是垂直、平行或特殊角度.
2) 依據(jù)草圖上下文完成判斷.如果兩個(gè)圖元端點(diǎn)間間隔在既定閾值范圍內(nèi),那么將后一圖元端點(diǎn)位置進(jìn)行改變,實(shí)現(xiàn)端點(diǎn)融合.如果橢圓中心和直線間最近間隔與周長之比在既定閾值范圍內(nèi),表明是相切.如果橢圓中心點(diǎn)間隔在既定閾值范圍內(nèi),則表明是通信.如果線元間長度之比在既定閾值范圍內(nèi),則表明是等長.
在進(jìn)行工業(yè)產(chǎn)品設(shè)計(jì)的過程中,特別是對(duì)構(gòu)形進(jìn)行設(shè)計(jì)時(shí),一般通過趨近正等軸側(cè)投影圖的透視草圖形式進(jìn)行描述.在構(gòu)形時(shí)繪制的線條大部分是消隱的軸測圖,如圖1a所示,其和通常所見的圖形中最接近的可行解用圖1b進(jìn)行描述.所以將封閉的各面片當(dāng)成三維模型重建的關(guān)鍵,在CAID軟件下逐步完成透視草圖相應(yīng)形體的三維重建.
通過圖1b所在的坐標(biāo)系,結(jié)合投影的相關(guān)知識(shí)可知,軸測圖可利用異中求同法獲取.首先以y軸為核心順時(shí)針旋轉(zhuǎn)θ1角度,然后以x軸為核心逆時(shí)針旋轉(zhuǎn)θ2角度,再向xoy平面進(jìn)行正投影轉(zhuǎn)換處理.獲取的軸測映射轉(zhuǎn)換矩陣為
圖1 透視草圖和可行解
(9)
利用G=[X,Y,Z,1]代表圖中各頂點(diǎn)的齊次坐標(biāo),在進(jìn)行軸測轉(zhuǎn)換之后可得到相應(yīng)頂點(diǎn)的齊次坐標(biāo),即g=[x,y,0,1],符合g=GT的映射關(guān)系,其中,T為描述轉(zhuǎn)換矩陣.
若軸測圖中不同定點(diǎn)映射的二維坐標(biāo)是確定的,在理論上可利用軸測映射轉(zhuǎn)換的逆轉(zhuǎn)換,即G=gT′,其中,T′為逆轉(zhuǎn)換矩陣,計(jì)算頂點(diǎn)三維信息,完成圖形的三維重建.然而在實(shí)際應(yīng)用中,分析軸測映射轉(zhuǎn)換矩陣T可知,其沒有逆矩陣,無法完成逆轉(zhuǎn)換.
經(jīng)識(shí)別與規(guī)整處理后的透視草圖空間圖形由多個(gè)表面構(gòu)成,將不同面片當(dāng)成三維重建對(duì)象進(jìn)行分析.利用n=(a1,b1,c1)描述面片的單位法向矢量,則面片上不同頂點(diǎn)的三維坐標(biāo)平面方程為
a1X+b1Y+c1Z+d1=0
(10)
為了解決軸測映射轉(zhuǎn)換矩陣無法變成逆矩陣的問題,對(duì)轉(zhuǎn)換矩陣T進(jìn)行調(diào)整,獲取的矩陣為
(11)
經(jīng)調(diào)整后,符合g=GR的映射關(guān)系,然而當(dāng)前矩陣R可逆,則有G=gR′,也就是只要獲取面片的法向矢量,以及面片中不同頂點(diǎn)映射的二維坐標(biāo)值,即可獲取相應(yīng)頂點(diǎn)的三維信息.
在進(jìn)行透視草圖三維模型重建時(shí),可隨機(jī)針對(duì)某面片進(jìn)行重構(gòu),按照該面片和其他面片間的連接關(guān)系,對(duì)全部面片進(jìn)行分層分布求解,實(shí)現(xiàn)整個(gè)透視草圖的三維模型重建.
(12)
如果q與q″間的間隔過大,或可能出現(xiàn)斷層的情況下,僅通過n(q)對(duì)n(q′)進(jìn)行初始化處理,假設(shè)γ=α,則有
(13)
利用Δ(a,b)表示q與q″間的關(guān)系.首先令a、b低于閾值,提高q與q″的相關(guān)性.擴(kuò)展面片的可見圖片集合V(q′)主要包含兩部分:1)當(dāng)前面片的所有可見圖片集合V(q);2)最近面片可見圖片集合V(q″),把滿足角度約束的圖片添加至擴(kuò)展面片的可見圖片集合中,則有
V(q′)=V(q)+{n(q′)J(q′)}
(14)
在判斷擴(kuò)展面片中心J(q′)的情況下,通過J(q′)和q所處平面垂直距離獲取,J(q′)和面片q所處平面垂直距離計(jì)算公式為
(15)
完成對(duì)n(q′)、J(q′)和V(q′)的初始化處理后,通過共軛梯度法對(duì)擴(kuò)展面片q′的位置與方向進(jìn)行調(diào)整,收斂后獲取面片q′,也就是擴(kuò)展的新面片,對(duì)其進(jìn)行三維重構(gòu),直至擴(kuò)展至整個(gè)圖形.面片擴(kuò)展過程示意圖如圖2所示.
實(shí)驗(yàn)在CAID軟件下進(jìn)行,對(duì)本文方法進(jìn)行實(shí)驗(yàn)驗(yàn)證.圖3為椅子的建模實(shí)例.圖3a為設(shè)計(jì)師手繪的透視草圖,圖3b為經(jīng)識(shí)別處理及規(guī)整后圖形,圖3c為經(jīng)本文方法得到的三維模型重建結(jié)果.透視草圖中各特征點(diǎn)的坐標(biāo)如表1所示.
圖2 面片擴(kuò)展過程示意圖
圖3 對(duì)草圖的三維重建實(shí)例
表1 透視草圖中各特征點(diǎn)坐標(biāo)統(tǒng)計(jì)
分析圖3可以看出,采用本文方法對(duì)椅子透視草圖進(jìn)行三維模型重建,得到的重建結(jié)果可滿足要求,生成了用戶所需的模型,是一種有效的三維模型重建方法,可應(yīng)用于實(shí)際的工業(yè)設(shè)計(jì)中.
為了驗(yàn)證本文方法的可行性與精度,設(shè)計(jì)實(shí)驗(yàn)測試模型.在空間直角坐標(biāo)系中,把研究幾何體以y軸為軸心順時(shí)針轉(zhuǎn)角45°,繞x軸逆時(shí)針轉(zhuǎn)角40°,在二維面中進(jìn)行正映射轉(zhuǎn)換,由此得到物體不同頂點(diǎn)的二維坐標(biāo)值.
根據(jù)所提的三維模型重建方法,結(jié)合標(biāo)準(zhǔn)差計(jì)算法準(zhǔn)確獲取重建圖形不同頂點(diǎn)坐標(biāo).對(duì)重建結(jié)果與原始坐標(biāo)進(jìn)行比較,不同坐標(biāo)間的差異就是計(jì)算誤差.因?yàn)橹亟ㄟ^程是通過擴(kuò)展實(shí)現(xiàn)的,所以將頂面作為基礎(chǔ)面,將頂面和側(cè)面之間的夾角當(dāng)作夾角.理論情況下,當(dāng)前地面和頂面大小相同時(shí),模型變形系數(shù)為1,夾角為90°.
為了進(jìn)一步研究本文方法的重構(gòu)精度,設(shè)計(jì)了一組相似性測試算例.將A、B、C、D四個(gè)特征點(diǎn)在重建后與平面豎直方向的夾角與理論夾角相對(duì)比,以此驗(yàn)證重建精度.在進(jìn)行測試時(shí),將本文方法作為實(shí)驗(yàn)組,將文獻(xiàn)[3]中的基于RHINO的重建方法和文獻(xiàn)[4]中的基于非量測相機(jī)圖像的重建方法作為對(duì)比組,針對(duì)相似算例進(jìn)行重建,結(jié)果如表2所示.
表2 三種方法三維模型重建精度比較
分析表2可知,采用本文方法對(duì)透視草圖進(jìn)行三維模型重建,得到的特征點(diǎn)夾角和理論夾角基本一致,說明本文方法重建坐標(biāo)和理論值最為接近,偏差明顯低于文獻(xiàn)[3]中的基于RHINO的重建方法和文獻(xiàn)[4]中的基于非量測相機(jī)圖像的重建方法,證明本文三維模型重建方法重構(gòu)結(jié)果和理論值基本吻合,重建精度高,可行性強(qiáng).
通過分析基于CAID的工業(yè)設(shè)計(jì)透視草圖三維模型重建方法,得出如下結(jié)論:
1) 按照用戶草繪習(xí)慣,根據(jù)草繪過程中筆劃的特征對(duì)筆劃進(jìn)行分段處理,找到和輸入筆跡相近程度最高的圖形,筆跡分段把所有筆跡都分成準(zhǔn)直線,采用最小二乘法進(jìn)行直線擬合,實(shí)現(xiàn)圖像擬合.把初步識(shí)別獲取的線元集轉(zhuǎn)變成規(guī)則的幾何圖形,實(shí)現(xiàn)草圖規(guī)整,為透視草圖三維模型重建提供依據(jù).
2) 經(jīng)識(shí)別與規(guī)整處理后的透視草圖空間圖形看作由多個(gè)表面構(gòu)成,將不同面當(dāng)成三維重建的對(duì)象進(jìn)行分析,根據(jù)面的法向量以及各個(gè)面中不同頂點(diǎn)的坐標(biāo)值,獲得各頂點(diǎn)的三維坐標(biāo).在面的擴(kuò)展過程中,只按照當(dāng)前面信息對(duì)面進(jìn)行擴(kuò)展,未綜合利用其余面信息,擴(kuò)展結(jié)果連接性較差,同時(shí)考慮左右相鄰面對(duì)擴(kuò)展面產(chǎn)生的影響,可令三維重建結(jié)果更加光滑.
3) 實(shí)驗(yàn)結(jié)果表明,采用本文方法對(duì)椅子透視草圖進(jìn)行三維模型重建,得到的重建結(jié)果可滿足要求,得到的夾角和理論夾角基本一致,偏差最小,說明所提三維模型重建方法重構(gòu)結(jié)果和理論值基本吻合,重建精度高,可行性強(qiáng).