[자율주행] 기초 아이디어와 여러 가지 프로젝트

zzwon1212·2023년 10월 8일

자율주행

목록 보기
2/6

1. 기초 아이디어

아래는 자율주행 트랙 미션에 사용되는 가장 기초적인 아이디어들이다. 이외에도 다양한 방법이 존재한다.

1.1. 차선

  • 기초
    영상 → grayscale 변환 → 이진화 변환 → 차선 찾기(흰색이 많이 모여 있는 곳)
  • 허프 변환(Hough Transform)
    영상 → grayscale → blur → canny edge→ ROI → hough transform(직선 검출)
  • ENet
    A Deep Neural Network Architecture for Real-Time Semantic Segmentation

1.2. 직선, 곡선 판단

  • 양쪽 차선의 중점과 화면 중앙의 일치 여부를 판단 → 벗어난 정도에 따라 조향(e.g. 3픽셀에 1도씩)
    * 차폭을 알면 반대쪽 차선의 위치를 계산할 수 있기 때문에 양쪽 차선을 모두 찾을 필요는 없다.

1.3. 정지선, 횡단보도

  • 화면 하단에 ROI 설정 → 하얀색 비율이 높으면(or 수평선이면 정지선) → 도형 개수를 카운트(OpenCV) → 한 개면 정지선, 여러 개면 횡단보도

1.4. 신호등

  • 화면 상단에 ROI 설정 → (수평을 이루는) 연속된 동그라미 찾기(OpenCV) / YOLO 활용 → 명도로 신호등 상태 판단
    * 영상 처리에서 색상으로 판단하는 것은 위험하다.(?)

1.5. 언덕

  • IMU 센서로 언덕 주행임을 인식 → 천천히 양쪽 차선을 이용하여 주행
    * 언덕에서는 차선이 항아리 모양으로 왜곡된다. 이때 한쪽 차선만을 활용하면 곡선 주행으로 인식하게 된다.

1.6. 장애물

  • 라이다 활용
  • 로터리 진입, 차선 변경에도 활용된다.
  • 카메라만으로 할 수 있을 텐데

1.7. QR 코드

  • 지금 어떤 미션을 수행해야 하는지 알려주며(표지판 역할), 이 미션에 필요한 코드를 실행하면 된다.
  • 항상 동작해야 하는 코드들
    차선 인식&주행, 정지선 인식, 차량 멈춤과 출발, 장애물 감지 등
  • 딥러닝을 활용해 QR 코드 없이도 스스로 상황을 인식하여 주행하는 것은 궁극적인 목표 중 하나

2. 여러 가지 프로젝트

자율주행 소프트웨어는 규칙 기반 + 학습 기반을 적절히 활용해야 한다. 아래는 여러 가지 자율주행 프로젝트이며 이외에도 주제는 다양하다.

2.1. YOLO

  • YOLO를 활용하여 차, 사람 뿐만 아니라 현재 상황을 인식
    e. g. 3구 신호등, 4구 신호등, 회전 로터리, 언덕, 3차선 등
  • 사람을 쫓아가는 주행

2.2. 강화학습

가장 기본적인 모델인 DQN을 적용하여, 적절한 보상값을 부여하며 많은 횟수의 반복 주행을 통해 시뮬레이터에서 벽과 충돌하지 않고 빠르게 주행하도록 만들 수 있다.

2.3. End-to-End 자율주행

주행 영상과 조향각 데이터를 학습하여 자율주행을 구현한다. Perception, Planning, Control을 구분하지 않는 것이 특징이다.

2.4. Adaptive Cruise Control

앞차와의 거리를 유지하도록 속도를 조절한다.

2.5. PID 제어

주행 시 차량이 흔들리지 않도록 제어한다.

2.6. 주차(직각/평행)

빈 공간을 확인하여 주차 가능 여부를 판단하고 주차한다.

2.7. 비보호 좌회전

고려할 상황이 많은 Task이다. (규칙 기반 vs. 학습 기반)

2.8. 고속 코너링(드리프트)


📙강의 - (주)자이트론 대표이사 허성민

profile
JUST DO IT.

0개의 댓글