Improving AI driver assistance system with low-level language (C, C++)
Problem Definition
- 운전 중 발생할 수 있는 다양한 시야 환경 변화 (터널 진입 등) 에서 안정적인 object detection의 불가
- 점선, 페인트지워짐, 교차로 등의 다양한 도로 환경에서의 차선 검출 성능 저하
- 연산량의 증가로 인한 성능 저하
Goal
- 주행 중 발생할 수 있는 빛의 강도 변화, 장애물, 겹침등 다양한 환경 속에서도 정확하고 지속적으로 객체를 추적할 수 있는 알고리즘을 개발합니다.
original due : 2019/10/22 ~ 2019/12/5
restored/uploaded : 2021
->Outcome
C/C++ for PL
CNN - for Image recognition (fine tuned Yolo v2)
OpenCV - for video image preprocessing
자동차 주행 중 여러가지 상황(빛의 강도 변화, 장애물, 겹침)에 대해서 보행자를 지속적으로 정확히 추적할 수 있는 알고리즘 개발
-
Identify the appearance and walk out of moving objects
-
Count the number of moving objects in the current frame
-
Display each information on the image like this:
- Object 1 has entered
- Object 2 has walked out
- There are a total number of 3 objects in the room
-
갑작스런 밝기 변화에 받는 영향을 최소화 하기 위해 frame을 YUV format으로 변환한 뒤 Y(휘도) 채널에 대해서 Histogram equalization을 실행합니다.
-
프레임에서 YOLO object detection을 통해 사람을 발견하면 object의 전체 개수, 포착 시간, Euclidean distance를 계산하여 새로운 객체인지 아닌지 판별한 뒤 번호와 함께 Labeling합니다.
- 여러명의 사람/물체를 정확히 Tracking 하기 위해 이전 frame들과 Euclidean Distance를 비교해 추적
- 반응성과 FPS를 올리기 위해 매 프레임 전체 범위에서의 Detection을 하는것이 아닌 근처 범위 내에서의 Tracking 기법을 사용하여 최적화
-
성능 저하를 방지하기 위해 매 프레임이 아닌 동영상의 FPS에 비례하여 일정한 간격마다 위의 과정을 수행하였다.
향상된 Image recognition algorithm을 사용해 주행 중 여러가지 상황에 대한 정확한 인식과 경고 메세지를 화면에 실시간으로 표시.
- Lane departure warning
- Collision warning with front car
- Collision warning with pedestrian
- Front car departure alarm
- Display each information on the image like this
- Warning!: Lane departure
- Warning!: Collision with front car
- Warning!: Collision with the pedestrian
- Warning!: Front car departure
-
운전자의 차량 기준으로 Detection을 수행해야 할 범위를 Masking합니다.
-
Houghline Detection을 수행해 양쪽의 차선과 그 교차점(cross point)을 탐색합니다.
- 차선의 교차점의 좌표가 많이 이동하거나 한쪽 차선이 사라지면 화면에 Lane departure Warning을 표시합니다.
-
YOLO detection을 수행하며 범위 내에서 차량,사람을 발견하면 해당 객체를 추적합니다.
-
추적하는 객체의 Size를 계산하여 증가값이 threshold를 넘어가면 화면에 해당 객체와의 Collision Warning을 표시합니다.
-
갑작스런 빛의 세기 변화에도 Tracking중인 object를 잃지 않음.
-
새로운 Object가 등장하거나 Object끼리 겹쳐 지나가도 원래의 Label을 잘 유지함.
- Collision detection with front car
- Collision detection with pedestrian