Name Last Update
dataset Loading commit data...
docs Loading commit data...
src Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...

자율 주행차의 영상 기반 차간거리 유지 개발

Table of Contents

프로젝트 소개



딥러닝을 기반으로 단안 카메라의 영상을 활용해 차간 거리를 일정하게 유지하며 주행하는
Adaptive Cruise Control 기능을 제공한다.

시스템 구조

거리유지 시스템 구조

image

겍체 인식 및 거리측정 시스템 구조

image

거리측정 알고리즘

image

  • 카메라의 해상도에 따라 1m에서 기준이 되는 bound box의 width와 height의 크기가 달라진다

디렉토리 구조

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 구성 및 구동 방법

1. custom_dataset 폴더 : yolov5 모델 학습에 사용된 커스텀 이미지파일 포함 (label파일도 포함되어 있음)
-> 직접 제작 해야 함

2. yolov5 : yolov5 모델의 전체 구성파일이 포함

  • 주요파일
    1) best.pt : 커스텀 이미지로 학습된 yolov5모델
    2) detect.py : 객체인식을 구동시키기 위한 파이썬 파일
    3) /data/car_data.yaml : 학습할 이미지파일들의 정보가 포함된 파일
    4) /models/yolov5s.yaml : 학습할 데이터셋의 뼈대
    5) yolov5s.pt : Pre-Trained 모델

3. 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 : Pre-Trained 모델 파일 경로 (pt 형식 파일)
    아무런 값을 적지 않으면 ('') 랜덤한 weight 값으로 초기화 및 학습 진행 (깃헙 공식 오피셜, pre-train을 추천)
    pre-trained 파일이란? : 학습 파라미터(weight와 bias)가 잘 초기화된 파일
    7) name : 학습한 가중치 파일과 관련 내용들이 들어갈 폴더명 (runs/train/에 생성된다)

4. 객체인식을 위한 명령어
(yolov5 폴더에서) 다음 명령어 실행
python3 detect.py --weights best.pt --img 128 --conf 0.4 --source 0

  • 파라미터 설명
    1) weights : 학습된 가중치 파일
    2) img : 인식할 이미지 크기
    3) conf : 인식할 객체의 최저 인식률
    4) source : 인식할 이미지 및 영상 파일 (라즈베리파이에서 웹캠을 source로 하고 싶다면 '0'을 넣으면 된다)

참조

팀원

  • 권동영 (2016110307)
  • 신동해 (2018110651)