👨💻프로젝트 개요
OpenCV를 활용해 자율주행버스를 만들고자 합니다.
이번에 만들 자율주행 버스의 주요 내용은 다음과 같습니다.
- 라즈베리 파이를 이용한다.
- 차선을 카메라로 인식해 부드럽게 주행이 가능하게한다.
- 버스 정류장 및 다양한 객체를 인식해 상호작용한다.
- 다양한 상호작용 기능.
프로젝트는 총 4명의 인원과 교육개념으로 1학년 6명, 총 10명과 함께 진행합니다.
아래 서술할 내용은 프로젝트를 시작하기 전 작성했던 개요의 내용입니다.
🖥️SW
Lane Tracing
- 기본적으로 OpenCV를 사용하여 진행하고자 합니다. OpenCV는 이전에도 다루었던 경험이 있기 때문에 차선인식부분은 프로젝트 진행전 간단히 구현해 보았습니다.
코드는 후에 적어 보겠습니다
![](https://velog.velcdn.com/images/gksrbwls527/post/8a5d3031-a847-48cc-80f3-3f944181d372/image.png)
- 이 차선인식 알고리즘은 후에 개선을 할 예정입니다.
- 개인적으로는 "LaneNet"을 적용하고 싶지만 성능이 버텨주진 않을것 같습니다. 따라서 최대한 적용하기 위해 노력하며 다른 프로젝트에서 LaneNet을 원활이 사용하기위해 공부할 것입니다.
주행
- 차선인식 후 다양한 차선의 변화에따른 다양한 종속변인에 떄라 오류값을 획득해 PID제어로 차량을 조작할 예정입니다
- 기타 상호작용을 통해 정지하는 기능이 있을 예정입니다.
객체인식
- 차량, 사, 정지 표지판, 신호등을 인식할예정입니다.
- 딥러닝 물체 인식 모델인 YOLOv2, TensorRT, Tensorflow Lite등을 고려해볼 예정입니다.
- 제한된성능에서 최대한 많은 객체를 인식하기위해서
Multi-scale Training, Warm-up training, Compression, Quantization등과 같은 테크닉을 공부해 최대한 적용해볼 예정입니다.
기타 상호작용
- 버스 정류장마다 안내음성이 나옴
- 어두운 곳에서 자동으로 라이트가 켜짐
- 아이디어를 계속적을 예정
🚌HW
라즈베리파이 4b 4GB 모델을 활용할 예정입니다. 만약 시스템을 구현하는 데에 사양이 부족해 자체적인 연산이 부족하다면, 라즈베리파이를 하나 더 쓰거나 외부 GPU서버나 GPU보드(NVIDIA JETSON TX1,2 / JETSON NANO / GOOGLE EDGE TPU 등)도 고려할 수 있습니다.
자율주행 버스의 차체는 버스 RC카를 기반으로 만들 예정입니다. 버스 모양은 3D 프린터로 뽑을 예정
[필요부품 리스트]
- 라즈베리파이 4b 4GB 모델
- DC모터 및 서보 모터드라이브 모듈(EX: L298n)
- DC모터
- 서보모터
- 초음파센서
- 카메라
- 스피커