객체 인식 프로젝트
규정
교차로 표지판
위 노면의 각 교차로에 랜덤으로 좌회전, 우회전 표지판이 주어지면, 표지판의 방향을 인식하여 그방향대로 주행
신호등
신호등의 신호를 인식하여 신호등의 신호가 빨간색일 시, 정지선을 인식하여 멈추고, 파란 불이 들어오면 주행
정지 신호, 횡단보도
정지신호와 횡단보도를 인식하여, 정지선에서 약 5초간 정지한다.
객체 인식 방법 (YOLO_v3)
자율 주행에 있어서 인지 FPS는 안전에 있어 매우 중요하므로 다양한 Object Dection 모델들 중, Real-Time Detection에 적합한 Yolo를 사용하여 객체를 인식하였다.
주행에 사용되는 임베디드 컴퓨팅 디바이스인 NVIDIA Jetson TX2이므로 보드의 개발 환경에 돌아갈 수 있는 Yolo_v3를 사용하였다. 그 이상의 버전은 ONNX 버전이 낮아 Deploy가 불가 하다.
TX2 Board with ROS1 Melodic on Ubuntu 18.04 LTS
ONNX == 1.4.0
TensorRT == 5.1.6.1
Jetson TX2 jetpack == 4.2.3
CUDA == 10.0.326
OpenCV == 3.3.1
L4T R32.2
해결해야 했던 문제
Object Detection 단계
1. 데이터 셋을 어떻게 구성할 것인지.
- 라벨링을 어떻게 할 것인지.
작은 표지판이나 신호 또한 라벨링 할 것인지 안할 것인지.
사람에 따라 달라지는 라벨링 기준을 어떻게 통일 시킬 것인지
- 주어진 샘플 데이터만 사용할 것인지, 더 데이터를 확보해 학습데이터 셋을 늘릴 것인지
- 신호등의 색깔이 신호등을 인지하는데 어떻게 영향을 미칠 것인지
2. 학습을 얼마나 시켜야 할지.
- trainning을 시키며 eval을 어떻게 진행해야 할지
- 학습의 정도를 어떻게 판단하여, 언제 학습을 멈출 지.
Planning 단계
1. 교차로 진입시, 양쪽 차선이 벌어지는 어떻게 교차로에 진입시킬 수 있을지
2. 교차로를 빠져 나올 때, 한쪽 차선이나 양쪽 차선이 모두 사라지는데 어떻게 차선을 유지 할지
3. 사거리 진입 시, 양쪽 차선이 모두 사라지는데 어떻게 차선을 유지 할지
4. Yolo모델은 신호등의 유무만 검출이 가능한데, 주행 신호을 어떻게 추출해 낼지
5. 정지선/빨간 신호/횡단보도가 검출되었을 시, 정지선을 어떻게 인식하여 멈출 것인지
6. 여러 신호가 동시에 검출이 되었을 때, 혹은 아직 신호가 필요하지 않은 구간일 때, 이것을 어떻게 판단하고 주행할지
프로젝트 시간 관리
화: 데이터 확보 및 라벨링, 모델 학습
수: 모델 학습, Planning 알고리즘 개발
목: Yolov3 모델 배포, Planning 알고리즘 개발
금: Planning 알고리즘 개발
결과