Skip to content

boostcampaitech7/level2-cv-datacentric-cv-11

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔤 OCR Data-Centric 대회

🙂 팀 소개

Members


임동훈

한승수

정아영

김대환

김채리

박윤준

Roles

Name Roles
임동훈 KFold, Ensemble, Augmentation
한승수 EDA, Augmentation
정아영 Utilizing external datasets(Sroie)
김대환 Utilizing external datasets(CORD)
김채리 EDA, Re-Labeling
박윤준 EDA, Re-Labeling

🎙️ 프로젝트 소개

일본어 중국어 베트남어 태국어
image image image image

OCR (Optimal Character Recognition) 기술은 사람이 직접 쓰거나 이미지 속에 있는 문자를 얻은 다음 이를 컴퓨터가 인식할 수 있도록 하는 기술입니다. 스마트폰으로 카드를 결제하거나, 카메라로 카드를 인식할 경우 자동으로 카드 번호가 입력되거나 주차장에 들어가면 차량 번호가 자동으로 인식되는 등 일상생활에 이미 보편적으로 사용되고 있습니다. 이번 대회는 OCR의 대표적인 model 중 하나인 EAST model을 활용하여 진료비 계산서 영수증안에 있는 글자를 인식하는 대회입니다.

이번 대회는 Data-Centric 대회로 다음과 같은 제약사항이 있습니다.

  • 대회에서 주어지는 EAST model만을 사용해야 하며 model과 관련된 코드를 바꿔서는 안됩니다.
  • 이미지넷 기학습 가중치 외에는 사용이 불가합니다.

즉 이번 대회는 모델을 고정한 상태로 데이터만을 활용하여 OCR model의 성능을 최대한 끌어 올리는 프로젝트 입니다.

이번 대회는 부스트캠프 AI Tech CV 트랙내에서 진행된 대회이며 F1-Score로 최종평가를 진행하였습니다.

📆 프로젝트 일정

프로젝트 전체 일정

  • 2024.10.28 ~ 2024.11.07

프로젝트 세부 일정

  • 2024.10.28 ~ 2024.10.29 : OCR에 대해 알아보기, EDA
  • 2024.10.30 ~ 2024.11.01 : Train dataset과 Validation dataset 분리, Baseline 고도화
  • 2024.11.02 ~ 2024.11.03 : 합성데이터 제작, Cord 등 외부 데이터 수집
  • 2024.11.04 ~ 2024.11.05 : Random Augmentation 실험, Re-Labelling 실험
  • 2024.11.06 ~ 2024.11.07 : Ensemble

🤔 Wrap-Up Report

링크에 들어가시면 프로젝트에 대한 랩업리포트를 확인할 수 있습니다.

🗒️ 프로젝트 결과

  • 프로젝트 결과 최종적으로 아래와 같은 결과를 얻었습니다. (Public 11/23등, Private 11/23등)

    • Public

    public

    • Private

    private

🔄️ Directory

├── README.md
├── Visualize
│   ├── bbox_viewer.ipynb
│   ├── ensem_hyp_compare.ipynb
│   ├── synthetic_visualize.ipynb
│   └── visualize.ipynb
├── dataset
│   ├── cord
│   │   ├── 01_convert.py
│   │   ├── 02_json_to_coco.py
│   │   ├── 03_coco_to_ufo.py
│   │   ├── rename_custom_images.py
│   │   └── rename_custom_json.py
│   ├── kfold
│   │   ├── create_kfold_json.py
│   │   └── split_train_val.py
│   ├── relabelling
│   │   ├── COCO_to_UFO.py
│   │   └── UFO_to_COCO.py
│   └── synthetic
│       └── synthetic_data.py
├── requirements.txt
├── src
│   ├── dataset_add_custom.py
│   ├── ensemble.py
│   ├── inference.py
│   └── train.py
├── tree.txt
└── utils
    ├── RandAugment.py
    ├── calculate_norm.py
    ├── deteval.py
    ├── ensemble_wbf.py
    └── save_bbox.ipynb
  • 베이스라인 모델인 EAST 모델이 정의되어 있는 model.py, loss.py, east_dataset.py, detect.py 파일은 변경하지 않았으므로 업로드하지 않았습니다.
  • Visualize: 시각화를 위한 코드입니다. 예측 결과, 앙상블 결과, 합성데이터를 시각화 합니다.
  • dataset: 학습데이터를 구축하기 위한 폴더입니다.
    File(.ipynb/.py) Description
    cord Cord 데이터셋을 활용하기 위한 폴더입니다.
    kfold 데이터셋을 K-Fold로 나누어 저장합니다.
    relabelling 기존 데이터셋에 relabelling을 적용하기 위해 라벨의 유형을 바꿉니다.
    synthetic 기존 데이터셋을 활용해 이미지와 bbox를 합성한 합성 데이터셋을 생성합니다.
  • src: train, inference, ensemble을 위한 코드들입니다.
  • utils: 학습과정에서 필요한 기능들입니다.
    File(.ipynb/.py) Description
    RandAugment 학습데이터에 random Augmentation을 적용합니다.
    calculate norm 이미지 정규화를 위한 평균과 표준편차를 계산합니다.
    deteval 평가 metric을 구현한 코드입니다.
    ensemble_wbf wbf 알고리즘으로 앙상블을 계산합니다.
    save bbox 예측한 bbox를 이미지로 저장하는 코드입니다.

⚠️ Dataset 출처

  • 대회에서 사용된 데이터셋은 부스트캠프 AI Tech에서 제공된 것입니다.

About

level2-cv-datacentric-cv-11 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published