OpenEB是與Metavision SDK相關的開源項目
它使任何人都可以更好地了解基於事件的視覺,直接與事件互動並建立自己的應用程式或相機插件。作為相機製造商,透過建立自己的插件,確保您的客戶受益於最先進的基於事件的軟體套件。作為創造者、科學家、學者,加入快速發展的基於事件的視覺社群並為其做出貢獻。
OpenEB由Metavision SDK的開放模組組成:
HAL:硬體抽象層,用於操作任何基於事件的視覺設備。
基礎:基於事件的應用程式的基礎和通用定義。
核心:可視化、事件流操作的通用演算法。
Core ML:機器學習、event_to_video 和 video_to_event 管道的通用函數。
Stream:建立在 HAL 之上的高階抽象,可輕鬆與基於事件的相機互動。
UI:基於事件的資料的檢視器和顯示控制器。
OpenEB 還包含 Prophesee 相機插件的原始程式碼,能夠從我們基於事件的相機串流資料並讀取基於事件的資料記錄。支援的相機有:
EVK2-高清
EVK3 - VGA/320/高清
EVK4-高清
本文檔介紹如何編譯和安裝 OpenEB 程式碼庫。有關更多信息,請參閱我們的在線文檔,其中您可以找到一些幫助您開始使用 C++ 或 Python 的教程、一些了解如何使用我們的 API 的示例以及我們的模組和打包的更詳細說明。
編譯和執行在滿足以下要求的平台上進行了測試:
Linux:Ubuntu 22.04 或 24.04 64 位
架構:amd64(又稱 x64)
至少支援 OpenGL 3.0 的顯示卡
支援AVX2的CPU
未測試其他平台(替代 Linux 發行版、不同版本的 Ubuntu、ARM 處理器架構等)上的編譯。對於這些平台,可能需要對本指南或程式碼本身進行一些調整。
如果您要從先前的版本升級 OpenEB,您應該先仔細閱讀發行說明,因為某些變更可能會影響您對我們的 SDK(例如 API 更新)和相機(例如可能需要韌體更新)的使用。
然後,您需要清理系統中先前安裝的 Prophesee 軟體。如果在先前的編譯之後,您選擇在系統路徑中部署 Metavision 文件,請前往原始程式碼目錄中的build
資料夾並啟動下列命令以刪除這些檔案:
須藤使卸載
此外,在系統路徑( /usr/lib
、 /usr/local/lib
、 /usr/include
、 /usr/local/include
)和環境變數( PATH
、 PYTHONPATH
和LD_LIBRARY_PATH
)中進行全域檢查以刪除Prophesee 或Metavision 檔案的出現次數。
要檢索 OpenEB 原始碼,您只需克隆 GitHub 儲存庫即可:
git 複製 https://github.com/prophesee-ai/openeb.git --branch 5.0.0
在以下部分中,該目錄的絕對路徑稱為OPENEB_SRC_DIR
如果您選擇從 GitHub 下載 OpenEB 檔案而不是複製儲存庫,則需要確保選擇Full.Source.Code.*
存檔,而不是使用自動產生的Source.Code.*
存檔。這是因為後者不包含必要的子模組。
安裝以下相依性:
須藤apt更新 sudo apt -y install apt-utils build-essential software-properties-common wget unzip curl git cmake sudo apt -y 安裝 libopencv-dev libboost-all-dev libusb-1.0-0-dev libprotobuf-dev protobuf-編譯器 sudo apt -y 安裝 libhdf5-dev hdf5-tools libglew-dev libglfw3-dev libcanberra-gtk-module ffmpeg
或者,如果您想執行測試,則需要安裝 Google Gtest 和 Gmock 軟體包。有關更多詳細信息,請參閱 Google 測試用戶指南:
sudo apt -y 安裝 libgtest-dev libgmock-dev
對於 Python API,您將需要 Python 和一些附加程式庫。我們在 Ubuntu 22.04 上支援 Python 3.9 和 3.10,在 Ubuntu 24.04 上支援 Python 3.11 和 3.12。
我們建議將 Python 與 virtualenv 結合使用,以避免與其他已安裝的 Python 套件發生衝突。因此,首先將它與一些 Python 開發工具一起安裝:
sudo apt -y install python3.x-venv python3.x-dev# 其中「x」是 9、10、11 或 12,取決於您的 Python 版本
接下來,建立虛擬環境並安裝必要的依賴項:
python3 -m venv /tmp/prophesee/py3venv --系統站台包 /tmp/prophesee/py3venv/bin/python -m pip install pip --upgrade /tmp/prophesee/py3venv/bin/python -m pip install -r OPENEB_SRC_DIR/utils/python/python_requirements/requirements_openeb.txt
要注意的是,在建立虛擬環境時,需要使用--system-site-packages
選項來確保系統目錄下安裝的SDK套件可以存取。但是,此選項預設也會使本機使用者網站套件(通常位於~/.local/lib/pythonX.Y/site-packages
中)可見。為了防止這種情況並保持更乾淨的虛擬環境,您可以將環境變數PYTHONNOUSERSITE
設為 true。
或者,您可以執行activate
指令 ( source /tmp/prophesee/py3venv/bin/activate
) 來修改 shell 的環境變量,將虛擬環境的 Python 解釋器和腳本設定為目前會話的預設值。這允許您使用像python
這樣的簡單命令,而無需每次都指定完整路徑。
C++ API 的 Python 綁定依賴 pybind11 函式庫,特別是版本 2.11.0。
請注意,只有當您想要使用 C++ API 的 Python 綁定時才需要 pybind11。您可以透過在編譯期間的步驟 3 傳遞參數-DCOMPILE_PYTHON3_BINDINGS=OFF
來選擇不建立這些綁定(請參閱下文)。在這種情況下,您不需要安裝 pybind11,但您將無法使用我們的 C++ API 的 Python 介面。
不幸的是,沒有預編譯版本的 pybind11 可用,因此您需要手動安裝:
wget https://github.com/pybind/pybind11/archive/v2.11.0.zip 解壓縮 v2.11.0.zipcd pybind11-2.11.0/ mkdir 構建 && cd 構建 cmake ..-DPYBIND11_TEST=OFF cmake --build .sudo cmake --build 。 --目標安裝
要使用機器學習功能,您需要安裝一些額外的依賴項。
首先,如果您有一些帶有 GPU 的 Nvidia 硬件,您可以選擇安裝 CUDA(11.6 或 11.7)和 cuDNN,以便將它們與 pytorch 和 libtorch 結合使用。
透過檢查 Nvidia 相容性頁面,確保安裝與您的 GPU 相容的 CUDA 版本。
請注意,目前我們不支援 OpenCL 和 AMD GPU。
建立並開啟建置目錄OPENEB_SRC_DIR
: mkdir build && cd build
使用 CMake 產生 makefile: cmake .. -DBUILD_TESTING=OFF
。如果要指定 cmake 考慮哪個版本的 Python,則應使用選項-DPython3_EXECUTABLE=<path_to_python_to_use>
。例如,當您的系統上安裝的 Python 版本比我們支援的版本更新時,這很有用。在這種情況下,cmake 將選擇它並且編譯可能會失敗。
編譯: cmake --build . --config Release -- -j 4
編譯完成後,您有兩個選擇:您可以選擇直接從build
資料夾工作,也可以將 OpenEB 檔案部署在系統路徑中( /usr/local/lib
、 /usr/local/include
...) 。
選項 1 - 從build
資料夾工作
要直接從build
資料夾使用 OpenEB,您需要使用此腳本更新一些環境變數(您可以將其新增至~/.bashrc
以使其永久):
來源 utils/scripts/setup_env.sh
Prophesee 相機外掛程式包含在 OpenEB 中,但您仍然需要複製系統路徑中的 udev 規則檔案並重新載入它們,以便使用下列命令偵測到您的相機:
sudo cp <OPENEB_SRC_DIR>/hal_psee_plugins/resources/rules/*.rules /etc/udev/rules.d sudo udevadm 控制 --reload-rules sudo udevadm 觸發器
選項 2 - 部署在系統路徑中
若要部署 OpenEB,請啟動下列命令:
sudo cmake --build 。 --目標安裝
請注意,您也可以在步驟 2 中產生 makefile 時使用CMAKE_INSTALL_PREFIX
變數 ( -DCMAKE_INSTALL_PREFIX=<OPENEB_INSTALL_DIR>
) 將 OpenEB 檔案(應用程式、範例、庫等)部署到您選擇的目錄中。使用PYTHON3_SITE_PACKAGES
變數 ( -DPYTHON3_SITE_PACKAGES=<PYTHON3_PACKAGES_INSTALL_DIR>
) 部署 Python 套件的目錄。
您還需要更新LD_LIBRARY_PATH
和HDF5_PLUGIN_PATH
(您可以將其新增至~/.bashrc
以使其永久):
匯出LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libexport HDF5_PLUGIN_PATH=$HDF5_PLUGIN_PATH:/usr/local/hdf5/lib/plugin # 在Ubuntu 22.044 月22.04 /plugin # 在Ubuntu 上24.04
請注意,如果您使用的是第三方相機,則需要安裝相機供應商提供的插件,並使用MV_HAL_PLUGIN_PATH
環境變數指定插件的位置。
要開始使用 OpenEB,您可以下載一些範例錄音並使用 metavision_viewer 對其進行視覺化,或者您可以從與 Prophesee 相容的基於事件的攝影機串流資料。
運行測試套件是確保編譯和安裝過程中一切順利的可靠方法。
下載執行測試所需的檔案。點擊右上角資料夾中的Download
。請注意所獲得的存檔的大小,其重量約為 1.5 Gb。
提取此存檔的內容並將其放入<OPENEB_SRC_DIR>/datasets
。例如,序列gen31_timer.raw
的正確路徑應該是<OPENEB_SRC_DIR>/datasets/openeb/gen31_timer.raw
。
重新產生 makefile 並啟用測試選項:
cd <OPENEB_SRC_DIR>/build cmake ..-DBUILD_TESTING=ON
再次編譯。 cmake --build . --config Release -- -j 4
最後,執行測試套件: ctest --verbose
目前,我們僅支援Windows 10。對於這些平台,可能需要對本指南或程式碼本身進行一些調整。
如果您要從先前的版本升級 OpenEB,您應該先仔細閱讀發行說明,因為某些變更可能會影響您對我們的 SDK(例如 API 更新)和相機(例如可能需要韌體更新)的使用。
然後,如果您之前安裝過 Prophesee 的任何軟體,則需要先將其解除安裝。刪除安裝 Metavision 工件的資料夾(檢查原始碼的build
資料夾和C:Program FilesProphesee
這是部署步驟的預設安裝路徑)。
要檢索 OpenEB 原始碼,您只需克隆 GitHub 儲存庫即可:
git 複製 https://github.com/prophesee-ai/openeb.git --branch 5.0.0
在以下部分中,該目錄的絕對路徑稱為OPENEB_SRC_DIR
如果您選擇從 GitHub 下載 OpenEB 檔案而不是複製儲存庫,則需要確保選擇Full.Source.Code.*
存檔,而不是使用自動產生的Source.Code.*
存檔。這是因為後者不包含必要的子模組。
此程序的某些步驟不適用於 FAT32 和 exFAT 檔案系統。因此,在繼續之前請確保您使用的是 NTFS 檔案系統。
您必須啟用對長路徑的支援:
按 Windows 鍵,輸入 gpedit.msc 並按 Enter
導覽至本機電腦策略 > 電腦設定 > 管理範本 > 系統 > 檔案系統
雙擊“啟用Win32長路徑”選項,選擇“已啟用”選項,然後按一下“確定”
要編譯 OpenEB,您需要安裝一些額外的工具:
安裝git
安裝CMake 3.26
安裝 Microsoft C++ 編譯器(64 位元)。您可以選擇以下解決方案之一:
下載並執行“Visual Studio 2022 建置工具”安裝程式
選擇“C++建置工具”,確保選取Windows 10 SDK,並新增英文語言套件
僅用於構建,您可以安裝 MS Build Tools(免費,Windows 10 SDK 套件的一部分)
對於開發,您也可以下載並執行 Visual Studio Installer
安裝將用於安裝依賴項的 vcpkg:
下載 vcpkg 版本 2024.04.26 並將其解壓縮到一個資料夾中,我們稱之為VCPKG_SRC_DIR
cd <VCPKG_SRC_DIR>
bootstrap-vcpkg.bat
vcpkg update
將位於utils/windows
的 OpenEB 原始碼中的vcpkg-openeb.json
檔案複製到VCPKG_SRC_DIR
並將其重新命名為vcpkg.json
透過執行以下命令安裝庫:
vcpkg install --triplet x64-windows --x-install-root installed
最後,下載並安裝 ffmpeg 並將bin
目錄新增至您的 PATH 。
請注意,如果您在多個專案或 OpenEB 版本中使用 vcpkg,則簡化您管理的 vcpkg 安裝數量是有益的。為此,您需要所需庫的特定版本。您可以透過交叉引用我們的vcpkg.json
檔案與官方 vcpkg 儲存庫來找到這些版本,但為了您的方便,我們在下面列出了它們:
libusb:1.0.27
提升:1.78.0
opencv:4.8.0
直接:1.24.0
測試:1.14.0
pybind11:2.12.0
格魯:2.2.0
GLFW3:3.4.0
HDF5:1.14.2
協定緩衝區:3.21.12
下載下列 Python 版本之一的「Windows x86-64 執行安裝程式」:
Python 3.9
Python 3.10
Python 3.11
Python 3.12
在PATH
中新增 Python 安裝和腳本目錄,並確保它們列在WindowsApps
資料夾之前,該資料夾包含啟動 Microsoft Store 的 Python 別名。因此,如果您在預設路徑中安裝了 Python 3.9,則您的使用者PATH
應依序包含這三行:
%USERPROFILE%AppDataLocalProgramsPythonPython39 %USERPROFILE%AppDataLocalProgramsPythonPython39Scripts %USERPROFILE%AppDataLocalMicrosoftWindowsApps
我們建議將 Python 與 virtualenv 結合使用,以避免與其他已安裝的 Python 套件發生衝突。
建立虛擬環境並安裝必要的依賴項:
python -m venv C:tmppropheseepy3venv --system-site-packages C:tmppropheseepy3venvScriptspython -m pip install pip --upgrade C:tmppropheseepy3venvScriptspython -m pip install -r OPENEB_SRC_DIRutilspythonpython_requirementsrequirements_openeb.txt
建立虛擬環境時,需要使用--system-site-packages
選項來確保系統目錄下安裝的SDK套件可以存取。但是,此選項預設也會使您的本機使用者網站包可見。為了防止這種情況並保持更乾淨的虛擬環境,您可以將環境變數PYTHONNOUSERSITE
設為 true。
或者,您可以執行activate
命令 ( C:tmppropheseepy3venvScriptsactivate
) 來修改 shell 的環境變量,將虛擬環境的 Python 解釋器和腳本設定為目前會話的預設值。這允許您使用像python
這樣的簡單命令,而無需每次都指定完整路徑。
要使用機器學習功能,您需要安裝一些額外的依賴項。
首先,如果您有一些帶有 GPU 的 Nvidia 硬件,您可以選擇安裝 CUDA(11.6 或 11.7)和 cuDNN,以便將它們與 pytorch 和 libtorch 結合使用。
在OPENEB_SRC_DIR
資料夾中開啟命令提示字元:
建立並開啟建置目錄,將在其中建立臨時檔案: mkdir build && cd build
使用 CMake 產生 makefile: cmake .. -A x64 -DCMAKE_TOOLCHAIN_FILE=<OPENEB_SRC_DIR>cmaketoolchainsvcpkg.cmake -DVCPKG_DIRECTORY=<VCPKG_SRC_DIR>
。請注意,傳遞給參數-DCMAKE_TOOLCHAIN_FILE
值必須是絕對路徑,而不是相對路徑。
編譯: cmake --build . --config Release --parallel 4
編譯完成後,您有兩個選擇:您可以選擇直接從build
資料夾工作,也可以將 OpenEB 檔案(應用程式、範例、程式庫等)部署到您選擇的目錄中。
選項 1 - 從build
資料夾工作
要直接從build
資料夾使用 OpenEB,您需要使用以下腳本更新一些環境變數:
utilsscriptssetup_env.bat
選項 2 - 部署在您選擇的目錄中
將<OPENEB_INSTALL_DIR>bin
附加到PATH
(如果使用預設配置,則為C:Program FilesPropheseebin
)
將<OPENEB_INSTALL_DIR>libmetavisionhalplugins
附加到MV_HAL_PLUGIN_PATH
(如果使用預設配置,則為C:Program FilesPropheseelibmetavisionhalplugins
)
將<OPENEB_INSTALL_DIR>libhdf5plugin
附加到HDF5_PLUGIN_PATH
(如果使用預設配置, C:Program FilesPropheseelibhdf5plugin
)
將<PYTHON3_PACKAGES_INSTALL_DIR>
附加到PYTHONPATH
(如果使用預設配置則不需要)
若要在預設資料夾 ( C:Program FilesProphesee
) 中部署 OpenEB,請執行下列命令(您的控制台應以管理員身分啟動):
cmake --build 。 --config 發布 --目標安裝
若要在另一個資料夾中部署 OpenEB,您應該使用具有目標資料夾值 ( OPENEB_INSTALL_DIR
) 的附加變數CMAKE_INSTALL_PREFIX
再次產生解決方案(上面的步驟 2)。
同樣,要指定 Python 套件的部署位置 ( PYTHON3_PACKAGES_INSTALL_DIR
),您應該使用PYTHON3_SITE_PACKAGES
變數。
以下是自訂這兩個資料夾的命令範例:
cmake .. -A x64 -DCMAKE_TOOLCHAIN_FILE=<OPENEB_SRC_DIR>cmaketoolchainsvcpkg.cmake -DVCPKG_DIRECTORY=<VCPKG_SRC_DIR> -DCMAKE_INSTALL_PREFIX=INS3_PALL_INS33_PALL_INS3IRSON_INS3_INS3_INS<3_INSP3_<INS;PJ3_INSDINS;32_INS<INS;PJ3_INS;INS;PJ3_INS;INS;PJ.3DINSJS43_INS<INS;PJ3&<INS;PJ3_INS;INS;PJ.33_INS&NJ33_INS;&Y33&<INS;&Y3; ALL_DIR> -DBUILD_TESTING=OFF
執行此命令後,您應該啟動 OpenEB 的實際編譯和安裝(您的控制台應該以管理員身份啟動):
cmake --build 。 --config 發布 --parallel 4 cmake --build 。 --config 發布 --目標安裝
您還需要手動編輯一些環境變數:
在OPENEB_SRC_DIR
資料夾中開啟命令提示字元:
建立並開啟建置目錄,將在其中建立臨時檔案: mkdir build && cd build
使用 CMake 產生 Visual Studio 檔案: cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=<OPENEB_SRC_DIR>cmaketoolchainsvcpkg.cmake -DVCPKG_DIRECTORY=<VCPKG_SRC_DIR>
請注意,傳遞給參數-DCMAKE_TOOLCHAIN_FILE
值必須是絕對路徑,而不是相對路徑。
開啟解決方案檔案metavision.sln
,選擇Release
配置並建構ALL_BUILD
專案。
編譯完成後,您可以選擇直接從build
資料夾工作,也可以將 OpenEB 檔案(應用程式、範例、程式庫等)部署到您選擇的目錄中。
選項 1 - 從build
資料夾中工作
要直接從build
資料夾使用 OpenEB,您需要按照腳本utilsscriptssetup_env.bat
中的操作更新環境變量
選項 2 - 部署 OpenEB
要部署 OpenEB,您需要建置INSTALL
專案。預設情況下,檔案將部署在C:Program FilesProphesee
Prophesee 相機外掛程式包含在 OpenEB 中,但您需要安裝相機驅動程式才能在 Windows 上使用。為此,請按照以下步驟操作:
從我們的檔案伺服器下載 wdi-simple.exe
在以管理員身份啟動的命令提示字元中執行以下命令:
wdi-simple.exe -n「EVK」-m「先知」-v 0x04b4 -p 0x00f4 wdi-simple.exe -n「EVK」-m「先知」-v 0x04b4 -p 0x00f5 wdi-simple.exe -n「EVK」-m「先知」-v 0x04b4 -p 0x00f3
如果您擁有 EVK2 或 RDK2,則需要完成一些額外步驟,OpenEB 安裝指南的相機外掛部分的線上文件對此進行了詳細介紹。
如果您使用的是第三方相機,則需要按照相機供應商提供的說明安裝驅動程式和相機插件。確保在MV_HAL_PLUGIN_PATH
環境變數中引用插件的位置。
要開始使用 OpenEB,您可以下載一些範例錄音並使用 metavision_viewer 對其進行視覺化,或者您可以從與 Prophesee 相容的基於事件的攝影機串流資料。
運行測試套件是確保編譯和安裝過程中一切順利的可靠方法。
下載執行測試所需的檔案。點擊右上角資料夾中的Download
。請注意所獲得的存檔的大小,其重量約為 1.5 Gb。
提取此存檔的內容並將其放入<OPENEB_SRC_DIR>/datasets
。例如,序列gen31_timer.raw
的正確路徑應該是<OPENEB_SRC_DIR>/datasets/openeb/gen31_timer.raw
。
要執行測試套件,您需要使用 CMake 重新配置建置環境並重新編譯
使用 MS Visual Studio 進行編譯
使用CMake編譯
使用 CMake 產生 Visual Studio 檔案(使命令適應您的 Visual Studio 版本,並注意-DCMAKE_TOOLCHAIN_FILE
必須是絕對路徑,而不是相對路徑):
cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=<OPENEB_SRC_DIR>cmaketoolchainsvcpkg.cmake -DVCPKG_DIRECTORY=<VCPKG_SRC_DIR> -DBUILD_TESTING=ON
開啟解決方案檔案metavision.sln
,選擇Release
配置並建構ALL_BUILD
專案。
使用 CMake 重新產生建置(請注意-DCMAKE_TOOLCHAIN_FILE
必須是絕對路徑,而不是相對路徑):
cd <OPENEB_SRC_DIR>/build cmake .. -A x64 -DCMAKE_TOOLCHAIN_FILE=<OPENEB_SRC_DIR>cmaketoolchainsvcpkg.cmake -DVCPKG_DIRECTORY=<VCPKG_SRC_DIR> -DBUILD_TESTING=ON
編譯: cmake --build . --config Release --parallel 4
運行測試套件只需ctest -C Release