본문 바로가기
  • 나를 찾는 여행...
▷ AI 인공지능

Computer Vision과 딥러닝 CV 문서 분류 프로젝트 정리

by AmosK 2025. 11. 14.
728x90

컴퓨터 비전 개념부터 실제 딥러닝 CV 문서 분류 모델 구현까지


컴퓨터 비전(Computer Vision)의 핵심 기술부터,
딥러닝 기반 문서 이미지 분류(Document Classification) 프로젝트 개발 방법까지 정리.
전처리, EDA, 모델링, K-Fold 학습, 성능 개선 방법을 포함한 실무 중심 가이드.


📌 컴퓨터 비전(Computer Vision)이란?

컴퓨터 비전(Computer Vision) 은 컴퓨터가 이미지와 영상을 이해하도록 만드는 인공지능(AI) 분야이다.
최근에는 더 나아가 이미지를 직접 생성하는 Generative Computer Vision까지 확장되며 가장 빠르게 성장하는 기술 분야 중 하나가 되었다.

컴퓨터 비전은 다음과 같은 질문을 해결한다:

  • 이미지 안에 무엇이 있는가?
  • 이 문서는 어떤 유형인가(계약서? 영수증?)
  • 사진을 다른 스타일로 바꾸려면?
  • 이미지를 자동 보정/생성하려면?

🎯 왜 문서 분류(Document Classification)가 중요한가?

기업과 기관에서는 매일 수천 건의 문서가 만들어진다.
계약서, 세금계산서, 청구서, 신분증, 보고서 등 다양한 서류가 자동 분류되지 않으면:

  • 업무 자동화 불가능
  • OCR 파이프라인이 무너짐
  • 수작업 분류 비용 증가
  • 데이터베이스 자동 구축 불가

이 때문에 이미지 기반 문서 분류(Document Image Classification)
컴퓨터 비전 기반 자동화 시스템의 가장 핵심적인 엔트리 포인트이다.


📄 프로젝트 개요:
     이미지 분석하여 문서 분류(Document Classification by Analyzing Images)

이 프로젝트는 다음을 목표로 한다:

  • 스캔/촬영된 문서 이미지를 딥러닝 모델로 자동 분류
  • 고품질 전처리 → 데이터 증강(Augmentation) → ConvNeXt·EfficientNet·ViT 모델 학습
  • 5-Fold 교차검증(K-Fold) + OOF 기반 검증
  • Focal Loss로 헷갈리는 클래스 성능 개선
  • Ensemble + TTA 기반 추론 안정화

🔍 프로젝트 개발 흐름(Development Workflow)

✔️ 1. 문제 정의(Problem Definition)

문서 이미지를 보고 문서 타입을 분류하는 Multi-class Image Classification 문제이다.

예시 클래스:

  • invoice(세금계산서)
  • contract(계약서)
  • receipt(영수증)
  • id_card(신분증)
  • bank_statement(금융 문서)

사용 지표(Metric)

  • Macro F1 Score (불균형 데이터에 적합)
  • Accuracy
  • 클래스별 Precision/Recall

📊 2. 데이터 분석(EDA: Exploratory Data Analysis)

✔ 이미지 정보 확인

  • 해상도 분포 (가로/세로 비율)
  • 컬러/흑백 비율
  • 문서 기울기(Deskew 필요성)
  • 노이즈 유무

✔ 클래스 불균형 여부

문서 종류에 따라서 샘플 수가 다르므로 Stratified K-Fold가 필수.

✔ 샘플 이미지 시각화 (W&B로 자동화)

  • 클래스별 예시 이미지
  • 문제 샘플(흐린 이미지, 기울어진 이미지)
  • 라벨링 오류 확인

⚙️ 3. 전처리(Preprocessing)

문서 이미지 특성에 최적화된 전처리 적용:

