Giter Site home page Giter Site logo

level2-cv-datacentric-cv-09's Introduction

level-2 대회 :글자 검출 프로젝트 대회

팀 소개

이름 역할
박상언 라벨링 가이드 작성, 라벨링 툴 실험(CVAT), 라벨링, 외부 데이터 가중치를 사용한 미세 조정, 깃헙 템플릿 작성
지현동 라벨링 가이드 작성, 라벨링 툴 실험(LabelMe), 라벨링, 데이터 증강 기법 실험(dilation), 외부 데이터를 포함한 모형 학습
오왕택 라벨링 가이드 작성, 라벨링 툴 실험(CVAT), 라벨링 검수, 데이터 시각화, 베이스라인 코드 실험,
데이터 증강 기법 실험(Curving), 깃헙 템플릿 작성, UFO to COCO format 코드 작성
이동호 라벨링 가이드 작성, 라벨링 툴 실험(CVAT), 라벨링, EDA, 정규화 코드,
데이터 증강 기법 실험(Distortion, Gaussian Noise, CLAHE), 외부 데이터 수집,
외부 데이터 사전 학습, 깃헙 템플릿 작성, AiHub format to UFO format, COCO format to UFO format
송지민 라벨링 가이드 작성, 라벨링 툴 실험(CVAT), 라벨링, 데이터 증강 기법 실험(noise, CLAHE), 깃헙 템플릿 작성
이주헌 라벨링 가이드 작성, 라벨링 툴 실험(CVAT), 라벨링, 데이터 증강 기법 실험(blur), 깃헙 템플릿 작성, 깃헙 관리

프로젝트 소개

우리는 진료 확인서, 진단서와 같은 의학 데이터에서 글자가 존재하는 영역을 추출하는 프로젝트를 진행하였다. OCR 과정 중에서 글자의 내용을 확인하기 전에 영역을 잘 구하는 것이 주 목표였다.

프로젝트 일정

프로젝트 전체 일정

  • 01/24 10:00 ~ 02/01 19:00

프로젝트 세부 일정

  • 01/22 ~ 01/23 강의 수강, 제공 데이터 및 코드 확인
  • 01/24 ~ 01/26 Baseline code 작성, Git branch 생성, EDA, 라벨링 가이드 정의, 라벨링 및 검수, 정답 형식 변환 코드 작성, 외부 데이터 수집
  • 01/29 ~ 02/01 정규화 수행, 다양한 증강 기법 수행, 모형 학습

프로젝트 수행

  • EDA : 클래스 불균형 확인, 경계박스 비율 확인
  • Baseline code, 사용할 라벨링 툴 선택 : LabelMe, CVAT, Supervisely 비교하고 실험
  • 라벨링 가이드 정의, 라벨링 및 검수 : 가이드 라인을 정의하고 라벨링 검수자를 정하여 기준에 맞게 라벨링했는지 검수
  • 라벨링 형식 변환 코드 : 라벨링을 고쳐 적재적소에 활용하기 위한 COCO to UFO, UFO to COCO, AiHub to UFO 변환
  • 다양한 증강 기법 실험 : Albumentation뿐만 아니라 Geometric한 변환도 수행하려 했으나 시간의 한계에 부딪힘

프로젝트 결과

  • 프로젝트 결과는 Public 9등, Private 9등이라는 결과를 얻었습니다.

Wrap-Up Report

File Tree

├── code
│   ├── configs
│   │   ├── train_0.yaml
│   │   └── train.yaml
│   ├── dataset.py
│   ├── detect.py
│   ├── deteval.py
│   ├── east_dataset.py
│   ├── inference.py
│   ├── loss.py
│   ├── model.py
│   ├── preprocess.py
│   ├── requirements.txt
│   ├── train.py
│   ├── train_refactor.py
│   ├── train_valid.py
│   └── utils.py
├── docs
│   └── SCV_Lv2_Wrap_up_report_OCR.pdf
└── notebooks
    ├── AIhub_to_UFO.ipynb
    ├── EDA.ipynb
    ├── clahe.ipynb
    ├── coco_to_ufo.ipynb
    ├── concatenate_AIHub.ipynb
    ├── data_split.ipynb
    └── ufo_to_coco.ipynb
File(.py) Description
dataset.py dataset정의 및 관련 코드
preprocess.py 빠른 학습을 위한 데이터 전처리 코드
train.py 학습 코드
train_refactor.py 학습 wandb 추가 및 리팩토링 코드
train_valid.py 학습과 검증 진행 코드
utils.py 학습에 필요한 나머지 코드
AIhub_to_UFO.ipynb AiHub to UFO 변환
EDA.ipynb EDA 코드
clahe.ipynb clahe augmentation 코드
coco_to_ufo.ipynb COCO to UFO 변환
concatenate_AIHub.ipynb aihub와 데이터 병합 코드
data_split.ipynb 데이터 train 과 validation 분할 코드
ufo_to_coco.ipynb UFO to AiHub 변환

License

네이버 부스트캠프 AI Tech 교육용 데이터로 대회용 데이터임을 알려드립니다.

level2-cv-datacentric-cv-09's People

Contributors

dongholee0925 avatar ohkingtaek avatar psangeon avatar as9786 avatar leejuheont6138 avatar tolfromj avatar github-classroom[bot] avatar remiing avatar

Watchers

 avatar

Forkers

psangeon

level2-cv-datacentric-cv-09's Issues

[FEAT] COCO to UFO와 UFO to COCO 코드 작성

Background

  • 라벨링 후 학습을 위해 파일의 형식을 바꿔야 함
  • 또한, 현재 학습 데이터의 라벨을 수정하기 위해서는 COCO 형식으로 바꿔야 함

to do

  • COCO to UFO
  • UFO to COCO

[FEAT] 검증 데이터셋에 대한 필요성

Background

  • 시험 데이터 셋에 대한 성능을 비교하기 전에 검증 데이터 셋을 만들어 모형을 튜닝할 필요가 있음
  • 검증 데이터 셋에 대한 예측 값과 결과 값을 시각화하여 비교함으로써 우리가 어떠한 방향으로 데이터를 수정해야 하는지 확인할 필요 가 있음

to do

  • Create validation set

[FEAT] 베이스라인 코드

Background

  • 공통된 코드를 팀원들과 돌리기 위한 베이스 라인 코드 필요

to do

  • 베이스라인 코드 업로드

[FEAT] Concatenate AIHub Data

Background

  • 기존 데이터셋에 AIHub에서 가져온 data를 추가해서 하나의 데이터셋으로 만들어서 학습시키고자 한다.
  • AIhub annotation 정보가 담긴 json파일을 기존 데이터셋의 annotation 정보가 담긴 train.json에 추가하는 코드가 필요하다.

[DISCUSSION] 증강 기법에 대한 논의

Describe the discussion

  • 글자 검출에 있어서 효과적인 증강 기법은 과연 무엇일까요?

Suggestion

  • Mixup은 글자들 간에 경계를 모호하게 만들기 때문에 오히려 글자 검출을 힘들게 만듦
  • Flip은 6이랑 9를 검출하는데 오히려 힘들게 하지 않을까?

Checked Box

  • Mixup

[FEAT] Create Issue Template

Background

  • 이슈 템플릿, 풀리퀘스트 템플릿을 만든다.

To do

  • 기능 구현 이슈 템플릿
  • 버그 픽스 이슈 템플릿
  • 리팩토링 이슈 템플릿
  • 디스커션 이슈 템플릿
  • 질문 이슈 템플릿
  • 풀리퀘스트 템플릿

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.