2019.02.25 editing started by
2019.02.27 updated by
Intel RealSense
Windows上で RealSense SDK を BUILD する (Python + OpenNI2)
前提条件
次のソフトウェアがインストールされていることを前提条件とします。インストールのパスが異なる場合は適宜読み替えて下さい。
準備作業: メタデータの有効化
メタデータの説明は
https://github.com/IntelRealSense/librealsense/blob/master/doc/frame_metadata.md
を参照すること。
「管理者権限で Windows PowerShell を実行し、その中で以下のコマンドを実行する。」
- ExecutionPoicyの変更
Set-ExecutionPoilcy
ExecutionPolicy: に RemoteSigned を設定する。
PS C:\WINDOWS\system32> Set-ExecutionPolicy
コマンド パイプライン位置 1 のコマンドレット Set-ExecutionPolicy
次のパラメーターに値を指定してください:
ExecutionPolicy: RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
|
- scriptの実行
PS D:\Users\nitta\Documents\realsense\librealsense-2.18.1\scripts> .\realsense_metadata_win10.ps1 -op install
2 connected RealSense devices were found:
USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000
USB\VID_8086&PID_0AD3&MI_03\6&398127e6&0&0003
Processing Registry branch HKLM:\SYSTEM\CurrentControlSet\Control\DeviceClasses\{e5323777-f976-4f5b-9b55-b94699c46e44}
There are 4 total devices listed
2 of them are Intel Realsense
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding metadata key
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding extra key for multipin interface
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding extra key for multipin interface
Device USB\VID_8086&PID_0AD3&MI_03\6&398127e6&0&0003: adding metadata key
Processing Registry branch HKLM:\SYSTEM\CurrentControlSet\Control\DeviceClasses\{65E8773D-8F56-11D0-A3B9-00A0C9223196}
There are 9 total devices listed
2 of them are Intel Realsense
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding metadata key
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding extra key for multipin interface
Device USB\VID_8086&PID_0AD3&MI_00\6&398127e6&0&0000: adding extra key for multipin interface
Device USB\VID_8086&PID_0AD3&MI_03\6&398127e6&0&0003: adding metadata key
Task Completed
PS D:\Users\nitta\Documents\realsense\librealsense-2.18.1\scripts>
|
librealsense2 のビルド
python から Intel RealSense D415/D435 を用いて骨格認識をしたい。
そこで Python3.6 と OpenNI2 を使うように設定した
realsense2.dll と realsense2.pyd
をビルドする。
- 最新版の Intel RealSense SDK をダウンロードする。
https://github.com/IntelRealSense/librealsense/releases
2019.02.25 時点では SDK 2.0 (build 2.18.1) が最新版。
Intel.RealSense.SDK-2.18.1.exe をダウンロードして動かすとlibrealsense-2.18.1 フォルダができる。
- cmakeを起動する。
- "Where is source code" に librealsense-2.18.1 を指定する。
自分の環境では D:\Users\nitta\Documents\realsense\librealsense-2.18.1
- "Where to build the binaries" に 新しいフォルダ build を作って指定する。
自分の環境では D:\Users\nitta\Documents\realsense\binary
- "Add Entry"でエントリを追加する。
BUILD_EASYLOGGINGPP BOOL True
BUILD_EXAMPLES BOOL True
BUILD_GRAPHICAL_EXAMPLES BOOL True
BUILD_RS400_EXTRAS BOOL True
BUILD_SHARED_LIBS BOOL True
BUILD_UNIT_TESTS BOOL True
CMAKE_CONFIGURATION_TYPES STRING Debug;Release;MinSizeRel;RelWithDebInfo
CMAKE_INSTALL_PREFIX PATH C:/sys/RealSense
HWM_OVER_XU BOOL True
ENFORCE_METADATA BOOL True
|
- "Configure"をクリックすると、使用するコンパイラを聞かれるので
ここで "Visual Studio 15 2017 Win64" を選択する。
- "Configure" が終了するとentryが増えるので次の2点にチェックをつけて再度 "Configure"をクリックする。
BUILD_OPENNI2_BINDINGS
BUILD_PYTHON_BINDINGS
- PYTHON_EXECUTABLE エントリを追加し、anaconda3 のrs環境の python を指定して、
再再度"Configure"をクリックする。
エントリ値の属性がPATHだとフォルダしか指定できないようなので、STRINGにして値を指定した。
PYTHON_EXECUTABLE STRING D:/sys/Anaconda3/envs/rs/python.exe
- PYTHON_EXECUTABLE の値が何故かanaconda標準のものになっていたので変更する。
また、勝手に設定されているREALSENSE2_DIR の値を新しく生成するパスに変更してみた。
PYTHON_EXECUTABLE STRING D:/sys/Anaconda3/envs/rs/python.exe
REALSENSE2_DIR PATH C:/sys/RealSense
- cmake で "Generate" をクリックする。
- Explorer でbuildフォルダにあるlibrealsense2.sln をクリックして開く。
Visual Studioが起動する。
- Visual Studio のビルド・オプションが "Debug" になっているので "Release" に変更する。
アーキテクチャは "x64" になっているはずであるが、もしも"x64"ならばcmakeで
コンパイラの指定を間違えている (Win64を選んでいない)ので cmake からやり直すべし。
- Visual Studio の
ツールバーから「ビルド」→ 「ソリューションのビルド」を選ぶ。
-
Solution Explorerから "CMakePredefinedTargets" の "INSTALL" を選択した状態で右クリックして
「ビルド」を選ぶ。すると コンパイルしたオブジェクトが
CMAKE_INSTALL_PREFIX で指定したPath ( C:\sys/RealSense ) にコピーされる。
- python の rs 環境の Libs/site-packages の下に pyrealsense2.pyd と realsense2.dll をコピーする。
C:\sys\RealSense\bin\realsense2.dll → D:\sys\Anaconda3\envs\rs\Lib\site-packages\realsense2.dll
C:\sys\RealSense\bin\pyrealsense2.cp36-win_amd64.pyd → D:\sys\Anaconda3\envs\rs\Lib\site-packages\pyrealsense2.pyd
|
Python (Anaconda3) から RealSense を使う
- condaを起動する。
- rs環境をactivateする
(base) C:\Users\nitta\Docuemnts> activate rs
|
- realsense sdk のソースが置いてあるフォルダに移動する。(個人環境により異なる)
d:
cd Users\nitta\Documents\realsense\librealsense-2.18.1
|
- python の example が置いてある場所に移動して、プログラムを実行し、正しく動作することを確認する。
(rs) D:\Usrs\nitta\Documents\realsense\librealsense-2.18.1> cd wrappers\python\examples
(rs) D:\Usrs\nitta\Documents\realsense\librealsense-2.18.1wrappers\python\examples> python opencv_pointcloud_viewer.py
|
OpenNi2 で RealSense を使う
- OpenNI2 SDK (64bit版) が C:\Program Files\OpenNI2 にインストールされている。
- rs2driver.dll と realsense2.dll を OPENNI2_DIR/Samples/Bin/OpenNI2/Drivers/ にコピーする。
%BUILD%/Release/realsense2.dll → C:\Program Files\OpenNI2\Samples\Bin\OpenNI2\Drivers
%BUILD%/_out/Release/rs2driver.dll → C:\Program Files\OpenNI2\Samples\Bin\OpenNI2\Drivers
|
- %OPENNI2_DIR%/Samples/Bin/ の下のプログラムが動作することを確認する。(SimpleRead, SimpleViewer, NiViewer など)
- NiViewer (Toolsの下にある)も動作させたければ、rs2driver.dll と realsense2.dll を OPENNI2_DIR/Tools/OpenNI2/Drivers/ にコピーする。
%BUILD%/Release/realsense2.dll → C:\Program Files\OpenNI2\Tools\OpenNI2\Drivers
%BUILD%/_out/Release/rs2driver.dll → C:\Program Files\OpenNI2\Tools\OpenNI2\Drivers
|
Yoshihisa Nitta
http://nw.tsuda.ac.jp/