macOSでRealsense

2017-12-28(木)

CreativeのSenz3dがmacOSでも使えるらしいので試してみた。

インストール(macOS)

librealsenseは公式サポートではないがIntel謹製のライブラリらしい。 Homebrewにも存在するがPython wrapperが欲しいので自前でビルドする。

git clone https://github.com/IntelRealSense/librealsense.git
mkdir build
cd build
ccmake ..

  • BUILD_CV_EXAMPLES: OpenCVの実装例
  • BUILD_PCL_EXAMPLES: PCL(Point Cloud Library)の実装例
  • BUILD_PYTHON_BINDINGS: Python用のpackage(Python3)

をONにして,

  • BUILD_WITH_OPENMP: OpenMPだがmacOSだとエラーになる。動くようにしても大して速くならないとのこと

をOFFにしておく。あとはOpenCVなりPCLなりが入っている環境なら問題無く動く。

-- Installing: /usr/local/lib/librealsense-file.a
-- Installing: /usr/local/bin/rs-capture
-- Installing: /usr/local/bin/rs-save-to-disk
-- Installing: /usr/local/bin/rs-multicam
-- Installing: /usr/local/bin/rs-pointcloud
-- Installing: /usr/local/bin/rs-align
-- Installing: /usr/local/bin/rs-sensor-control
-- Installing: /usr/local/bin/rs-depth
-- Installing: /usr/local/bin/rs-color
-- Installing: /usr/local/bin/rs-distance
-- Installing: /usr/local/bin/rs-terminal
-- Installing: /usr/local/bin/rs-enumerate-devices
-- Installing: /usr/local/bin/realsense-viewer
-- Installing: /usr/local/bin/rs-data-collect
-- Installing: /usr/local/bin/rs-depth-quality
-- Installing: /usr/local/bin/live-test
-- Installing: /usr/local/lib/pyrealsense2.2.8.3.cpython-36m-darwin.so
-- Installing: /usr/local/lib/pyrealsense2.2.cpython-36m-darwin.so
-- Installing: /usr/local/lib/pyrealsense2.cpython-36m-darwin.so
-- Installing: /usr/local/lib/pybackend2.2.8.3.cpython-36m-darwin.so
-- Installing: /usr/local/lib/pybackend2.2.cpython-36m-darwin.so
-- Installing: /usr/local/lib/pybackend2.cpython-36m-darwin.so
-- Installing: /usr/local/bin/rs-imshow
-- Installing: /usr/local/bin/rs-grabcuts
-- Installing: /usr/local/bin/rs-latency-tool
-- Installing: /usr/local/bin/rs-dnn
-- Installing: /usr/local/bin/rs-pcl

という感じに面白いサンプルも入る。

サンプル

下のWrapperのサンプル以外のrs-*がそれ。名前のまんまなのでそれぞれ実行すると分かる。 realsense-viewerは至れり尽せり。

Pythonパッケージ

pythonのpyrealsense2は適切な場所に置く必要がある。例えば

cd /usr/local/lib/python3.6/site-packages/
ln -s /usr/local/lib/pyrealsense2.cpython-36m-darwin.so pyrealsense2.so
ln -s /usr/local/lib/pybackend2.cpython-36m-darwin.so pybackend2.so

のような感じで使える。

Wrapperのサンプル

  • rs-imshow: OpenCVのサンプル(imshow)
  • rs-grabcuts: OpenCVのサンプル(Grabcutsの実装)
  • rs-latency-tool: OpenCVのサンプルだがmacOSが白画面で応答しなくなった
  • rs-dnn: OpenCVのサンプル(SSD+距離計測, build/wrappers/opencv/dnnへ移動して実行)
  • rs-pcl: PCLのサンプル

Pythonパッケージの使用例

ここのを少し弄って動くようにした。

import pyrealsense2 as rs
pipeline = rs.pipeline()
pipeline.start()
while True:
    frames = pipeline.wait_for_frames()
    depth = frames.get_depth_frame()
    if not depth: continue
    coverage = [0]*64
    for y in range(480):
        for x in range(640):
            dist = depth.get_distance(x, y)
            if 0 < dist and dist < 1:
                coverage[int(x/10)] += 1
        if y%20 is 19:
            line = ""
            for c in coverage:
                line += " .:nhBXWW"[int(c/25)]
            coverage = [0]*64
            print(line)

