金屬表面上淺淺的壓痕,顏色和亮度都與周圍相同,因此在一般光源拍攝的影像中幾乎看不見。但從側面打光時,壓痕一側的壁面會變亮,另一側則會變暗。Photometric Stereo 從多個方向有系統地量測這個現象,以像素為單位計算表面的斜率。
原理:亮度由表面方向與光線方向的夾角決定
在霧面(漫反射)表面上,一點的亮度大致如下。
亮度 = 反射率 × cos(表面法線與光線方向之間的夾角)
光線正面照射表面時較亮,越傾斜就越暗。每個像素的未知數為反射率 1 個與法線方向 2 個(斜率),共 3 個。在已知光線方向的情況下拍攝 3 張以上,就能解出這些未知數。以 8 個方向拍攝,即使部分影像因陰影或高光而無法使用,仍能以其餘影像穩定求解。
四種產出結果
- Albedo(反射率) — 去除光源造成的陰影後,表面原本的亮度。可看出髒污、變色、印刷不良。
- Normal map(法線圖) — 每個像素表面朝向的方向。通常以 RGB 顏色表示 X·Y·Z 分量。
- Depth(深度) — 對法線積分得到的相對高度。用來觀察整體的翹曲或變形。
- Mean curvature(平均曲率) — 表面彎曲的急遽程度。平坦面接近 0,在壓痕·刮傷的邊緣數值會大幅跳動。淺瑕疵在曲率圖中最容易看見。
用於檢測的方法
在 Multi-Inspector 中,以檢測模式類型(modeN_type)選擇要使用哪一種圖。
| 模式 | 輸入影像 |
|---|---|
albedo, albedo-clahe |
反射率圖(是否包含對比校正) |
mean-curvature, mean-curvature-clahe |
曲率圖 |
normal-map |
法線圖 |
這些圖已經是整理好的影像,不需額外旋轉即可直接送入異常檢測模型。只用良品的曲率圖訓練,模型就會把曲率與正常狀態不同、出現跳動的地方找出來判為異常。
注意事項
- 拍攝期間零件必須保持靜止。 在拍攝 8 張影像之間零件若移動,像素對應就會失效。請在靜止狀態下拍攝,或使用光源切換快速的控制器(如 IDGC)。
- 光亮表面會偏離原理。 鏡面反射不符合上述公式,會產生高光。可排除出現高光的影像後再計算,或以擴散板使光線柔和。
- 必須準確掌握光源方向。 光源位置改變時要重新校正。
如果需要真正的 3D 形狀(高度 mm),請使用 3D 相機。下一堂課 3D 視覺與點雲 會說明。