안녕하세요! 오늘은 제가 패스트캠퍼스 Upstage AI LAB 3기 부트캠프에서 진행한 미니프로젝트에 대한 후기를 자세하게 나누고자 합니다. 인공지능과 딥러닝에 대한 열정으로 시작한 이 여정에서 얻은 소중한 경험과 배움을 공유하려 합니다.
저는 "전지재능" 팀의 일원으로 활동했습니다. 팀원들은 각자 모델 학습, 데이터 전처리, 앙상블 등 자신만의 전문 분야를 맡아 프로젝트에 기여했습니다. 매일 오전 11시에 정기적으로 미팅을 가졌는데, 이를 통해 진행 상황을 공유하고 문제점을 함께 해결할 수 있었습니다.
협업 도구로는 다음과 같은 것들을 활용했습니다:


이번 프로젝트는 문서 타입 분류 대회로, 다양한 문서 이미지를 17개의 클래스로 분류하는 것이 목표였습니다. 분류해야 할 문서 타입은 여권, 운전면허증, 주민등록증 등 실제 생활에서 접할 수 있는 다양한 문서들이었습니다.
이미지 크기 조정: 다양한 이미지 크기를 통일하기 위해 Resize를 적용했습니다. 주로 224, 256, 380, 384, 512 사이즈로 조정하여 모델의 입력 형태에 맞췄습니다.
데이터 증강(Augmentation): Albumentations 라이브러리를 활용하여 이미지에 노이즈 추가, 회전, 색상 변화 등 다양한 변환을 적용했습니다. 이를 통해 모델의 일반화 능력을 향상시킬 수 있었습니다.
데이터 불균형 처리: 클래스별로 데이터 수가 상이하여 Stratified K-Fold Cross Validation을 적용하였고, 클래스가 적은 경우 데이터 증강을 통해 균형을 맞췄습니다.
Upscaling 적용: 저해상도 이미지를 고해상도로 변환하기 위해 chaiNNer 기반의 Upscaling 기법을 사용했습니다.


다양한 사전 학습 모델을 실험한 결과, EfficientNet, Tiny ViT 등의 모델이 좋은 성능을 보였습니다. 특히 Tiny ViT 모델은 제한된 자원에서 높은 효율성을 보여주어 최종 모델로 선정했습니다.
TTA(Test-Time Data Augmentation): 테스트 단계에서 데이터 증강을 적용하여 모델의 예측 안정성을 높였습니다.
Ensemble 기법:
OCR 적용: EasyOCR 라이브러리를 활용하여 이미지에서 텍스트를 추출하고, 특정 키워드에 따라 클래스를 분류했습니다.
여러 성능 향상 기법을 적용한 결과, Macro F1 Score 0.9754를 달성했습니다. 이는 초기 단일 모델의 성능인 0.9384에서 크게 향상된 수치로, 팀원들의 노력이 집결된 결과였습니다.

개인적으로 해결하기 어려웠던 문제들도 팀원들과의 적극적인 소통과 아이디어 공유를 통해 해결할 수 있었습니다. 특히, 서로 다른 분야의 전문성을 가진 팀원들이 모여 시너지를 발휘할 수 있었던 점이 인상적이었습니다.
Google 스프레드시트를 통해 모든 실험의 파라미터와 결과를 꼼꼼히 기록함으로써, 실험의 재현성과 효율성을 높일 수 있었습니다. 이는 추후에 비슷한 문제를 해결할 때 큰 자산이 될 것이라 생각합니다.
이번 프로젝트는 실제 산업에서 발생할 수 있는 다양한 문제들을 미리 경험해볼 수 있는 좋은 기회였습니다. 노이즈가 많은 데이터, 클래스 불균형, 제한된 자원 등 현실적인 제약 속에서 최적의 성능을 내는 방법을 고민할 수 있었습니다.
패스트캠퍼스 Upstage AI LAB 3기 부트캠프는 저에게 큰 도전이자 성장의 기회였습니다. 짧은 기간 동안 많은 것을 배우고, 실제로 적용해보는 과정을 통해 이론과 실무 능력을 모두 향상시킬 수 있었습니다. 앞으로도 이곳에서 배운 지식과 경험을 바탕으로 지속적인 성장을 이어나가고 싶습니다.
마지막으로, 함께 열심히 달려준 전지재능 팀원들에게 감사의 인사를 전합니다. 여러분과 함께한 시간들이 정말 소중했고, 많은 것을 배울 수 있었습니다.