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
3.OpenCV3.4のインストール
Not installed リストからopencvを探します。2019年9月4日時点でVer 3.4がありました。
これをapplyボタンをクリックしてインストールします。
次の参考ページでは、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
インストールが済んだらspyderを立ち上げてpythonのバージョン3.6であることを確認します。
カメラの動作確認
サンプルプログラム
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を立ち上げる
2.仮想環境python3.6のTerminalを立ち上げる
3.Comand Prompt でspyderを立ち上げる
< python3.6 > C:\Users\User_name> spyder
以上です。
編集後記
初めてQiitaでBlogを作成しました。約5時間で作成できました。