문서는 금융, 보험, 물류, 의료 등 도메인을 가리지 않고 많이 취급됩니다. 이 대회는 다양한 종류의 문서 이미지의 클래스를 예측합니다.
이번 대회는 computer vision domain에서 가장 중요한 태스크인 이미지 분류 대회입니다.
이미지 분류란 주어진 이미지를 여러 클래스 중 하나로 분류하는 작업입니다. 이러한 이미지 분류는 의료, 패션, 보안 등 여러 현업에서 기초적으로 활용되는 태스크입니다. 딥러닝과 컴퓨터 비전 기술의 발전으로 인한 뛰어난 성능을 통해 현업에서 많은 가치를 창출하고 있습니다.
그 중, 이번 대회는 문서 타입 분류를 위한 이미지 분류 대회입니다. 문서 데이터는 금융, 의료, 보험, 물류 등 산업 전반에 가장 많은 데이터이며, 많은 대기업에서 디지털 혁신을 위해 문서 유형을 분류하고자 합니다. 이러한 문서 타입 분류는 의료, 금융 등 여러 비즈니스 분야에서 대량의 문서 이미지를 식별하고 자동화 처리를 가능케 할 수 있습니다.
이번 대회에 사용될 데이터는 총 17개 종의 문서로 분류되어 있습니다. 1570장의 학습 이미지를 통해 3140장의 평가 이미지를 예측하게 됩니다. 특히, 현업에서 사용하는 실 데이터를 기반으로 대회를 제작하여 대회와 현업의 갭을 최대한 줄였습니다. 또한 현업에서 생길 수 있는 여러 문서 상태에 대한 이미지를 구축하였습니다.
이번 대회를 통해서 문서 타입 데이터셋을 이용해 이미지 분류를 모델을 구축합니다. 주어진 문서 이미지를 입력 받아 17개의 클래스 중 정답을 예측하게 됩니다. computer vision에서 중요한 backbone 모델들을 실제 활용해보고, 좋은 성능을 가지는 모델을 개발할 수 있습니다. 그 밖에 학습했던 여러 테크닉들을 적용해 볼 수 있습니다.
김지환 | 김서현 | 박현애 | 변혜영 | 최수민 |
---|---|---|---|---|
@jihwanK |
@tjgusKim |
@GitHub |
@jenny20240401 |
@raeul0304 |
- 주 언어: Python
- 실험 환경: Ubuntu Server with RTX3090, Google Colab
- 버전 및 이슈관리: Wandb
- 협업 툴: Slack, Notion
-
Albumentation
- 데이터 증강을 하는데 주로 사용을 했습니다.
- 이미지에 대한 cropping, flipping, rotating 등의 방법을 적용하여 새로운 데이터를 생성하는 작업을 했습니다.
-
Augraphy
- Albumentation 라이브러리와 함께 데이터 증강에 사용되었고 특히 document 이미지에 대한 증강에 초점이 맞춰져 있었습니다.
- 실제로 document에 일어날 법한 기능들이 추가되어 있었습니다. (e.g., 구겨짐, 잉크번짐, 빛 반사 등)
- Vision Transformer
- Efficient Vision Architecture
- Swin Transformer
- Efficient Net
- ResNet
.
├── 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
- EDA
- 데이터 증강
- 모델 개발/통합
- 실험 및 검증
- 데이터 증강
- 실험
- EDA
- 발표자료
- EDA
- 데이터 증강
- 실험
- EDA
- 실험
- 발표자료
2024-10-29 ~ 2024-11-07
CV는 처음 접하는 분야였는데, 어떤 식으로 접근해야 하는지 배워갈 수 있었습니다. 데이터 증강에 관하여 온라인/오프리안 방식의 차이점과 장단점에 대해 배울 수 있었습니다.
EDA에 대한 중요성을 다시 한 번 느낄 수 있었고 CV 문제를 해결하기 위해 data augmentation이 얼마나 중요한 부분을 차지하는지 확인해볼 수 있는 경진대회였습니다.
이번 프로젝트를 통해 데이터 증강의 힘을 실감했습니다. 단순히 데이터를 늘리는 것이 아니라, 어떻게 증강하느냐가 성능을 좌우한다는 것을 배웠습니다. 앞으로는 도메인별로 최적화된 증강 전략을 연구하고 싶습니다
대회를 통해서 모델 학습외에 데이터 증강 및 실험에 필요한 다양한 방법들을 새롭게 알게 되어서 좋았습니다.
지금까지 진행했던 프로젝트들 중에 가장 시간을 많이 쏟지 못해 아쉬움이 남습니다. 팀원분들의 작업을 보며 많이 배울 수 있었고, 앞으로 개인적으로 더 작업해보고 싶은 마음이 들었습니다.