자율 주행차의 영상 기반 차간거리 유지 개발
Table of Contents
프로젝트 소개
- 딥러닝을 이용하여 저렴하고 데이터 처리가 용이한 카메라를 통한 영상인식 기술을 활용해 차간 거리를 일정하게 유지하며 주행하는 Adaptive Cruise Control 기능을 제공한다.
디렉토리 구조
HEN_Project2
├── dataset
│ ├── ver_1
│ ├── ver_2
│ └── ver_3
│
├── docs
│ ├── 기초보고서
│ ├── 면담보고서
│ ├── 중간보고서
│ └── 최종보고서
│
└── src
├── cart
│ ├── main_arm.c
│ └── main_cart.c
│
├── weights
│ ├── cart_model_v1.pt
│ ├── cart_model_v2.pt
│ ├── cart_model_v3.pt
│ ├── cart_model_v4.pt
│ └── cart_model_v5.pt
│
└── detect.py
실행 방법
YOLO 설치
라즈베리파이에서 git clone https://github.com/ultralytics/yolov5
후
안내에 따라 필요한 모듈 설치
YOLO 구성 및 구동 방법
car_data 폴더 : yolov5 모델 학습에 사용된 커스텀 이미지파일 포함 (label파일도 포함되어 있음)
yolov5 : yolov5 모델의 전체 구성파일이 포함
주요파일 1) best.pt : 커스텀 이미지로 학습된 yolov5모델 2) detect.py : 객체인식을 구동시키기 위한 파이썬 파일 3) /data/car_data.yaml : 학습할 이미지파일들의 정보가 포함된 파일 4) /models/yolov5s.yaml : 학습할 데이터셋의 뼈대
- train을 위한 명령어
(yolov5 폴더에서) 다음 명령어 실행
python3 train.py --img 64 --batch 3 --epochs 30 --data car_data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name custom3_car_yolov5s
파라미터 설명 1) img : 학습할 img size 2) batch : 한번에 처리되는 이미지 개수 3) epochs : 학습 반복 횟수 4) data : custom yaml 파일 5) cfg : 뼈대 yaml 파일 6) weights : 기초 가중치 파일 7) name : 학습한 가중치 파일과 관련 내용들이 들어갈 폴더명 (runs/train/에 생성된다)
객체인식을 위한 명령어 (yolov5 폴더에서) 다음 명령어 실행
python3 detect.py --weights best.pt --img 128 --conf 0.4 --source 0
파라미터 설명 1) weights : 학습된 가중치 파일 2) img : 인식할 이미지 크기 3) conf : 인식할 객체의 최저 인식률 4) source : 인식할 이미지 및 영상 파일 (라즈베리파이에서 웹캠을 source로 하고 싶다면 '0'을 넣으면 된다)
Reference
팀원
- 권동영 (2016110307)
- 신동해 (2018110651)