본문 바로가기
Embedded/Selly : Sejong Delivery

[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(10)_인도보행 및 장애물 인식

by 다봄이 2020. 5. 12.

우리 멋진 팀원님께서 내가 여러 실패를 겪는동안 vision처리를 멋지게 해내주었다.

 

우선 우리는 교내에서 주행하는 배달로봇을 목표로 하고 있기 때문에, 인도 주행 로봇을 만들기로 결정했었다.

AI Hub에서 제공하는 인도 보행 데이터셋을 이용하여 인도 Segmentation을 진행하였고, UNet, PSPNet, ICNet 등의 여러 모델을 사용하고 학습하였다. 나는 그냥 옆에서 이 모델들이 뭔지 열심히 논문을 읽었다ㅎ...

 

그런데 뭔가 성능이 다 조금씩 맘에 안 들어서 우리 멋진 팀원님께서 새 모델을 만들어버렸다ㅋㅋㅋㅋ 멋져. 이름은 PSPUNet이고, PSPNet이랑 UNet을 섞었다 한다. 사진은 멋진 팀원님 깃허브에서 발췌.

 

 

이렇게해서 인도 보행을 위한 인도 segmentation이 완성!

 

 


그 후엔 또 장애물 인식 및 주행 가능 구역 설정을 또 멋지게 해내주었다.

로봇의 눈인 카메라를 기준으로 약 5m에 안전 버블을 설정하고, 5m 이내에 들어오는 물체들을 장애물로 인식하기로 아이디어를 구상하였다.

 

그런데 진행하다보니 이동체와 고정체를 분리할 필요가 있었다(사실 연산 속도 문제 등등 때문에 가급적이면 segmentation과 depth만으로 해결하려 했었다.). 그러나 장애물 판단 여부에 segementation의 의존도가 굉장히 크게 되는데, segmentation도 완벽하지 않다보니 장애물 판단의 성능을 보조해줄 다른 기술과의 결합이 필요하게 되었다.

결국 object detection을 도입하기로 했고, darknet 모델로 학습시켜 고정체와 이동체를 분리하여 detection했다.

 

 

이것도 멋진 우리 팀원님 깃허브에서 발췌.

object detection으로 이동체와 고정체를 분리하였으니 이동체는 5m 이내에 들어왔을 때 장애물로 판단, 고정체는 2.5m 이내에 들어왔을 때 장애물로 판단한다. 거리 연산은 뎁스 이미지 연산으로 진행하였다.

 

이제 비전처리 부분은 네트워크 안정화, 연산 속도 감축을 위한 모델 경량화 등 최적화 부분만 남았기 때문에 내가 빨리 경로 설정을 개발해서 넘겨야 한다. 그래도 이것만 되면 1차적으로 소프트웨어는 완성이다...!!

 

 

https://github.com/JunHyeok96/Road-Segmentation

 

JunHyeok96/Road-Segmentation

#tensorflow #kears #segmentation #road. Contribute to JunHyeok96/Road-Segmentation development by creating an account on GitHub.

github.com

멋진 팀원님 깃허브도 구경가세용

댓글