Skip to content

Upstage-AI-Lab-4/cv-document-classification-cv-2pub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Document Type Classification | 문서 타입 분류

문서는 금융, 보험, 물류, 의료 등 도메인을 가리지 않고 많이 취급됩니다. 이 대회는 다양한 종류의 문서 이미지의 클래스를 예측합니다.

프로젝트 소개

이번 대회는 computer vision domain에서 가장 중요한 태스크인 이미지 분류 대회입니다.

이미지 분류란 주어진 이미지를 여러 클래스 중 하나로 분류하는 작업입니다. 이러한 이미지 분류는 의료, 패션, 보안 등 여러 현업에서 기초적으로 활용되는 태스크입니다. 딥러닝과 컴퓨터 비전 기술의 발전으로 인한 뛰어난 성능을 통해 현업에서 많은 가치를 창출하고 있습니다.

alt text

그 중, 이번 대회는 문서 타입 분류를 위한 이미지 분류 대회입니다. 문서 데이터는 금융, 의료, 보험, 물류 등 산업 전반에 가장 많은 데이터이며, 많은 대기업에서 디지털 혁신을 위해 문서 유형을 분류하고자 합니다. 이러한 문서 타입 분류는 의료, 금융 등 여러 비즈니스 분야에서 대량의 문서 이미지를 식별하고 자동화 처리를 가능케 할 수 있습니다.

이번 대회에 사용될 데이터는 총 17개 종의 문서로 분류되어 있습니다. 1570장의 학습 이미지를 통해 3140장의 평가 이미지를 예측하게 됩니다. 특히, 현업에서 사용하는 실 데이터를 기반으로 대회를 제작하여 대회와 현업의 갭을 최대한 줄였습니다. 또한 현업에서 생길 수 있는 여러 문서 상태에 대한 이미지를 구축하였습니다.

이번 대회를 통해서 문서 타입 데이터셋을 이용해 이미지 분류를 모델을 구축합니다. 주어진 문서 이미지를 입력 받아 17개의 클래스 중 정답을 예측하게 됩니다. computer vision에서 중요한 backbone 모델들을 실제 활용해보고, 좋은 성능을 가지는 모델을 개발할 수 있습니다. 그 밖에 학습했던 여러 테크닉들을 적용해 볼 수 있습니다.


팀원 구성

김지환 김서현 박현애 변혜영 최수민

@jihwanK

@tjgusKim

@GitHub

@jenny20240401

@raeul0304

1. 개발 환경

  • 주 언어: Python
  • 실험 환경: Ubuntu Server with RTX3090, Google Colab
  • 버전 및 이슈관리: Wandb
  • 협업 툴: Slack, Notion

2. 채택한 개발 기술

Albumentation, Augraphy

  • Albumentation

    • 데이터 증강을 하는데 주로 사용을 했습니다.
    • 이미지에 대한 cropping, flipping, rotating 등의 방법을 적용하여 새로운 데이터를 생성하는 작업을 했습니다.
  • Augraphy

    • Albumentation 라이브러리와 함께 데이터 증강에 사용되었고 특히 document 이미지에 대한 증강에 초점이 맞춰져 있었습니다.
    • 실제로 document에 일어날 법한 기능들이 추가되어 있었습니다. (e.g., 구겨짐, 잉크번짐, 빛 반사 등)

Deep Learning Models

  • Vision Transformer
  • Efficient Vision Architecture
  • Swin Transformer
  • Efficient Net
  • ResNet

3. 프로젝트 구조

.
├── data
│   ├── checkpoints
│   ├── edge_cases
│   ├── meta.csv
│   ├── result
│   ├── sample_submission.csv
│   ├── test
│   ├── train
│   ├── train.csv
│   ├── train_augmented
│   ├── train_augmented.csv
│   ├── train_augmented_notresized
│   ├── train_augmented_notresized.csv
│   └── train_with_class
└── src
    ├── abc
    ├── augmentation_1105.ipynb
    ├── augmentation_without_augraphy.ipynb
    ├── augraphy_cache
    ├── baseline_code.ipynb
    ├── baseline_code.py
    ├── checkpoint.pth
    ├── convnext.py
    ├── convnext_cutmix.py
    ├── convnext_latest.py
    ├── convnext_online.py
    ├── cv_competition.ipynb
    ├── efficient_augmented.py
    ├── efficient_cutmix.py
    ├── efficient_latest.py
    ├── efficient_new.py
    ├── efficient_transform.py
    ├── efficientnet.py
    ├── eva02.py
    ├── eva02_augmented.py
    ├── eva02_augmented_cawr.py
    ├── eva02_augmented_online.py
    ├── eva02_large.py
    ├── eva02_large_adamw.py
    ├── eva02_new.py
    ├── eva02_transform.py
    ├── eva_ca.py
    ├── eva_ca_dropout.py
    ├── first.ipynb
    ├── ocr_nlp.ipynb
    ├── ocr_nlp_2.ipynb
    ├── ocr_nlp_finetune.py
    ├── ocr_nlp_full_train.py
    ├── ocr_nlp_kor.py
    ├── ocr_nlp_lrschd_earlystop.py
    ├── ocr_nlp_lrschd_earlystop_finetune.py
    ├── ocr_nlp_vision.py
    ├── ocr_nlp_vision_correct_orientation.py
    ├── ocr_nlp_vision_original.py
    ├── offline_augmentation.py
    ├── offline_augmentation_seohyun.py
    ├── playground.ipynb
    ├── res
    ├── resnet.py
    ├── show_wrong_predictions.png
    ├── swin.py
    ├── swinT_final.py
    ├── swin_cutmix.py
    ├── training_logs.png
    ├── training_logs_efficientnet.png
    ├── vit_cutmix.py
    ├── vit_siglip.py
    ├── wandb
    └── wrong_imagesef_efficientnet.png


4. 역할 분담

김지환 (팀장)

  • EDA
  • 데이터 증강
  • 모델 개발/통합
  • 실험 및 검증

김서현

  • 데이터 증강
  • 실험

박현애

  • EDA
  • 발표자료

변혜영

  • EDA
  • 데이터 증강
  • 실험

최수민

  • EDA
  • 실험
  • 발표자료

5. 경진대회 기간

대회 기간

2024-10-29 ~ 2024-11-07


6. 프로젝트 후기

김서현

CV는 처음 접하는 분야였는데, 어떤 식으로 접근해야 하는지 배워갈 수 있었습니다. 데이터 증강에 관하여 온라인/오프리안 방식의 차이점과 장단점에 대해 배울 수 있었습니다.

김지환

EDA에 대한 중요성을 다시 한 번 느낄 수 있었고 CV 문제를 해결하기 위해 data augmentation이 얼마나 중요한 부분을 차지하는지 확인해볼 수 있는 경진대회였습니다.

박현애

이번 프로젝트를 통해 데이터 증강의 힘을 실감했습니다. 단순히 데이터를 늘리는 것이 아니라, 어떻게 증강하느냐가 성능을 좌우한다는 것을 배웠습니다. 앞으로는 도메인별로 최적화된 증강 전략을 연구하고 싶습니다

변혜영

대회를 통해서 모델 학습외에 데이터 증강 및 실험에 필요한 다양한 방법들을 새롭게 알게 되어서 좋았습니다.

최수민

지금까지 진행했던 프로젝트들 중에 가장 시간을 많이 쏟지 못해 아쉬움이 남습니다. 팀원분들의 작업을 보며 많이 배울 수 있었고, 앞으로 개인적으로 더 작업해보고 싶은 마음이 들었습니다.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published