相機技術

避免色彩失真及其對幀率與運算負載的影響

色彩是工業影像處理中的重要因素,有助於準確偵測錯誤,例如在印刷品影像檢測中。可靠的檢測需要避免色彩誤差。然而,防止這些誤差可能會影響其他系統參數,例如幀率與主機系統的運算負載。

為了確保檢測的可靠性,例如在印刷品影像檢測中,必須避免彩色影像中的色彩誤差。

避免色彩誤差 — 理論

彩色影像在哪裡、如何進行運算,以及從相機傳輸到主機系統的格式,都會影響色彩誤差。

具備 BG-Bayer 矩陣的感光元件原始影像
具備 BG-Bayer 矩陣的感光元件原始影像

原始影像

啟用後,工業相機會以標準的 Bayer 8 位元格式將影像資訊傳送至主機系統,也就是帶有感光元件 Bayer 矩陣的原始影像

當 Basler 彩色相機開始運作時,pylon Viewer 並不會顯示原始影像,而是呈現主機系統上進行的基礎彩色影像運算(2x2 去拜耳處理)的結果。這個簡單的處理步驟可能會產生可見的色彩失真,這可以透過在相機端直接進行去拜耳處理來避免。

經過簡單彩色影像計算後,條碼色彩邊緣出現色彩誤差的影像
經過簡單彩色影像計算後,條碼色彩邊緣出現色彩誤差的影像

去拜耳處理位置

從帶有 Bayer 矩陣的感光元件原始資料生成彩色影像的計算過程稱為去拜耳處理。去拜耳處理可以在資料傳輸前於相機內進行(輸出格式:RGB8、YCbCr 變體),也可以在資料傳輸後於主機系統上行(輸出格式:Bayer RAW 格式)。

當去拜耳處理在主機系統上執行時,會對系統資源造成更大負載。此外,為了避免色彩誤差,特別是在色彩邊緣,必須採用非常複雜的去拜耳演算法。因此,通常首選的作法是將去拜耳處理在相機的 FPGA 上完成。

去層法在計算時所包含的畫素數量各有不同。
左:簡單去拜耳的 2x2 環境 | 右:PGI 功能集中 5x5 去拜耳的環境

去拜耳演算法

去拜耳 (Debayering) 是一種透過插值運算,將 Bayer 感光元件的原始資料轉換成彩色影像的演算法。簡單的 2x2 去拜耳演算法只考慮最近的畫素,而 Basler 專利的相機端 PGI 功能集中的 5x5 去拜耳演算法則會納入 24 個畫素進行運算。

使用更多畫素進行計算會得到更好的結果:不同顏色之間的轉換變得更清晰,假影也會消失。

畫素格式因所包含的色彩資訊而大小各異。
畫素格式因所包含的色彩資訊而大小各異。

影像資料傳輸

相機接著將處理後的彩色影像傳送到主機系統。可選的畫素格式包括 RGB8、YCbCr422_8 和 YCbCr420_8。RGB8 提供最多的色彩資訊,因此檔案大小最大。YCbCr422_8 傳輸較少的色彩資訊,檔案較小,而 YCbCr420_8 所含色彩資訊最少,檔案最小。

若傳輸的色彩資訊較少,就可能產生色彩失真。

結論:避免色彩誤差的關鍵在於選擇正確的去拜耳處理方法,以及正確的彩色影像資料傳輸方式。最佳的彩色影像可透過相機端的 5x5 去拜耳處理,再以 RGB8 畫素格式進行資料傳輸來實現。


色彩誤差、幀率與運算負載的相互影響

根據您希望彩色影像達到的精確程度,應用系統主機的幀率與運算負載也會有所不同。以下有三種情境。

5x5 去拜耳處理結合較小的 YCbCr 畫素格式會產生中等程度的色彩誤差、中等幀率,以及主機系統的低運算負載。
5x5 去拜耳處理結合較小的 YCbCr 畫素格式會產生中等程度的色彩誤差、中等幀率,以及主機系統的低運算負載。

