Intel® RealSense™ D400シリーズをOpenBlocks IoT VX2で利用するためのdockerコンテナイメージの使い方とbuildに関して

realsense01.jpg

Intel® RealSense™ D400シリーズは、SDK2.0にてサポートされています。

D415およびD435をOpenBlocks IoT VX2シリーズで利用するにあたり、SDKであるlibsenseおよびOpenCV 3.4.3をbuildするとともに、dockerコンテナのイメージとして、dockerhubにてpublic公開しました。

今回は、dockerコンテナイメージをOpenBlocks IoT VX2で利用する方法と合わせて、SDKおよびOpenCV3.4.3のソースコードからのビルドする方法についてのTipsを書いておきます。

Dockerコンテナイメージの使い方

dockerコンテナイメージは以下の場所で公開しています。

Docker

OpenBlocks IoT VX2に拡張機能として、docker (WebUI付き)をインストールし、WebUIより検索しダウンロードするか、コンソールから、以下の様にpullしてください。

docker pull goto2048/obsvx2_realsense_sdk20

上記ページのDescriptionにも記述していますが、初期起動のオプションは、

-ti --name realsense --privileged --net=host -v /dev:/dev --restart always

となります。

サンプルのアプリケーションを利用するにあたり、Linux版のOpenCVの場合は、X11の環境が必要となりますが、OpenBlocks IoTシリーズには基本ディスプレイはつきませんので、別にXサーバを用意する必要があります。Linuxデスクトップ環境をお持ちであれば、それを、Windows環境の場合は、VcXsrvなどをインストールして下さい。

コンテナへ入るには、以下のコマンドおよびオプションを使います

docker exec -ti --privileged realsense /bin/bash

XサーバのIPアドレス(もしくはサーバ名)を指定してください。

export DISPLAY=xxx.xxx.xxx.xxx:0

librealsenseをビルドした時のソースツリーを~/の下へ置きました。
サンプルプログラムは、~/librealsense/build/examples/ の下にあります。

rs-capture.jpg

capture/rs-captureを実行してみました

なお、本コンテナイメージは3GBを超えており、OpenBlocks IoT VX1シリーズで使用する場合は、eMMCサイズが非常に厳しい状況となります。VX2でのご利用をお勧めします。

ソースコードからのビルドに関してのTips

上記コンテナを構築するにあたり、OpenCV 3.4.3をOpenBlocks IoT VX2のCPUに対応したビルドおよび、RealSense™ SDK2.0であるlibsenseのビルドを行いました。
すべての手順はここでは書きませんが、構築にともなうTipsについてそれぞれ書いておきます。

opencv 3.4.3

先にビルドに必要な各種パッケージをインストールします。

sudo apt-get install --assume-yes build-essential cmake git
sudo apt-get install --assume-yes pkg-config unzip ffmpeg qtbase5-dev python-dev python3-dev python-numpy python3-numpy
sudo apt-get install --assume-yes libopencv-dev libgtk-3-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libtiff5-dev
sudo apt-get install --assume-yes libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils vtk6
sudo apt-get install --assume-yes liblapacke-dev libopenblas-dev libgdal-dev checkinstall<br>
libfaac-devは、non-freeですので、/etc/apt/sources.listにnon-freeを追加して、apt-get updateする必要があります。

ソースコードは以下より入手します。

wget https://github.com/opencv/opencv/archive/3.4.3.tar.gz

ビルドの手順は、以下の通り

