자율 주행차의 영상 기반 차간거리 유지 개발
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 128 --batch 3 --epochs 50 --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'을 넣으면 된다)
참조
Ultralytics, YOLO v5(2020), Retrieved June, 10, 2020, from https://github.com/ultralytics/yolov5
이동석 외 4 저, 스테레오 카메라를 이용한 이동객체의 실시간 추적과 거리 측정시스템(2009)
이강원 외 1 저, 지형 공간정보체계 용어사전(2016)
https://github.com/yeongin1230/Self-driving-project/tree/main/Cart
팀원
- 권동영 (2016110307)
- 신동해 (2018110651)