Name Last Update
android Loading commit data...
code Loading commit data...
data Loading commit data...
model Loading commit data...
면담확인서 Loading commit data...
보고서 Loading commit data...
README.md Loading commit data...

SSD를 이용한 어린이 보호구역과 보행자 감지 시스템 설계

Abstract

최근 어린이 보호구역 내 교통안전을 강화하는 일명 ‘민식이법’ 시행과 함께 어린이 교통 안전에 대한 사회적 관심이 높아지면서 어린이 보호구역 내에서 운전자의 각별한 주의가 필요해졌다. 이에 대해 본 프로젝트에서는 SSD (Single Shot MultiBox Detector)를 이용하여 어린이 보호구역과 보행자를 인식하는 딥러닝 모델을 개발한다.

준비 사항

데이터셋 준비

1) annotation은 labelImg 툴을 사용해 xml 생성
2) ./data/images/train에 학습 데이터 저장
3) ./data/images/test에 테스트 데이터 저장
4) ./code/txt_to_csv.ipynb으로 "Penn-Fudan Database for Pedestrian Detection and Segmentation"의 annotation txt파일을 csv로 변환
5) ./code/object_detection.ipynb에서 xml->csv->tfrecord로 변환해 학습에 사용 선택) ./code/augmentation.ipynb으로 데이터셋 부풀리기

학습

./code/object_detection.ipynb를 순서대로 따라서 실행 (tfrecord 변환, pretrained model 설치, 학습, tflite 변환, 테스트 단계 포함)

안드로이드

1) Android studio 먼저 설치, API 21이 최소인 android 디바이스 및 android 개발환경, Android Studio 3.2 이상인 환경 필요
2) Android에서 Tensorflow lite를 사용하기 위해서는 build.gradle dependencies에 “compile‘org.tensorflow:tensorflow-lite:+’”. 라이브러리를 추가
3) Android-tensorflow lite에서는 object detection을 하기 위해 ./code/object_detection.ipynb로 양자화된 tfilte 모델과 라벨링된 txt파일을 android/app/src/main/assets 폴더에 저장
4) DetectorActivity.java에서 TF_OD_API_MODEL_FILE, TF_OD_API_LABELS_FILE를 학습한 모델에 맞게 변경, Camera2 API를 사용하여 장치의 후면카메라 사용
5) 카메라의 화면을 보여주는 TextureView와 카메라의 기능을 하는 Preview를 통해 카메라 구현, CameraActivity.java에서 이미지 탐색, DetectorActivity.java에서 인터페이스 설정 및 이미지 처리 수행

Project Results

test1

test2

Members

  • 지도 교수
    김녹원 교수님
  • 팀원
    2017103976 김지은
    2017104000 신아형
    2017104033 최세현