3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Depth Camera D435をWindows10_PCのPythonプログラムで動作させる

Last updated at Posted at 2019-09-05

Anaconda2019.07をWindows10へインストールし仮想環境Python3.6でPyrealsense2とOpenCV3.4を動作させる手順

#Depth CameraをPythonで動作させる

Depth Camera D435

スイッチサイエンスさんのページを参照してください
https://www.switch-science.com/catalog/3633/?gclid=Cj0KCQjw5MLrBRClARIsAPG0WGwi2pL1AkDwZu2g5SmnfRcIzR-KR-LB-YlbhczWDeIHfPzhOVtZeFgaAjeoEALw_wcB
参考ページ
https://qiita.com/PINTO/items/73b341a3661367a0dc61

Depth Camera D435のPythonラッパー

Depth CameraのPythonラッパーのページ
https://pypi.org/project/pyrealsense2/

Python3.6に対応したラッパーを使います(2019年9月時点では最新)

 pyrealsense2-2.27.0.1067-cp36-cp36m-win_amd64.whl

Anaconda 2019.07 は、Python3.7がインストールされるため、Python3.6に対応してるD435のpythonラッパーはインストールできません。そこで、python3.6を指定した仮想環境を作成してインストールを行います。

インストール手順

0.前提

D435を接続するために、USB3.0ポートがあるWindows10_PCを準備します。
今回動作確認したPCは、Amazonで買ったLIVAというPCで次のような仕様になっています。

ECS 小型デスクトップパソコン LIVA Zシリーズ Pentium N4200/メモリ4GB/eMMC32GB/Windows 10 Home LIVAZ-4/32-W10(N4200)

インストール作業はWiFiなどでインターネットにつないだ状態でないといけません。

1.Anacondaをインストール

AnacondaのページからAnaconda 2019.07 for Windows Installerをダウンロードして実行する
 https://www.anaconda.com/distribution/

参考ページ
https://weblabo.oscasierra.net/python-anaconda-install-windows/

2.Anaconda仮想環境作成

python3.6を指定した仮想環境を作成します。とりあえず仮想環境の名前をpython3.6としました。

このページを参考にして作成してください。
https://qiita.com/yokotate/items/e91aadbdf9e18b40b832

Navigator7.jpg

3.OpenCV3.4のインストール

Not installed リストからopencvを探します。2019年9月4日時点でVer 3.4がありました。
これをapplyボタンをクリックしてインストールします。

Navigator2.jpg
Navigator3.jpg

次の参考ページでは、Wheelパッケージをダウンロードして、pipコマンドでインストールしています。
https://qiita.com/FukuharaYohei/items/5d49938ffd33d198f0c0

4.python3.6環境内にpyrealsense2をインストール

 < python3.6 > C:\Users\User_name> pip install pyrealsense2

5.python3.6環境内にspyderをインストール

python3.6を指定した仮想環内のAnaconda Promtでcondaコマンドを使ってインストールします。

 < python3.6 > C:\Users\User_name> conda install spyder

Navigator8.jpg

インストールが済んだらspyderを立ち上げてpythonのバージョン3.6であることを確認します。

Navigator4.jpg

Navigator9.jpg

カメラの動作確認

サンプルプログラム

sample.py
import pyrealsense2 as rs
import numpy as np
import cv2

pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
# Start streaming
pipeline.start(config)
# カスケード型識別器の読み込み
cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

try:
    while True:
        #---------------------------------------------
        # Wait for a coherent pair of frames: depth and color
        #---------------------------------------------
        frames = pipeline.wait_for_frames()
        depth_frame = frames.get_depth_frame()
        color_frame = frames.get_color_frame()
        if not depth_frame or not color_frame:
            continue
        #---------------------------------------------
        # Apply colormap on depth image 
        # (image must be converted to 8-bit per pixel first)
        #---------------------------------------------
        depth_image = np.asanyarray(depth_frame.get_data())
        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
        #---------------------------------------------
        # Convert images to numpy arrays
        #---------------------------------------------
        color_image = np.asanyarray(color_frame.get_data())
        #---------------------------------------------
        # Marking rectangle to detected object 
        #---------------------------------------------
        # グレースケール変換
        gray = cv2.cvtColor(color_image, cv2.COLOR_BGR2GRAY)
        # 顔領域の探索
        face = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30))
        # 顔領域を赤色の矩形で囲む
        for (x, y, w, h) in face:
            cv2.rectangle(color_image, (x, y), (x + w, y+h), (0,0,200), 3)
        #---------------------------------------------
        #Color image show
        #---------------------------------------------
        cv2.namedWindow('Color', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('Color', color_image)
        #---------------------------------------------
        #Depth image show
        #---------------------------------------------
        cv2.namedWindow('Depth', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('Depth', depth_colormap)
        #---------------------------------------------
        # Key operation
        #---------------------------------------------
        key = cv2.waitKey(1)
        #---------------------------------------------
        # Press esc or 'q' to close the image window
        #---------------------------------------------
        if key & 0xFF == ord('q') or key == 27:
            cv2.destroyAllWindows()
            break
        #---------------------------------------------
        # Press 's' to save the image with jpg
        #---------------------------------------------
        if key == ord('s'):
            cv2.imwrite('./out.jpg', color_image)
finally:
    pipeline.stop()

[file]https://1drv.ms/u/s!AoQu_S_gc6kShod2UenWaM8bDrXTaQ?e=TGtGK1

spyderを使って実行する

1.Anaconda3のAnaconda Navigatorを立ち上げる
Navigator6.jpg

2.仮想環境python3.6のTerminalを立ち上げる

Navigator.jpg

3.Comand Prompt でspyderを立ち上げる

 < python3.6 > C:\Users\User_name> spyder

Navigator4.jpg

4.spyderで実行ファイルを読み込んで実行する
Navigator5.jpg

実行結果
Depth_Cam.jpg

以上です。

編集後記

初めてQiitaでBlogを作成しました。約5時間で作成できました。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?