컴퓨터 비전 개념부터 실제 딥러닝 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)
대표 백본 비교:
| 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는 언제 쓰나요?
특정 문서 클래스가 지속적으로 오예측되는 경우에 사용.
'▷ AI 인공지능' 카테고리의 다른 글
| 컴퓨터 비전 생성(Computer Vision Generation)이란? (0) | 2025.11.14 |
|---|---|
| MLOps란 무엇일까? (0) | 2025.10.10 |
| MLOps의 필수 도구: 도커(Docker) 완벽 가이드 (0) | 2025.09.26 |
| MLOps 자동화 파이프라인 구축 완벽 가이드 (2) | 2025.09.25 |
| mlops 개발환경 구축 - AWS Ec2, docker, mobaXtern (0) | 2025.09.19 |