상세 컨텐츠

본문 제목

2020 인공지능 온라인 경진대회 참가기

POST

by ESTsoft 2020. 9. 18. 14:40

본문

안녕하세요, 이스트소프트 공식 포스트입니다. 오늘은 지난 <2020 인공지능 온라인 경진대회>에 참가한 후기를 소개해 드리려고 합니다.

이스트소프트는 기존 안경 검색 서비스를 개발하는데 사용했던 '메트릭 러닝(metric learning)' 기술을 활용하여 얼굴 인식 문제에 도전했는데요! 도전한 두가지 문제에서 모두 1위라는 성과를 거둘 수 있었습니다. 지금부터 자세한 대회 과정과 그 후기를 알아볼까요?

 

 

 

1. 2020 인공지능 온라인 경진대회는?   

본 대회는 과학기술정보통신부 주최, 정보통신산업진흥원 주관으로, 지난 6월 17일부터 30일까지 총 2주간 개최되었는데요. AI 모델 개발 경진대회를 통해 우수한 인공지능 기술력을 보유한 기업을 발굴하고 개발 능력이 증명된 기업들을 대상으로 사업화 지원 기회를 제공하기 위한 목적에서 진행되었습니다.

1인 이상 최대 5인 팀으로 참가하여 각 팀별로 총 
20개 문제 중 자신 있는 문제에 자유롭게 참여하는 방식으로 진행되었는데요. 참여한 문제 가운데 등수가 가장 높은 3개 문제의 점수를 합산하여 종합 점수를 산정하는 방식이었습니다.

 

출처=인공지능 온라인 경진대회 홈페이지 캡처

 

 

2. 참가 과정

(1) 도전 문제

이스트소프트(팀명: est_ko)가 참여한 두 과제(과제 03, 과제 05)는 그림1과 같은데요. 각 과제는 ‘얼굴 다각도 인식 및 조회 모델 개발’, ‘액세서리 착용자에 대한 인식 및 조회 모델 개발’로, 측면 얼굴, 액세서리 착용 환경 등 다소 어려운 조건에서 동일인 여부를 판단하는 얼굴 인식 문제였습니다.

 

[그림1] 참여 과제 설명 (출처=인공지능 온라인 경진대회 홈페이지 캡처)

  
각 과제의 세부 조건은 아래와 같았습니다.

[과제 03] 얼굴 다각도 인식 및 조회 모델 개발
1) 주제
- 얼굴 다각도 인식 및 조회 모델 개발
- 측면 얼굴 이미지로 정면 얼굴 동일인 조회
2) 배경
- 대부분의 얼굴인식 테스트는 얼굴이 잘 나온 데이터들을 대상으로 이뤄지기 때문에 인식률이 높게 나오지만 실제 케이스에서는 측면과 같은 방해 요소가 고려되어야 함
- 다각도에서의 얼굴 인식이 가능한 모델 개발의 필요성이 증대
3) 과제 설명
- 주어진 다각도의 (90도 -정면 및 측면) 얼굴 이미지를 학습하여, 임의의 측면얼굴 주어졌을 경우, 동일인의 정면 얼굴을 조회하는 모델을 개발하여 성능 비교
4) 데이터 구조
- Train : 66,150장 (front : 22,050장 / side : 44,100장)
※ Train data로는 정면과 측면 얼굴 이미지를 다양하게 제공
- Validate : 10,000쌍 (True : 5,000쌍 / False : 5,000쌍)
- Test : 20,000쌍 (True :10,000쌍 / False : 10,000쌍)
※ Validate와 Test data는 정면과 측면 이미지 한 쌍을 Pair로 제공
5) 과제 평가
- 평가지표: F1
[과제 05] 액세서리 착용자에 대한 인식 및 조회 모델 개발
1) 주제
- 액세서리 착용자에 대한 인식 및 조회 모델 개발
- 액세서리 착용 (안경, 모자, 마스크 등) 얼굴에서 원래 얼굴 찾기
2) 배경
- 대부분의 얼굴인식 테스트는 얼굴이 잘 나온 데이터들을 대상으로 이뤄지기 때문에 인식률이 높게 나오지만 실제 케이스에서는 악세서리 착용 같은 방해 요소가 고려되어야 함
- 액세서리 착용한 얼굴 인식이 가능한 모델 개발의 필요성이 증대
3) 과제설명
- 액세서리를 착용(일반안경, 뿔테안경, 선글라스, 모자, 모자+뿔테 안경)한 사람과 안 한 사람의 이미지를 학습하여, 임의의 액세서리를 착용한 이미지와 착용하지 않은 이미지 쌍이 주어졌을 때 동일인인지 여부를 분류하는 모델을 개발하여 성능 비교
4) 데이터 구조
- Train : 132,300장 (none : 22,050장 / acc : 110,250장)
※ Train data로 액세서리를 착용하지 않은 이미지와 착용한 이미지를 다양하게 제공합니다.
- Validate : 10,000쌍 (True : 5,000쌍 / False : 5,000쌍)
- Test : 20,000쌍 (True :10,000쌍 / False : 10,000쌍)
※ Validate와 Test data는 액세서리를 착용하지 않은 이미지와 착용한 이미지 한 쌍을 Pair로 제공합니다.
5) 과제 평가
평가지표 설명: F1

 

 

(2) 베이스라인 기법