最高影像品質

5x5 去拜耳處理於相機的 FPGA 上執行,能將完全處理好的彩色影像以高品質的 RGB8 格式傳送至主機系統。此格式可實現最佳色彩品質,但同時也產生較大的資料量,將幀率降低至約最大值的 33%。然而,由於影像處理在相機端完成,主機系統的完整運算能力可保留給其他進一步的處理或分析任務。

5x5 去拜耳處理結合較小的 YCbCr 畫素格式會產生中等程度的色彩誤差、中等幀率,以及主機系統的低運算負載。
5x5 去拜耳處理結合較小的 YCbCr 畫素格式會產生中等程度的色彩誤差、中等幀率,以及主機系統的低運算負載。

平衡的影像品質與幀率

如果 5x5 去拜耳處理在相機 FPGA 上執行,並以較壓縮的格式(如 YCbCr422_8 或 YCbCr420_8)傳輸影像,主機系統接收的資料量會減少。這可提高幀率—YCbCr422_8 格式可達最大值的約 50%,YCbCr420_8 可達約 67%。然而,因為色彩資訊減少,可能會出現色彩失真。由於影像處理在相機端完成,主機系統的完整運算資源仍可用於其他任務,例如進一步的影像分析。

以 Bayer 8 位元格式傳輸影像資料可達到最高幀率,但主機系統的運算負載會取決於所選的去拜耳處理方法。
以 Bayer 8 位元格式傳輸影像資料可實現最高幀率,但主機系統的運算負載會依所採用的去拜耳處理方法而有所不同。

最高幀率

在您的應用中,如果高幀率比避免色彩誤差更重要,則可選擇在主機系統上執行去拜耳處理,讓相機以標準的 Bayer 8 位元資料格式傳輸。所選的去拜耳處理類型決定了能多有效地避免色彩失真,以及主機系統的運算使用程度。兩者呈現反比關係:更低的色彩誤差需要更高的運算負載,反之亦然。在這種情況下,主機系統的運算負載會高於前述情境 1 和 2,留給其他影像處理或分析任務的資源也相對較少。

做出正確的選擇:工具模擬色彩誤差和幀速率

不確定哪一種方案適合您的應用,也不確定較高的畫面幀率是否值得在色彩精確度上稍作妥協?我們提供兩種工具,協助您做出明智的決定。

Color Artifact Visualizer 顯示不同畫素格式與去拜耳處理方法下的色彩誤差 ΔE。
Color Artifact Visualizer 顯示不同畫素格式與去拜耳處理方法下的色彩誤差 ΔE。

Color Artifact Visualizer

將您應用中的影像載入 Color Artifact Visualizer,查看畫素格式與去拜耳處理方法如何影響色彩誤差 ΔE。

  • RGB 影像 為無色彩誤差的參考影像。使用 5x5 去拜耳處理在相機中計算的影像,會以 RGB 格式傳送到主機系統。

  • YCbCr422_8 和 YCbCr420_8 會出現輕微的色彩誤差,因為相機內的 5x5 去拜耳計算後,影像以較小的格式傳輸到主機。

  • 三種 Bayer8 格式下,色彩誤差尤其在色彩邊緣處非常明顯。使用 Bayer 8 位元格式時,去拜耳處理在主機系統上執行,這三種格式分別對應不同的去拜耳處理方法。


幀率計算工具可在選擇相機型號與畫素格式後計算可達到的幀率。
幀率計算工具可在選擇相機型號與畫素格式後計算可達到的幀率。

幀率計算工具

我們的幀率計算工具可計算您的相機在指定畫素格式下可實現的幀率。

請選擇您的相機型號與至少一種畫素格式,點選「計算」即可獲得最大可達幀率。

我們的相機具備內建 PGI 功能集中的 5x5 去拜耳處理

‍您需要什麼支援?

我們樂意提供產品選擇方面的建議,協助您為應用找到合適的方案。