intel RealSense™ Depth Camera D435
- 出版社/メーカー: インテル
- 発売日: 2018/01/18
- メディア: Personal Computers
- この商品を含むブログを見る
FUJIFILM 光吸収・赤外線透過フィルター(IRフィルター) 単品 フイルター IR 76 7.5X 1
- 出版社/メーカー: 富士フイルム
- メディア: Camera
- 購入: 4人 クリック: 14回
- この商品を含むブログ (2件) を見る
Kinect後継として指名されているIntelのRealSenseシリーズだが、距離をセンシングするIRステレオカメラ部は、単体の赤外線カメラとして利用可能だ。性能、値段、入手性のバランスが優れた赤外線カメラと言える。D415とD435の2種類あり、後者のほうが広角なのだが、センサからして違うので、どちらを選ぶかの参考になるように記事をまとめた。
赤外線カメラとしてのD400シリーズの仕様
- D415とD435ではIRステレオカメラ部分が違う
- D415はIRカットフィルムのない通常の可視光にピークを合わせたカメラ
- D435は赤外線領域にピークを合わせているカメラ
- 可視光カットフィルムを使うことでほぼ問題なく可視光カット可能
- 画角が異なるため赤外線プロジェクターも異なる
- Intel公式ではなくMouserにあったデータシートが良かった
- https://www.mouser.jp/pdfdocs/Intel-RealSense-D400-Series-Datasheet_003.pdf
- FOV
- D415: 69.4 x 42.5
- D435: 91.2 x 65.5
- サポートする画像フォーマットは下のPDFスクリーンショットを参照
librealsenseのPythonラッパーで赤外線カメラを使うコード
librealsenseはIntel公式のようで公式ではないらしいSDK。特に問題なく使えるが、コメントで書いた通り、カメラ側に設定を反映させるのに変なコツがいる。
# coding: utf-8 import pyrealsense2 as rs import numpy as np import cv2 # Stop Laser Emitter context = rs.context() sensor = context.sensors[0] sensor.set_option(rs.option.emitter_enabled, 0.0) # pipelineを一度start()しないと最初の接続時に設定が反映されない pipeline = rs.pipeline() pipeline.start() pipeline.stop() config = rs.config() config.enable_stream(rs.stream.infrared, 1, 1280, 720, rs.format.y8, 30) pipeline.start(config) cv2.namedWindow('pysense', cv2.WINDOW_AUTOSIZE) try: while True: frames = pipeline.wait_for_frames() ir_frame = frames.get_infrared_frame() if not ir_frame: continue ir_image = np.asanyarray(ir_frame.get_data()) cv2.imshow('pysense', ir_image) k = cv2.waitKey(1) if k == 27: break finally: pipeline.stop() cv2.destroyAllWindows()
バイイングガイド
赤外線カメラとして利用する場合、D435の方が、
- センサが赤外線にピークを合わせている
- D415よりも広角
- 1280x800で30fps出せる(D415は1280x720)
といった値段相応の機能性と使いやすさがあるため、ケチケチしたプロジェクトでない限りはD435がオススメだ。