tar xzf 3.4.3.tar.gz
cd opencv-3.4.3
mkdir build
cd build
cmake -G "Unix Makefiles" --build . -D BUILD_CUDA_STUBS=OFF -D BUILD_DOCS=OFF \
-D BUILD_EXAMPLES=OFF -D BUILD_JASPER=OFF -D BUILD_JPEG=OFF -D BUILD_OPENEXR=OFF \
-D BUILD_PACKAGE=ON -D BUILD_PERF_TESTS=OFF -D BUILD_PNG=OFF -D BUILD_SHARED_LIBS=ON \
-D BUILD_TBB=OFF -D BUILD_TESTS=OFF -D BUILD_TIFF=OFF -D BUILD_WITH_DEBUG_INFO=ON \
-D BUILD_ZLIB=OFF -D BUILD_WEBP=OFF -D BUILD_opencv_apps=ON -D BUILD_opencv_calib3d=ON \
-D BUILD_opencv_core=ON -D BUILD_opencv_cudaarithm=OFF -D BUILD_opencv_cudabgsegm=OFF \
-D BUILD_opencv_cudacodec=OFF -D BUILD_opencv_cudafeatures2d=OFF -D BUILD_opencv_cudafilters=OFF \
-D BUILD_opencv_cudaimgproc=OFF -D BUILD_opencv_cudalegacy=OFF -D BUILD_opencv_cudaobjdetect=OFF \
-D BUILD_opencv_cudaoptflow=OFF -D BUILD_opencv_cudastereo=OFF -D BUILD_opencv_cudawarping=OFF \
-D BUILD_opencv_cudev=OFF -D BUILD_opencv_features2d=ON -D BUILD_opencv_flann=ON \
-D BUILD_opencv_highgui=ON -D BUILD_opencv_imgcodecs=ON -D BUILD_opencv_imgproc=ON \
-D BUILD_opencv_java=OFF -D BUILD_opencv_ml=ON -D BUILD_opencv_objdetect=ON \
-D BUILD_opencv_photo=ON -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON \
-D BUILD_opencv_shape=ON -D BUILD_opencv_stitching=ON -D BUILD_opencv_superres=ON \
-D BUILD_opencv_ts=ON -D BUILD_opencv_video=ON -D BUILD_opencv_videoio=ON \
-D BUILD_opencv_videostab=ON -D BUILD_opencv_viz=OFF -D BUILD_opencv_world=OFF \
-D CMAKE_BUILD_TYPE=RELEASE -D WITH_1394=ON -D WITH_CUBLAS=OFF -D WITH_CUDA=OFF \
-D WITH_CUFFT=OFF -D WITH_EIGEN=ON -D WITH_FFMPEG=ON -D WITH_GDAL=OFF -D WITH_GPHOTO2=OFF \
-D WITH_GIGEAPI=ON -D WITH_GSTREAMER=OFF -D WITH_GTK=ON -D WITH_INTELPERC=OFF -D WITH_IPP=ON \
-D WITH_IPP_A=OFF -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LIBV4L=ON -D WITH_OPENCL=ON \
-D WITH_OPENCLAMDBLAS=OFF -D WITH_OPENCLAMDFFT=OFF -D WITH_OPENCL_SVM=OFF -D WITH_OPENEXR=ON \
-D WITH_OPENGL=ON -D WITH_OPENMP=OFF -D WITH_OPENNI=OFF -D WITH_PNG=ON -D WITH_PTHREADS_PF=OFF \
-D WITH_PVAPI=OFF -D WITH_QT=ON -D WITH_TBB=ON -D WITH_TIFF=ON -D WITH_UNICAP=OFF \
-D WITH_V4L=ON -D WITH_VTK=OFF -D WITH_WEBP=ON -D WITH_XIMEA=OFF -D WITH_XINE=OFF \
-D WITH_LAPACKE=ON -D WITH_MATLAB=OFF ..
make -j $(($(nproc) + 1))
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

librealsense

opencvのビルド後であれば、以下のパッケージを追加する必要がありました。

apt-get install libglfw3-dev
apt-get install libusb-1.0-0-dev

ソースコードは以下より入手します。

git clone https://github.com/IntelRealSense/librealsense.git

Tipなどは特にありません。
librealsenseのビルド手順は以下の通りです。

cd librealsense
mkdir build
cd build
cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release
make -j1
make install

続けて、OpenCV用wrapperやpythonモジュールもビルドします。

最後に

今回は、主としてdockerhubにpushしたdockerコンテナイメージの使い方について説明しました。
同じアカウントで、Myriad™に対応したIntel® OpenVINO™ Toolkit環境を提供するdockerコンテナイメージも公開しました。次回の記事にてコンテナイメージの使い方などを紹介します。

お問い合わせはこちらから

お問い合わせ窓口 | ぷらっとホーム株式会社
ぷらっとホーム株式会社のお問い合わせ窓口のページです。製品や各種サービス、会社に関するお問い合わせなど、専用フォームやメール、お電話からご利用いただけます。
OpenBlocks IoT VX2 | ぷらっとホーム株式会社
OpenBlocks IoT VX2は、主要企業の重要IoTシステムで利用されています。堅牢で壊れにくく、ノンコードでセンサーやクラウドと接続でき、長年のノウハウが詰まっており、The Linux F...

※本記事は弊社後藤がQiitaにも投稿しています。よろしければこちらもご覧ください。

Intel® RealSense™ D400シリーズをOpenBlocks IoT VX2で利用するためのdockerコンテナイメージの使い方と、buildに関するメモ - Qiita
Intel® RealSense™ D400シリーズは、SDK2.0にてサポートされています。D415およびD435をOpenBlocks IoT VX2シリーズで利用するにあたり、SDKであるl…
星 賢志

1985年生まれ、2児のパパです。
日頃、マーケティング部署でメンバーと試行錯誤しています。ブログ記事を一番書いているのは僕だったりします。
マーケティングは奥が深すぎて日々勉強の毎日ですが、子どもからプレゼントされたポケモンカードも奥が深すぎて参っています(笑)
移住するなら、宮古島できれいな海を見て、美味しいものを食べて生活したいですね(^O^)

IoTゲートウェイ
シェアする
ぷらっとブログ

コメント

タイトルとURLをコピーしました