本文為 [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/
.
請於終端機中執行腳本:
注意:如果您是使用虛擬環境 (本文後半詳述),請記得要先啟動虛擬環境,再執行該腳本。詳細資料請參考本連結。
錯誤排除
“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 兩種語言。說明如下:
- Hello ZED: 入門範例,說明如何連接 ZED 攝影機,並於終端機中顯示裝置序列編號。
- Image Capture: 開啟 ZED 攝影機,取得影像,並於終端機中顯示時間戳記、影像尺寸。
- Depth Perception: 取得畫面的深度資料與點雲,並於終端機中顯示指定點的距離。
- Camera Tracking: 啟用位置追蹤,可即時更新攝影機的位置與指向。
- Spatial Mapping: 啟用地圖繪製,可擷取環境的網格或融合點雲。
- 3D Object Detection: 偵測畫面中的物體,並進行 3D 定位 (只適用於 ZED 2 機型)。
- Using Sensors: 取得攝影機的 IMU、氣壓計與磁力感測器資料。