관리 메뉴

차근차근잼

[2023 부트캠프] Upstage AI Lab - Image Competition 본문

공부/23' 패스트캠퍼스 Upstage AI 부트캠프

[2023 부트캠프] Upstage AI Lab - Image Competition

매울신현구 2024. 4. 25. 15:05

 

이번 대회는 ML 대회에 이어 Computer Vision을 활용한 Document Type Classification 이다.

 

 

 

대회 기간이 짧다면 짧고 대회 주제에 비하면 길었던 것 같기도 하다 .... 이 대회가 그 유명한 인간지능 콘테스트 이기 때문에

 

Document Layout Parser 와 같은 모델을 과거에 개발해 본 경험이 있어서 자신 있게 입장했으나 평가 데이터가 도저히 Layout 을 판단할 수가 없었다. OpenCV를 활용해 한 땀 한땀 장인 정신으로 테스트하기에도 무작위 Augraphy와 같은 변형이 많아 팀원들에게 Annotation 노가다만 시키고 수포로 돌아갔다 .....(Labelimg 지못미 ..)

 

사실 이런 모델들을 실험해보고 싶었어요 ㅠ

 

 

 

한 차례의 노가다로 실패의 쓴맛을 맛보고 데이터를 살펴보기 시작했다.

분류해야하는 카테고리 뭔가 많다 ...

 

문서 카테고리는 세분화돼있는 것 같으면서도 아닌 그런 기준이었는데 의료문서가 고비일 것 같았다. 왜냐하면 실제로 사람이 판단하기에도 애매한 부분이 많았기에....

 

17개 카테고리를 비슷한 유형끼리 묶어 3개의 그룹으로 나누고 이를 분류하는 1차 분류모델과 실제 class를 분류하는 2차 모델을 설계하였다.

 

성능은 향상되었지만 특정 그룹(의료문서)의 성능이 눈에 띄게 좋지 않은 것을 확인할 수 있었다.

 

OCR이 안된다는 건 몇 번의 시도로 밝혀졌고(특정 카테고리는 되는 듯 하나 그럴 거면 안 하는 게 낫다고 판단..)

다른 팀들의 고분군투 현장을 몇 번 훔쳐보니 무려 평가데이터 분석을 통한 Data Augmentation 이 이루어지고 있었다... 이것이 진정한 Data centric AI ...?

 

그리하여 우리 팀도 대세를 따라 평가 데이터에 대한 분석을 늦게나마 시작했다.....

섬세한 노가다의 현장

 

데이터 이미지는 대회 규칙 상 유출할 수 없지만 대충 이런 기법들을 사용했다

 

 

- Augraphy는 문서 이미지에 대해 잉크/종이를 구분해 각각에 왜곡 및 열화 처리와 실제와 유사한 종이 질감을 만들어내고 최종적으로 접힘등의 물리적 왜곡을 통해 보다 일반적이고 강한 모델을 만들기 위한 데이터를 생성하는 기법

- Albumentation 변환은 텐서의 차원과 값을 조작해 rotate, shift, scale, brightness change 등의 변환을 주는 기법

- Albumentation 기법과 Augraphy 기법을 적용해 Test 데이터와 유사한 형태로 Train 데이터를 변환

- 팀원들이 다양하게 기법을 적용해 경우의 수를 나누어 실험을 진행

 

 

왜곡이 심하게 들어간 데이터이고, Super Resolution은 blur 처리된 부분을 복구하는 느낌이라고 알고 있어서 효과가 없을 것이라고 짐작했는데, 결국 노이즈데이터도 선명하게 만들어주면 이미지 모델에서는 더 성능이 좋아질 것이라는 멘토님의 의견에 수긍하여 Super Resolution을 주어진 데이터로 학습하고 적용해 보았다

 

성능은 좋았으나 증강된 데이터로 모델을 돌리기엔 시간이 부족했기에 최종 모델에는 붙이지 못했지만 경량화해서 사용하는 방법을 추후에 알아보면 좋을 것 같다.

 

그렇게 여차저차 완성된 목표 예측 모델 프로세스는 아래와 같다

 

 

1) 현실에 있을까 싶은 노이즈를 추가한 학습데이터셋 생성

2) train, test 데이터에 대해 노이즈 또한 선명하게 변환

3) Car, License, Paper 먼저 분류하고 각 그룹 내에서 실제 Type을 구분하는 2 Step Classifier 학습

4) 특별히 성능이 좋지 않은 모델의 경우 One vs All 전략을 사용.

 

 

transformer 기반 이미지모델과 CNN 기반 이미지 모델 중 데이터의 특성상 CNN 기반의 모델이 성능이 좋게 나왔고 ResNet34,50,101 모델을 실험해 최종 결과를 얻었다. 3개 그룹별로 성능이 좋은 모델이 달라 이를 앙상블 한 결과가 가장 높은 점수를 얻을 수 있었다.

 

 

 

 

 

 

 

 

 

 

회고는 소중하다!

 

 

 

 

 

 

여러 가지 말도 많고 탈도 많던 대회였지만 DL pipeline도 구축해 사용해 보고 나름의 발전이 있었고, 조금 더 성장할 수 있었던 기간이었다.

 

머신러닝 대회에 이어 좋은 성적을 얻진 못했지만 이후 마음 맞는 수강생들과 함께 데이콘이나 캐글 대회에 더 열심히 임해보려고 한다.