[ZED深度攝影機系列] Python 開發環境與範例

本文為 [ZED深度攝影機系列] 的第三篇(註),帶您安裝 ZED 的 Python3 SDK,包含環境建置並帶您順利執行範例程式。 請先回顧先前文章: 1. [ZED深度攝影機系列] 認識 ZED 2i 深度攝影機 2. [ZED深度攝影機系列] 安裝 ZED SDK

安裝ZED Python API

本文章將說明如何在 Windows 與 Linux 作業系統上使用 ZED 的 Python3 SDK。

前言

ZED SDK 的 Python API 是針對底層 C++ 實作的 ZED SDK 打包。我們透過 Cython 讓外部的 Python 程式碼得以取用 ZED SDK。

您需要安裝以下套件與相關套件來使用 ZED Python3 SDK:

  • ZED SDK (下一段說明)
  • Python 3.6+ (x64)
  • Cython 0.26+
  • Numpy 1.13+
  • OpenCV Python (非必要)
  • PyOpenGL (非必要)

請確認所安裝的 64位元 Python pip 套件管理器,接著再於終端機中安裝相依套件:

python -m pip install cython numpy opencv-python pyopengl

安裝Python API

ZED SDK 的安裝資料夾中已提供一份 Python 腳本,可自動偵測您的作業系統、CUDA 與 Python 版本,還可對應下載已編譯好的 Python API 套件。

注意:若您使用的是 Linux,這份腳本可在SDK安裝程式時自動執行。如果希望這麼做的話,請在看到以下訊息時按 Y

Do you want to install the Python API (recommended) [Y/n] ?

執行安裝腳本

Windows

Python 安裝腳本路徑為 C:\Program Files (x86)\ZED SDK\.

請確認您有 Program Files 資料夾的管理員權限,否則會發生 Permission denied 錯誤。但您可以把這份檔案複製到其他無須權限的資料夾下執行,效果相同。

Linux

Python 安裝腳本路徑為 /usr/local/zed/.

請於終端機中執行腳本 (以下以 Windows為例):

$ cd "/usr/local/zed/"
$ python3 get_python_api.py
完成了!Python API 安裝完成,請繼續參考 ZED 教學範例程式

注意:如果您是使用虛擬環境 (本文後半詳述),請記得要先啟動虛擬環境,再執行該腳本。詳細資料請參考本連結

錯誤排除

“NUMPY BINARY INCOMPATIBLITY”

Traceback (most recent call last):
    ...
    File "__init__.pxd", line 918, in init pyzed.sl
ValueError: numpy.ufunc size changed, may indicate binary incompatiblity. Expected 216 from C header, got 192 from PyObject

這通常是因為還沒有安裝 numpy,請用以下指令安裝即可:

# On Jetson (aarch64) cython needs to be installed first since numpy needs to be compiled.
python3 -m pip install cython
python3 -m pip install numpy

執行 ZED Python 應用程式

只要在 Python 程式碼或終端機中匯入 pyzed 套件,就可以開始使用 ZEd SDK了:

import pyzed.sl as sl

請參考 ZED Python API 教學範例,您會知道如何使用 Python 來操作  ZED SDK 的各個模組。


於虛擬環境中執行 ZED Python API

本段要說明如何在虛擬環境中設定 ZED Python wrapper。

設定

整體來說就是在 Anaconda 中完成,它可處理虛擬環境與相關套件與IDE。安裝完成之後請開啟 Anaconda Navigator,如下圖。也可以參考這一篇教學:【AI人工智慧-神經運算】環境建置:安裝Anaconda、Tensorflow、Keras與openCV(Windows篇)

建立虛擬環境

現在要建立一個新的虛擬環境,並可在其中操作 ZED Python API。請選擇左側的 Environments 標籤,再點選頁面下方的 Create

這時會新增一個視窗,請為虛擬環境取名(如以下 ZED_Env),接著點選 Create

稍待一會,這個新的虛擬環境會被列在原有的 base(root) 環境下方。

新增 ZED 套件

這裡做的事情與先前的[安裝Python API]是差不多的,主要差別現在是把東西安裝在虛擬環境中,而之前是直接安裝在電腦上。

請點選虛擬環境名稱,在向右箭頭上點選 Open Terminal

如本文前半所述,請把 get_python_api.py 複製到一個方便執行的路徑,接著就執行它:

$ python get_python_api.py

ZED 套件已安裝完成,請關閉終端機視窗。為了檢查是否正確安裝,可點選 Update index.., 應可在右側畫面看到名為 pyzed 的新項目,這就是 ZED 套件了。

由於範例程式會用到 OpenGL 來顯示畫面,請一併安裝或更新 OpenGL 套件。

操作 ZED 環境

請確認您的電腦上已有 ZED github 範例,也可以自行下載。請點選畫面左側的 Home 標籤,再從下拉式選單選擇方才建立的虛擬環境。

請在您慣用的 IDE(如以下的 VSCODE) 中開啟任一個 python 範例,一定要確認是在虛擬環境中喔!這樣就沒問題了,快點執行範例來試試看吧!

以下是 ZED 的範例程式頁面,都提供了 C++ / Python 兩種語言。說明如下:

  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、氣壓計與磁力感測器資料。

 

註:本文經原廠授權之後翻譯自 https://www.stereolabs.com/docs/app-development/python/install/

 

發佈留言

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