Git Product home page Git Product logo

cv-cardamagedetection's Introduction

CV-CarDamageDetection

Team - CODEnter

  • 윤소미, 장주찬, 전규원, 한정현, 허 권
    PPT

Introduction

  • Semantic Segmentation을 이용한 자동차 파손부위 탐지

  • 사람이 직접 파손부위를 하나하나 검수해야 하는 부담을 덜 수 있고, 회사 입장에서도
    인적,시간적 자원 절약 측면에서 좋을 것이라 생각하여 진행하게 된 프로젝트

  • 사진이나 영상 속 객체를 pixel단위로 탐지하여 object detection보다 세부적으로
    detecting이 가능한 Semantic Segmentation을 선택

Dataset

  • AI-hub에 socar dataset이 올라오기 이전

  • 구글링을 통하여 segmentation annotation이 포함된 차량파손이미지 수집

  • via tool - 부족한 데이터셋 보충, 좀 더 세밀한 mask를 통해 성능개선을 기대
    차량 파손 이미지 COCOdataset을 사용, via tool을 사용하여 이미지에 polygon을 직접 달아줌으로써
    mask의 좌표를 생성 후 annotation.json 파일 생성
    2명의 팀원이서 1일동안 총 400장의 데이터셋 생성

  • 차량 파손 부위가 아닌 파손 "형태"를 detecting하는 작업으로, 차량 이외에도 스크래치나 이격과
    같은 파손형태 데이터셋도 사용

  • Augmentation - Pytorch의 albumentation을 사용하여 offline으로 데이터증식 진행
    HorizontaFlip, VerticalFlip, Blur, OpticalDistortion, Resize, RandomRotate90

  • Binary 와 Multi 로 진행
    Binary Label : background - 0 , damaged - 1
    Multi Label : background - 0 , scratch - 1 , dent - 2 , spacing - 3 , broken - 4

Models

  • Semantic Segmentation에서 가장 많이 쓰이는 모델 선정

  • DeepLabV3
    reference를 git clone하여 하이퍼파라미터 변경 및 inference추가
    pre-trained model에 fine-tuning

  • Unet
    reference를 git clone하여 하이퍼파라미터 변경 및 inference추가 논문내용을 직접 구현하여 사용

Env and Requirements

  • Google Colab, VScode, AWS
  • Pytorch, Pillow, OpenCV, Numpy, Matplotlib, via, albumentation, Weights and Biases

Progress

  • 데이터셋 구축 - 구글링, via프로그램사용하여 직접만들기

  • 데이터셋 정제
    annotation info가 담겨있는 json파일을 이용하여 polygon2mask진행
    확장자를 jpg에서 png로 바꾸기
    binary형태의 데이터셋에서 class별로 array값을 다르게 부여햐여 multi dataset구축
    unet에서 사용하기 위해 img형식의 mask.png를 array로 바꿔 mask.npy로 변경
    split-folders를 사용하여 폴더안의 파일들을 train-set과 valid-set으로 나눔

  • 데이터셋 증식
    albumentation을 이용하여 오프라인에서 augmentation진행
    HorizontaFlip, VerticalFlip, Blur, OpticalDistortion, Resize, RandomRotate90

  • DeepLabV3 & Unet Reference 찾기

  • DeepLabV3 Reference 튜닝, 최적의 hyperparameter찾기, pre-trained 모델에 fine-tuning 시키기

  • Weights and Biases를 연동하여 train-log 관리

  • Unet 논문 및 유투브 참고하여 직접구현 후 학습 진행

  • Label별로 학습시킨 후 ensemble 시도

Referecne

cv-cardamagedetection's People

Contributors

heokwon avatar

Watchers

 avatar

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.