Post

문서 타입 분류 프로젝트 회고록

해당 글에서는 문서 타입 분류 Report에 대해 소개합니다.

프로젝트 개요

개요

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

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

image

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

데이터

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

image

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

본 대회는 결과물 csv 확장자 파일을 제출하게 됩니다.

  • input : 3140개의 이미지
  • output : 주어진 이미지의 클래스

프로젝트 팀 구성 및 역할

팀 구성

프로젝트 팀원으로 배정된 인원은 총 5명이며, 팀원들은 다음과 같다.

cv9-team

역할 분담

  • 데이터 확인 및 수집(Data Verification and Collection)
  • 데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
  • 모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
  • 결과 정리 및 보고서 작성(Summarization of Results and Report Writing)

모든 팀원이 위 Task를 수행했지만 각자 전문적인 역할을 수행하였다. 특히, 나는 데이터 전처리 및 EDA와 모델링 및 파라미터 튜닝에 비중을 크게 두고 프로젝트에 참여하였다.

프로젝트 진행 과정

우리 팀의 F1 Score를 높여가는 자세한 Code 및 발표자료는 Github에서 확인할 수 있다.

결과

  • public score image
  • private score image

자체 평가 의견

잘했던 점

  • 스크럼 시간을 충분히 활용하여 각자의 다양한 인사이트와 아이디어를 공유했고, 서로의 아이디어를 존중하면서 프로젝트를 진행했다.

시도 했으나 잘 되지 않았던 것들

  • Test Time Augmentation(TTA) 기법을 적용해보려 했으나, 예측 결과에 제대로 반영되지 않았다. 급하게 Dacon과 Kaggle에서 코드를 가져와 사용했는데, 이로 인해 문제가 발생한 점이 아쉬웠다. 다음에 Computer Vision 관련 대회에 참가하게 된다면, 추론 단계에서 TTA를 꼭 적용하여 성능을 향상시키고 싶다.

아쉬웠던 점들

  • 초기에 Augmentation을 통해 Baseline 점수(0.38)에서 0.87까지 급격히 상승한 것을 보고, 데이터 증강만으로도 좋은 점수를 얻을 수 있을 거라 안일하게 생각했다. 그러나 그 점수가 한계였다는 것을 늦게 깨닫고, 급하게 Test 데이터셋의 디노이징, 모델 하이퍼파라미터 조정 등을 시도했던 점이 아쉬웠다.

프로젝트를 통해 배운 점 또는 시사점

  • 초기에는 Test 데이터셋을 수정하면 안 된다고 생각했으나, 멘토링을 통해 디노이징이나 디블러링 등의 기법이 있다는 것을 알게 되었다.
  • 프로젝트 진행에 있어 시간 배분을 잘하는 것이 중요하다는 것을 깨닫게 되었다.

1
2
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

This post is licensed under CC BY 4.0 by the author.