亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        結(jié)合邊分割的改進二次誤差測度算法①

        2022-06-29 07:48:16張悠然
        計算機系統(tǒng)應(yīng)用 2022年6期
        關(guān)鍵詞:特征模型

        張悠然

        (長春大學(xué) 網(wǎng)絡(luò)安全學(xué)院, 長春 130022)

        三維網(wǎng)格模型在計算機圖形學(xué)、計算機動畫、虛擬現(xiàn)實等領(lǐng)域有著廣泛應(yīng)用, 然而復(fù)雜場景的三維模型極大地消耗了帶寬資源、增加了處理時間, 不利于模型的存儲、計算、渲染等. 因此, 通過使用相對簡單的模型代替原始的高細節(jié)模型, 即對網(wǎng)格模型進行簡化成為當(dāng)前的主流方案[1]. 網(wǎng)格簡化指通過刪除或修改對視覺影響不大的點、邊、面來減少網(wǎng)格面片數(shù)量[2],對幾何模型在各領(lǐng)域的應(yīng)用有著重要意義.

        自Clark[3]于1976 年提出網(wǎng)格簡化思想以來, 國內(nèi)外學(xué)者對簡化算法進行了廣泛而深入的研究. 其中,1997 年由Garland 和Heckbert 提出的二次誤差測度(QEM)算法是目前使用最廣泛的網(wǎng)格簡化算法之一.QEM 算法運算速度快, 簡化后的模型質(zhì)量較高, 是一種兼顧速度、質(zhì)量和通用性的較理想的算法[4]. 然而,該算法僅以點到相關(guān)平面距離的二次方作為誤差測度,容易使簡化后的模型失去局部特征和幾何結(jié)構(gòu), 并且易產(chǎn)生狹長三角面, 導(dǎo)致渲染效果差. 針對上述問題,很多學(xué)者提出改進方案. Kim 等人[5]將離散曲率范數(shù)與距離度量結(jié)合共同作為邊折疊代價, 保留了原始網(wǎng)格的高曲率區(qū)域. Tang 等人[6]選擇引入反向成本概念增加高、低曲率差異, 并選擇中點作為新頂點使算法更簡單、直觀. 王繼東等人[7]把三角形法向量約束因子嵌入誤差矩陣中, 讓體積變化平方作為誤差度量, 并自動分配網(wǎng)格疏密, 保留模型局部特征. Li 等人[8]提出考慮紋理的邊緣折疊改進方法, 并提前計算模型邊界以保留模型基本拓撲結(jié)構(gòu). Mao 等人[9]利用平均二次誤差代替累積誤差作為折疊代價. Tang 等人[10]引入高斯曲率作為簡化因子, 以此保留網(wǎng)格細節(jié)特征.

        綜上所述, QEM 算法的改進方向多是通過優(yōu)化誤差度量來保持三維網(wǎng)格模型特征, 沒有重點解決簡化后模型的三角面異常問題. 基于此, 本文提出一種結(jié)合邊分割的網(wǎng)格簡化算法. 實驗表明, 該算法簡化后的模型視覺效果更好, 高簡化率下的模型精度更高.

        1 QEM 網(wǎng)格簡化算法

        QEM 算法實際上是一種基于邊折疊的網(wǎng)格簡化算法. 算法通過頂點對的迭代收縮來簡化三維模型, 即選擇合適的邊進行折疊, 而邊折疊順序依賴于誤差.

        1.1 邊折疊操作

        邊折疊是一種基于網(wǎng)格邊代價的迭代收縮算法.該算法具有可逆性且折疊代價的計算和更新僅依靠局部信息, 使得算法效率較高.

        邊折疊操作前提是計算三角網(wǎng)格邊的折疊代價,每次操作取出隊列最頂端的邊(即折疊代價最小的邊),進行邊折疊操作[11]. 如圖1 所示, 邊v1v2為選中的折疊代價最小的邊.

        圖1 邊折疊示意圖

        根據(jù)邊v1v2的兩個端點v1、v2和局部信息計算出誤差最小的新頂點v0的位置. 刪除頂點v1、v2及兩點所在三角網(wǎng)格v1v2v3和v1v2v6, 刪除相應(yīng)的邊v1v3、v2v3、v1v6、v2v6. 添加新頂點v0和新生成的邊v0v3、v0v6, 更新頂點v0的局部頂點信息、邊信息的拓撲結(jié)構(gòu). 重復(fù)上述步驟, 直至三角網(wǎng)格數(shù)量達到要求.

        1.2 QEM 算法

        QEM 算法中的頂點對迭代收縮是邊折疊的擴展,頂點對的折疊代價即為邊折疊代價. Garland 等人[4]將頂點誤差定義為點到點所在平面集距離的二次方和,并用二次矩陣保留當(dāng)前模型的每個頂點近似誤差.

        故預(yù)先對網(wǎng)格中的每一個頂點定義一個4×4 的誤差矩陣Q, 則頂點v=[vx vy vz1]T的誤差形式確定為其二次項(v)=vTQv. 將空間中的每個頂點與其所在平面相關(guān)聯(lián), 定義誤差為點與平面集距離的二次方和, 如式(1)所示:

        其中,planes(v)是包含頂點v的所有三角平面集;p=[a bcd]T表示由方程ax+by+cz+d=0所定義的平面, 且a2+b2+c2=1. 由式(1)中的誤差度量可重寫為二次形式:

        其中,Kp表示平面p的基本二次誤差矩陣, 如式(3)所示:

        通過Kp計算空間中任意頂點到該三角面的距離平方, 則頂點的二次誤差矩陣Q可表示為:

        通過計算v誤差的局部最小值得到新頂點的最佳位置, 當(dāng)Qv可逆時, 計算新頂點v最佳位置的公式如下所示:

        綜上, QEM 算法邊折疊代價實則為頂點對(v1v2)收縮后產(chǎn)生的新頂點v的近似誤差,v近似誤差的取決于v1、v2的近似誤差, 即點到與其相關(guān)的三角面距離的平方和. 這種僅依靠距離度量作為近似誤差的簡化算法會使簡化后的模型過于均勻, 難以保留局部特征, 不適合高精度、高細節(jié)模型的簡化需求. 此外, 頂點對的迭代收縮在消除一些三角面的同時會使新頂點所在三角形的邊長拉長, 容易產(chǎn)生細長三角面, 導(dǎo)致簡化效果差. 因此, 根據(jù)上述分析將對QEM 算法進行改進, 改進后的ESQEM 算法能較好解決QEM 算法所存在的問題.

        2 改進QEM 網(wǎng)格簡化算法

        針對原始QEM 網(wǎng)格簡化算法所存在的問題引入高斯曲率算子和邊緣分割操作, 提出結(jié)合邊分割的二次誤差測度(ESQEM)算法.

        首先, 只考慮距離度量的QEM 算法會使簡化后的網(wǎng)格和頂點均勻分布, 不利于邊緣特征保留. 因此將能反應(yīng)頂點尖銳度的頂點高斯曲率加入二次誤差度量中,并提取和保留網(wǎng)格模型邊界點, 以此維護高曲率區(qū)域特征和幾何結(jié)構(gòu). 其次, 在簡化過程中添加邊長查詢機制, 根據(jù)網(wǎng)格模型平均邊長設(shè)置目標(biāo)長度、邊中點作為分割點, 對異常三角形進行邊分割操作, 以此消除不規(guī)則的邊.

        2.1 添加高斯曲率算子

        高斯曲率反應(yīng)了曲面局部彎曲程度, 三角網(wǎng)格上某點的高斯曲率反應(yīng)該點的尖銳程度, 因而不均勻區(qū)域和特征邊緣的高斯曲率較大. 本文采用Kim 等人[12]提出的方法來計算網(wǎng)格中內(nèi)頂點和邊界頂點的高斯曲率, 頂點高斯曲率與其相連的角度和面積有關(guān), 如圖2.

        圖2 頂點高斯曲率

        圖2 中θi是三角形fi的內(nèi)角, 三角形面積用Si表示,n表示與頂點v相連的三角形個數(shù). 則三角網(wǎng)格中內(nèi)頂點和邊界頂點的高斯曲率計算公式如式(8)、式(9)所示:

        若邊e由頂點v1和頂點v2組成,而邊的高斯曲率與邊上的頂點相關(guān)[13], 則e的高斯曲率可通過式(10)計算:

        其中,K(v1)和K(v2)分別代表邊e兩個端點v1和v2的高斯曲率, 且權(quán)重ωi可通過式(11)計算:

        在QEM 算法中, 選擇最小的邊代價進行邊緣折疊操作, 以獲得最佳近似結(jié)果. 當(dāng)在邊折疊代價中加入高斯曲率算子后, 便能有效規(guī)避具有顯著特征的邊被折疊. 將二次誤差和高斯曲率結(jié)合, 獲得新的邊塌陷成本,如式(12)所示:

        其中, 權(quán)重ω用來平衡高斯曲率K(e)和二次誤差Q(e),且ω可通過式(13)計算:

        其中,Qavg和Kavg分別是所有邊的平均二次誤差和平均高斯曲率, 而參數(shù)a用于調(diào)整K(e)和Q(e)的數(shù)量級關(guān)系, 通常將高斯曲率設(shè)為比二次誤差小兩個數(shù)量級.

        2.2 邊分割策略

        邊分割是三角剖分的一種經(jīng)典操作. 實質(zhì)是將離散的點集連接成一定大小的三角形, 而Delaunay 三角剖分的應(yīng)用最為廣泛. Dyer 等人[14]定義非Delaunay 邊為兩個對角之和大于π的邊, 并通過遞歸分割非Delaunay邊將任意一個流形三角網(wǎng)格轉(zhuǎn)化為Delaunay 網(wǎng)格;Liu 等人[15]考慮到非Delaunay 邊的蝴蝶形區(qū)域提出了一種計算最優(yōu)分割點的方法. 張順嵐等人[16]利用Delaunay 三角形剖分技術(shù)實現(xiàn)了戰(zhàn)場仿真模型的局部三角化. 若對已知三維網(wǎng)格中進行邊分割操作需要確定要分割的邊及分割點的位置.

        因此, 為了消除由QEM 算法產(chǎn)生的狹長三角面,提出一種基于網(wǎng)格邊長的邊分割方法. 該方法對簡化后網(wǎng)格的邊進行遍歷以獲取邊長信息, 根據(jù)網(wǎng)格平均邊長求出目標(biāo)長度, 并將目標(biāo)邊的中點作為分割點進行邊緣分割操作, 邊分割流程如圖3 所示.

        圖3 基于網(wǎng)格邊長的邊分割流程圖

        Step 1. 讀取三維網(wǎng)格模型;

        Step 2. 計算網(wǎng)格平均邊長AvgLength, 令目標(biāo)長度TargetLength 為b倍AvgLength. 其中, 倍數(shù)b可根據(jù)實際模型做適當(dāng)調(diào)整;

        Step 3. 遍歷網(wǎng)格中的每條邊, 獲取每條邊的長度EdgeLength;

        Step 4. 判斷邊長是否大于目標(biāo)長度, 若EdgeLength大于TargetLength, 進入Step 5, 否則跳至Step 8;

        Step 5. 計算當(dāng)前邊的中點位置, 設(shè)中點為分割點vertex_split;

        Step 6. 獲取當(dāng)前邊所在三角面的頂點坐標(biāo)v[0]、v[1]、v[2]、v[3];

        Step 7. 刪除以點v[0]、v[1]、v[2]和v[0]、v[2]、v[3] 組成的2 個舊三角面, 添加由點v[0]、v[1]、vertex_split, 點v[1]、v[2]、vertex_split, 點v[2]、v[3]、vertex_split 和點v[3]、v[0]、vertex_split 組成的4 個新三角面;

        Step 8. 判斷當(dāng)前邊是否為最后一條邊, 如果是則進入Step 9, 否則跳至Step 3;

        Step 9. 保存邊分割后的網(wǎng)格信息;

        Step 10. 輸出模型.

        2.3 算法描述

        綜上所述, 改進的二次誤差測度算法描述如算法1.

        算法1. ESQEM 算法1) 讀取網(wǎng)格文件, 獲取原始三維網(wǎng)格信息.2) 遍歷網(wǎng)格中的每個頂點, 計算每個頂點的二次誤差矩陣Q.3) 區(qū)分網(wǎng)格內(nèi)頂點和邊界頂點, 根據(jù)式(8)和式(9)計算內(nèi)定點和邊界頂點的高斯曲率, 并根據(jù)式(10)計算每條邊的高斯曲率.Q 4) 計算 并判斷是否可逆. 如果 可逆, 求新頂點 的最佳位置, 設(shè)置參數(shù)ω, 根據(jù)式(12)計算當(dāng)前邊的最小代價并插入最小堆中; 如果不可逆, 分別把v1、v2 和(v1+v2)/2 作為新頂點 計算邊折疊代價,找出3 種情況的最小邊代價, 插入最小堆中.v Q v v Q v v 5) 邊折疊操作. 從堆頂刪除代價最小的邊, 添加新頂點合并最小代價邊的兩個端點, 更新及近鄰邊的誤差矩陣和高斯曲率, 并返回步驟4).6) 邊分割操作. 遍歷網(wǎng)格的每條邊, 當(dāng)EdgeLength 大于TargetLength時, 刪除兩個舊的三角面, 同時根據(jù)頂點和中點位置添加4 個新的三角面; 當(dāng)EdgeLength 小于TargetLength 時, 繼續(xù)判斷下一條邊, 直至循環(huán)結(jié)束.7) 保存簡化后的網(wǎng)格模型.v v

        算法1 不但可以通過參數(shù)ω調(diào)整網(wǎng)格特征保留情況, 還能通過邊長判斷異常三角面. TargetLength 通常為AvgLength 的4/3 倍, 也可以根據(jù)原始網(wǎng)格模型調(diào)整最佳TargetLength 值, 使簡化后的三角面更均勻.

        3 實驗分析

        實驗分別采用QEM 算法和ESQEM 算法對Cow模型和Dinosaur 模型進行簡化, 通過對比兩種算法的簡化效果及簡化前后的Hausdorff 距離來驗證ESQEM算法在維持模型邊緣、避免異常三角面和保留局部特征方面比原始算法更有效.

        3.1 簡化效果對比

        ESQEM 算法是基于VS 2019 開發(fā)平臺在QEM算法源碼基礎(chǔ)上進行改進的. 為增加可信度, 實驗所測試機相同(Intel(R) Core(TM) i5-8265U CPU 1.60 GHz,RAM 8 GB), 輸入數(shù)據(jù)相同, 控制參數(shù)相同, 且未對改進算法做任何加速處理. 為保證在相同簡化率的情況下進行比較, 參數(shù)ω允許的最大誤差不超過0.01 個精度, 參數(shù)b為固定值. 簡化后模型以白模和網(wǎng)格兩種形式進行整體和局部對比展示, 隨著簡化率增高, 網(wǎng)格模型信息不斷變動, 表1 為實驗過程中的網(wǎng)格數(shù)據(jù).

        表1 實驗?zāi)P蛿?shù)據(jù)基本信息

        Cow 的原始模型如圖4 所示. 采用兩種算法對Cow 模型進行簡化, 結(jié)果見圖5 和圖6. 由圖4 可知,簡化后的模型邊緣始終保持完整, 從圖5(a)到圖5(c)簡化率由58.03%升到82.77%, 此過程中模型逐漸變得棱角分明, 卻并無異常面和異常拓撲產(chǎn)生. 當(dāng)簡化率超過90%時, 圖5(d)中牛的腳部和面部特征出現(xiàn)模糊,但曲率更高的牛角處仍然清晰可見, 且未產(chǎn)生細長三角面. 對比圖6(d), 當(dāng)使用QEM 算法簡化率超過90%時, 牛的腳部及面部特征退化, 而牛角的上半部分直接消失, 此外還產(chǎn)生了多個細長三角面. 而圖6(c)中, 雖然邊緣特征仍在, 但出現(xiàn)孔洞及異常三角面.

        圖4 Cow 原始模型

        圖5 Cow 模型ESQEM 算法簡化結(jié)果

        圖6 Cow 模型QEM 算法簡化結(jié)果

        為了更清晰的觀察兩種算法的簡化效果, 將Cow模型的局部位置進行放大比較. 如圖7、圖8 所示,圖7(a) 和圖7(b) 為Cow 模型在簡化率為58.03%時的背部對比圖, 圖8(a)和圖8(b)為Cow 模型在簡化率為92.69% 時的頭部對比圖. 可以看出, ESQEM算法能消除異常三角面和保留高曲率特征.

        圖7 Cow 模型背部對比圖

        圖8 Cow 模型頭部對比圖

        Dinosaur 的原始模型如圖9 所示. 圖10 為ESQEM算法對Dinosaur 模型的簡化效果圖, 圖10(a)到圖10(c)的簡化率從58.09%到89.28%, 在此過程中模型外表逐漸鋒利, 但幾何結(jié)構(gòu)與局部特征依舊清晰可辨. 而當(dāng)簡化率超過90%時, 從圖10(d)可以看出模型面部、手部等輪廓依舊清晰, 且三角面和拓撲也并無異常. 圖11為QEM 算法對Dinosaur 模型的簡化效果圖, 從圖11(a)到圖11(d)的模型輪廓無顯著變化, 但在簡化過程中產(chǎn)生了細長三角面. 并且當(dāng)簡化率超過90%時, 由圖11(d)明顯看到, 模型部分手部特征消失, 恐龍的爪子由3 個退化成2 個.

        圖9 Dinosaur 原始模型

        圖10 Dinosaur 模型ESQEM 算法簡化結(jié)果

        圖11 Dinosaur 模型QEM 算法簡化結(jié)果

        為了更清晰的對比兩種算法的不同效果, 將Dinosaur 模型的局部位置進行放大比較. 圖12 和圖13是簡化率為93.10%時, Dinosaur 模型的背部和手部對比圖, 從紅圈標(biāo)注的位置可以看出, ESQEM 算法不僅能更多地保留模型局部特征, 還能將較大的三角面進行分割.

        圖12 Dinosaur 模型背部對比圖

        圖13 Dinosaur 模型手部對比圖

        3.2 Hausdorff 距離對比

        Hausdorff 距離是用來測量歐氏空間中兩個點集之間距離的一種量度. 在三維網(wǎng)格模型簡化過程中, 通常使用Hausdorff 距離來比較簡化前和簡化后模型的相似程度, Hausdorff 距離越小, 則簡化前后的模型就越相似, 精度就越高, 反之, 簡化模型的精度就越低. 因此,在使用兩種不同算法的情況下, 計算簡化前后模型的Hausdorff 距離, 能有效對比ESQEM 算法和QEM 算法簡化后的模型精度. 圖14 和圖15 為兩種算法簡化Cow 模型和Dinosaur 模型的Hausdorff 距離值. 其中,橫坐標(biāo)代表模型簡化率, 縱坐標(biāo)代表Hausdorff 距離.

        由圖14 可知, 當(dāng)簡化率低于75%時, 使用ESQEM算法得到的模型精度整體略低于QEM 算法.尤其當(dāng)簡化率在35%–75%時, Hausdorff 距離相差較大. 然而,當(dāng)?shù)胶喕食^75%時, ESQEM 算法的精度開始高于QEM 算法, 且簡化率越大, 精度越高.

        圖14 Cow 的Hausdorff 距離

        圖15 反映了相似的情況, 前期簡化率較低時, 兩種算法的Hausdorff 距離值相差不大. 簡化率在50%左右時, 使用ESQEM 算法所得的Hausdorff 距離值出現(xiàn)波動, 模型精度不夠穩(wěn)定. 當(dāng)簡化率超過70%時, 使用ESQEM 算法所得模型精度開始高于QEM 算法. 綜上所述, ESQEM 算法更適合高簡化率的簡化需求, 模型所需面數(shù)越少, ESQEM 算法較QEM算法的優(yōu)勢就越大.

        圖15 Dinosaur 的Hausdorff 距離

        4 結(jié)論與展望

        針對QEM 算法難以保留簡化后模型的細節(jié)特征、幾何結(jié)構(gòu)和容易產(chǎn)生異常三角面等缺點, 提出一種結(jié)合邊分割操作的改進算法(ESQEM). 該算法加入了高斯曲率算子和長邊分割操作, 在維持幾何結(jié)構(gòu)的基礎(chǔ)上, 通過調(diào)整參數(shù)保留模型局部特征、優(yōu)化異常三角面. 實驗證明ESQEM 算法具有更好的簡化效果,能更多的保留模型細節(jié)、均勻三角面, 并在高簡化率的條件下, 簡化后的模型精度比QEM 算法更高. 在接下來的研究中, 將會考慮重新計算邊的分割點. 如第3.2 小節(jié)所示, 僅以邊中點作為分割點無法在低簡化率條件下保證模型精度. 為了在簡化過程中始終能得到較高精度的模型, 后續(xù)會考慮引入邊分割代價, 以保證新的分割點與原始模型相同位置的點最接近.

        猜你喜歡
        特征模型
        一半模型
        抓住特征巧觀察
        重要模型『一線三等角』
        新型冠狀病毒及其流行病學(xué)特征認識
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        如何表達“特征”
        不忠誠的四個特征
        抓住特征巧觀察
        3D打印中的模型分割與打包
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        性色av无码不卡中文字幕| 亚洲av成人一区二区三区在线观看| 中国人妻被两个老外三p| 在线中文字幕有码中文| 亚洲国产AⅤ精品一区二区不卡| 精品一区二区三区牛牛| 欧美成人家庭影院| 18女下面流水不遮图| AV永久天堂网| 精品一区二区三区四区少妇| 国产精品天堂在线观看 | 久久人妻无码一区二区| 成年女人粗暴毛片免费观看| 久久免费看少妇高潮v片特黄| 亚洲AV成人无码天堂| 日本不卡视频一区二区三区| 国产成人精品日本亚洲专区61| 亚洲精品无码不卡av| A亚洲VA欧美VA国产综合| 日本岛国一区二区三区四区| 亚洲av网一区二区三区| 亚洲男人天堂2019| 激情人妻中出中文字幕一区| 亚洲婷婷久悠悠色悠在线播放| 少妇被粗大的猛烈进出免费视频 | 亚洲一区二区三区av无码| 色爱区综合激情五月综合小说| av日本一区不卡亚洲午夜| 国产久久久自拍视频在线观看| 亚洲va久久久噜噜噜久久天堂| 窝窝午夜看片| 国产精品无码一区二区在线国| 激情视频在线观看免费播放| 深夜一区二区三区视频在线观看| 国产精品久久久久精品一区二区| 日日摸夜夜添夜夜添无码免费视频| 国产一区二区精品av| 日韩精品中文一区二区三区在线| 思思久久96热在精品国产| 日韩国产精品一本一区馆/在线 | 91网站在线看|