ZED相機中各種函數介紹
ZED SDK提供兩種深度感應模式:STANDARD和FILL。
該STANDARD
模式是ZED的默認深度感應模式。該STANDARD
模式保留距離度量和形狀,並且比FILL
模式運行得更快,但它包含由於視覺遮擋和過濾而產生的洞。這些孔由深度圖像中的黑色區域表示。將STANDARD
模式用於自主導航,障礙物檢測,3D製圖,人員檢測和跟蹤等應用。
要配置深度感知的STANDARD
方式,設置SENSING_MODE_STANDARD
在RuntimeParameters
。
// Grab depth in STANDARD mode
RuntimeParameters runtime_parameters;
runtime_parameters.sensing_mode = SENSING_MODE_STANDARD.
在STANDARD
模式下,孔(黑色像素)根據其類型具有不同的值。它們與枚舉相關聯:
NAN
稱爲OCCLUSION_VALUE。無法估計像素的深度,因爲它被遮擋或異常。-INFINITY
稱爲TOO_CLOSE。無法估計像素的深度,因爲它太靠近相機。INFINITY
稱爲TOO_FAR。無法估計像素的深度,因爲它離相機太遠。
您可以使用檢查有效的深度值isValidMeasure()
。
該FILL
模式提供了一個完全密集的深度圖,左圖像中的每個像素(X,Y)都有一個Z值。該FILL
模式填充深度圖中的孔和遮擋,並添加了一個過濾階段,可以改善邊緣和時間穩定性,但可以改變場景中對象的實際距離。
建議將此模式用於混合現實捕捉和視覺效果等應用。該FILL
模式需要更多資源,並且將以比STANDARD
模式更低的FPS 運行。
要配置深度感知的FILL
方式,設置SENSING_MODE_FILL
在RuntimeParameters
。
深度模式
一些深度模式可用來改善某些應用程序的性能:ULTRA
,QUALITY
,MEDIUM
和PERFORMANCE
。這些設置調整深度感測模塊的精度,範圍和計算性能水平。
- Ultra模式提供最高的深度範圍,並在感應範圍內更好地保留Z精度。
- 質量和中等模式在質量和速度之間提供折衷。
- 性能模式禁用某些過濾操作,並以較低的分辨率進行操作以提高性能和幀速率。
一般來說,我們建議ULTRA
在桌面和嵌入式應用程序中使用該模式。如果您的應用程序需要大量資源,請切換到PERFORMANCE
模式。
深度範圍
深度範圍對應於可以估計物體深度的最小和最大距離。
獲取深度數據
要提取場景的深度貼圖,請使用grab()
抓取新圖像並retrieveMeasure()
檢索左圖像上對齊的深度。retrieveMeasure()
可用於檢索深度圖,置信度圖或點雲。
最小範圍
使用中的depth_minimum_distance
設置可以將最小範圍從默認值降低InitParameters
。
InitParameters init_parameters;
init_parameters.coordinate_units = UNIT_METERS;
init_parameters.depth_minimum_distance = 0.15 ; // Set the minimum depth perception distance to 15cm
最大範圍
使用可以增加最大範圍setDepthMaxRange()
。我們建議使用ULTRA深度模式來提高遠距離的深度精度。
InitParameters init_parameters;
init_parameters.depth_mode = DEPTH_MODE_ULTRA ; // Set the depth mode to ULTRA
init_parameters.coordinate_units = UNIT_METER;
zed.setDepthMaxRangeValue(40); // Set the maximum depth perception distance to 40m
提示:
- 使用可以減小最大深度範圍以將鉗位值限制在特定距離以上
setDepthMaxRange()
。這對於減少遠距離的深度抖動很有用。 - 通過增加最小深度感知距離可以改善性能。對於需要遠程深度感知的應用,我們建議設置
depth_minimum_distance
爲1米或更長。