社群計算機視覺課程文件
引言
並獲得增強的文件體驗
開始使用
簡介
什麼是點雲?
點雲是單個點的集合,每個點代表三維空間中曲面的一個樣本,由 [x, y, z] 座標表示。除了空間座標外,這些點通常還帶有額外的屬性,如法線、RGB 顏色、反照率和雙向反射分佈函式 (BRDF)。
此處,反照率是衡量曲面反射多少光線的指標。它本質上是反射光與照射到曲面上的入射光之比。簡單來說,它描述了入射光有多少被反射回來。高反照率表示曲面反射大量光線,例如雪,而低反照率表示曲面吸收更多光線,例如瀝青。
BRDF 是一個函式,用於描述光線在不透明表面如何散射或反射。它詳細說明了光線在表面交點處的反射方式,考慮了入射光方向和出射方向。它提供了曲面反射特性的數學描述,包括光澤度、粗糙度以及反射光在不同角度的分佈等因素。這些屬性在建模、渲染和場景理解等各種應用中發揮著關鍵作用。
儘管點雲資料的概念並不新鮮,並且多年來一直是圖形和物理模擬等領域不可或缺的一部分,但由於兩個關鍵趨勢,其重要性顯著增加。首先,經濟高效且使用者友好的點雲採集裝置的廣泛可用性大大提高了可訪問性。
增強現實和自動駕駛汽車進一步強調了它們在當今技術領域中的相關性。

既然我們知道什麼是點雲,那麼我們可以用它們做什麼呢?
3D 點資料主要用於自動駕駛功能,但現在其他使用計算機視覺的 AI 模型,如無人機和機器人,也正在使用 LiDAR 來實現更好的視覺感知。LiDAR 是一種遙感過程,它收集用於建立物體和環境的 3D 模型和地圖的測量值。LiDAR 使用紫外線、可見光或近紅外光,透過測量訊號從物體反彈並返回掃描器所需的時間來衡量空間關係和形狀。
生成與資料表示
我們將使用 Python 庫 point-cloud-utils 和 open-3d,可以透過以下方式安裝:
pip install point-cloud-utils
我們還將使用 Python 庫 open-3d,可以透過以下方式安裝:
pip install open3d
或者更小的僅 CPU 版本
pip install open3d-cpu
現在,我們首先需要了解這些點雲的儲存格式,為此,我們需要了解網格雲。
為什麼?
point-cloud-utils支援讀取常見的網格格式(PLY、STL、OFF、OBJ、3DS、VRML 2.0、X3D、COLLADA)。- 如果它可以匯入 MeshLab,我們就可以讀取它!(引自其自述檔案)
檔案型別從其副檔名推斷。支援的一些副檔名是:
PLY(多邊形檔案格式)
- 一個簡單的 PLY 物件包含用於表示物件的元素集合。它由一個頂點 (x,y,z) 三元組列表和一個實際指向頂點列表的面列表組成。
- 頂點和麵是元素的兩個示例,PLY 檔案的大部分由這兩個元素組成。
- 新屬性也可以建立並附加到物件的元素,但這些屬性應以舊程式在遇到這些新屬性時不會崩潰的方式新增。
STL(標準曲面細分語言)
- 此格式用三角形近似實體模型的表面。
- 這些三角形也稱為面,其中每個面由垂直方向和代表三角形頂點的三個點描述。
- 然而,這些檔案沒有顏色和紋理的描述。
OFF(物件檔案格式)
- 物件檔案格式(.OFF)檔案用於透過指定模型表面的多邊形來表示模型的幾何形狀。多邊形可以有任意數量的頂點。
- 它支援 ASCII 文字版本的物件用於交換目的,以及二進位制版本用於讀寫效率。
- 它也被稱為 .obj 格式。
3DS(3D Studio)
- 帶有 .3ds 副檔名的檔案表示 Autodesk 3D Studio 使用的 3D Studio 網格檔案格式。
- 3DS 格式採用二進位制檔案結構,與基於文字的格式相比,可以實現更快、更小的檔案大小,資料在檔案中組織成塊。
- 這些塊儲存形狀、光照和檢視資訊,共同表示三維場景。
X3D(可擴充套件三維圖形)
- X3D 是一個基於 XML 的 3D 圖形檔案格式,用於呈現 3D 資訊。它是一個模組化標準,透過多個 ISO 規範定義。
- 該格式支援向量和柵格圖形、透明度、光照效果和動畫設定,包括旋轉、褪色和擺動。
- X3D 的優點在於能夠編碼顏色資訊(與 STL 不同),這些資訊在彩色 3D 列印模型時會用到。
DAE(數字資產交換)
- 這是一種 XML 模式,它是一個開放標準的 XML 模式,DAE 檔案由此構建。
- 此檔案格式基於 COLLADA(COLLAborative Design Activity)XML 模式,該模式是用於在圖形軟體應用程式之間交換數字資產的開放標準 XML 模式。
- 該格式最大的賣點是其跨多個平臺的相容性。
- COLLADA 檔案不限於一個程式或製造商。相反,它們提供了一種儲存 3D 資產的標準方式。