機器視覺中的彩色感測器與 Bayer 濾鏡

在矽這一層級上,影像感測器本質上是「色盲」的。光電二極體只計算落於其上的光子數量,無法判斷這些光子究竟是紅、藍或綠色。彩色感測器是一種成像元件,藉由在像素上方覆蓋一層微觀彩色濾鏡陣列(CFA)以擷取光譜資料。該濾鏡會將入射的白光分離為特定波長,機器視覺軟體再透過數學插值的方式重建出全彩影像。

(提示:在設計新的檢測系統時,若想瞭解這種架構如何影響系統的速度與解析度,請參閱我們的比較指南:黑白相機 vs. 彩色相機。)

Bayer 濾鏡如何產生顏色

為了產生顏色資料,製造商會在像素陣列上方加上一層物理性的微濾鏡網格。業界標準是 Bayer 陣列,名稱來自其在 Kodak 的發明者。

此陣列將感測器劃分為不斷重複的 2×2 格子,每組包含一個紅色濾鏡、一個藍色濾鏡與兩個綠色濾鏡。為何綠色要多一倍?因為人眼對綠色波長最為敏感。將綠色資料加倍後,感測器能夠更準確地呈現影像的整體亮度(luminance),讓畫面對人眼操作員而言看起來更自然。

當光線進入相機時,濾鏡陣列會以物理方式將其分離。被紅色濾鏡覆蓋的像素,只允許紅色光子通過抵達矽層,而綠色與藍色光子則被吸收並阻擋,因此無法在該像素上產生電荷。

去 Bayer(去馬賽克)的數學原理

由於 Bayer 濾鏡的存在,感測器輸出的原始資料並不是一張可直接檢視的標準彩色影像,而是由單色亮度組成的「馬賽克」,往往看起來像深色棋盤圖案。

要產生可用的全彩影像(例如 RGB24 格式),系統必須執行去 Bayer(即 demosaicing)演算法。此演算法會藉由對每個像素的相鄰像素進行插值,重建每個像素缺少的顏色值。如果某個像素只量測到紅光,演算法就會根據周圍的綠色與藍色像素,推算出該像素的綠色與藍色值原本應是多少

此運算可由相機內建的 FPGA 直接執行,亦可將原始資料交由主機 PC 的 CPU 處理。

需評估的關鍵彩色規格

在配置彩色相機時,工程師必須評估一些在標準(黑白)感測器上不存在的硬體與軟體參數:

規格

技術影響

白平衡

能個別調整紅、綠、藍通道之類比或數位增益的能力。可確保白色物體在不同工業光源(如螢光燈與 LED)下都呈現真正的白色。

色彩深度

以每通道位元數衡量(例如 8 bit 與 10 bit 或 12 bit)。較高的色彩深度可帶來更平滑的漸層,並在品牌檢測中提供更精準的色彩比對。

色彩空間矩陣

套用於去 Bayer 後影像的數學轉換,使其符合標準色彩空間(如 sRGB 或 Adobe RGB),確保相機輸出與螢幕顯示一致。

常見問題

矽天生對近紅外(NIR)光敏感。Bayer 陣列上用於製造紅、綠、藍微濾鏡的化學染料對 NIR 波長而言幾乎是透明的。如果不使用 IR 截止濾鏡在鏡頭處以物理方式阻擋 NIR 光,NIR 光子便會均勻灌入所有像素,嚴重削弱影像的色彩準確度。

通常不行。要獲得正確的色彩還原,必須使用寬光譜白光照亮目標物。若使用窄頻紅色 LED,Bayer 陣列上的綠色與藍色像素幾乎接收不到光子,最終會得到一張暗淡、雜訊大、近乎單色的紅色影像。

有,但都屬於高度專業化的產品。線掃描相機常使用三線性感測器,由三條彼此平行、各自只感應一種顏色(紅、綠、藍)的像素列組成。此外,也有一些以稜鏡為基礎的特殊相機,藉由內部光學元件將光線分配至三顆獨立、不帶濾鏡的感測器。然而,對於標準的面陣機器視覺應用,Bayer 陣列依然是主流架構。

詞彙表