본문 바로가기

프로그래밍/종합설계 딥러닝 프로젝트

3D Object detection_사과 검출 및 수확(종합설계)

안녕하세요. 이번 포스팅부터는 제가 매우 흥미롭게 연구도 해보고 우수상도 탔었던

종합설계(졸업작품)에 대해서 전반적인 리뷰를 하겠습니다.

바로 딥러닝을 이용한 3D Object detection 입니다. 물체를 3D로 감지하기 위해선 jpg처럼 단순히 픽셀 데이터뿐만 아니라 Pointcloud라는 데이터 형식을 잘알아야 합니다.

 

● Pointcloud

 

위 자료는 실재 실험에 사용했던 매트랩 파일을 열어본 사진입니다.

순서대로 x좌표 y좌표 z좌표 R G B 값입니다 이런식으로 pointCloud는 

총 6개의 데이터로 공간에서 점한개를 표현합니다.

 

그리고 위 데이터를 ply파일 형식으로 보면 3차원 입체로 돌려가면서 물체를 관찰할수 있습니다.

위 사진은 meshlab이라는 어플로 pointcloud를 불러온 사진입니다.

이런 3차원 데이터를 얻기위해서는 일반 카메라가 아닌 depth camera(sensor)가 있어야 합니다.

depth 카메라는 빛이 반사되어 돌아오는 시간차를 계산하여 기준점으로 부터 물체가 떨어져있는 거리를 구할 수 있습니다. 저는 실험에서 Kinect V2센서와 intel Realsense를 사용했습니다

 

 

● Kinect V2

Kinect V2 센서의 사진과 스펙 그리고 사과 pointcloud 데이터를 작업하는 모습입니다.

SDK로 직접적인 코딩없이 ply파일 추출이 가능합니다.

 

 

Microsoft Kinect V2 SDK 에서 Kinect Fusion WPF을 찾아 run(내부는 C++로 동작) 이 어플리케이션으로 바로 ply file로 저장이 가능

.

 

● Intel Realsense

Realsense 센서의 사진과 스펙 그리고 사과 데이터를 작업하는 모습입니다.

마찬가지로 SDK 어플을 사용하여 보다 쉽게 작업할수 있습니다.(만약에 없었다면 python으로 직접짜야 했습니다.)

Realsense를 usb로 컴퓨터에 연결하면 SDK 어플을 통해 바로 ply파일 추출이 가능

오늘은 Pointcloud의 개념과 데이터 생성과정을 알아보았습니다.

딥러닝은 data driven approach 방식이기 때문에 초반에 데이터를 잘 만드는것이 실험의 결과를 좌우할만큼 중요합니다.

이어서 포스팅 하도록 하겠습니다. 감사합니다