제품 및 서비스 리뷰

인텔 리얼센스 D455 구매기

트리맨스 2021. 1. 23. 22:38
반응형

 

최근 공모전 하나를 끝내면서 잔고에 약간의 여유가 생겼다. 그래서 예전부터 사고 싶었던 주변환경 탐지 센서를 사기로 했다. 나중에라도 시간이 나면은 한번 연구해 보고 싶었던 센서이다.

 

주변환경 감지 센서는 주로 라이다 라고 불린다. 이 기술이 최근에 많이 발전하고 각광받고 있는데, 이는 자율주행 차 운용 부분에서 굉장히 중요한 역할을 맡고 있기 때문이다. 이 센서의 특징은 주변 사물과 자신의 거리를 측정할 수 있다는 것이다. 이를 이용하여 주변을 스캔할 수 있다. 키네틱 또는 리얼센스는 사람과 같이 한쪽 방향의 환경만 측정이 가능하다. 이것을 360도로 계속 회전시키면 자율주행차에 쓰이는 3차원 스캔 장치가 되는 것이다.

 

azure kinetic 하고 realsense d 시리즈 둘 중 하나를 골라야 했다. 그래서 비교를 하던 중, 결국에는 리얼센스를 구매하기로 했다. 성능은 azure kinetic 이 훨씬 좋았다. (L515 와 비교한 영상이지만 D455도 성능이 비슷하다.) 아래의 영상을 보면 성능 차이가 확실히 많이 난다. 하지만 python을 지원하고 가격도 상대적으로 저렴한 realsense를 구매했다.

 

 

3일정도 지나니 배송이 도착했다. 처음 받았을때 포장이 은근히 견고하다는 느낌을 받았다. 언박싱은 항상 설렌다.

 

안에는 리얼센스 카메라 본체, USB A-C 타입 케이블, 삼각대가 들어 있었다. 

 

택배를 수령하자마자 바로 컴퓨터에 리얼센스 sdk를 설치했다. 아래 링크에 들어가서 설치하라는 대로 설치해보자.

www.intelrealsense.com/sdk-2/

 

Intel RealSense SDK 2.0 – Intel RealSense Depth and Tracking cameras

Free Cross-platform SDK for depth cameras (lidar, stereo, coded light). Windows, Linux and other. 10+ wrappers including ROS, Python, C/C++, C#, unity. Try!

www.intelrealsense.com

 

설치 완료 후 환경 변수까지 같이 적용시켜 보았다. 윈도우용 리얼센스 뷰어에서 가끔씩 예상치 못한 오류가 나온다. 

시스템 속성 - 환경 변수 - Path - C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64 경로를 추가해준다. 

 

그 이후에 리얼센스 뷰어를 키면 다음과 같은 화면이 나온다. 가까울수록 파란색, 멀리 있을수록 붉은색 빛이 도는 것을 알 수 있다. 작동 범위보다 가까이 있을 경우에는 검은색 화면이 나오게 된다. 여기서 스테리오 모듈, RGB 카메라, 모션 모듈을 동시에 키게 되면은 RGB 카메라가 작동을 하지 않는다. 랜덤하게 모션 모듈이 작동을 하지 않거나 스테리오 모듈이 작동을 하지 않는다. 이에 대한 원인은 해외 포럼을 찾아봐도 완벽하게 알 수 없었다. 리눅스 환경에서도 동작을 시켜봐야 할 듯 하다.

 

파이썬 환경에서 실행시켜 보자. 리얼센스 sdk 사이트에서 잘 찾아보면 파이썬 예제를 볼 수가 있다. 기본적으로 opencv와 numpy가 기본적으로 필요한 것 같아 보인다. 또한 pyrealsense2 패키지가 추가로 필요하다. opencv와 numpy가 설치가 되어 있으면 아래 명령어를 통해 패키지 설치를 해주자. 

pip3 install pyrealsense2

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
## License: Apache 2.0. See LICENSE file in root directory.
## Copyright(c) 2015-2017 Intel Corporation. All Rights Reserved.
 
###############################################
##      Open CV and Numpy integration        ##
###############################################
 
import pyrealsense2 as rs
import numpy as np
import cv2
 
# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640480, rs.format.bgr8, 30)
 
# Start streaming
pipeline.start(config)
 
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
 
        # Convert images to numpy arrays
        depth_image = np.asanyarray(depth_frame.get_data())
        color_image = np.asanyarray(color_frame.get_data())
 
        # Apply colormap on depth image (image must be converted to 8-bit per pixel first)
        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
 
        # Stack both images horizontally
        images = np.hstack((color_image, depth_colormap))
 
        # Show images
        cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
        cv2.imshow('RealSense', images)
        cv2.waitKey(1)
 
finally:
 
    # Stop streaming
    pipeline.stop()
cs

 

패키지 설치가 완료되면 코드를 실행해보자. 예제 코드는 위에 올려 두었다.

 

위와 같은 화면이 나오게 된다. 파이썬 예제에서는 푸른색 계열의 색으로 모두 채웠다. 멀리 갈수록 명도가 올라가고, 가까이 있을수록 명도가 떨어지게 된다.

 

비싸게 산 개발용 센서인 만큼, 충분히 연구해서 나중에 작품 제작을 할 때 요긴하게 사용할 수 있도록 해야겠다.

 

 

반응형