sjkwon

문서 이미지 분류

17종 문서를 이미지로 분류하고 신뢰도가 낮은 결과만 OCR로 보완해 경진대회 5위를 기록했습니다.

기간
2024.10.29 – 2024.11.07
분류
경진대회
역할
4인 · EDA·모델학습·OCR 담당 (Upstage AI Lab 경진대회)
스택
Python · ConvNeXt · EfficientNet · ViT · Augraphy · OCR

계좌번호, 여권, 진단서, 자동차 등록증 등 17종 문서 이미지를 분류하는 과제였습니다. Train은 깨끗한 이미지 1,570장이었지만 Test 3,140장에는 Blur와 Noise 등 여러 변형이 있었고, 진단서·소견서·진료비 납입 확인서처럼 형태가 비슷한 문서도 많았습니다. 4인 팀에서 EDA와 모델 학습, OCR 실험을 담당했습니다.

실험 방향 설정

제공된 베이스라인은 ResNet34 기반 이미지 분류였습니다. 저는 이 학습 경로에서 시작하기보다, 문서 안의 텍스트가 카테고리를 더 직접 설명할 수 있다고 보고 OCR 기반 분류를 먼저 실험했습니다. 그러나 Test 이미지의 노이즈가 예상보다 심해 텍스트를 안정적으로 추출하지 못했고, OCR 단독 접근을 접고 이미지 분류를 중심으로 바꿨습니다.

데이터 Augmentation

Test에서 확인한 Blur와 Noise를 Train에 적용하고 Mixup, CutMix, Augraphy를 사용했습니다. 추론 단계에는 Shift, Rotation, Flip TTA를 적용했습니다. 팀에서 ResNet34/50, EfficientNet B3–B7와 V2_xl, ConvNeXt, ViT-Base를 비교했고, 성능이 가장 높았던 ConvNeXt를 최종 모델로 선택했습니다.

OCR 앙상블

이미지 분류로 방향을 바꾼 뒤에도 형태가 비슷한 문서에서는 오류가 남았습니다. ConvNeXt의 Softmax 신뢰도가 낮은 결과만 OCR로 한 번 더 분류하도록 두 방식을 결합했고, 이 조건부 OCR 방식에서 최종 정확도가 높아졌습니다. 대회는 5위로 마쳤습니다.