Skip to content

Seong-Hyun-0224/system-for-visually-impaired

 
 

Repository files navigation

▲클릭하시면 소개 영상을 볼 수 있습니다.

코드 실행 방법


HitCount  


개발기간

20/04~20/12


개발자

이름 Github 비고
김성현 @Seong-Hyun-0224
김한솔 @hansol0118
윤대호 @201810788 ~2020/06
이혜인 @hyeinlee725 ~2020/08
정민지 @minji-o-j

프로그램 설명

"시각장애인을 위한 도보환경 알리미"

  1. 앞에 있는 횡단보도와 신호등을 알아서 찾아주고
  2. 신호등의 색깔까지 알아서 알려주고
  3. 횡단보도를 건너야 할 타이밍까지 알아서 알려주는
    시각장애인의 안전한 도보 환경 구축을 위한 서비스

목적 및 필요성

고장난 음향신호기, 찾기 힘든 음향신호기의 위치

  • 시각장애인들은 점자 블록을 통해 횡단보도를 찾고, 음향 신호기를 통해 신호등의 불빛 색깔을 파악함

  • 하지만 2020년 서울 강북구 시각장애인 음향신호기 조사 결과 부적합 판정 45.9% 정도로 제대로 설치되어 있지 않은 곳이 많음

  • 또한 한국 장애인 재활 협회 조사 결과 시각장애인 대부분이 횡단보도 및 신호등, 음성안내 시스템 버튼의 위치 파악에 어려움을 겪고 있으며, 횡단보도 횡단에 도움이 되는 다른 장치가 필요하다고 응답함


기대효과

  • 횡단보도와 신호등이 있음을 파악함과 동사에 신호등의 색상을 검출하여 건너야 할 타이밍을 알려줌으로,써 시각장애인이 횡단보도 이용시 겪는 문제를 해결할 것으로 예상함

데이터 구축

1. 학습용 데이터 수집

  • 4000
    • Kaggle
    • google 크롤링 데이터
    • 직접 촬영한 data

2. 학습용 데이터 전처리(image resize)

  • 모은 데이터들을 학습용 데이터로 사용하기 위한 크기 동일화
  • python을 이용한 이미지 크기 512x512 resize

3. Data Labeling

  • 각각의 이미지에 대해 횡단보도, 신호등 영역을 라벨링 해 위치 지정
    • 횡단보도: crosswalk, 신호등: light
  • 라벨링한 이미지 대해 대응되는 4000개의 xml파일을 생성하는 labelImg 프로그램 이용

4. Dataset 구성

  • 위 과정들을 통해 resize된 4000장의 이미지 파일(image)과 대응되는 4000장의 xml 파일(annotation)이 최종 Dataset.
  • 80%: 학습용 데이터(train)로 사용 / 20%: 검증용 데이터(val)로 사용. image

사용 프로그램

image


사용 모델

1차 모델 (20/04~20/05): YOLOv2

  • 위 사진처럼 성능이 좋지 않은 경우가 종종 발생하여 다른 모델을 찾기로 함.

2차 모델(20/08~20/12) : YOLOv4

image

  • YOLOv4: 최신기술들의 조합을 통해 만들어져 최적의 속도와 정확도를 자랑하는 모델.
    • YOLOv3 / CSPDarknet53 / SPP / PAN / BOF / BOS 등의 최신 기술 사용.
    • YOLOv2, v3에서 작은 object에 대해 인식하지 못하는 것에 대해 Bag or Freebies(BOF) / Bag of Specials(BOS) 2가지 유형의 기술을 적용하여 해결.

BOF

  • Data augmenation, Loss function, Regularization 등 학습에 관여하는 요소로, training cost를 증가시켜서 정확도를 높이는 방법들을 의미.

BOS

  • architecture 관점에서의 기법들이 주를 이루고, post processing도 포함되어 있으며, 오로지 inference cost만 증가시켜서 정확도를 높이는 기법들을 의미.

YOLOv4 architecture

  • YOLOv4 = VOLOv3 기반 + backbone(CSPDarkNet53) + Neck(SPP, PAN) + BOF, BOS 기법 적용.

알고리즘

신호등 색상 검출 알고리즘

  • HSV color 모델 사용

HSV이미지, H, S, V 이미지

  • 신호등이 검출되었을 때 밝기(V) 이미지가 신호등의 불빛을 뚜렷하게 나타냄

  • 검출된 신호등의 영역 중 위(빨간불 영역)/아래(초록불 영역)를 1/2~1/4 지점으로 나누어 픽셀 값 더하여 어떤 영역에 밝기값 더 많은지 판단

    • 박스 size에 따라서 나누는 기준 다르게 설정함

도보 환경 알리미 알고리즘

image

  1. state = -2: 신호등 검출 진행 중
  2. state = -1: 신호등 검출 진행 중
  3. state = 0: 신호등 없음
  4. state = 1: 초기 초록불 검출됨. 기다리라는 문구 출력.
  5. state = 2: 빨간불 검출 혹은 빨간불로 바뀜. 기다리라는 문구 출력.
  6. state = 3: 건너도 되는 초록불. 건너도 된다는 문구 출력.

시연 영상

클릭하시면 유튜브로 연결됩니다!

초기 초록불 인식된 경우

초기 빨간불 인식된 경우

About

시각장애인을 위한 도보환경 알리미

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 98.0%
  • Python 1.4%
  • Cuda 0.3%
  • C++ 0.3%
  • Shell 0.0%
  • CSS 0.0%