最佳化影像 Quality#
諸如 frame rate、Exposure Time 和 gain 等 相機參數 決定了何時以及如何擷取影像。除此之外,它們對影像 Quality 也有巨大的影響。若要進一步改善深度影像的 Quality,您可以調整多個 立體匹配參數。
這兩種參數都可以使用 pylon 3D Viewer 進行設定。這可讓您在各自的 影像視窗 中立即看到任何設定變更的影響。
相機參數#
若要檢查您所做的變更,請使用 Intensity 影像視窗。
畫面更新率#
可達到的最高 frame rate(以每秒幀數 = fps 為單位)取決於相機的設定以及主機系統的硬體。有多個關鍵因素會影響 frame rate:
- 照明控制:投影機的工作週期 (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 and Gain#
Exposure Time 是在影像擷取過程中影像感測器暴露在光線下的時間。它會影響所擷取影像的亮度。Exposure Time 通常在幾毫秒的數量級。如果場景中的光線較少,則需要較長的 Exposure Time。然而,如果場景中的物件或 Stereo ace 相機本身移動,較長的 Exposure Time 可能會導致模糊。
影響影像亮度的第二個參數是增益 (gain)。增益是一個放大倍率因數,可讓您使影像顯得更亮。不過,同時它也會增加影像雜訊。
透過設定 Exposure Time 和 gain,您可以專注於場景中與您的應用相關的部分,例如場景中央的物件。必須避免關注區域內過度曝光,但在與應用無關的場景部分中可以容忍。
一般而言,就影像處理而言,過度曝光比曝光不足更糟糕,因為過度曝光區域中的資訊會因像素飽和過快而遺失。相比之下,曝光不足的區域通常包含足夠的影像處理資訊。因此,最好將參數設定為影像偏暗而不是太亮。
只有在低光源條件下,或者如果您想要縮短 Exposure Time 以避免動態模糊時,才應增加 gain。一般規則是,gain 值應始終盡可能低。
立體匹配參數#
若要檢查您所做的變更,請使用 Point Cloud、Depth Map 和 Confidence 影像視窗。
工作範圍#
首先,您需要考慮應用的工作範圍。透過將 BslDepthMaxDepth 參數設為特定值,將使深度影像中距離更遠的所有像素失效。這是排除應用中不相關場景部分的簡單方法。
同樣地,您可以增加 BslDepthMinDepth 若您確定沒有任何目標物件會比指定的距離更接近 Stereo ace 相機,則可設定此 Property。提高最小深度的好處同時也能縮短計算深度影像所需的時間,進而提高畫面更新率。
延遲#
在某些應用中,計算深度影像的延遲比深度值的 Quality 更重要。在這種情況下,您可以降低 BslDepthResolution parameter 自 Full 設定為 High 或 Low. 較低的深度解析度會在立體匹配之前縮減影像大小。這可以縮短處理時間並顯著提高您可達到的畫面更新率。不過,計算深度影像的畫面更新率始終受限於相機的畫面更新率設定。
如果主機端的傳輸與顯示負載成為瓶頸,您也可以降低 BslIntensityResolution.
如上所述,如果可能的話應提高最小深度,因為這也有助於降低延遲並提高您可達到的畫面更新率。
密度#
密度是用於衡量影像中無效像素數量的指標。密度越高表示無效像素越少。深度影像經常包含無效值,這些值在 pylon 3D Viewer 顯示的深度圖中會呈現黑色。這會發生在場景中超出指定 working range 的部分,以及物件左側的區域。這是因為左側相機是基準相機,且部分背景對於右側相機而言是不可見的。這稱為遮蔽,屬於正常現象。
一般而言,無效像素是不需要的。它們是由於立體匹配方法無法計算深度所造成的。原因有各種不同的可能。我們提供五種不同(且互補)的策略來提高深度影像的密度:
- 調整影像曝光: 過度曝光的區域不包含足夠的資訊來進行匹配,因此會呈現無效。此外,如果影像雜訊大於場景的紋理,區域也可能會呈現無效。這兩個問題都可以透過調整 Exposure Time 和增益設定來解決,如 Exposure Time and Gain 一節中所述。
- 利用靜態場景: 如果場景和 Stereo ace 相機在擷取影像期間保持靜止,Basler 建議使用 static 模式(
BslDepthStaticSceneparameter)。啟用此 Property 後,Stereo ace 相機會在內部收集連續影像並將這些影像平均化以減少雜訊。這使得即使是對紋理微弱的物件也能進行立體匹配。這通常會產生密度高得多的深度影像。 - 透過投影機改善場景紋理: 在室內環境中導致無效區域最常見的原因之一,是缺乏紋理或存在高度重複的紋理。通常,牆壁和桌子是單色且沒有任何紋理的。其他結構則高度重複。這兩種情況都不利於成功進行立體匹配。如果這些紋理過多或過少的物件和場景部分對應用至關重要,則擷取它們的唯一方法是透過投影機人工新增紋理。
- 選擇 Illumination Mode: 若要在場景中沒有投影圖案的情況下擷取強度資料,請使用
AlternateActiveIllumination Mode。在此模式下,每個影像會執行兩次曝光:一次啟用投影機以進行深度計算,另請外一次用於擷取強度資料。請注意,AlternateActive會增加延遲。如果只需要視差資料,您可以透過設定來降低延遲BslIlluminationMode設定為AlwaysActive而不是AlternateActive. 如此一來,投影機在曝光期間將保持常態啟用。 - 設定照明: 調整 Illumination 參數
BslIlluminationStrength和BslIlluminationMode以最佳化適合您場景的投影圖案。提高 Illumination Strength 可以改善投影圖案的可見度,尤其是在環境光強烈的場景中。同時,您必須確保不超過工作週期和最大啟動時間。選擇適當的 Illumination Mode 以將投影機與相機曝光同步,以獲得最佳結果。在AlternateActiveIllumination Mode 中,如果環境光很少且沒有投影圖案的影像太暗,請嘗試降低 Illumination Strength 並增加 Exposure Time 以達到更好的影像亮度。
深度偽影#
常見的深度偽影如下:
- 離群值: 通常是可能出現在 working range 中任何位置的小塊深度值。
- 幾何誤差: 被判定為不正確但接近真實深度的深度值。
過濾誤差意味著將不正確的深度值設為無效。The BslDepthFill parameter 可以用來對通常由錯誤過濾(error filtering)所造成的小區域進行內插。較高的 fill-in 值會增加可進行內插的區域數量。進行內插的區域大小直接取決於錯誤過濾的分割設定。
Outliers 可以使用 BslDepthSeg parameter 進行過濾。此參數給出了要移除的相連像素的最大數量。所有像素較少的斑塊(patches)都會被設為無效。此大小也用於 BslDepthFill parameter。由此過濾器造成的孔洞通常會進行內插。
降低異常值出現機率的另一種方法,是提高最小置信度,因為置信度代表某個像素並非異常值的機率。
深度值若可能較高 幾何誤差 可透過 BslDepthMaxDepthErr 參數的值。
對於某些應用,深度圖中的表面必須是平滑的。這可透過啟用「平滑」參數來實現。
如果相機影像中包含未在深度影像中重構的高光(鏡面反射),您可以驗證這些高光是否由相機的投影機所產生(例如,只需將投影機關閉即可)。在這種情況下,Basler 建議使用「雙次拍攝」模式。