久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

alpha shape算法詳解:從點云到凹形邊界的實現(xiàn)與調(diào)參

alpha shape算法詳解:從點云到凹形邊界的實現(xiàn)與調(diào)參 簡介這是一款基于JavaScript實現(xiàn)的Alpha Shape計算工具包專為需要在任意維度點集中提取邊界輪廓的開發(fā)者設(shè)計常用于計算幾何、點云數(shù)據(jù)分析、三維重建以及非凸形狀檢測等場景。壓縮包共含7個文件核心alpha.js負(fù)責(zé)形狀計算viewer.js提供可視化示例README.md說明安裝與API用法alpha.png為效果示意圖另有package.json、LICENSE、.gitignore等配套文件整體僅39KB結(jié)構(gòu)清晰便于快速集成或研讀源碼。目前已有1515人學(xué)習(xí)下載。借助該資源讀者可直接調(diào)用alpha-shape接口通過調(diào)節(jié)alpha參數(shù)如0.1控制形狀的精細(xì)程度適應(yīng)不同密度的點集同時可從示例代碼中掌握模塊封裝、隨機點生成、結(jié)果輸出的完整流程并結(jié)合注釋理解算法邊界判定的實現(xiàn)思路對計算幾何學(xué)習(xí)與前端圖形開發(fā)都很有幫助。1. alpha shape 是什么從一堆散點里找回被凸包吞掉的凹邊界做點云處理時最常遇到的尷尬時刻是你把一堆邊界點扔給凸包算法明明有條內(nèi)凹的溝壑凸包卻把它填成一個飽滿的多邊形三維里更明顯轉(zhuǎn)個角度就發(fā)現(xiàn)表面凹進去一塊凸包直接給你一個鼓包。alpha shape 就是為這個場景準(zhǔn)備的它允許你用同一個算法在二維畫出帶凹坑的輪廓在三維生成能貼住真實表面的網(wǎng)格而且理論框架不限制維度二維、三維、甚至更高維都能用同一套邏輯去描述。我最初接觸 alpha shape 是為了重建一塊激光掃描點云的輪廓凸包把所有缺口都蓋住了手工編輯又太慢。后來看明白它的幾何判定發(fā)現(xiàn)它并不玄學(xué)它用一條固定半徑的圓滾過點集邊界圓能滾過去的部分才屬于邊界。這個半徑反過來就是 alpha 值的倒數(shù)也就是全局的細(xì)節(jié)程度。這個工具適合誰適合手里有點集、想恢復(fù)邊界或表面、又不想逐段手工修線的人。相比凹包算法它有嚴(yán)格的數(shù)學(xué)定義和穩(wěn)定實現(xiàn)路徑相比人工畫輪廓它可以批量處理成百上千份數(shù)據(jù)。下面從原理講到二維和三維的可用實現(xiàn)再落到參數(shù)怎么調(diào)、哪些坑不能踩最后給一個我常用的驗證手法。2. 從凸包到 alpha shapealpha 值如何決定邊界細(xì)節(jié)2.1 凸包只是最粗的殼凹形才是大多數(shù)點云的真實邊界凸包的定義很簡單包含所有點的最小凸集。它算法穩(wěn)定、幾十個點也能秒出結(jié)果所以經(jīng)常被當(dāng)成點云默認(rèn)邊界但它有個天然缺陷看不到凹形。想象一個 C 形點集凸包直接畫成一個大圓盤C 的開口被完全吞掉而真實物體的輪廓、自然地形、人體輪廓、河岸線幾乎都不是凸的。如果你把凸包結(jié)果直接給數(shù)控加工路徑或碰撞檢測會出現(xiàn)明明可以避開的區(qū)域被當(dāng)成實體造成材料浪費或路徑誤判。alpha shape 保留了凸包“只用點集本身生成邊界”的優(yōu)點同時解除了“必須凸”的限制。它的核心建立在 Delaunay 三角剖分上先對點集做三角剖分然后刪除那些外接圓半徑大于給定閾值的三角形。刪掉大三角形后邊界會沿著點集的密度和實際形狀收縮。因此 alpha 值越小允許留下的三角形外接圓越大邊界越接近凸包alpha 值越大允許留下的三角形外接圓越小邊界細(xì)節(jié)越豐富但也越容易碎成斷層。在實際項目里我一般先把 alpha 設(shè)成一個能保證點集整體連通的較小值然后逐步放大找出細(xì)節(jié)穩(wěn)定的區(qū)間。這個區(qū)間通常存在一個“肘部”拐點alpha 增到某個值之后邊界形態(tài)的變化從劇烈變成緩慢。做批量處理時用這個拐點對應(yīng)的 alpha 作為默認(rèn)參數(shù)比手工指定一個固定值穩(wěn)得多。如果業(yè)務(wù)只求外接范圍、做碰撞體積、算軸向包圍盒凸包足夠如果把邊界輸出給下一條工序比如加工路徑、體積估算、河岸線提取就必須考慮凹形。我的習(xí)慣是先跑凸包當(dāng)兜底再在需要細(xì)節(jié)的局部用 alpha shape 做切削這樣可控性最高。2.2 alpha 參數(shù)的幾何含義滾圓法與 Delaunay 判定alpha shape 最出名的直覺模型是滾圓法想象用一把固定半徑的圓規(guī)沿著點集外側(cè)滾動圓規(guī)能卡住哪些點哪些點就在邊界上。這個解釋容易理解但它更像物理過程很難直接寫成算法。真正實現(xiàn)里用的是 Delaunay 剖分后的外接球半徑判定對每個 d 維單純形二維是三角形、三維是四面體計算它外接球半徑 R如果 R 小于 1/alpha就保留這個單純形否則刪除。這里有一個我一開始也踩過的坑alpha 與半徑是倒數(shù)關(guān)系。alpha 越小半徑越大允許保留的大外接球越多結(jié)果越粗糙alpha 越大半徑越小只有外接球很小的局部結(jié)構(gòu)才能保留結(jié)果越細(xì)碎??创a或論文時你會看到有的參數(shù)叫 alpha有的叫 radius兩者互為倒數(shù)如果搞反調(diào)參時所有結(jié)論都會違背直覺越調(diào)越茫然。滾圓法還有一層誤導(dǎo)它讓人以為每個點是獨立判斷的但 alpha shape 的篩選是全局的。同一個點在 alpha 比較小的時候可能是邊界點alpha 變大后可能變成內(nèi)部點。它不識別“孤立點”這類局部密度異常而是對剖分得到的單純形做整體篩選。所以如果你要的是逐點離群點檢測應(yīng)該用 LOF 或 DBSCAN而不是 alpha shape。明確這一點能避免選錯工具。2.3 任意維度的統(tǒng)一視角單純形與 alpha 值的尺度關(guān)系“任何維度”不是營銷話術(shù)它來自單純形的推廣。二維點集被剖成三角形三維點集被剖成四面體Delaunay 剖分和凸包本身就是維度無關(guān)的概念。alpha shape 的過濾條件只依賴外接球半徑和一個標(biāo)量 alpha這兩個概念在高維同樣成立。只要你能構(gòu)造出給定維度點集的 Delaunay 剖分就能用同一套過濾邏輯得到該維度的 alpha shape。但請先冷靜維度變高以后Delaunay 剖分的復(fù)雜度會急劇上升。n 個點在 d 維空間中的剖分元素數(shù)量和內(nèi)存占用往往隨維度變大而呈指數(shù)增長開源生態(tài)也幾乎只把高維剖分做到三維。所謂“任何維度”在實現(xiàn)上通常指“算法不限制維度”而不是“高維數(shù)據(jù)跑得飛快”。我見過有人拿五維特征工程數(shù)據(jù)嘗試跑通用實現(xiàn)結(jié)果光剖分就等了一刻鐘最后只能降維處理。所以你要把“任何維度”理解為同一套原理、同一套參數(shù)可以放心從二維推廣到三維而不需要換算法。四維以上則先評估數(shù)據(jù)量通常做法是先用 PCA 降維或者在低維子空間做 alpha shape再根據(jù)業(yè)務(wù)需要還原。不是 alpha shape 不能做高維而是高維 Delaunay 剖分本身成本太高這是任何基于剖分的方法都要面對的硬邊界。2.4 快速試 alpha 的 30 行實驗先看半徑分布再調(diào)參在進入正式實現(xiàn)前我建議先把點集的“外接球半徑分布”打出來這能讓你對 alpha 的選擇范圍心里有數(shù)。下面的代碼生成 200 個二維隨機點用 SciPy 求出 Delaunay 三角剖分然后計算每個三角形的外接圓半徑并輸出分位數(shù)。注意這個實驗只服務(wù)于調(diào)參直覺不是完整的 alpha shape。import numpy as np from scipy.spatial import Delaunay # 生成 200 個二維點均勻采樣 rng np.random.default_rng(42) pts rng.uniform(-10, 10, size(200, 2)) # Delaunay 三角剖分 tri Delaunay(pts) a pts[tri.simplices[:, 0]] b pts[tri.simplices[:, 1]] c pts[tri.simplices[:, 2]] # 向量化計算三角形外接圓半徑 R a*b*c / (4*S) ab b - a ac c - a area2 np.abs(ab[:, 0] * ac[:, 1] - ab[:, 1] * ac[:, 0]) len_ab np.linalg.norm(ab, axis1) len_ac np.linalg.norm(ac, axis1) len_bc np.linalg.norm(b - c, axis1) radius len_ab * len_ac * len_bc / (2 * area2) print(半徑分位數(shù), np.percentile(radius, [10, 30, 50, 70, 90, 99]))邏輯說明先用 scipy.spatial.Delaunay 求得所有三角形再用向量化方式計算每個三角形的外接圓半徑。面積用叉積的模長除以二最終半徑是三條邊長的乘積除以四倍面積。輸出半徑分位數(shù)是為了讓你看到alpha 取 0.05 時等價于半徑閾值 20大部分三角形都會被保留邊界接近凸包alpha 取 0.5 時半徑閾值 2很多大三角形被刪掉邊界開始出現(xiàn)凹形。這個分布直方圖會告訴你點集局部尺度避免盲目試錯。參數(shù)說明Delaunay 對象的 simplices 是三角形頂點索引數(shù)組形狀為(num_triangles, 3)直接用 numpy 切片即可得到三個頂點坐標(biāo)。注意面積接近 0 的退化三角形會讓 radius 變成無窮大這類三角形在后續(xù)過濾時會被自然刪除因為外接圓太大。如果你處理三維點需要改成計算四面體外接球半徑公式更復(fù)雜但分布直方圖的思路不變也正是下一章要講的通用實現(xiàn)基礎(chǔ)。3. 實現(xiàn)“任何維度”基于 Delaunay 剖分的通用算法框架3.1 為什么 Delaunay 是 alpha shape 的地基Delaunay 剖分有一個關(guān)鍵特性它最大化所有三角形的最小角也就是盡量避免狹長三角形。這個性質(zhì)讓外接球半徑計算更穩(wěn)定也讓剖分結(jié)構(gòu)在幾何上更貼近點集的真實拓?fù)?。alpha shape 直接建在 Delaunay 剖分上是因為剖分產(chǎn)生的單純形集合是有限的、可數(shù)的而且包含凸包的全部信息。對每個單純形做外接球半徑過濾就能得到從凸包到點集本身的一系列嵌套形狀這個嵌套關(guān)系在學(xué)術(shù)上被稱為 alpha 復(fù)形。實際開發(fā)中Delaunay 剖分也承擔(dān)了“鄰近關(guān)系”的角色。點與點之間哪些該連起來不是靠歐氏距離硬編碼而是由剖分自動決定。這樣 alpha shape 對點密度有一定自適應(yīng)能力在稠密區(qū)域保留更多細(xì)節(jié)在稀疏區(qū)域自動少連線前提是 alpha 選得恰當(dāng)。如果你不用 Delaunay 而直接求所有點對距離再按半徑連線那本質(zhì)上是在做半徑圖得到的東西不叫 alpha shape邊界也會混亂得多。另一個容易被忽視的點Delaunay 剖分在高維仍有嚴(yán)格定義這也讓“任何維度”成為可能。給定 d 維點集剖分把空間切成 d1 個頂點構(gòu)成的單純形。二維是三角形三維是四面體四維是五胞體。只要維度不高到內(nèi)存崩掉這些單純形都能用統(tǒng)一的方式表達(dá)和遍歷。所以后續(xù)的過濾與邊界提取完全不關(guān)心具體維度只關(guān)心“頂點索引”。3.2 通用流程剖分 → 過濾 → 輸出關(guān)鍵代碼與參數(shù)一個維度無關(guān)的 alpha shape 核心流程分三步Delaunay 剖分、按外接球半徑過濾、提取邊界面。先看最簡單的過濾核心它返回保留下來的單純形列表import numpy as np from scipy.spatial import Delaunay def circumradius(vertices): 任意維度單純形的外接球半徑以第一個頂點為原點 p0 vertices[0] mat vertices[1:] - p0 # (d, d) b 0.5 * np.einsum(ij,ij-i, mat, mat) # 1/2 * |v|^2 try: c np.linalg.solve(mat, b) # 球心相對 p0 的坐標(biāo) except np.linalg.LinAlgError: return np.inf return np.linalg.norm(c) def keep_simplices(points, alpha): dela Delaunay(points) threshold 1.0 / alpha if alpha 0 else np.inf kept [] for s in dela.simplices: r circumradius(points[s]) if r threshold: kept.append(s) return np.array(kept)邏輯說明頂點數(shù)必須是維度加一所以 vertices 去掉第一個后得到方陣 mat。方程 2 * v_i · c |v_i|^2 的解 c 就是球心相對第一個頂點的坐標(biāo)半徑就是 c 的模長。如果解線性方程失敗說明這組頂點退化外接球半徑視為無窮大自然被過濾這也是對重復(fù)點、共面點的一種容錯。參數(shù)說明alpha 為正時閾值是 1/alpha。alpha 傳 0 時 threshold 為 inf所有不退化的單純形都會保留結(jié)果等于凸包alpha 傳負(fù)數(shù)時多數(shù)實現(xiàn)會報錯所以調(diào)用前先限制 alpha 為正。實際工程里我建議用 radius_threshold 作為內(nèi)部參數(shù)避免在多個模塊間傳遞 alpha 造成倒數(shù)混淆。只保留單純形還不夠真正的 alpha shape 需要邊界面。邊界面的提取技巧對所有維度一致一個內(nèi)部面會被兩個相鄰單純形共享而邊界面只被一個單純形包含。所以用計數(shù)器統(tǒng)計每個面出現(xiàn)的次數(shù)出現(xiàn)一次的就是邊界from collections import Counter def extract_boundary_facets(simplices): facet_counter Counter() for s in simplices: for remove_idx in range(len(s)): face tuple(sorted(np.delete(s, remove_idx))) facet_counter[face] 1 return [f for f, cnt in facet_counter.items() if cnt 1]邏輯說明一個 d 維單純形有 d1 個面每個面是去掉一個頂點后得到的 d-1 維單純形。把面的頂點索引排序后作為字典鍵統(tǒng)計所有單純形里每個面出現(xiàn)的次數(shù)。出現(xiàn)一次的面位于整體邊界出現(xiàn)兩次的面在兩個剖分體之間是內(nèi)部共享面。這個邏輯與維度無關(guān)二維提取的是邊三維提取的是三角形四維提取的是四面體。參數(shù)說明np.delete(s, remove_idx) 會返回去掉一個索引后的數(shù)組sorted 是為了保證同一個面無論從哪個方向枚舉都能對應(yīng)到同一個鍵。這個去重技巧看起來簡單但它是 alpha shape 通用實現(xiàn)里最容易出錯的地方如果忘記排序相鄰單純形枚舉出的面順序不同會被當(dāng)成兩個不同面邊界提取就會多出大量偽邊界。3.3 維度無關(guān)的數(shù)據(jù)結(jié)構(gòu)與索引技巧alpha shape 的通用實現(xiàn)里最不推薦直接存點坐標(biāo)。原因很簡單過濾和邊界提取只關(guān)心“哪些點連成單純形”和“鄰接關(guān)系”坐標(biāo)只是用來算外接球半徑和最終輸出。正確的做法是全程使用整數(shù)索引Delaunay.simplices 本身就是頂點索引數(shù)組所有中間結(jié)果都以索引為主最后需要輸出幾何文件時再把索引映射到坐標(biāo)。我在自己的代碼里會把一個單純形表示成 tuple 或 numpy 數(shù)組具體每個元素是頂點的全局索引。這樣做有三個好處一是內(nèi)存占用固定且小不會因為維度變化導(dǎo)致結(jié)構(gòu)變化二是邊界提取時用 Counter 對 tuple 做字典鍵非??烊呛苋菀缀投嗑€程、內(nèi)存映射配合。代價是你得時刻記得每個元素是索引而不是坐標(biāo)調(diào)試時打印不夠直觀所以我建議寫一個 debug 函數(shù)把索引轉(zhuǎn)回坐標(biāo)再輸出。另一個實用的索引技巧是“全局索引 局部索引”兩層。Delaunay.simplices 中的索引是全局點索引而構(gòu)建每個單純形后vertices points[s] 會得到一個局部坐標(biāo)數(shù)組。在計算外接球半徑和提取面時局部坐標(biāo)只用于數(shù)值計算面提取則用全局索引。這樣兩個職責(zé)分開代碼可讀性好也不會在后續(xù)重建網(wǎng)格時弄混頂點。3.4 算法復(fù)雜度和內(nèi)存邊界復(fù)雜度要分兩塊看Delaunay 剖分是主要瓶頸二維在平均情況下接近 O(n log n)三維會在意外的高常數(shù)下退化最壞情況可能接近 O(n^2)四維以上幾乎只靠有限的經(jīng)驗數(shù)據(jù)。過濾和邊界提取相對便宜每個單純形做一次半徑計算和幾次面統(tǒng)計整體接近 O(m)m 是單純形數(shù)量。所以你會發(fā)現(xiàn)數(shù)據(jù)量在十萬級時二維可以輕松跑三維需要留意剖面超過百萬點最好先降采樣。內(nèi)存邊界更現(xiàn)實。Delaunay 剖分的內(nèi)存消耗不僅來自點和邊還有 Qhull 內(nèi)部的臨時結(jié)構(gòu)。三維十萬點時內(nèi)存幾百 MB 很常見四維只放幾千個點都可能把內(nèi)存撐爆。我的經(jīng)驗法則是三維點集超過二十萬就考慮先降采樣或分塊四維點集超過五千就強烈建議降維。alpha shape 的參數(shù)再準(zhǔn)也救不了剖分建不出來的數(shù)據(jù)。另外要注意 scipy.spatial.Delaunay 在三維以上依賴 Qhull它對退化輸入非常敏感會直接拋出錯誤。這部分不是 alpha shape 本身的問題而是底層剖分庫的數(shù)值穩(wěn)定性邊界。如果你真的需要高維穩(wěn)定剖分可能需要引入更專業(yè)的計算幾何庫但那已經(jīng)超出這篇筆記的范圍一般項目里遇到這種需求更合理的做法是減小維度。4. 用 Python 跑通二維和三維最小可復(fù)現(xiàn)示例4.1 二維點集生成一個凹形輪廓并取出邊界現(xiàn)在我們用第二、三章的函數(shù)組合出一個完整的 alpha_shape 調(diào)用作用在二維點上。為了看出凹形效果我生成一個三瓣星形輪廓并在輪廓上取點再添加少量噪聲。import numpy as np from scipy.spatial import Delaunay from collections import Counter def circumradius(vertices): p0 vertices[0] mat vertices[1:] - p0 b 0.5 * np.einsum(ij,ij-i, mat, mat) try: c np.linalg.solve(mat, b) except np.linalg.LinAlgError: return np.inf return np.linalg.norm(c) def alpha_shape(points, alpha): dela Delaunay(points) threshold 1.0 / alpha if alpha 0 else np.inf simplices [] for s in dela.simplices: if circumradius(points[s]) threshold: simplices.append(s) facet_counter Counter() for s in simplices: for remove_idx in range(len(s)): face tuple(sorted(np.delete(s, remove_idx))) facet_counter[face] 1 return [f for f, cnt in facet_counter.items() if cnt 1] # 在三瓣星形曲線上采樣 300 個點 theta np.linspace(0, 2 * np.pi, 300) r 1.0 0.35 * np.cos(3 * theta) pts np.stack([r * np.cos(theta), r * np.sin(theta)], axis1) boundary alpha_shape(pts, alpha0.35) print(邊界邊數(shù)量, len(boundary)) print(前 5 條邊頂點索引, boundary[:5])邏輯說明alpha_shape 函數(shù)在二維會保留部分三角形再從這些小三角形的邊里找出只出現(xiàn)一次的邊作為邊界。當(dāng) alpha 取 0.35 時三瓣星形中間的凹槽會被保留下來邊界邊數(shù)量通常在 300 條左右接近采樣點數(shù)。如果 alpha 取 0.03跑出來的邊界會更接近凸包凹槽變淺邊界邊數(shù)量也會相應(yīng)減少。你可以把 alpha 改成 1.2會發(fā)現(xiàn)邊界碎成很多短線段說明參數(shù)太大導(dǎo)致保留的三角形太少。參數(shù)說明示例里采樣點沒有加噪聲所以外接球半徑分布比較干凈。實際項目中點云帶噪聲alpha 閾值要略大于點云局部鄰域的真實尺度。判斷手段就是先打印一張半徑分布直方圖然后選一個處于 70% 到 90% 分位數(shù)之間的半徑閾值再換算成 alpha。我在二維輪廓提取中用這個經(jīng)驗基本不用反復(fù)試。4.2 三維點云從散點到封閉表面網(wǎng)格三維的用法與二維幾乎一致只是 Delaunay 剖分生成的是四面體邊界提取得到的是三角形面。用環(huán)面點云做示例環(huán)的中心有洞凸包會把這個洞填滿alpha shape 應(yīng)該恢復(fù)中空形狀。def sample_torus(R2.0, r0.8, n1200, seed1): rng np.random.default_rng(seed) theta 2 * np.pi * rng.random(n) phi 2 * np.pi * rng.random(n) x (R r * np.cos(phi)) * np.cos(theta) y (R r * np.cos(phi)) * np.sin(theta) z r * np.sin(phi) return np.stack([x, y, z], axis1) pts3d sample_torus() boundary3d alpha_shape(pts3d, alpha0.35) print(三維邊界三角形數(shù)量, len(boundary3d))邏輯說明代碼直接在環(huán)面上隨機采樣 1200 個點alpha shape 過濾后留下的四面體會覆蓋環(huán)面周圍的一層殼內(nèi)部大空洞對應(yīng)的四面體外接球半徑過大會被過濾掉。extract_boundary_facets 返回的每條邊界是一個三角形三角形的三維坐標(biāo)可以通過 pts3d[list(face)] 取回。這里 alpha 取 0.35 只是一個例子不同環(huán)面半徑和采樣密度需要重選。參數(shù)說明三維比二維更敏感。alpha 稍微調(diào)大 0.1就可能出現(xiàn)成片空洞調(diào)小 0.1邊界三角形會明顯變多甚至開始出現(xiàn)內(nèi)部小碎塊。我通常以邊界三角形數(shù)量作為反饋理想的三維 alpha shape 邊界三角形數(shù)量應(yīng)該接近“預(yù)期表面積 / 平均三角形面積”的 1.2 到 1.5 倍。如果數(shù)量突然翻倍多半是出現(xiàn)了內(nèi)部碎片需要調(diào)大 alpha。4.3 高于三維用同一個類處理四維/五維數(shù)據(jù)如果你真的需要四維 alpha shape同一個函數(shù)可以直接跑但數(shù)據(jù)量要嚴(yán)格控制。下面示例生成一個四維超球面上的 800 個點然后提取邊界邊界面應(yīng)該是三維單純形也就是四面體。rng np.random.default_rng(7) pts4d rng.normal(size(800, 4)) pts4d / np.linalg.norm(pts4d, axis1, keepdimsTrue) boundary4d alpha_shape(pts4d, alpha1.0) print(四維邊界四面體數(shù)量, len(boundary4d))邏輯說明四維超球面的 Delaunay 剖分元素數(shù)量遠(yuǎn)多于三維800 個點已經(jīng)會讓剖分花費幾秒到幾十秒。alpha 取 1.0 在這里意味著半徑閾值 1.0超球面的單位半徑會被完整保留邊界提取得到的是三維單純形。這些單純形無法直接三維可視化但可以用于后續(xù)拓?fù)浞治隼缬嬎?4D 超體積、統(tǒng)計邊界連通性。參數(shù)說明四維數(shù)據(jù)的數(shù)值穩(wěn)定性比三維差很多我建議先對數(shù)據(jù)做中心化和歸一化否則外接球半徑計算可能因為數(shù)值范圍差異出現(xiàn)大量 inf導(dǎo)致邊界為空。如果 alpha_shape 返回空列表不要急著調(diào) alpha先檢查數(shù)據(jù)是否退化或者把 alpha 改大試試。真實項目中五維數(shù)據(jù)基本只能跑幾十個點超過一百個點就可能內(nèi)存溢出。4.4 落成文件邊界邊、三角網(wǎng)格和中間量做完邊界提取最終要落盤才能交給下游。二維邊界可以保存成 CSV三維邊界是三角形可以直接寫成 OBJ 文件更高維邊界則保存為 npz 或二進制數(shù)組。這里給一個最簡的三維 OBJ 寫入函數(shù)def write_boundary_obj(path, points, boundary_facets): with open(path, w) as f: for p in points: f.write(fv {p[0]:.6f} {p[1]:.6f} {p[2]:.6f}\n) for face in boundary_facets: # OBJ 面索引從 1 開始 f.write(ff {face[0]1} {face[1]1} {face[2]1}\n)邏輯說明三維 boundary_facets 里每個元素是一個三角形包含三個頂點索引寫 OBJ 時把索引加一即可。如果 boundary_facets 中存在重復(fù)或退化三角形OBJ 也能寫出來但大多數(shù)三維軟件會顯示異常。所以寫文件前最好做一次去重和面積過濾去掉面積接近零的三角形。參數(shù)說明對于二維邊界face 只有兩個頂點寫 CSV 更合適四維邊界的四面體如果要落盤我建議直接保存頂點索引矩陣后續(xù)分析時再按需轉(zhuǎn)成其他格式。不要用 OBJ 存四維數(shù)據(jù)會丟失維度語義。5. alpha shape 參數(shù)調(diào)優(yōu)與避坑常見問題和排查思路5.1 alpha 值等于 0、無窮大或負(fù)數(shù)行為差異很大現(xiàn)象alpha 設(shè)置為 0我原本以為會得到最細(xì)碎的邊界結(jié)果返回了一個凸包設(shè)置為負(fù)數(shù)時直接報錯設(shè)置為極大的數(shù)時邊界變成一堆破碎短邊。原因alpha 與半徑閾值是倒數(shù)關(guān)系。alpha 為 0 時閾值無窮大所有 Delaunay 單純形都會保留其最外層自然就是凸包alpha 為負(fù)數(shù)在幾何上對應(yīng)“空腔”的補集大多數(shù)實現(xiàn)沒有定義alpha 極大時閾值極小只有極少數(shù)小外接球單純形能保留邊界就會散架。解決把 alpha 視為正數(shù)參數(shù)默認(rèn)從點集邊長尺度反推。想要凸包就用凸包算法不要通過 alpha 置零來實現(xiàn)。代碼入口處對 alpha 做斷言alpha 0 時直接拋異常省得下游數(shù)據(jù)源傳錯參數(shù)導(dǎo)致邊界靜默錯誤。5.2 數(shù)值精度引起空腔與孤立點邊界出現(xiàn)小洞現(xiàn)象同一個點云今天跑出完整性很好的邊界明天換成 float32 類型后中間出現(xiàn)許多小洞或孤立點邊界不再連續(xù)。原因外接球半徑計算依賴線性方程組求解浮點精度不足時接近退化的單純形會把半徑算成非常大或 inf被過濾掉形狀上就表現(xiàn)為空洞。更高維度下這個問題更明顯。解決所有計算統(tǒng)一用 float64輸入數(shù)據(jù)如果是 float32 要顯式轉(zhuǎn)換。同時在剖分前做去重合并距離小于 1e-12 的重復(fù)點。如果還有空洞可以設(shè)定一個小的容差閾值將半徑小于 threshold 的 1.01 倍而不是 threshold 的單純形保留犧牲一點細(xì)節(jié)換取連通性。5.3 點密度不均時邊界斷裂稀疏區(qū)域被刪成斷層現(xiàn)象點云在角落附近采樣很稀疏在中間區(qū)域很密。alpha 取中等值時稀疏區(qū)域邊界一個大洞整個形狀被分成幾塊。原因alpha shape 的半徑閾值是全局的稀疏區(qū)域外接球半徑天然偏大按全局閾值過濾時這些單純形會被刪掉。解決先估計局部點距用中位數(shù)點距的 2 到 3 倍作為半徑閾值再換算成 alpha而不是直接拍腦袋。更徹底的方案是先用最近鄰插值或重采樣把密度拉勻再跑 alpha shape。不過在工程實踐中我經(jīng)常選擇保留“分塊”結(jié)果每個連通塊單獨輸出邊界而不是強行求一個完整邊界。5.4 大規(guī)模點集內(nèi)存爆炸Delaunay 剖分吃光內(nèi)存現(xiàn)象五十萬點三維點云跑剖分程序進程在幾秒內(nèi)內(nèi)存占用突破幾個 GB然后被系統(tǒng)殺掉。原因Delaunay 剖分在三維的復(fù)雜度雖然平均接近線性但常數(shù)非常大尤其是表面點云Qhull 會產(chǎn)生大量四面體。alpha shape 的過濾本身并不重重的是剖分階段。解決先用 voxel 降采樣把點云降到十萬以內(nèi)或者用 alpha 的大尺度初篩把明顯內(nèi)部的點去掉。如果業(yè)務(wù)必須全量點云考慮分塊處理把空間切成若干個重疊塊每塊做 alpha shape再按重疊區(qū)合并邊界。別指望調(diào)一調(diào) alpha 能讓內(nèi)存降下來內(nèi)存瓶頸在剖分不在過濾。5.5 和凸包、凹包、滾球法混用時的誤區(qū)以為是同一個東西現(xiàn)象看到“凹包”工具 docstring 里寫著 concave hull就把 alpha 參數(shù)填進去結(jié)果結(jié)果完全不可控還有人拿滾球法的半徑參數(shù)直接當(dāng) alpha 用。原因凹包算法有兩派基于 Delaunay 的 alpha shape以及基于 k 近鄰的滾球法。滾球法里的球半徑就是外接圓的物理半徑等于 alpha shape 的 1/alpha有的人把這兩個名字混填導(dǎo)致結(jié)果完全違背預(yù)期。解決先確認(rèn)你用的庫里參數(shù)是 alpha 還是 radius。如果是 radius內(nèi)部換算通常是alpha 1.0 / radius。接到自己的代碼里統(tǒng)一暴露 radius 參數(shù)內(nèi)部轉(zhuǎn)成 alpha 再用本文的實現(xiàn)計算。這樣下游調(diào)用的人不會因為倒數(shù)關(guān)系翻車。6. 進階如何用 alpha shape 做體積估算和質(zhì)量檢查alpha shape 不僅能畫邊界還能當(dāng)度量工具。三維點云體積估算可以跳過表面重建直接用保留下來的四面體求有符號體積之和。這個做法比先重建表面再求積分更穩(wěn)因為它不會因為表面裂縫產(chǎn)生體積丟失。以下是一個對第 3 章 keep_simplices 結(jié)果的體積計算def alpha_volume(points, retained_simplices): vol 0.0 for s in retained_simplices: tet points[s] # 以第一個頂點為原點另外三個頂點構(gòu)成矩陣 mat tet[1:] - tet[0] vol abs(np.linalg.det(mat)) / 6.0 return vol邏輯說明一個四面體的體積 行列式絕對值除以 6。把所有被 alpha 過濾保留的四面體體積加起來就是這個 alpha 值對應(yīng)的多面體體積。alpha 很小的時候體積接近凸包體積alpha 慢慢變大但還沒撕裂點云時體積會略小于凸包如果實際物體是中空的體積會明顯下降這個差值可以作為空心度指標(biāo)。我用這個體積做質(zhì)量檢查的思路很簡單對同一份點云跑兩個 alpha 值一個給出近凸包的粗糙體積一個給出細(xì)節(jié)體積。如果兩者差異超過 20%說明點云形狀里存在大量凹形結(jié)構(gòu)可能是物體本身復(fù)雜也可能是采集時遮擋導(dǎo)致。配合連通塊數(shù)量能快速判斷哪些掃描片段出了問題。多尺度 alpha 的取值習(xí)慣我在生產(chǎn)環(huán)境里是這樣做的先取 alpha 等于 0.5 倍中位數(shù)點距的倒數(shù)得到保守邊界再把 alpha 乘 2 得到精細(xì)邊界最后比較兩個邊界的體積和三角形數(shù)量。如果精細(xì)邊界的三角形數(shù)量暴增但體積變化很小說明你只是在逼近噪聲而不是逼近真實表面這時取保守值就好。這個“三角數(shù)量暴增、體積變化小”的現(xiàn)象是 alpha shape 里最常見的過擬合信號。最后說一個我自己的教訓(xùn)別迷信一個 alpha 走天下。同一個數(shù)據(jù)集換了掃描設(shè)備或者采樣密度最優(yōu) alpha 一定變。最讓我后悔的一次是把一套點云的 alpha 調(diào)得很漂亮然后直接套到另一套數(shù)據(jù)上輸出一堆廢片。后來我養(yǎng)成了一個習(xí)慣任何新數(shù)據(jù)都先跑一遍半徑分布直方圖再看一眼連通塊數(shù)量再決定 alpha整個過程不到兩分鐘。這個習(xí)慣幫我省掉的返工時間遠(yuǎn)遠(yuǎn)超過最初學(xué) alpha shape 的時間希望也能幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人妻内射一区二区在线视频| 国产自产91区13区| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 又大又长又爽| 天天日骚逼熟女| 亚洲一欧洲中文字幕在线 | 伊人久久AV诱惑悠悠| 久久激情五月| 夜夜 中文视频rt| 欧美人妻久久精品二区三区| 四虎国产精品永久在线囯在线| 97超碰欧美中文字幕| 91蜜臀熟女| 亚洲国产欧美中日韩成人综合视频| 亚洲文学偷乱拍啪啪啪啪 | 天天天天天超碰| 日韩乱插| 丁香九月激情| 97青青操视频| 五月天激情小说网| 小视频国产| 国产久久一区二区| 91熟女.com| 久久精品免费| 自拍欧美| 国产视频一区二区在线观看| 素人美腿视频网站| 狠狠色综合网| 91精品黄在线观看| 99老司机精品视频在线观看| 蜜臀久久99精品久久久久久-DVD| 中文字幕第2页| 综合97| 色网亚洲人| 九九热精彩视频| av网站免费线看| 蜜臀久久久久久999| 男人天堂综合| 国产美女高潮视频| 精品大全99999| 人人操人人操人人人操| 亚洲精品视频二区| 国产网红精品| 成人日韩3| 自拍偷拍 高清无码| 美女熟妇色| 久久久九九九| 日韩性爱小视频| 精品在线蜜臀| 亚洲最大AV网| 成人国产精品三级A片| 二男一女成人A片| 日韩性爱啪啪视频| 亚洲成人久久美女| 91精品婷婷国产综合久久竹菊| 宗合情欲网| 欧美日韩国产中文超碰| 亚洲涩图欧美| av无码精品久久久久| 久操高青| 天天综合-91入口| 囯产操逼片| 99无码视频| 亚洲大胆人体av| 色哟哟av| 欧美疯狂做爰xxxx| 色臀aV| 91超碰在线观看| 日韩精品一区二区人人人| 欧美日韩一二三| 日韩欧美性爱电影在线观看| 三级网色| 天天综合欧美黑人| 岛国片在线观看视频亚洲| 精品二区三四区五电影 | 日韩二级| 福利视频香蕉免费一区二区在线| 麻豆天美国美国产AV| 中文字幕精品码亚洲| 狠狠超| 国产精品免费日韩| 精品久久大胆人体| 18禁美女裸体无遮挡啪啪| 熟妇人妻一区二区三区| 国产精品久久久久9999小说| 日韩丰满熟妇| 可乐操亚洲蜜911| 99激情视频| 婷婷超| 亚洲瓯美色图| 探花精品视频| 中文字幕人妻资源在线| 狠操91,com| 成人性爱AV在线免费观看| 人妻丝袜无 码视频专区| 夜草欧美| 图片区小说区| 97超碰超| 69AV女优男人的天堂| 免费观看性欧美一级| 亚洲精品97中文字幕| 亚洲欧美中文日韩视频中国语| 欧美在线亚洲| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 九九热精品视频六| 精品国产72| 欧美亚洲图片| 日韩乱插| 国产无码成人无码| AV乱伦专区| 91精品少妇搡搡搡| 91精品国产日韩欧美综合| 怡红院视频在线| 日韩三级伦理中文字幕| 精品少妇一区二区| 亚洲第一页色| 一区二区三区机械有限公司| 九九探花视频在线观看| 高潮毛片无遮挡高清免费| 91亚洲黄色网| 久肏视频字幕| 99re在线视频国产| 抽插爽| 91麻豆天美国产欧美日| 欧美国产日韩高清在线| 亚洲天堂热| 看日韩操逼| wwwxxx日本爽| 狠狠中文字幕| 午夜爽爽爽在线观看永久入口姬片| 欧美狠狠干| 性猛交| 久九色| 久久久久久性爱免费视频| 任我爽在线视频免费观看| 熟女自慰久久久| 日韩乱伦视频| 精品亚州18| 国产不卡片| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 亚av顶级裸体一区二区三区四区五区| 嗯嗯啊好大| 久久国产精品熟女人妻| 亚洲极品| 韩国一级做a久久久久| 清纯唯美亚洲| 伊人精品视频| 精品毛片av一区二区| 色婷婷一区二区三区久久午夜成人不| #NAME?| 九久精品| 国产日产精品久久快鸭的功能介绍| 熟女熟妇伦久久影院毛片一区二区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 欧美 日韩 国产传媒| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 伊人天天久久动态图| 啊啊啊啊啊啊啊网址在线观看| 日韩精品9区| 午夜啊啊| 天天干夜夜一操| A久久| 亚洲图片 激情小说| 日日97| 家庭乱伦国产| 欧美性爱97超碰| 日韩特一级久久| 亚洲成a人v欧美综合天堂下载| 欧美美女在线高潮999| 人妻无码视频一区二区三区久久| 久操精品| 日韩精品99999| 国产suv精品一区二六| 曰韩中文人妻视频| 色婷婷综合视频| 九区国产| 九月丁香婷婷色| 熟女丝袜视频| 青娱乐休闲视频在线观看| 图片区小说区| 九九九久久久| 国产精品探花色| 黄页av| 国产免费一区在线观看| 久久精品99| 欧美黄色大片在线观看| 91在线欧美| 婷婷五月天丁香花| 欧美92| 天天爱天天韩国日本牛牛牛牛 | 丁香五月激情综合| 久久久不卡| 亚洲一区二区麻豆影院| 野狼福利社区| 欧洲亚洲人妻无码中字久久三区四区 | 波多野42部无码喷潮在线观看| 精品少妇后入一区二区三区四区人妻巨乳| 熟妇女伦乱视频| 人妻天堂综合网| 超碰97护士| 一区二区久久天天干狠狠| 国产高清成人免费视频| SS久久| 亚洲资源一区| 免费的av网| 国产成人精品必看| 78精品在线| 亚洲不卡不卡中文字幕不卡 | 九九九网站| 亚洲精品一二三四区| 国产日韩区| 久久久久久免费电影| 亚州情色j区| 国产成人拍国产亚洲精品| 天天干天天做| 插穴性爱视频在线观看| 蜜臀AV午夜精品久| 狠狠躁日日躁夜夜躁A| 日日干日日| 久久久精品中文字幕爱豆| 九九九九精品九九九九| 国产亚洲日本精品在线| 啊啊啊好湿久久| 国产精品网址| 国内成人圈中文字幕无码视频| 六六久久日韩不卡| 日本高清有码网址视频| 欧美一级黄色免费专区| 国产视频第二页| 黑人精品久久97| 青青草密桃在线播放| 黄色高清无码无码破解免费暗网 | 中文字幕丰满子伦无码专区在线视频最新 | 福利在线观看一区二区| 骚日日av| 一区二区三区四区在线不卡| 九九九九九九成人| 人人澡综合涩| 久久有碼| 亚洲资源网| av麻豆啪啪| 97色涩| 熟女中出视频| 精品成人女人久久| 精品中文日韩字幕视频| 夜夜骑操视频| 国产又色又粗又黄又爽| 91欧美情色| 立川理惠无码一区二区| 激情黄色五月天| 久久久成人国产精品无码| 久久婷婷一区| 超碰97男人| 丁香九月激情啪| 97超碰人人模人人拍人人| 一区| 久久久av爱| av天堂手机版追回| 97在线精品观看视频| 久久有码视频| 久草线上视频免费看| 花野真衣| 夜夜爽77777| 日韩中文字幕二区| 自拍偷拍 日韩欧美| 不卡二三区人妻少妇| 97碰碰日本乱偷人妻中文的| 久久极品一区二区| 色小视频蜜乳| 国产真实野战在线视频| 日韩免费簧片| 中出欧美| 亚洲一区二区AV| 97国产精品久久久久| 日韩精品人妻系列无码天堂| 殴美牲| 91精品91久久久中77777| 操逼无码一区| 亚洲欧综合另类无码一区| 国产9区| 九九九精品美女| 97精品视频在线播放| 东北老女人的激情视频| 久草久热| 午夜成人福利影视| 免费农村成人少妇人妻Aa一区二区视频| 六十路日本| 天堂中文资源在线bt| 成人免费看吃奶视频网站| 天天日天天干天天操| 色爱天堂| 婷婷五月天激情四射| 精品人妻一区二区三区不卡断 | 色香阁在线| 国产福利第一视频| 五月婷婷激情综合| 99爱在线视频| 欧美另类色图片| 操碰97| 无码又爽又硬又激情免费视频| 九热视频| 亚洲一区深夜| 久久夜色一区二区| 亚洲情色图片区| 久久久久ab| 啊啊好多水| 啊啊啊啊操死我了| 熟女高潮精品一区二区| 在线看污网站| 屁股久久久久久| 国产一级高清免费观看| 97超碰人人模人人拍人人| 翔田千里AV无码秘 三区| 精品无码秘 人妻一区二区| 青娱乐国产剧情av一区| 性爱乱伦视频免费| 蜜桃av综合网发布| 91久久久久久久久久久| 九九成人精品| 尤物视频网 刘玥| 色哟哟av| V A在线| 岛国黄| 日韩一级片在线看| 熟女人妻av在线资源,黄色的资源| 95精品在线| 亚洲青色欧美| 三久久久四久久久久| 无码137片内射在线影院| 奇米狠999| 99成人| 男人的天堂VA在线| 97欧美日韩综合| 韩日色费| 婷婷伊人綜合中文字幕| 人妻无码后入| 亚洲情欲| 日韩人妻一区二区精品| 91九色丨国产丨爆乳| 天美一区在线| 一区二区三区免费视频入口| 欧美性生活综合| 歐美一級亂黃99在綫精品| 91色色综合| 91精品网站| 欧美操逼熟女| 中文字幕加勒比海高清无码免费视频 | 75大香蕉| 东京热,男人的天堂| www熟女乱伦com| 欧美十八禁在线看| 亚洲色图国产另类| 精品午夜福利| 丁香婷婷啪啪| 夜夜操夜夜高潮夜夜爽国产精品区| 国产99热| 九九色精品| 亚洲在高跟鞋自慰久久在色线| 99久久婷婷| 超碰97久久观看| 国产白丝av| 色官网在线| 久久久久久久久久久久久久久久9| 免费观看一区| 五月婷婷五月天| 久久99深爱久久99精品| 日韩无码黄色片| 蜜臀AV成人精品蜜臀AV久久| 欧美v日韩v亚洲v最新在线| 国产精品久久久久av| 欧美91网站| 三级精品三级在线观看| 青青国产精品在线| 亚洲高清自拍| 人人乐大香蕉| 国产精品剧情| 岛国小电影| 午夜精品久久久久久久久久久久久| 全球成人中文在线| www. 男人天堂成人在线| 91看黄片| 日韩噜噜69| 免费人成在线观看网站品爱网| 91超碰人人| 欧美 亚洲 在线| 色综合网1| 97超碰伊人| 久久久成人国产精品无码| 亚洲男人综合网| 无码人妻精品一区二区中文| 欧美日韩婷婷中文| 国产精品999zyz| 欧美日韩美女精品久草一区二区三区| 3D污黄视频在线观看| 十八禁电影伊人网| 中文字幕jul-617人妻熟女| 久热免费视频| 偷拍 亚洲 欧美| 日韩在线AB| 国产又猛又粗又爽又黄| 性性欧美| 国产激情在线| 久久久久99999| 免费的av网| 岛国免费视频在线| 97就爱干| 激情色色| 亚洲 欧美 精品专区 极品| 狠狠躁AV| 国产视频一区二区三区在线免费观看 | 性高潮久久久久久久久久久| 丁香六月婷婷综合| 97超碰碰| 欧美在线|亚洲| 色色色热| 操操逼视频| 中文字幕女同在线| 激情五月婷婷综合| 人妻无一区二区三区| 日韩无码AB| 欧美强奸一区二区诱惑| 91n欧美| 91骚妇| 日韩女模中文造逼| a片自拍直播视频| 亚洲色图欧美另类在线| 国模精品娜娜一二三区| dy888午夜老子影视达达兔| 啊啊啊啊啊在线视频| 免费的黄片wwwwww| 国产视频人人网| 2017大香蕉国产精品久久| 精品毛片久久久精品毛片| 欧亚综合一卡二卡中文字幕| 岛国在线一区二区三区| 亚洲综合首页| 亚洲中文字幕久久无码精品| 久日91在线| 婷婷五月天成人| 国产日韩区| 99re这里只有| 91丝袜在线视频| 91neishe| 无遮挡猛进视频免费无限观看| 日韩av性爱在线播放| 神马久久久久久久久| 九九热五区| 久久久中文| 亚洲三区视频| 少妇被c 黄 免费观看| 国产精品一级二级在线| 色第一页| www.欧精品| 亚洲国产激情国产av| 亚洲国产精品成人综合| 97亚洲中文| 婷婷九月丁香| 欧亚成人在线视频| 综合网欧| 啊好爽受不了无码| 欧美在线官网| 999久久久精品国产| α√在线| 91丨熟女丨丰满熟女| 欧美激情视频在线一区| 九九九网站| 亚洲人妻精品一区二区| 九九九九九九精品| 97超碰色中文字幕| 91少妇通奸网站| 加勒比海成人视频网| 国产精品久久久蜜臀| 天天透伊人| 九九在线视频| 亚州国产精品乱| 婷婷色播婷婷| 无码自拍SM| 综合久久欧美| 九九性视频| 依人大香蕉| 91狠狠综合久久| 丁香六月啪啪| 天天影视色香色欲| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 尤物视频新赏网鲜网色诱网| 吊色| 91久热| 麻豆天天躁天天揉揉AV| 国产路线专区| 一起草三级AV电影在线观看| 91P0RNY大屁股人妻| 一中国女人毛片水真多| 乱性AV| 日韩三A大片在线观看| 亚洲日本激情| www.大香| 中文字幕一区日韩精| 国产久久久久久久久一区二区| 韩国一级婬片A片AAAAA| 99精品无码| 人人妻人人操人人乐| 殴美综合色88| 91视频综合在线| 舔人妻中文免费视频| 啪啪啪男女亚洲中文字幕99| 无码人妻精品酒店| 欧美亚洲第一页| 久久久久久精品免费看A级| 强免费黄色网址| 大香蕉亚洲中文| 国产白嫩精品久久| 成人一级二级| 试看60秒 爽| 性爱视频无打码在线观看| 日本视频在线观看污污污| 亚洲福利中文字幕在线| 欧美熟爽综合| 精品乱码在线观看| 色色九区| 色翁荡息又大又硬又粗又爽| 免费看日产一区二区三区| 亚洲 图片 综合91| 亚洲清纯唯美| 国产高清自拍视频| hd成人一区二区在线| 67914亚洲精品| 91欧美美女日韩国产婷婷| 性色高清..……| 久久国产成人精品国产成人亚洲| 欧美性爱1080p| 日本三级黄页| 呦女网站| 99久久国产精品免费高潮| 人人摸人人添人人操 | 日韩中文字幕视频在线观看| 麻豆AV一区二区| 色哟哟av| ..日韩av毛片精品久久久| 亚洲操操操| 久草精品视频| 男人女人18禁片免费看网站| 婷婷色影院| 青青草白白色| 啊啊啊免费视频| 亚洲色图亚洲无码强奸乱伦| 熟女自慰久久久| 大香蕉综合网| 婷婷五月天影院| 97AV在线免费观看| 亚洲无码精品AV久久久| 99久久久99久久91熟女| 久久华人网| 国产日韩欧美操逼视频| 久久综合乱子伦国产免费| 欧洲色综合| 老司机老司机午夜影院| 中文字幕av久久爽Av| 蜜臀久久99精品久久久久久酒店| 九九探花视频在线观看| 久久久久网站-538在线视频-欧美永久乱码 | 亚洲最大的综合性av| 国产精品午夜成人福利| 啊啊啊啊啊啊在线观看| 五月天婷婷成人网| 亚洲综合在线91| 影音先锋中文字幕日本好一区二区| 夜夜狠狠躁日日躁色视频| 淫荡网址| 精品国产乱码久久久久久久久1| 伊人性在线视频| 午夜爽爽爽在线观看永久入口姬片| 亚洲91网。| 亚洲巨爆乳一区二区三区四季网| 欧美久久九九| 夜夜爽夜夜爽| 日本天天人人狠狠在线日美女| 超碰在线91| 五月综合色| 欧综合网| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 人人扣人人操| 蜜臀99精品国产高清在线观看| 国产热RE99久久6国产精品首| 大香蕉在线SuP| 韩日无码在线观看| 新怡红院| 天天欧美欧美亚洲网| 大香蕉久久| 国产精品视频电影| 国产无马在线| 欧美午夜视频| 国产精品一区二区 尿失禁| 91劲爆| 亚洲成人免费电影| 国产白丝av| 九九十八精品| 久久社区一区二区三区| 91老妇女| 夜夜夜久久| 亚瑟国产精品久久无码| 伦理日韩国产久久| 91日韩在线| 精品九九| 青青欧美| 婷婷中文字幕| 一区二区免费电影久久| 手机av亚洲丝袜美腿日韩第一页二页| 色香色欲天天综合网天天来吧| 精品人妻久久久久一区二区三区| 伊色综合天堂色97| 中日亚韩免费视频| 青青青在线高清视频在线一二三四区| 91在线美女| 激情国产乱伦Av| 精品人妻一区二区三区免费视频| 亚洲精品一二三四区| 精品高清一区二区三区三州| 有码专区最新中文字幕有码| 色好看av| 大香蕉综合在线| 一区二区三区美女超清| 亚洲高清在线se| 91肉丝| 日本中文字幕一区| 999日韩中文精品观看视频。| 久久性爱精品一区| 欧美精品庄| 国产乱码精品久久久久久 | 自拍内地三级在线观看| 色香网| 欧美 日韩 国产传媒| 性爱av网站| 国产精品久久久久无码Av网曝门| 97国产精选| 69精品人人人人| 丁香五月天激情综合| 日韩人妻一二三区视频 | 天美传媒av在线| 国产久久久9999| a在线观看| 色官网色综合| PMv在线观看| 啪啪自拍九九综合| 91美女国产在线| 激情亚洲天堂| 国产高清1234区| 午夜国产成人福利视频| 人人摸.人人色| 超碰95| 9I1性色影院| 色呦色呦色精品| 啊啊啊好舒服好爽啊啊啊视频| 婷婷五月天影院| 日本在线视频导航| 色呦呦呦在线观看视频| 黄片免费视频2019| 久久精品熟女亚洲AV麻豆软件| 好湿好紧视频| 亚洲情色综合网| 综合91网| 最新av在线| 亚洲码和欧洲精品激情系列| ′ !γ}丶。。久久精品欧美一区二区三区| 99精品成人免费看| 亚洲天堂7777| 少妇3P性爱自拍| 激情抓乳插进去啪啪啪日韩 | 亚洲成人福利电影免费| 日本孕妇孕交| 亚洲第91页| 欧美页片| 97 九色| 一区二区不卡| 欧美日韩亚洲五月天婷婷| 操操操操操操| 激情欧美日韩女同久久| 乱老熟女一区二区三区| 国产AV天美| 三上制服丝AV| 国产人妻一区二区三区欧美毛片| 国产乱弄免费在线视频。| 物尤视频一区二区| 91国产美女丝袜足交精品视频| 亚洲美女30b| 大香蕉宅男伊人| 亚洲情色一区二区三区| 男人精品天堂一区| 九草九九九| 欧美BT 亚洲色图| 96一区二区| 一区二区乱码福利| 性暴力欧美猛交在线直播| 婷婷丁香九月| 果冻国产精品麻豆成人av| 欧美十八禁在线看| 婷婷久草一区二区三区| 抽查国产福利主播| av天天在线| 国产精品97超碰| 欧美精品庄| 成人小说另类在线| 操操操日本的逼| 亚洲国产无码精品首页久久久| 五月天久久久| 欧美色九九九| daxiangjiao你懂的| 婷婷8月天青娱乐| 久操免费观看| 日韩一区二区精彩视频| 日韩一区二区高清在线观看的| 亚洲成?V人片在线观看福利| 91在线页| 欧美人妻中出| 超碰诱惑| 国产av强奸美女| 免费一级视频特黄色大片| 亚洲天堂人妻一区二区| 日韩精品怡红院| 麻豆91熟妇人妻中文字幕茄子| 一级性爱视频免费观看 | 久久超碰国产一区二区三区| 加勒比在线视频一区二区三区 | 伊人黄色视频免费观看| 超碰亚洲欧美日韩无| 2019午夜福利视频| 日韩欧美加勒比| av网页一区二区三区| 色色婷| 黄色不卡视频| 综合 亚洲 欧美| 淫荡少妇免费| 人人澡人人爽人人精品| 五十路熟女,国产欧美精品区一区二区三区| 国产99999| 把腿张开老子CAO烂你| 亚洲人精| 亚洲第一视频 欧美风情 日韩| 秋霞操逼片| 亚洲综合激情五月久久| 国产女人9999| 天堂69亚洲精品中文字| 亚洲色久| 91男人天堂网| 无码精品久久| 啊啊啊啊啊啊啊国| 天天日日夜夜| 精品二区三四区五电影 | 日韩一级成人毛片免费观看 | 超碰97最新人妻| 欧美第二页| 亚洲中文字幕av| 亚洲综合校园春色| 国产福利电影| 九九热免费国产视频婷婷伊人五月| 男人天堂无码| 女人 A一级| 97内射偷拍| 中文字幕三四区| 大香蕉520| 国产suv精品一区二六| 这里只有精品视频在线观看麻豆| 亚洲情色1区| 色欧美亚洲| 99热超碰在线| 一本久久久精品| 丰满人妻一区二区三区大胸懂色| 欧美大战久久久伊人| 激情小说图片亚洲首页| 青青11操操操操操操操操| 日韩综合97p| 五月天久久久| 欧美亚洲首页| 色五月AV| 激情文学小说一区二区| 亚洲Av诱惑| 2018天天日天天日| 国产又大又粗又长视频在线| 98精品国产乱码久久久久久| 日韩亚洲Av人人夜夜澡人人爽| 91人妻Pr| 久久最新视频免费观看| 久久久久久久综合,国产| 超碰九区| 夜夜影视四色| 怡红院怡春院| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 亚洲.欧美.丝袜.中文.综合| yazhousetuoumei| 青青草中出视频| 精品久久无码午夜福利| 丰满人妻一区二区三区大胸懂色| 精品无码久久久| 国产精品在线一区二区| 少妇久久久久久久| 操逼网站视频漫画国产| 97综合日韩| 大粗鳼巴久久久久| 日本性爱欧美性爱| 女优免费一区二区永久| 国产真乱mangent| 久精品无码av一区二免费国产在线观看| 欧美色棕合| 午夜福利一区二区三区四区五区色婷婷| 黑人猛交| 丁香五月天啪啪| 97热视频在线观看| 色视频蜜乳| 亚州色图第三区| 日韩无码服务区| 变态乱伦伪娘灌肠一区二区| 精品久久視頻在线| 伊人网一本| 欧美少妇性爱网站| 久操操| 日本一区二区不卡| 日日操天天操| 青青草AV色| 国产午夜无码片在线观看影视| 亚洲国产欧美日韩人妻日中文| 997色在线| 波多野结衣被操50分钟免费视频| 97操97色| 蜜臀99久久| 五月婷婷影院| 日本媚薬中文字幕在线| 国产精品一区二区黄片| 日韩成人人妻网站| 最新国产亚洲精品精品国产亚洲综合| 香港日本韩国人妇99www.wccm20| 亚洲国产美女久久久久| 97亚洲性爱| 97在线免费观看| www四虎| 国产偷拍网站| 日本丝袜美腿人妻九九| 欧美日韩大香蕉| 91网亚洲| 啪啪啪东京| 欧美国产一区二区三区麻豆传媒| 18禁无码永久免费无限制| 刺激性视频黄页| 久久亚洲中文字幕视频| 在线视频五十市| 欧美一级黄片视频在线| 加勒比海成人视频网| 黄色AAAAAAAAAAA大片| 日韩欧美天天爽爽爽天天爽爽| 99re公开精品免费视频| 国产精品高朝久久久久久久| 国产日本久久免费精品| 中文字幕福利视频一区二区三区在线观看| 高清无码国产亚洲| 97超碰超| 97爱欧美| 嫩草影院在线观看精品 | aaaa黄片| 96久久久久久久| 超碰久久中文| 尤物网址| 深喉吞精| 男女91| 国产亚洲日本精品在线| 欧美日韩狠狠爱| 熟妇视频一区二区三区在线观看| 很很很很操| 性色av婷婷久久一区二区点复制| 91制服丝袜中文字幕| 特级大荫道BBwBBwBBW| 亚洲制服aⅴ中文字幕| 欧美96交| 伊人久久亚洲中文字幕| 日韩激情啪啪啪| 99re6在线视频播放免费精品| 日本在线不卡123| 大黄片做爱的大的| 精品人妻一区二区三区四区| 天天操女人| 思思热影视| 超碰78| 亚洲日本天堂| 东京太热久久久| 欧美性爱1080p| 人妻久久一区二区三区 | 丝袜美腿丝袜| 97色论| 五月婷婷综合在线| 人妻中文字幕精品无码| 久操国产在线| 国产女人9999| 91在线免费观看处女| 中国探花熟女| WWW操逼| 国产精品乱码久久久| 麻豆精品三区视频| 欧美在线官网| 久热9| 日韩A优精品在线观看| 国产一区二区在线播放| 精品9999| 日本黄色裸日本黄色裸体 | 中文字幕一区二区无码成人| 操死我了嗯嗯嗯| 999久久久久久久精| 亚洲精品三| 日韩人妻 中文字幕| 人人模人人看| 国产精品剧情| 欧美性高潮在线| 国产一| 国产60区。| 欧美视频在线第3页| 中文字幕精品资源在线| 日韩免费在线视频观看| 校园春色综合网| 撸无码不卡免费视频| 98福利在线视频| 狠狠色一区二区中文字幕| 有码免费观看| 久草久热| 91亚州日韩高清| a网站免费观看| 精品国产久热在线观看| 欧美日本中字另类在线| 精品人妻1区| 久热精品在线国产| 91人妻人人澡人人爽人人精品| 欧美啪啪色吧在线| 蜜臀久久久99久久久久 | 天天躁日日躁AAA片李宗瑞| 99性爱在线观看| 亚洲无吗在线视频| 国产免费操逼| 91人妻做a观看视频| 欧美另类精品xxxx| 女人 A一级| 人妻aa| 亚洲精品无码少妇久久| 日本理论在线| 9999久久久久| 久久女人一区二区三区| 资源新线在线天堂| 国产综合久久久麻桃个| 国产97亚洲| 色99999| 思思视频免费看网站| 国产强奸乱伦xd| 乱伦图一区| 亚洲第一无码播放立川理惠| 国产免费一区在线观看| 1024人妻| 久久久久无码| 青青草日本中文字幕| 另类视频在线| 中出20p| 美女黄站| 成人26uuu| 人人摸人人添人人操| 亚洲操人| 欧美综合骚| 东北老女人的激情视频| 99re在线视频国产| 日本Suv精品一区二区| 清纯唯美亚洲| 国产人妖视频一区在线观看| 亚洲AV永久无码一区仙野| 91黑丝在线播放| 欧美狠狠弄| 欧美丝袜美女电影一二三四区| 亚洲一区二区av| 国产1024在线播放| 久操网线| 97AV爱| 香蕉免费一区二区三区不读| 欧美色吧综合| 91性高朝久久久久久久久| 欧美午夜视频精品久久| 玖玖在线视频| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 精品人妻中文字幕高清| 操逼大黄片| 可以免费观看的AV| 欧美精品双插| 中文字幕黄色一起草| 91久久免费视频互動交流| 伊人女女资源在线观看| 97在线国产精品| 亚洲高清男人天堂| 99久久精品国产系列| 日操粉逼逼| 99re不伦| 嗯嗯啊啊啊好爽| 无码天天操| 精品久久青青草| 蜜臀aV午夜一区二区三区| 日本色色色网站免费看不卡| 图片区小说区| 久久伊人青青草| 屁股久久久久久久久久| 囯产操逼片| 欧美老妇女内射网址| 玖玖综合网| 亚洲AV成人无码久久精品播放| 欧美日韩理论一区| 最新制服中文第一页| 91在线视频观看国产| 久久久999网站| 超碰久超碰久| 国产92麻豆天美精品色欲5| 久久做97| a级免费在线观看| www五月| 97网站在线观看| 黄色区免费观看中文字幕| 99999精品成人| 中文乱码字幕观看| 综合婷婷| 99色热| 国产成人无码高清| 欧美亚洲激情一二三| 韩三级a视频在线观看| 国产久久一区二区午夜| 男人的天堂com| 日韩中文字幕在线视频观看| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 黄色交缠性感爆操91国产精品免费一区二区三区 | 人妻啪| 欧美一区二区三区大综合| 人人妻人人操人人乐| 极品色综合| 九九性视频| 综合网少妇| 99操碰| 国产97色在线 | 亚洲| 婬女免费一二三区A片| 欧美日韩亚洲国产中文永久天天看| 中文字幕在线观看永久| 欧美aⅴ99久久黑人专区| 国产一区二区在线播放量| 久久夜色一区二区| 内射老妇BBWX0C0CK| 日本一二三高清| 国产一区二区三区免费视频在性观看| 蜜桃在线观看一区二区三区 | 久久久久久波多野吉衣高潮| 正在播放国产精品一区| 青女在线| 无码人妻丰满热妇又大又粗| 久久久96精品| 超碰人人在线| 亚洲欧美情色| 嗯嗯嗯啊啊啊操的我好爽| 午夜视频黄| 日本五十路在线| 国产一区在线免费播放| 快播电影网日韩新片| 欧洲色色| 成年人黄色视频免费| 精品999日本| 久久性爱大全| 在线欧美亚洲| 亚洲丝袜色图| 午夜精品五区| 超碰欧美COM| 青青草九九九九九| 国产精品久久久久久久AV大片| 在线情色电影 91大| 99日韩| 91欧洲国产成人久久精品网站| 久久视网78| 亚洲天堂无码| 另类图片天天影视| oumeizonghese,www| 极品尤物在线观看| 亚洲天堂男人| 亚洲偷拍欧美激情| 色噜噜婷婷| se吧提供91精品国产91久久久久久| A一级色女| 夜夜操二区| 久久精品久久九九精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 曰韩中文人妻视频| 97bbn| 亚洲 日本 一 二 三| 69少妇一区二区| 天天欧美| 好舒服视频| 国产欧美日韩在线观看麻豆传媒公司| 国产亚洲性生活视频播放| 精品国产乱码久久久久久免费| 日本不卡码黄色| 柠檬AV导航| 国产精品亚洲天堂网址| 色综合天天爱去电影网| 2017大香蕉国产精品久久| 屌色在线97视频| 免费超碰97在线观看| 色97干| 大香交| 97一区二压| 日韩99神马视频播放片在线播放| 亚洲AV无线| 欧美成年人性爱视频免费观看| 久久久久久久久9| 天天激色| 爱爱动态试试看6 0秒| 超碰av人人人| 一区二区三区精品久久| 2017人人操,人人摸| 九七超碰| 亚洲毛片久久| 熟女高潮精品一区二区| 久久久久元码视频| 欧美综合加勒比在线| 亚洲男人天堂2019| 六月婷婷综合| 无码聚合| 一区操逼日比视频| 色操逼网| 久久精品 六十路 熟女 欧美| 欧美色图亚洲色| 日韩91网| 中日韩久久久免费看| 免费超碰97久久| 九九国产| 高清肉丝中文无码| 麻豆精品天美| 久久精品老司| 午夜性| 天堂麻豆天美| 天天享受天天看| 午夜欧美J进J出白浆流出久久久| 久久久999网站| 亚洲有码 欧美精品| 992这里有精品| 丁香五月激情啪啪| 簧片免费看视频| 亚洲欧美精品福利在线| 人人看人人摸人人色| 欧美人人AAA| 黄片www.| 中文激情网| 99热这里是精品| 亚洲宅男天堂| 九九热九九热| 欧美日日夜夜| 亚洲永久永久永久永久一级一级一级精品 | 99久在线精品99re8热| 日本女人操逼| 婷婷月色| 日本美女性生活久久久久久久| 亚洲 日本 国产 综合| 97精彩视频网站| 久久久久久大| 久久熟妇五十路一区| 日日骚 av| 97天天弄| 国产精品久久久久999| 色综九九九一区| 91久|