で距離画像をASCII Art化して表示してくれる。 ローテク加減が面白い。 ※固定長フォントでお楽しみ下さい

                                    .
                                  nWBnBWWX:
                               h :WWWWWWWWWn.
                               WnWWWWWWWWWWWB
                             .nXhWWWWWWWWWWWW:
                         .:hWWWWhWWWWWWWWWWWW:
                    :WXBXXWWWWWW:hWWWWWWWWWWn n: .
                   nWWWWWWWWWWWWX.:hhBXXh:n. XWWXX
                  hWWWWWWWWWWWWWWX: hWBh: .:WWWWWBB
                 :WWWWWWWWWWWWWWXWWB:.. :BWWWWWXnXX
                 XWWWWWBhWWWWWWWWWWWWWWWWWWWWWW:hB.














                                  nWX:hWWX:
                               B :WWWWWWWWWn.
                               WnWWWWWWWWWWWB
                             .:XhWWWWWWWWWWWW.
                          .hWWWWnWWWWWWWWWWWW:
                    :XBhBXWWWWWW:hWWWWWWWWWWn n.
                   hWWWWWWWWWWWWB :BhBXXh:n: XWWXB
                  hWWWWWWWWWWWXWWX: hWXhn .:WWWWWhX
                 .WWWWWWWWWWWWWWWWWB:.  :BWWWWWWnBh
                 BWWWWXBhWWWWWWWXWWWWWWWWWWWWWWhXB:














                                  BWnnBWWB
                              :. hWWWWWWWWX.
                               WnWWWWWWWWWWXh
                              :XBWWWWWWWWWWWX.
                          .BWWWXnWWWWWWWWWWWW
                    nXBhBBWWWWWW.XWWWWWWWWWW..n.
                   hWWWWWWWWWWWWn hhBBXXhnh.:WWWXB
                  hWWWWWWWWWWWXWWh  WWXh: .nWWWWXBh
                 :WWWWWWWWWWWWWXWWWh..  nXWWWWWXhWB.
                 XWWWWWBhWWWWWWWXWWWWWWWWWWWWWXnBBn














                                  XW.nBWWB
                              n. BWWWWWWWWh:
                              :WnWWWWWWWWWWXn
                              hWBWWWWWWWWWWWX
                          :BWWWBnWWWWWWWWWWWW
                    nBhhBXWWWWWW:XWWWWWWWWWW.:n..
                   BWWWWWWWWWWWWn hBBXXXnnh :WWWBB
                  hWWWWWWWWWWWXWWh. WWXh. .nWWWWXBn
                 .WWWWWWWWWWWWWXWWWh..  nBWWWWWXhXh
                 XWWWWWXBWWWWWWWXWWWWWWWWWWWWWWnhn













                                       .
                                 :WhnXWWW:
                              n :WWWWWWWWWBn.
                              BhBWWWWWWWWWWX:
                              hhWWWWWWWWWWWWh
                          :BWWXnBWWWWWWWXWWWn
                    :BBhhWWWWWWX:XWWWWWWWWWB :n:
                   hWWWWWWWWWWWWn hnBBXX::: hWWWBB
                  hWWWWWWWWWWWXWWB..WWhn. nBWWWWWBh
                 :WWWWWWWWWWWWWXWWWB:...hXWWWWWXhXh.
                 XWWWWWXXWWWWWWWXWWWWWWWWWWWWWXhXB.











                                  BB:
                              .hhWWWWWBn.
                              XWWWWWWWWXh
                            ..WWWWWWWWWWWW
                            nBWWWWWWWWWWWW
                             hBWWWWWWWWWWX
                           :hB.nXXhXWWXnn
                        :XWWWWX:. WWWWWn  XWB.
                   .XWWWWWWWWWXWB. ::. .nWWWWWXh.
                  .WWWWWWWWWWWXWWWWBhBXWWWWWWWWWWn.
                 .WWWWWWWWWWWWWXWWWWWXWWWWWWWWWWWWX
                 BWWWWWWWWWWWWWXWWWWWWWWWWWWWWWWWWh.
                 XWWWWh:BWWWWWWWWWWWWWWWWWWBhh:XWn











                               nXX.
                            :hXWWWWWBnn
                            WWWWWWWWWWB:
                          :nWWWWWWWWWWWW
                           BWWWWWWWWWWWW
                           nBWWWWWWWWWWX
                         .nB.nWBXWWWBn:  :
                      .hWWWWX: .WWWWW: .XWWXn.
                  .XWWWXWWWWWWB:.::. :BBWWWWWWWn
                 :WWWWWWWWWWXWWWWBBXWWWBWWWWWWWWWh
                .WWWWWWWWWWWWWXWWWWXXWWWWWWWWWWWWW:
                hWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB
                XWWWXnnXWWWWWWWWWWWWWWWWWWWXhhXWBh











                              :Bh:
                           .nBWWWWWXhh:
                           BWWWWWWWWWXh
                          :XWWWWWWWWWWWh
                          .BWWWWWWWWWWWh
                           :WWWWWWWWWWW:
                         nBB.BBhXWWXB:  nh:
                     .:hWWWWh. BWWWWh .BWWWXh:.
                  .XWWWWWWWWXWB..:.  BWWWWWWWWWB
                 :WWWWWWWWWWWWWWWBBBXWXWWWWWWWWWWh
                .WWWWWWWWWWWWhXWWWWXXWWWWWWWWWWWWWh
                hWWWWWWWWWWWWWWWWXWWWWWWWWWWWWWWWXh
                BWWWX: hBWWWWWWWWWWWWWWWWWWX:hXWhn:











                                :B:
                              :hXWWWWh
                             .hWWWWWWWX
                             nhWWWWWWWW.
                               nBBXXBn.
                            . .. hWXX
                        hB...XXWBn...nWh:. .n.
                      hWWWWXWWWBWWWWWWWWWhBWW.
                     :WWWWWWWWWWWWWWWWWWWWXWXn:
                     hWWWWWWWWWWWWWWWWWWWWWhBXh
                     nWWWWWWWWWWWWWWWWWWWXh.nBB
                     BXBn :WWWWWWWXWWWXXWWWWB:
                           nBhWWWWWWWXBWWWXhn:





















                               .  .h:..   .
                            .   BXWWWB: .nBhn
                           n:.   .:       ::.






















                                 hXWh..    .
                                   :.      .






















                                :WWWn:.  ..
                                  :.       .






















                                .BBX:.:.  ..
                                  ::






















                                .hBX       .
                                  nn





















                                 n :.
                                .:n:      .
                                .hXh













                                hW:.:
                               nXWWWXh:
                               WWWWWWWn
                               nWXXXXB.
                           .   : .Bh: :B
                         hhW: BWnn..:BWX
                        .nXWnhWWWWWWWWWh.. ..
                        nWWhBWWWWWWWWWX:nn
                         :B:hWWWWWWWWWWhnn  .
                             hhhXWWWWWWhn:
                                .BXhBnh  ..












                               :Bn.
                              nXWWWWXh.
                             nWWWWWWWWW
                             :WWWWWWWWX
                            ..:BXXXBhh. :
                           :BWn .WBXn n:::.
                       nBXBXWWWWh:.:nXWXnXWXW
                      nWXWWWWWWhXWWWWWWWWWWXB:
                     .WWWWWWWWWWWWWWWWWWWWXhWX:
                     :WWWXXWWWWWWWWWWWWWWX nBn.
                      BWBh:hWWWWWWWWWWWWWB.nnh.
                        .   :hBBWWWWWWW::    .











                               nn
                            .nWWWWhhnh:
                            BWWWWWWWWXX
                            WWWWWWWWWWWn
                           .BWWWWWWWWWW
                            .XWWWWWXXWn .
                         nWWX ::WWWWn  :WB .
                    .::hhWWWWXn.hhhn nWBWWWWXBn
                    XWWWWWWWWWWWBhhBWWWBWWWWWWB:
                   :WWWWWWWWWWXWWWWWWWWWWWWWWXWW
                   hWWWWWWWWWWWWWWWWWWWWWWWXWWWX.
                   nWXWh:WWWWWWWWWWWWWWWWWX.WWWX.
                   :XXXn nBWWWWWWWWWWWWWWX.BWX:.











                              hXB:
                           :hWWWWWBBnhn
                           WWWWWWWWWWWXh
                           WWWWWWWWWWWWB
                           WWWWWWWWWWWWn
                           hWWWWWWWWWWW.
                        nXWn:XBXWWXBhn  Xh:
                     ::WWWWWn :WWWWW..nWWWWXh::
                  :WWWWWWWWXWWn::...nWWXWWWWWWWB
                  WWWWWWWWWWWWWWWWWWWWWXWWWWWWWWB
                 nWWWWWWWWWWWXWWWWWWWWWWWWWWWWWWX
                 :WWWWXWWWWWWWWWWWWWWWWWWWWXWWWWX
                  BBnB:nXWWWWWWWWWWWWWWWWW.nWWWWB

Category: Memo Tagged: Realsense OpenCV Python PCL