工業相機攝影
如何設定您的工業相機進行攝影指南。
前言
本指南說明部分相機參數的功能與影響,並嘗試展示如何取得適合人眼觀看的優質影像。
自動化影像處理(例如量測)通常不需要美觀的影像,而是需要來自感測器的原始資料,而這正是工業相機所提供的。
基本原則
光線
光線是攝影中最重要的部分。
光線不足、照射角度錯誤,或光源閃爍,都一定會導致不佳的成像結果。最佳效果通常來自於可控制的照明環境。
若需要檢測刮痕或輪廓,光線應從側面照射,使物體產生陰影,以突顯表面細節。
自動功能
曝光、自動增益與自動白平衡等自動功能雖然使用方便,但效果有限。若拍攝場景的光線充足且穩定,建議關閉自動模式,改為手動調整相機參數,以獲得最佳成像效果。
增益
應盡量避免使用增益,因為增益會產生雜訊。建議優先增加曝光時間,以提升影像亮度並維持較佳畫質。
曝光
如果場景是靜止的,曝光時間可以設得盡可能長。如果場景會移動,則必須縮短曝光時間,直到運動模糊達到可接受的程度為止。
影像亮度
影像中呈現白色、過度曝光的區域不包含任何有效資訊。相反地,看似較暗、曝光不足的區域,仍然可能保留可用的資訊。
因此,在影像中應盡量避免過度曝光的區域。
電腦螢幕
所謂「真彩色(True Color)」的電腦螢幕可以顯示 RGB 24 位元色彩,共約 16,777,216 種顏色。螢幕的設定,例如色溫與亮度,會影響相機影像的呈現效果。
如果工業相機使用 10 位元或 12 位元的像素格式,則必須轉換為螢幕可顯示的 8 位元格式。當然,這樣的轉換會造成影像資訊的損失。
此外,如果螢幕老舊或性能衰退,影像中的細節也可能會被削弱或遺失。
參數屬性
工業相機具有多種參數屬性,其中一部分是在感測器上的類比調整,例如增益(Gain);另一部分則是在影像數位化之後對影像資料進行處理,例如 Gamma(伽瑪校正)與色調映射(Tone Mapping)。
曝光
曝光時間決定感測器在影像被讀出並轉換為電壓之前,能夠接收光線的時間長短。
增益
增益是在感測器上的一種線性類比放大器。增益越高,雜訊也會越多。
白平衡
白平衡用來調整影像中的紅、綠、藍三個色彩成分,使影像呈現更接近真實的色彩。
灰界演算法 (Grayworld)
灰界演算法自動演算法嘗試將直方圖中紅、綠、藍三原色的最大值調整至相同的亮度值。這在多數情況下表現良好。但在拍攝色調單一的影像時(例如:藍色地毯),這會導致影像呈現灰色。
色溫
色溫自動演算法則會考慮光源特性進行校正,因此可以保留物體原本的顏色,例如上述藍色地毯仍然保持藍色。
飽和度
飽和度用來調整影像的色彩強度,從完全無彩度(灰階影像)到過度飽和的強烈色彩。
預設值為 100%,將其調整到約 130% 可以獲得較為鮮明且自然的色彩效果。
Gamma
https://en.wikipedia.org/wiki/Gamma_correction
Gamma 用來調整影像的亮度分佈。Gamma 值小於 1.0 會使影像變亮,而大於 1.0 則會使影像變暗。
色調映射
色調映射與 Gamma 類似,皆屬於直方圖函數。它是一項強大的屬性,能讓高動態範圍(High Dynamic Range)影像在顯示器上清晰呈現。當原始影像格式的每個顏色通道為 10 位元或 12 位元時,其效果最佳。顯示器上的影像必須縮減(Downscaled)至每個顏色通道 8 位元。
強度
強度用於調整查找表(LUT)轉換的強度。
全域亮度因子
全域亮度因子用於調整比例:即應該使用多少全域影像亮度來偏移次方的因子表(Pow-factor-table),以及應該使用多少像素局部亮度。
增強暗部細節
存在一個具有極暗與極亮區域的高動態場景: 右上角的晶體部分過度曝光,而中間孔洞處的黑暗區域則看不到任何細節。
影像格式
應使用 RGB64 影像格式。它能提供每個顏色通道 10 位元或 12 位元的色彩深度。37U 相機系列 提供 10 位元,其他系列則提供 12 位元。額外的位元數主要分布在色彩深度的低亮度(黑暗)範圍內。
直方圖
直方圖是一個實用的工具,用於顯示影像中的亮度分布。此處顯示影像中沒有黑色像素(如直方圖中的黃色區域所示)。它同時也顯示直方圖右側有許多過度曝光的像素。我們的目標是減少過度曝光像素的數量。
注意: 缺失的黑色像素無法被還原,這取決於感光元件的特性。
1.3 調整曝光時間
目前已禁用增益與白平衡。亮度設定為 0,以降低黑階並將直方圖向左移動。
接著調整曝光時間,將其設定在一個直方圖右側不會顯示任何過度曝光值的數值。
目前的曝光時間為 1/69 秒,且僅有極少數像素的亮度接近 255。
色調映射
現在使用色調映射來增亮黑暗區域,同時保持較亮區域的亮度不變。 首先調整「強度 (Intensity)」屬性。
「強度 (Intensity)」的數值不應設得太高,以免失去亮部像素的細節。此時,原本位於暗處孔洞中的晶體已變得清晰可見。
接著,調整「全域亮度因子 (Global Brightness Factor)」,以將直方圖的分布稍微展開。
Gamma
使用Gamma 來稍微增亮影像。使用時須格外小心,因為它會導致大量細節流失:
銳利度
透過銳利度功能,可以使細節之間的邊緣更加突出:
在黑暗區域中會顯示出更多細節。
飽和度
提高飽和度可以增強某些彩色細節,使影像看起來更鮮明:
只使用曝光時間的孔洞影像:
為了只顯示黑暗孔洞中的細節,可以將曝光時間作為唯一需要設定的屬性:
總結
當然,如果在這個場景中使用光源照射,讓孔洞從陰影中顯現出來,會得到更好的結果。
在此範例中,所有自動功能都已關閉。如果光線條件改變,影像就會出現過曝或欠曝的情況,此時必須重新調整參數。工業相機主要是為「穩定且一致的光照環境」所設計。
為了克服這種問題,可以使用能夠接收不同曝光時間(因此具有不同亮度)的影像,並將它們智慧地合成的軟體。這個技術稱為 HDR(高動態範圍成像),例如可以透過 OpenCV 實現。
https://docs.opencv.org/4.x/d2/df0/tutorial_py_hdr.html
HDR
同一個場景以不同的曝光時間拍攝四次,並使用第 6.9 節提到的 OpenCV 演算法進行合成後,結果如下:
exposure_times = np.array([0.1111, 0.0588, 0.029, 0.014], dtype=np.float32)
這張影像顯示,要獲得最佳結果,需要不只一張來源影像。透過從自動曝光所回傳的曝光時間中,以智慧方式計算多組曝光時間,可以讓整個流程變得不依賴特定光線條件。
由於此處理過程需要一些時間,因此適用於靜態場景與單張拍攝的情況。