우선 대회 주최 측에서 공개한 베이스라인 코드를 살펴 보니, 이전에 메트릭 러닝 기반 안경 검색 서비스 '글라스 파인더(Glass Finder)' 개발 당시 살펴보았던 Contrastive loss를 찾아볼 수 있었습니다. 이 서비스에 적용된 메트릭 러닝 기술은 Contrastive loss 보다 진보화된 최신 기술이었기 때문에, 이 서비스 개발에 사용된 코드 대부분을 대회에 활용하기로 결정하였습니다.

참고로, Contrastive loss 등을 포함한 메트릭 러닝 발전 동향은 ‘메트릭러닝 기반 안경 검색 서비스 개발기 (2)’ 글에서 살펴볼 수 있습니다.

 

 

(3) 공략 기법

저희는 글라스 파인더 개발 당시 사용한 코드를 거의 그대로 활용하였습니다. 안경 검색의 경우 다양한 성격의 데이터(안경 제품, 가상피팅 착용 모습, 실제 안경 착용 모습 등)를 활용해야 했기 때문에 메트릭 러닝 외에 멀티 태스킹 기법을 사용했었는데요. 이번 대회에서는 제공받은 데이터만을 사용하여 학습시켜야 했고, 학습 데이터 또한 동일한 조건에서 촬영된 사람 얼굴 한 종류였기 때문에 멀티 태스킹 기법은 제외하였습니다.
 
여기서 활용한 기본적인 모델 구조는 그림2와 같습니다. 백본 네트워크로는 resnet50을 사용하였고, 피쳐 벡터 크기도 512로, 이전 서비스 개발 당시와 동일한 구조를 사용하였습니다.

 

[그림2] 모델 구조 예시

 

 
또한, 각 테스크는 3개 모델을 앙상블하여 제출하였습니다. 사용된 최적화 알고리즘과 스케줄러는 다음과 같았고, 성적은 대부분 비슷했습니다. 현재는 주최 측이 제공한 학습 서버가 닫혀 있어 텐서보드 로그 스크린샷은 아쉽게도 공개할 수가 없었습니다.

 

- model1: Adam + StepLR
- model2: Adam + CosineAnnealingLR
- model3: SGD + StepLR

  
학습과정을 지켜보니 오버피팅(Overfitting, 과적합, 과학습) 현상이 빠르게 일어났습니다. 이러한 문제 개선을 위해 아래와 같은 2가지 방법을 시도하였고, 성능을 향상시킬 수 있었습니다.

먼저, 훈련을 좀 더 어렵게 하기 위해 model3의 경우, dropout 비율을 기본값 0.5에서 0.8로 높였습니다. 이어 얼굴인식 문제의 경우, 그림3과 같이 사진의 꽤 많은 영역을 가려도 일반 사람들은 흔히 동일인 여부를 판단할 수 있기 때문에 딥러닝 모델도 이를 구분할 수 있을 것이라는 기대를 가지고 RandomErasing 기법을 추가하였습니다. 이 외에는 pytorch tutorial에 나오는 정도의 기본적인 augmentation만 적용하였습니다.

 

[그림3] Random Erasing Augmentation 예시 이미지

  

 

3. 참가 결과

기존 목표로는 안경 검색 서비스의 코드를 옮겨오고 나서 보다 좋은 최적값을 찾아 성능을 높이기 위해 피처 벡터 크기나 백본 네트워크를 변경할 예정이었습니다. 하지만, scheduling 조정과 augmentation만으로 1위를 기록하고, 점수 또한 매우 높았기 때문에 추가적인 실험 없이 대회를 마무리하였습니다.

 

[그림4] 최종 리더보드(종합 점수판)

   

 
4. 참가 소감 및 향후 계획

2주간 대회를 진행하며, 어려웠던 점과 깨달은 점들을 간략히 말씀드리려고 합니다. 이번 대회는 다른 대회와 달리, 문제가 대회 시작 하루 전에 알려져 미리 대비를 할 수 없었는데요. 게다가 pre-trained 모델을 사용하지 못하고, 주최 측에서 제공한 플랫폼에서만 학습을 시켜야 한다는 제약이 있어 어려움을 겪었습니다.

하지만, 이번 대회 데이터셋의 경우 얼굴 인식 문제에만 집중할 수 있도록 미리 셋팅되어 있었기 때문에  추가 작업 없이 개발을 진행할 수 있었습니다. 새로운 개발환경에서 resnet-50 이상의 모델을 처음부터 학습시키면서 어느 정도 성능을 보이는지 확인할 수 있는 좋은 기회였습니다. 또한, Q&A 게시판을 개설하여 새벽까지도 참여자들의 질문에 대응하는 사무국의 모습이 매우 인상적이었습니다.

향후 이스트소프트는 이 기술을 자회사 딥아이에서 운영하는 AI 가상피팅 안경쇼핑몰 ‘라운즈(ROUNZ)’ 매장에 적용하여 지속적인 연구 성과를 창출할 예정입니다. 앞으로도 이스트소프트의 AI 연구와 라운즈 사업에 많은 관심 부탁드립니다. 감사합니다.
  

 

메트릭러닝 기반 안경 검색 서비스 개발기가 궁금하다면 >>

 

메트릭러닝 기반 안경 검색 서비스 개발기(2)

본 글은 AI 가상피팅 기반 안경쇼핑앱 ‘라운즈’에 최근 추가된 안경 검색 서비스 ‘Glass Finder’의 개발기를 공유하고자 작성된 글입니다. 지난 1부에서는 메트릭 러닝 기반 안경 검색 프로젝트

blog.est.ai

 

관련글 더보기

댓글 영역