ZED 景深攝影機範例#1/8 – Hello ZED

前言

本文為 ZED 景深攝影機原廠範例,共有八個範例,請根據 ZED 的範例程式頁面,取得 C++ / Python / C# 等範例原始碼。說明如下:

  1. Hello ZED: 入門範例,說明如何連接 ZED 攝影機,並於終端機中顯示裝置序列編號。
  2. Image Capture: 開啟 ZED 攝影機,取得影像,並於終端機中顯示時間戳記、影像尺寸。
  3. Depth Perception: 取得畫面的深度資料與點雲,並於終端機中顯示指定點的距離。
  4. Camera Tracking: 啟用位置追蹤,可即時更新攝影機的位置與指向。
  5. Spatial Mapping: 啟用地圖繪製,可擷取環境的網格或融合點雲。
  6. 3D Object Detection: 偵測畫面中的物體,並進行 3D 定位 (只適用於 ZED 2 機型)。
  7. Using Sensors: 取得攝影機的 IMU、氣壓計與磁力感測器資料。
  8. Body Tracking: 追蹤人體骨架

範例01 – Hello ZED

本範例單純說明如何設定並開啟 ZED 攝影機,並在顯示自身序號之後關閉攝影機。這個範例非常簡單,適合做為您操作 ZED SDK 的起點。

註:原廠頁面每段都提供了 C++ / Python / C# 的範例程式,在此只列出 Python 範例

前置作業

  • 下載最新版的 ZED SDK 請點我
  • 下載 Hello ZED 範例程式,提供 C++, Python 與 C# 等版本
  • 在 Windows 或 Linux OS上,建置 C++ 環境(請點我) 或執行 Python 範例,本系列文章將使用 Python (教學請點我)。

範例總覽

ZED API 提供了對於自家攝影機在控制與設定的低階存取設定。如果要在您的程式中操作 ZED 硬體,您需要建立並開啟一個 Camera 物件。API 支援兩種影像輸入:ZED live video (即時模式),或 .svo 影片檔 (回放模式)。

攝影機設定

設定攝影機時,須建立一個 Camera 物件並指定 InitParameters ,後者可用於調整解析度、FPS、深度感測參數等等。這些參數只能在攝影機開啟後才能調整,且當攝影機在執行時無法修改。

camera configuration - python
# Create a ZED camera object
zed = sl.Camera()

# Set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD1080
init_params.camera_fps = 30

InitParameters 包含了一些預設設定,您可設定以下初始參數:

  • Camera 設定參數:camera_* (解析度、影像翻轉等)
  • SDK 設定參數:sdk_*(GPU裝置等)
  • 深度設定參數:depth_* (深度模式、最小距離等)
  • 座標幀數設定參數:coordinate_* (座標系統、座標單位等)
  • SVO參數:使用ZED SDK 來操作Stereolabs影片檔(檔名、即時模式等)

所有可用的參數請參考 API 文件。

開啟攝影機

初始設定完成之後,請開啟攝影機:

open the camera - python
# Open the camera
err = zed.open(init_params)
if err != sl.ERROR_CODE.SUCCESS:
exit()

取得攝影機資訊

左右兩鏡頭與解析度下的影機參數,包含焦長(focal length)、視野(fov)或立體影像校正等等都可取得。這些數值都整合在 CalibrationParameters 中,並可由 getCameraInformation()語法來存取。您也可透過 Sensors API 來存取 IMU與感測器。

本範例不會開啟影像,只會取得攝影機序號而已:

retrieve camera info - python
# Get camera information (serial number)
zed_serial = zed.get_camera_information().serial_number
print("Hello! This is my serial number: {}".format(zed_serial))
您應可在終端機輸出看到這台攝影機的序號。

關閉攝影機

使用 zed.close() 來正確關閉攝影機並退出程式。

close the camera - python
# Close the camera
zed.close()
執行畫面

執行後,可在終端機中看到攝影機序號

下一步

下一個範例要說明如何從  ZED 攝影機取得深度影像。

註:本文經授權之後翻譯自 https://www.stereolabs.com/docs/tutorials/hello-zed/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *