跳至內容
測試伺服器
開發伺服器

最佳化影像 Quality#

本主題說明您可以調整哪些參數,以取得立體與深度影像的最佳 Quality。

Camera parameters(例如 frame rate、Exposure Time 和 gain)決定了影像擷取的時機與方式。除此之外,它們對影像 Quality 也有重大影響。若要進一步改善深度影像的 Quality,您可以調整多個 stereo matching parameters。

這兩種類型的參數都可以使用 pylon 3D Viewer 進行設定。這可讓您在各自的 image windows 中立即看到任何設定變更的效果。

Camera Parameters#

若要檢查您所做的變更,請使用 Intensity image window。

影格率#

最高可達到的 frame rate(以每秒幀數 fps 計算)取決於攝影機的設定與主機系統的硬體。有幾個關鍵因素會影響 frame rate:

  • Illumination Control:投影機的工作週期(duty cycle)限制在最高 2.5%。加上最高 5 ms 的 Exposure Time,這限制了影像擷取的速度。
  • Exposure Time:Exposure Time 會直接影響影像擷取間隔。較短的 Exposure Time 允許較高的 frame rate,而較長的 Exposure Time 則會降低可能達到的最高 frame rate。
  • 深度計算: 計算深度影像所需的時間取決於透過 BslDepthResolution 參數設定的解析度,以及主機系統上可用的處理硬體(CPU 或 GPU)。較高的解析度和效能較差的硬體會增加處理時間,因此會降低可達到的 frame rate。

Frame rate 決定了透過 GigE Vision 介面傳輸的影像數量。降低 frame rate 可以顯著降低網路負載,以及 Stereo ace 攝影機與接收主機電腦的運算負載。在許多應用中,可以而且應該降低 frame rate,以符合系統的功能,同時仍能滿足應用的需求。

Exposure Time 與 Gain#

Exposure Time 是指在影像擷取期間,影像感測器暴露在光線下的時間。它會影響所擷取影像的明亮程度。Exposure Time 通常在幾毫秒的量級。如果場景中的光線較少,則需要較長的 Exposure Time。不過,如果場景中的物件或 Stereo ace 攝影機本身移動,較長的 Exposure Time 可能會導致模糊。

影響影像亮度的第二個參數是 gain。Gain 是一種放大倍率,可讓影像看起來更亮。不過,同時它也會增加影像雜訊。

透過設定 Exposure Time 與 gain,您可以專注於對應用重要的場景部分,例如場景中央的物件。必須避免目標區域內過度曝光,但對於應用不重要的場景部分則可以容忍。

一般原則是,就影像處理而言,過度曝光比曝光不足更糟糕,因為過度曝光區域中的資訊會因像素飽和太快而遺失。相比之下,曝光不足的區域通常包含足夠的影像處理資訊。因此,最好將參數設定得讓影像偏暗,而不是太亮。

只有在低光源條件下,或者如果您想要縮短 Exposure Time 以避免動態模糊時,才應該增加 gain。一般原則是,gain 值應盡可能保持最低。

Stereo Matching Parameters#

若要檢查您所做的變更,請使用 Point Cloud、Depth Map 和 Confidence image windows。

工作範圍#

首先,您需要考慮應用的工作範圍。透過將 BslDepthMaxDepth 參數設定為特定值,會使深度影像中距離較遠的所有像素失效。這是排除應用中不相關場景部分的簡單方法。

同樣地,您可以增加 BslDepthMinDepth 如果您確定沒有任何目標物體會比指定的距離更接近 Stereo ace 相機,則可設定此參數。增加最小深度的好處是還能縮短計算深度影像所需的時間,進而提高幀率。

延遲#

在某些應用中,計算深度影像的延遲比深度值的 Quality 更為重要。在這種情況下,您可以減少 BslDepthResolution 參數從 Full 設為 High 或 Low。較低的深度解析度會縮減立體匹配前的影像大小。這可以顯著減少處理時間並提高您可以達到的幀率。不過,計算深度影像的幀率始終受到相機幀率設定的限制。

如果主機端的傳輸和顯示負載是瓶頸,您也可以減少 BslIntensityResolution.

如上所述,如果可能的話,應增加最小深度,因為這也有助於減少延遲並提高您可以達到的幀率。

