最佳化影像 Quality#
相機參數(例如幀率、曝光時間 和增益)決定了影像的擷取時機與方式。除此之外,這些參數對影像品質也具有極大影響。為了進一步提升深度影像的品質,您可以調整多項立體配對參數。
這兩種參數皆可透過 pylon 3D Viewer進行設定。這讓您能夠在相應的影像視窗中立即看到任何設定變更所產生的效果。
相機參數#
若要檢查您所做的變更,請使用「強度」影像視窗。
影格率#
可達到的最高幀率(以每秒幀數 = fps 計)取決於攝影機的配置以及主機系統的硬體。有幾個關鍵因素會影響幀率:
- 亮度控制:投影機的占空比上限為 2.5%。加上最大曝光時間為 5 毫秒,這會限制影像擷取的速度。
- Exposure Time:曝光時間會直接影響影像擷取之間的間隔。較短的曝光時間可實現更高的幀率,而較長的曝光時間則會降低最大可能的幀率。
- 深度計算: 計算深度影像所需的時間取決於透過
BslDepthResolution參數以及主機系統上可用的處理硬體(CPU 或GPU )。解析度越高且硬體效能越低,處理時間就會越長,因此可達成的幀率也會隨之降低。
幀率決定了透過 GigE Vision 介面傳輸的影像數量。降低幀率可顯著減輕網路負載,並減輕Stereo ace 攝影機與接收主機電腦的運算負載。在許多應用中,幀率可以且应当降低,以配合系統的處理能力,同時仍能滿足應用的需求。
Exposure Time 以及增益#
曝光時間是指在影像擷取過程中,影像感測器暴露於光線下的時間。它會影響擷取影像的明亮程度。曝光時間通常約為數毫秒。若場景中的光線較弱,則需要較長的曝光時間。然而,若場景中的物體或Stereo ace 相機本身發生移動,較長的曝光時間可能會導致影像模糊。
影響影像亮度的第二個參數是增益。增益是一種放大係數,可讓影像看起來更明亮;然而,同時也會增加影像雜訊。
透過設定曝光時間與增益,您可以將焦點集中在場景中與您的應用相關的部分,例如場景中央的物體。必須避免在感興趣區域內出現過曝,但在與應用無關的場景部分,則可容許過曝。
一般而言,在影像處理方面,過曝比欠曝更為不利,因為過曝區域中的資訊會因畫素過快飽和而遺失。相較之下,欠曝區域通常仍包含足夠的資訊供影像處理使用。因此,最好將參數設定得讓影像偏暗,而非過亮。
僅應在光線不足的情況下,或為了縮短曝光時間以避免動態模糊時,才應提高增益。一般而言,增益值應始終設定得盡可能低。
立體聲配對參數#
若要檢查您所做的變更,請使用「點雲」、「深度圖」和「 信心 圖」視窗。
工作範圍#
首先,您需要考慮應用程式的運作範圍。透過設定 BslDepthMaxDepth 將參數設定為特定值,會使深度圖中所有距離更遠的像素失效。這是排除場景中與應用程式無關部分的簡易方法。
同樣地,您可以增加 BslDepthMinDepth 若您確定目標物件絕不會比指定距離更接近Stereo ace 相機,則可設定此參數。增加最小深度還有一個好處,就是能縮短計算深度圖所需的時間,從而提高幀率。
延遲#
在某些應用中,計算深度影像所需的延遲比深度值的品質更為重要。在這種情況下,您可以降低 BslDepthResolution 參數從 Full 設為 High 或 Low. 較低的深度解析度會降低立體配對前的影像大小。這能縮短處理時間,並顯著提高可達到的幀率。然而,計算深度影像的幀率始終受限於相機的幀率設定。
如果主機端的傳輸與顯示負載構成瓶頸,您也可以減少 BslIntensityResolution.
如前所述,若條件允許,應盡可能增加最小深度,因為這也有助於降低延遲並提高可達成的幀率。
密度#
密度是用來衡量影像中無效像素數量的指標。 密度越高,表示無效像素越少。深度影像中常會出現無效值,這些值在pylon 3D Viewer 所示的深度圖中會呈現為黑色。這種情況發生在場景中超出指定工作範圍的部分,以及物體左側的區域。這是因為左側相機是參考相機,而右側相機無法看見背景的一部分。這稱為「遮蔽」,屬於正常現象。
一般來說,失效像素是不可取的。它們是由於立體配對方法無法計算深度所導致的。造成這種情況的原因有多種。目前有五種不同(且互補)的策略可用來提高深度圖的密度:
- 調整影像曝光:過曝區域因缺乏足夠的資訊進行配對,因此會顯示為無效。此外,若影像雜訊比場景的紋理更為明顯,某些區域也可能顯示為無效。這兩個問題皆可透過調整曝光時間與增益設定來解決,具體方法請參閱「Exposure Time 與增益」一節的說明。
- 善用靜態場景: 若在影像擷取過程中,場景與Stereo ace 攝影機均未移動,Basler 建議使用靜態模式(
BslDepthStaticScene參數)。當此參數啟用時,Stereo ace 相機會在內部連續擷取多張影像,並對這些影像進行平均處理以降低雜訊。這使得即使對於紋理較弱的物體,也能進行立體配對。此舉通常能產生密度更高的深度圖。 - 透過投影機改善場景的紋理:室內環境中出現無效區域的最常見原因之一,是缺乏紋理或紋理過於單調重複。通常,牆壁和桌子都是單色且毫無紋理的。 其他結構則呈現高度重複的紋理。這兩種情況都不利於成功進行立體配對。若這些紋理過多或過少的物體及場景部分對應用至關重要,則唯一能捕捉它們的方法,就是透過投影機人工添加紋理。
- 選擇照明模式: 若要擷取場景中不含投影圖案的強度資料,請使用
AlternateActive照明模式。在此模式下,針對每張影像會進行兩次曝光:一次是開啟投影機以進行深度計算,另一次則是用於擷取強度資料。請注意,AlternateActive會增加延遲。若僅需視差資料,您可以透過設定BslIlluminationMode設為AlwaysActive而不是AlternateActive. 這樣一來,在曝光期間,投影機便會始終處於啟用狀態。 - 設定照明: 調整 照明 parameters
BslIlluminationStrength進行明確的生命週期管理即呼叫BslIlluminationMode以優化您場景中的投影圖案。提高照明強度可提升投影圖案的可見度,特別是在環境光線強烈的場景中。同時,您必須確保不超過占空比與最大啟動時間。請選擇適當的照明模式,使投影機與相機的曝光時間同步,以獲得最佳效果。在AlternateActive照明模式:若環境光線較弱,且未投射圖案的影像過暗,請嘗試降低照明強度並延長曝光時間,以獲得更佳的影像亮度。
深度偽影#
以下是常見的深度瑕疵:
- 異常值:通常是指深度值的小範圍區域,可能出現在工作範圍內的任何位置。
- 幾何誤差:判斷為不正確但接近實際深度的深度值。
篩選錯誤是指將不正確的深度值設為無效。該 BslDepthFill 此參數可用於對通常由誤差過濾所導致的小範圍區域進行插值。較高的填補值會增加可進行插值的區域數量。被插值的區域大小直接取決於誤差過濾的分割設定。
《異數》 可透過以下方式過濾掉: BslDepthSeg 參數。此參數指定要移除的相連像素的最大數量。所有像素數少於此數量的區塊均會被標記為無效。此大小亦用於 BslDepthFill 參數。此濾波器所造成的缺口通常會經過插值處理。
降低異常值出現機率的另一種方法,是提高最小置信度,因為置信度代表某個像素並非異常值的機率。
深度值若可能較高 幾何誤差 可透過 BslDepthMaxDepthErr 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
對於某些應用,深度圖中的表面必須保持平滑。這可透過啟用「平滑」參數來實現。
如果相機影像中包含未在深度影像中重構的高光(鏡面反射),您可以確認這些高光是否由相機的投影機所產生(例如,只需將投影機關閉即可)。在這種情況下,Basler 建議使用「雙次拍攝」模式。