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 を実行し、その中で以下のコマンドを実行する。」

  1. ExecutionPoicyの変更
  2.   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
    
  3. scriptの実行
  4. 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 をビルドする。

  1. 最新版の 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 フォルダができる。
  2. cmakeを起動する。
  3. "Where is source code" に librealsense-2.18.1 を指定する。
  4. 自分の環境では D:\Users\nitta\Documents\realsense\librealsense-2.18.1
    
  5. "Where to build the binaries" に 新しいフォルダ build を作って指定する。
  6. 自分の環境では D:\Users\nitta\Documents\realsense\binary
    
  7. "Add Entry"でエントリを追加する。
  8. 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
    



  9. "Configure"をクリックすると、使用するコンパイラを聞かれるので ここで "Visual Studio 15 2017 Win64" を選択する。
  10. "Configure" が終了するとentryが増えるので次の2点にチェックをつけて再度 "Configure"をクリックする。
  11. BUILD_OPENNI2_BINDINGS
    BUILD_PYTHON_BINDINGS
    
  12. PYTHON_EXECUTABLE エントリを追加し、anaconda3 のrs環境の python を指定して、 再再度"Configure"をクリックする。
  13. エントリ値の属性がPATHだとフォルダしか指定できないようなので、STRINGにして値を指定した。
    PYTHON_EXECUTABLE     STRING    D:/sys/Anaconda3/envs/rs/python.exe
    
  14. PYTHON_EXECUTABLE の値が何故かanaconda標準のものになっていたので変更する。 また、勝手に設定されているREALSENSE2_DIR の値を新しく生成するパスに変更してみた。
  15. PYTHON_EXECUTABLE     STRING    D:/sys/Anaconda3/envs/rs/python.exe
    REALSENSE2_DIR        PATH    C:/sys/RealSense
    
  16. cmake で "Generate" をクリックする。
  17. Explorer でbuildフォルダにあるlibrealsense2.sln をクリックして開く。 Visual Studioが起動する。
  18. Visual Studio のビルド・オプションが "Debug" になっているので "Release" に変更する。
  19. アーキテクチャは "x64" になっているはずであるが、もしも"x64"ならばcmakeで コンパイラの指定を間違えている (Win64を選んでいない)ので cmake からやり直すべし。
  20. Visual Studio の ツールバーから「ビルド」→ 「ソリューションのビルド」を選ぶ。
  21. Solution Explorerから "CMakePredefinedTargets" の "INSTALL" を選択した状態で右クリックして 「ビルド」を選ぶ。すると コンパイルしたオブジェクトが CMAKE_INSTALL_PREFIX で指定したPath ( C:\sys/RealSense ) にコピーされる。
  22. python の rs 環境の Libs/site-packages の下に pyrealsense2.pyd と realsense2.dll をコピーする。
  23.     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 を使う

  1. condaを起動する。
  2. rs環境をactivateする
  3.   (base) C:\Users\nitta\Docuemnts> activate rs
    
  4. realsense sdk のソースが置いてあるフォルダに移動する。(個人環境により異なる)
  5.   d:
      cd Users\nitta\Documents\realsense\librealsense-2.18.1
    
  6. python の example が置いてある場所に移動して、プログラムを実行し、正しく動作することを確認する。
  7.   (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 を使う

  1. OpenNI2 SDK (64bit版) が C:\Program Files\OpenNI2 にインストールされている。
  2. rs2driver.dll と realsense2.dll を OPENNI2_DIR/Samples/Bin/OpenNI2/Drivers/ にコピーする。
  3.   %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
    
  4. %OPENNI2_DIR%/Samples/Bin/ の下のプログラムが動作することを確認する。(SimpleRead, SimpleViewer, NiViewer など)
  5. NiViewer (Toolsの下にある)も動作させたければ、rs2driver.dll と realsense2.dll を OPENNI2_DIR/Tools/OpenNI2/Drivers/ にコピーする。
  6.   %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/