K

KNW_Project1

김녹원 교수님 - CNN 기반 딥러닝 알고리즘을 응용한 어플리케이션 개발프로젝트팀(김지은, 신아형, 최세현)

df49ded3 Create 최종보고서.pdf · by 최세현

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 최세현