4.11. 去拜耳化(Debayering)

原始的 Bayer 影格在每個像素上只攜帶一個色彩通道。要把它轉換成正常的三通道 RGB 影像,意味著要透過從鄰近正確色彩的像素內插,來補上每個像素缺少的那兩個通道。這種內插就是 去拜耳化(debayering,也稱為去馬賽克化)。主流的演算法家族只有少數幾種。

4.11.1. 超像素(Super-pixel)

最便宜的做法是把每一個 2x2 的 Bayer 方塊(一個紅色格、一個藍色格,以及兩個綠色格)合併成單一個輸出像素:

  • 紅色通道取自紅色格的值;

  • 藍色通道取自藍色格的值;

  • 綠色通道取兩個綠色格的平均值。

每個 2x2 的輸入方塊變成一個輸出像素,因此完成後的影像寬度與高度都只有感測器的一半,像素數量只剩四分之一。超像素法速度快且不會產生內插假影,但解析度的代價使它成為最後的手段,很少被使用。

4.11.2. 雙線性(Bilinear)

雙線性 內插會對最近的正確色彩像素取平均,而非直接複製或概括。實際的平均方式取決於中心像素記錄的是哪種色彩,因為這四種情況在 3x3 鄰域中分布缺少通道的方式各不相同。

紅綠列中的綠色像素。 缺少的紅色值取左右兩個紅色鄰居的平均;缺少的藍色取上下兩個藍色鄰居的平均。

A 3 column by 3 row Bayer-pattern neighbourhood centred on a green pixel in a red-green row. The cells to the left and right of the centre are red; the cells above and below are blue; the corner cells are green. White arrows point inward from the two red cells and the two blue cells into the centre.

缺少的紅色來自水平方向的紅色鄰居;缺少的藍色來自垂直方向的藍色鄰居。

綠藍列中的綠色像素。 形狀相同,但紅色與藍色對調。缺少的紅色值取上下兩個紅色鄰居的平均;缺少的藍色取左右兩個藍色鄰居的平均。

A 3 column by 3 row Bayer-pattern neighbourhood centred on a green pixel in a green-blue row. The cells above and below the centre are red; the cells to the left and right are blue; the corner cells are green. White arrows point inward from the two red cells and the two blue cells into the centre.

缺少的紅色來自垂直方向的紅色鄰居;缺少的藍色來自水平方向的藍色鄰居。

紅色像素。 缺少的綠色值取四個正交方向綠色鄰居(上、下、左、右)的平均。缺少的藍色取四個對角線藍色鄰居的平均。

A 3 column by 3 row Bayer-pattern neighbourhood centred on a red pixel. The four cardinal neighbours (above, below, left, right) are green; the four diagonal corner cells are blue. White arrows point inward from all eight neighbours into the centre.

缺少的綠色來自四個正交方向的綠色鄰居;缺少的藍色來自四個對角線藍色鄰居。

藍色像素。 紅色情況的鏡像。缺少的綠色取四個正交方向綠色鄰居的平均,缺少的紅色取四個對角線紅色鄰居的平均。

A 3 column by 3 row Bayer-pattern neighbourhood centred on a blue pixel. The four cardinal neighbours are green; the four diagonal corner cells are red. White arrows point inward from all eight neighbours into the centre.

缺少的綠色來自四個正交方向的綠色鄰居;缺少的紅色來自四個對角線紅色鄰居。

雙線性法保留了感測器的完整解析度,且對大多數用途來說已足夠平滑,但它在邊緣處仍會顯現假影。兩種色彩之間的銳利轉變會以特定的方向穿越像素網格,而跨越邊緣取平均會使其略微變得柔和。在色彩邊緣與亮度邊緣未精確對齊之處,輸出中便會出現淡淡的色彩條紋。

4.11.3. 超越雙線性

存在一系列更優秀的去拜耳演算法。有些使用比雙線性那種同色鄰居小十字更大的鄰域,並以更謹慎挑選的係數對樣本加權;有些則偵測局部邊緣的方向,並讓內插偏向沿著該方向進行,使橫越像素網格的邊緣保持銳利而不會變柔和。這兩種做法都能減少雙線性遺留下來的色彩條紋與邊緣柔化,但代價是每個像素需要更多運算,以及更多的矽晶片資源(或 MCU 端更多的運算量)。

任一台特定 OpenMV Cam 上可用的去拜耳品質是平台相依的,取決於該相機上的感測器與 MCU 所提供的能力。

4.11.4. 去拜耳化在哪裡執行

影像訊號處理器(ISP)位於感測器晶片本身或 MCU 端,在多數情況下會於每個影格離開影像處理流程之前進行去拜耳化。使用者程式碼接收到的是完成的三通道 RGB 影像,完全不必接觸原始的馬賽克資料。

ISP 也可以被設定為讓原始的 Bayer 影格原封不動地通過。原始 Bayer 所占用的記憶體比去拜耳化後的影像少,每個像素一個位元組而非三個,這使得它在影格儲存成為瓶頸時、為離線處理進行擷取時,或當專案想以軟體套用自訂去拜耳演算法時相當有用。