본문 바로가기

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

딥러닝 3D Detection으로 사과 검출하기(FCAF3D)

자 드디어 전에 포스팅했던 방법으로 만든 사과 데이터를 우리 딥러닝 모델로 훈련시켜 봅시다.

데이터 만드는 과정을 요약한 사진입니다.

 

 

사과 데이터 만드는 과정

 

그리고 여러번의 실험 결과를 통해 딥러닝 모델 구조를 3단구조로 변형하는것이 실험결과가 가장 좋다는것을 알게되었습니다.

구조도로 보시면 사진과 같습니다,

 

4단계에서 3단계로 구조변화

 

저는 총 250개의 사과 데이터를 만들었고 그중 130개는 Train용 데이터셋 나머지 120개는 Validation 데이터셋으로 나누었습니다. 130개의 Train 데이터셋은 50개의 Kinect V2 데이터와 80개의 Realsense 데이터로 구성하였고 120개의 Validation 데이터셋은 50개의 Kinect V2 데이터와 70개의 Realsense 데이터로 구성하였습니다.

훈련은 총 12 epoch을 진행하였습니다.

다음은 학습 결과입니다.

 

사과 학습 결과

 

AP가 무려 0.9894가 나왔습니다. 거의 모든 사과를 검출한다는것인데 실제로 3D 검출결과를 시각화해서 보시겠습니다.

아래의 선명한 pointcloud 사진은 Kinect V2 센서에서 얻은 데이터입니다.

 

빨간색 : ground truth(정답), 초록색: prediction(예측) 가운데 부분을 확대한 모습

 

왼쪽 사진과 같이 정말 사과나무에서 거의 모든사과를 찾아냈습니다. 심지어 오른쪽 사진을 보시면 너무 깊은 부분에 있어서 제가 직접 라벨링을 하지 못했던 사과 또한 이 모델이 3D 검출을 하였습니다. 

Realsense 센서에서 얻은 데이터도 확인해 보겠습니다.

 

빨간색 : ground truth(정답), 초록색: prediction(예측)

 

역시 오른쪽 사진에서 사과 한개를 제외하고 모든사과를 찾아냈습니다.

이것으로 직접만든 사과데이터를 훈련시키고 사과를 3D Detection할수 있는 검출기를 성공적으로 만들었습니다.

 

다음 포스팅에서는 실험을 진행하면서 발견한 바운딩 박스가 여러개 생기는 문제점과 해결방안에 대해서 이어서 포스팅을 하고 또 연구의 마지막 과정인 검출한 사과를 로봇을 사용하여 수확하는 것에대해서 리뷰하겠습니다.

감사합니다.