GithubHelp home page GithubHelp logo

dimup / yomo Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 7.64 MB

YOLOv2(darkflow)를 활용한 영상 속 유해, 개인정보 이미지를 탐지하고 모자이크 처리하여 반환하는 서비스

Python 0.02% JavaScript 0.13% CSS 0.11% HTML 0.06% Jupyter Notebook 99.67%

yomo's Introduction

YOMO

<2020 SMU 캡스톤디자인 경진대회 1학기 우수상, 2학기 대상 수상작>

YOLOv2(darkflow)를 활용한 영상 속 유해, 개인정보 이미지를 탐지하고 모자이크 처리하여 반환하는 서비스입니다.


주요 파일 설명

  • cfg 폴더

    • 모델 세부 설정 내용이 담긴 cfg 파일들이 포함된 폴더입니다.
    • "-demon" 은 4개의 항목을 다중 탐지하는 모델에 대한, "-addr", "-carnumber", "-cigarette2", "-knife"은 각각 도로명주소, 차 번호판, 칼, 담배 항목을 단일 탐지하는 모델에 대한 cfg 파일입니다.
  • server 폴더

    • Localhost에서 테스트를 진행했던 웹페이지 및 서버 구현 파일들입니다.
  • "training 폴더"

    • 소규모의 규칙 기반 모델이 작성된 파일입니다.
    • 임의의 문장이 구현된 개체명 인식 모델을 통과한 결과를 일정한 출력 형태로 맞추는 역할을 합니다.
  • "yomo.py"

    • 서버와 연동되어 학습된 모델을 통해 탐지 및 모자이크 처리를 진행하는 코드 파일입니다.
  • darkflow 설치 및 초기 설정 과정(CUDA, cudnn설치 등)이 필요합니다. (https://github.com/thtrieu/darkflow)

  • _가중치 파일과 학습에 사용한 이미지 데이터는 용량 문제로 원격으로 사용하던 데스크탑에 우선 저장해두었는데, 해당 데스크탑 데이터가 모두 날아가는 일이 발생했습니다.. 혹시나 복구된다면 바로 업로드 하겠습니다...


YOMO 구성도


웹 부분

  1. 사용자는 YOMO 웹페이지에서 모자이크 처리를 원하는 영상을 업로드합니다.
  2. 체크박스에서 모자이크 하길 원하는 항목(현재는 도로명주소판, 차 번호판, 칼, 담배 가능)을 선택한 후 모자이크 처리 버튼을 클릭합니다.
  3. 처리가 완료되면 완료된 동영상을 다운로드 받습니다.

탐지 부분

  1. 사용자가 업로드한 원본 영상에서 frame을 하나 씩 추출합니다.
  2. 사전 학습된 모델을 통해 추출한 frame에서 사용자가 요청한 항목이 있는지 탐지합니다.
  3. 탐지된 항목이 있는 경우엔 모자이크 처리를 진행하고 처리가 끝난 frame을 하나씩 쌓아 영상으로 만듭니다.

모델 구현 과정

1. 이미지 수집 및 가공

  • 크롤링과 직접 촬영을 통해 이미지를 수집했습니다.
  • 크롤링한 이미지에서 중복제거, 품질 낮은 이미지 제거 등의 후처리를 진행했고, 전체 이미지에 대해 대칭 이동, 밝기 변화를 적용하여 최대한 데이터 수를 늘렸습니다.

2. Modeling

  • YOLOv2(darkflow)를 통해 모델을 생성했습니다.

3. Training

  • Optimizer와 Hyper parameters를 다음과 같이 설정한 뒤 학습을 진행했습니다.
    • Optimizer : Adam optimizer
    • Learning rate : 1e-4 ~ 1e-6
    • Epochs : 105
    • Batch size : 4

4. 모자이크 처리

  • 탐지 결과가 일정 confidence 값 이상을 넘는 경우 blur() 함수로 모자이크 처리를 진행햇습니다.

5. 테스트

  • 아래와 같이 테스트용 영상을 촬영하고, 모델에 입력하여 결과를 확인했습니다. yy (1)

시연 영상

  • 차 번호판을 모자이크 처리하고, 완성된 영상을 다운로드 받는 시연 영상입니다. siyeon (2)

yomo's People

Contributors

dimup avatar

Watchers

 avatar

Forkers

sksy368

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.