전처리 기법설명
Deskew 기울어진 문서 자동 보정
CLAHE 대비 및 가독성 향상
Unsharp Mask 글자 영역 선명화
Gamma Correction 밝기 보정
Letterbox Resize 비율 유지하며 패딩 후 리사이즈

전처리는 항상 적용되는 deterministic 단계로 구성하는 것이 좋다.


🧩 4. 이미지 증강(Image Augmentation)

문서 데이터는 촬영/스캔 환경이 다양하기 때문에 증강이 매우 중요하다.

사용한 증강(Augmentations):

  • Rotate(±5°)
  • Shift/Scale
  • Brightness/Contrast
  • Gaussian Noise
  • JPEG Compression
  • Random Shadow

증강 비율: aug_multiplier = 4

W&B에서 증강 Before/After를 시각화하며 이상 여부 확인


🤖 5. 모델링(Modeling)

대표 백본 비교:

모델특징Pretrained
ConvNeXt-tiny 최신 CNN + Transformer 결합, 고해상도 강함 fb_in22k_ft_in1k
EfficientNetV2-B3 효율적, 학습 빠름 ImageNet1k
ResNet101 안정적, 전통적 CNN ImageNet1k
ViT-B/16 Transformer 기반, 전체 구조 이해 강함 ImageNet21k

 


🧪 6. 학습(Training)

✔ K-Fold Cross Validation (K = 5)

운에 의한 편향을 제거하고 데이터 전반에서 일관적 성능 확보.

  • fold별로 학습 → val 예측을 OOF로 저장
  • OOF 기반 Confusion Matrix 생성
  • 클래스별 성능 차이 확인

✔ 손실 함수(Loss Function)

  • CrossEntropy
  • Weighted CrossEntropy
  • FocalLoss (문제 클래스 개선 효과)

✔ 하이퍼파라미터

  • Epoch: 12
  • img_size: 640
  • batch_size: 32
  • optimizer: AdamW
  • scheduler: CosineAnnealing + Warmup

📈 7. 성능 개선 최적화(Performance Optimization)

✔ 1) OOF 기반 클래스 분석

  • 예측 성능이 낮은 클래스 3개 파악
  • 해당 클래스 가중치를 Loss에 반영

✔ 2) Focal Loss Fine-Tuning

헷갈리는 클래스에 더 높은 학습 가중치를 부여
→ Macro F1 성능 개선

✔ 3) Ensemble

  • K-Fold 5개 모델 Soft-voting
  • 추론 안정성 크게 증가

✔ 4) TTA (Test-Time Augmentation)

추론 시 약한 변형 여러 개 적용 → 평균
TTA = 4


🔮 8. 추론(Inference) 

  • softmax 평균
  • threshold 조정
  • 확률 낮은 케이스 unknown 처리
  • 혼동되는 클래스 간 규칙 적용

💼 문서 분류 프로젝트의 산업 활용 사례

 

  • OCR(문자 인식) 파이프라인 전처리
  • 자동 문서 분류기 구축
  • 은행/보험/정부기관의 문서 입력 자동화
  • RPA(로봇 프로세스 자동화) 결합
  • 고객 인증(KYC) 신분증 분류
  • 청구서·세금계산서 자동 분류

🧠 FAQ

Q1. 문서 이미지 분류는 왜 K-Fold가 중요한가요?

단일 split은 "운"에 따라 스코어가 달라지기 때문이다.
K-Fold는 전 데이터에서 공정한 성능을 추정하게 해 준다.

Q2. ConvNeXt-tiny pretrained “fb_in22k_ft_in1k”는 무엇인가요?

ImageNet-22K로 대규모 사전학습 후
ImageNet-1K로 미세조정된 강력한 프리트레인 모델.

Q3. 문서 이미지에 어떤 전처리가 가장 효과적이죠?

Deskew, CLAHE, Letterbox Resize가 가장 효과적.

Q4. FocalLoss는 언제 쓰나요?

특정 문서 클래스가 지속적으로 오예측되는 경우에 사용.


 

 
728x90
728x90