知之者 不如好之者, 好之者 不如樂之者

기계처럼 살지 말고, 즐기는 인간이 되자

Project/ROS2 + CV + Robot (2023.12~2024.02)

Intel Realsense를 이용한 Python openCV 영상 처리

코방코 2024. 1. 10. 23:41
728x90

 

 

최종적으로 시각 정보를 사용하기 위해 Intel RealSense Viewer 를 사용할 것이 아니고,

python3 openCV를 이용해서 RGB Stream과 Depth Stream 을 가져오고

python에서 정보를 처리하길 원했기 때문에 이를 구현한 방법과 코드를 설명하겠습니다.

 

저는 간단하게 cv2.VideoCapture(0) 로 가져와봤는데,

L515의 적외선 비디오 채널이 추출되는 이상한 결과가 나타났습니다.

 

조금 알아보니 다르게 정보를 받아오는 형태여서

이를 간단하게 구현해보았습니다.

 

먼저 필요한 라이브러리 설치해줍니다.

cv2는 가상환경에서 GPU를 위해 빌드하셨든,

CPU 환경이든 적절히 import 만 되면 됩니다.

저는 OpenCV 4.9.0에서는 성공하였지만,

CUDA 를 위해 빌드한 python3.6 기반 가상환경에서 opencv 4.5.5를 활용한 경우

ImportError: /home/user/anaconda3/envs/YourEnv/bin/../lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /home/user/anaconda3/envs/YourEnv/lib/libopencv_gapi.so.405)`

이런 에러가 뜨면서 cv2가 import 되지 않는 에러가 발생했고,

gcc 버전을 맞춰 cmake를 다시 빌드했음에도 에러가 발생하였습니다.

 

그래서 간단하게 pip install opencv-python 명령어 로 설치한

opencv 4.9.0에서 수행해보았습니다.

추후 추가로 확인해보니

gcc 호환 에러라고 하니 gcc를 업그레이드 하여 해결 해줍니다.

conda install -c conda-forge gcc=12.1.0

 

pyrealsense2 라이브러리를 설치합니다.

pip install pyrealsense2

 

이미지 정보를 pyrealsense2 라이브러리의 pipeline 을 통해 얻어옵니다.

아래 코드는 Intel RealSense D435와 L515 에서 모두 테스트 성공하였습니다.

코드가 어렵지 않으니 주석을 따라 읽어보시면 처리 과정이 이해가 될 것 입니다.

 

이 코드를 vscode든, 터미널에서든 실행시키면 작동이 될 것 입니다.

저는 Linux에서 VScode와 터미널 모두에서 실행이 되었습니다.

터미널에서는 다음 명령을 입력하시면 됩니다.

python3 realsense_opencv.py

 

정상 작동하면 다음과 같이 창이 두 개가 뜹니다.

q를 누르면 실행이 종료됩니다.

 

그럼 다음 글에선 이를 이용해서 YOLOv8 과 함께

특정 물체의 Depth를 추출하는 작업에 대해 작성하겠습니다.

 

 

728x90
반응형