Density#

密度是衡量影像中無效像素數量的一個指標。密度越高,表示無效像素越少。深度影像通常包含無效值,這些無效值在 pylon 3D Viewer 顯示的深度圖中會呈現黑色。這會發生在超出指定 工作範圍 的場景部分,以及物體左側的區域。這是因為左側相機是參考相機,右側相機無法看到背景的一部分。這稱為遮擋,是一種正常現象。

一般來說,無效像素是大家所不樂見的。它們是由於立體匹配方法無法計算深度而造成的。原因有很多種。有五種不同(且互補)的策略可用來提高深度影像的密度:

  • 調整影像曝光: 過度曝光的區域不包含足夠的匹配資訊,因此會呈現無效。此外,如果影像雜訊大於場景的紋理,區域也可能會呈現無效。這兩個問題都可以透過調整 Exposure Time 和增益設定來解決,如 Exposure Time 和增益 一節所述。
  • 利用 Static Scene: 如果場景和 Stereo ace 相機在擷取影像期間保持不動,Basler 建議使用靜態模式(BslDepthStaticScene 參數)。啟用此參數後,Stereo ace 相機會在內部收集連續影像並將這些影像平均化以減少雜訊。這使得即使對於紋理較弱的物體也能進行立體匹配。這通常會產生密度高得多的深度影像。
  • 透過投影機改善場景的紋理: 室內環境中出現無效區域最常見的原因之一是缺乏紋理或存在高度重複的紋理。通常,牆壁和桌子是沒有任何紋理的單色。其他結構則高度重複。這兩種情況都不利於成功的立體匹配。如果這些紋理過多或過少的物體和場景部分對應用至關重要,則擷取它們的唯一方法是透過投影機人工新增紋理。
  • 選擇 Illumination Mode: 若要在場景中沒有投影圖案的情況下擷取強度資料,請使用 AlternateActive illumination mode。在此模式下,每張影像會進行兩次曝光:一次啟用投影機以進行深度計算,另請一次用於擷取強度資料。請注意, AlternateActive 會增加延遲。如果只需要視差資料,您可以透過設定來減少延遲 BslIlluminationMode 設為 AlwaysActive 而不是 AlternateActive。這樣一來,投影機在曝光期間會全程保持啟用。
  • 設定照明: 調整 illumination parameters BslIlluminationStrength 進行明確的生命週期管理即呼叫 BslIlluminationMode 以最佳化適合您場景的投影圖案。增加 Illumination Strength 可以提高投影圖案的可見度,尤其是在環境光線強烈的場景中。同時,您必須確保不超過工作週期和最大啟用時間。選擇適當的 Illumination Mode,將投影機與相機曝光同步,以獲得最佳結果。在 AlternateActive illumination mode 中,如果環境光線很少且沒有投影圖案的影像太暗,請嘗試降低 Illumination Strength 並增加 Exposure Time,以達到更好的影像亮度。

Depth Artifacts#

以下是很常見的深度偽影:

  • 離群值: 通常是深度值的小斑塊,可能會出現在工作範圍內的任何位置。
  • 幾何誤差: 被判定為不正確但接近實際深度的深度值。

過濾誤差意指將不正確的深度值設定為無效。此 BslDepthFill parameter 可用於內插通常由錯誤濾波所造成的小面積區域。較高的 Fill 值會增加可進行內插的區域數量。進行內插的區域大小直接取決於錯誤濾波的分割設定。

Outliers 可以使用 BslDepthSeg parameter 進行濾除。此參數指定要移除的相連像素的最大數量。所有像素數量少於此數值的區塊都會被設為無效。此大小也用於 BslDepthFill parameter。由此濾鏡造成的孔洞通常會進行內插。

減少 outliers 發生機率的另一種方法是提高 minimum confidence,因為信心水準即代表像素非極端值的機率。

具有潛在較高 geometric error 的深度值可以使用 BslDepthMaxDepthErr 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。

對於某些應用而言,深度圖中的表面必須保持平滑。這可以透過啟用 Smoothing 參數來實現。

如果相機影像包含未在深度圖中重建的高光(鏡面反射),您可以確認這些高光是否由相機的投射器所產生(例如,只需關閉投射器)。在這種情況下,Basler 建議使用 Double-Shot 模式。