Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced Driver Assistance System (ADAS) #93

Open
minha62 opened this issue Jan 17, 2023 · 0 comments
Open

Advanced Driver Assistance System (ADAS) #93

minha62 opened this issue Jan 17, 2023 · 0 comments

Comments

@minha62
Copy link
Collaborator

minha62 commented Jan 17, 2023

1. Introduction

시스템 구성

  1. Lane detection and tracking
  2. LDWS (Lane Departure Warning System)
  3. BDWS (Blind spot Detection and Warning System )

image

Image processing algorithm

  • Python, OpenCV to track the lanes
  • warning in advance if there is lane departure or blind spot detection
  • 알고리즘의 accuracy를 확인하기 위해 시스템을 라즈베리파이에 implement

기존 ADAS는 비싼 장비를 필요로 한 탓에 high-end, premium car 한정이었는데, 이를 모든 사회 계층이 사용할 수 있고 기존 차에도 시스템을 도입할 수 있도록 했다.


2. Motivation and Background

A. Lane Detection System

다양한 기후 환경에서 차선을 detect하기 위한 노력

  • 칼만/가우시안 필터를 사용해 이미지 noise 제거
  • 차선 feature 추출을 위해 edge detection algo.(e.g. canny, Sobel), 색 정보 사용
  • lane fitting을 위해 curve fittings, piecewise linear, cubic curve fitting, RANSAC spline fitting 같은 모델 사용
  • edge & 직선 탐지를 위해 Canny and Hough's transforms 사용
  • 차선 변경 탐지를 위해 IPM, patteren matching machine learning algo. 사용
  • lane marking 탐지를 위해 electronics high-end sensors(LIDAR, RADAR) 사용

B. Lane Change Detection

  • 차선 구분을 위한 lane marker pattern matching, machine learning algorithm
  • 차선 변경할 때 false alarm을 피하기 위한 알고리즘

C. Collision Detection

  • 충돌 감지를 위한 방법 - CNN, vanishing point algo.
  • 충돌 예측을 위한 방법 - AMR sensor, sonar sensor 사용
  • 충돌 방지를 위한 방법 - 운전자 졸음 감시, ultrasonic sensor를 사용해 blind spot 탐지

3. System Overview

image

  • SW: Lane detection system, LDWS, BDWS의 3가지 스텝으로 이뤄진 시스템
  • HW: 라즈베리파이3 B board, 다양한 센서(e.g. ultrasonic), monocular camera, display, buzzer
  1. 이미지 캡쳐 후 차선/bline spot 탐지를 위한 image processing algo.
  2. 가우시안 필터로 noise 제거
  3. grayscale 변환 후 차선의 edge 탐지를 위한 canny edge detector algo.
  4. 차선의 곡률 계산을 위한 Hough Transform
  5. 다양한 기후 환경에서 차선 탐지 알고리즘 테스트
  6. 충돌 없이 효과적인 lane departure를 위해 blind spot 탐지와 경고 시스템 추가
  7. 알고리즘 테스트 및 정확도 계산

4. Methodology

차선 탐지의 주요 부분은 이미지 캡쳐, preprocessing, 차선 특징 추출

A. Pre-processing

  • 이미지 포맷을 RGB → HSL 변환
  • frame size: 640x480
  • 차선 추출을 위해 adaptive threshold for yellow/white 사용
  • 5x5 가우시안 필터 적용해서 noise 제거

B. Lane Detection

image

  • computation overhead 막기 위해 이미지를 grayscale로 변환
  • 가우시안 필터로 noise 제거
  • canny edge detector 사용
  • computation overhead 막기 위해 ROI 적용
  • 차선 탐지를 위해 Hough's Transform 적용

C. Lane Departure Warning

  • 차선 변경 탐지 알고리즘을 사용해 lane departure를 감지하고 사용자에게 buzzer로 알림

D. Blind Spot Detection and Warning System

  • 차선 변경할 때 등 blind spot이 있으면 사용자에게 경고

6. Results

흰색/노란색 차선이 나와있는 Caltech 데이터셋 사용 (1024장)

image
image
image

(a) → (b)
: 그림자/빛의 영향을 줄이기 위해 이미지를 HSL format으로 변환

(b) → (c)
: 색 필터를 사용해 흰색/노란색 차선만 분리

(c) → (d)
: computation overhead 줄이기 위해 흑백으로 변환

(d) → (e)
: 가우시안 blur를 사용해 rough edge → smooth edge

(e) → (f)
: canny edge detector로 edge 탐지

(f) → (h)
: ROI를 이미지 아래쪽 절반으로 국한

(h) → (i)
: Houghs transform 사용해서 차선 탐지

(i) → (j)
: linear regression 적용해서 차선을 2가지 파트로 나누고, 파란색/빨간색으로 왼쪽/오른쪽 차선 구분

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant