[DL 프로젝트: 패션 스타일 분류 앱 'FASI'] 4. 프로젝트 완성 및 회고

Project4 001

문제 정의

Project4 003

  • 데이터에 대해 접하고 난 후 데이터를 활용한 초개인화 서비스를 만들고 싶은 마음이 컸다.
  • 만약 패션에 관련된 커뮤니티가 형성되고, 개개인의 옷사진을 분석하여 데이터화할 수 있다면 추천 알고리즘에 큰 도움이 되지 않을까란 생각을 했다. 굳이 커뮤니티가 아니더라도 각종 SNS 등에 게시된 사진으로도 개인화 광고 등에 유용하게 쓰일 거라 판단했다.
  • 여러가지 패션 스타일을 고유한 특징점을 찾아 기계 학습으로 분류할 수 있을 지에 대한 가설로 시작한 프로젝트이다.

데이터 파이프라인

image

  • 셀레니움을 활용하여 무신사 커뮤니티의 스트릿 스냅 이미지 크롤링 하여 로컬에 저장했다.
  • 플라스크(Flask) & 헤로쿠(Heroku)를 이용하여 웹 어플리케이션을 구축 및 배포하였다.
  • AWS S3과 연동 이용자의 업로드 이미지 행동 데이터가 자동으로 로드되도록 만들었다.

딥러닝 모델링

Project4 005

  • 이미지를 인식하기 위한 패턴을 찾는데 유용한 CNN 모델을 사용했다.
  • 기존 수집 데이터에서 추가 크롤링을 하고 ‘ResNet-50’을 이용한 전이 학습 후 7가지 클래스에서 60% 정확도의 성능을 가진 모델을 완성했다.

Retrospect

Project4 007

이번 프로젝트가 제일 한계점이나 아쉬운 점이 많았던 것 같다.
패션 스타일 자체가 사실 ‘이거는 이거다’ 라고 정답을 말할 수가 없기 때문에 사람도 애매모호한 문제로 학습을 한 딥러닝이 성능 향상을 하기가 매우 어려웠을 것 같다.
또 사람들은 굉장히 다양한 포즈와 배경에서 사진을 찍기 때문에 사진 전체적으로 분류 학습을 한 것이 아쉬운 진행이었던 것 같다.
Segmentation이나 객체 탐지를 통해 진행했다면 훨씬 좋은 모델을 만들 수 있을 것 같다.
이 부분은… 아직 지식 미숙이라 생각하고 좀 더 공부한다면 진행해보고 싶다.
아무튼 어려웠지만 재밌었던 섹션과 프로젝트였다.

미리보기

메인 홈페이지

image

업로드 이미지

image

결과 페이지

image

동기 피드백

좋았던 점

  • 전달력 : 전반적으로 좋았습니다, 주제 : 관심있어하는 패션분야에 걸맞게 알맞은 주제를 선택하신 것 같습니다, 발표자료 : 자료 구성이나 내용이 잘 모르는 사람도 알기 쉽게 되어있었고 딥러닝 구현과 모델링을 잘 설명해주셔서 좋았습니다, 데이터 : 데이터 크롤링부터 웹 구성 및 딥러닝까지 완벽..
  • 깔끔한 발표로 전달력도 정말 좋았고 흥미로운 주제를 선정해주신것 같습니다. 데이터 파이프라인 구조를 간략히 설명해주셔서 이해하기 훨씬 편했고 한계점까지 잘 짚어주신 것 같습니다. 짧은 시간내에 서비스까지 높은 퀄리티로 구현해내신게 대단하신 것 같습니다!
  • 발표주제, 자료 및 데이터는 프로젝트와 연관이 높고 어울리는 발표였습니다. 문제정의 및 설명이 자세하여 프로젝트를 이해하는데 도움이 됐습니다. 전달력도 좋았습니다. 데이터 파이프라인을 구체적이고 분명히 설명해주셔서 이해가 쉬웠습니다. 서비스를 만든 배경을 개연성있게 설명했고 주제에 대한 관심/이해도가 높아서 발표가 전문성이 있어 보였습니다.
  • 전달력: 매우 훌륭했습니다. 깔끔한 PPT와 자료수집을 하고 배포까지 어떻게 했는지 시각적으러 잘 다가 왔습니다. 발표주제도 남녀 패션을 파악 하는 모델 설계인데 저에겐 신기하고 재밌었습니다. 사용자가 윤민님이 만든 서비스를 이용할때 목적에 맞는 데이터를 가져왔다고 느낄수 있는 로드맵 구성이 좋았습니다. 특히나 좋았던건 모델을 만들고 서비스를 웹으로 배포하기까지가 보통 쉽지 않은데 지금당장 누구나 쓸수 있게 만들었던 근성에 찬사를 보냅니다!
  • 패션에 관심있는 것이 느껴질 수 있는 발표자료였습니다. 문제 정의 부분에 있어서 관심 분야와 본인이 생각하는 적용방향이 확실하게 보여서 더욱 신뢰도 높은 발표라고 느껴 졌습니다. 데이터 수집과정에 대한 설멍과 간단하지만 이해하기 쉬운 모델 설명 부분이 좋았습니다. Chance level에 대한 설명이 있어서 모델 성능을 어느정도로 높일 것인지에 대한 기준을 정확히 알 수 있었으며, 성능을 높이기 위해 추가적으로 데이터 수집한 부분도 좋았습니다! 자칫하면 빠르게 느껴질 수 있는 속도 였지만 어투와 발음이 좋고 자신감이 느껴지는 톤이라 집중을 잘 할 수 있었습니다. 또 웹까지 만들어서 시연을 통해 앞에서 세운 가설에 대한 설명이 되어 좋았습니다. 짧은시간에 모델링부터 웹 배포까지… 그저 완벽!

아쉬운 점

  • 코드구현이 궁금한것 빼고는 완벽했습니다!
  • 아쉬운점이 없는게 아쉬운점..이번 섹션, 프로젝트 모두 고생 많으셨습니다!!
  • 배포 및 앱 개발까지 시간과 품이 많이 들었을 것 같은데 잘 하신 것 같습니다! 개인적으로 궁금한 부분인데, 최종 정확도가 60%일 때 잘 분류가 되지 않는 클래스는 어떤 것인지, 아니면 특정 이미지가 전반적으로 분류가 잘 안되는것인가 생각이 들었습니다.
  • 다만 아쉬운것은 데이터 수집과정을 조금 보여 주셨으면 윤민님의 노고가 더 빛났을 것이라고 생각합니다. 훌륭하게 만들어진 웹서비스의 설계과정이 조금보여주셨더라면 하는 아쉬움이 있습니다.
  • 제가 진행하며 개선사항이라고 느꼈던 부분들이 윤민님의 발표를 보면서 더 크게 와닿았던 것 같습니다. 이번 섹션 많이 힘들었는데도 불구하고 완성도 있는 프로젝트를 하신 거 같아서 너무 멋있습니다!! 짧은 시간 해내느라 고생 많으 셨습니다!!

발표 스크립트

Project4 001

안녕하세요.
Section 4 Deep Learning Project 발표를 맡게 된 AI 부트캠프 5기의 이윤민입니다.
이번 프로젝트에서는 CNN을 활용한 패션 스타일 Classifier model을 구축하여 FASI라는 앱을 배포하였습니다.
지금부터 발표 시작하겠습니다.

Project4 002

저희가 입는 패션에는 각각의 스타일이 존재합니다.
그 여러가지 스타일을 과연 딥러닝을 통하여 분류할 수 있을지에 대한 가설로 시작하게 된 프로젝트입니다.
컨텐츠로는 문제 정의, 데이터 수집, 모델링, 서비스 시연, 회고 순으로 진행하겠습니다.

Project4 003

먼저 문제 정의입니다.
저는 데이터에 대해 접하고 난 뒤부터, 데이터를 활용하여 초개인화 서비스를 만들고 싶다는 마음이 굉장히 컸습니다.
패션에 관심이 많은 사람으로써 항상 패션 도메인으로 프로젝트를 진행해보고 싶다는 생각이 컸지만, 마땅한 주제를 찾기 어려웠는데요.
딥러닝을 배우자마자 생각이 들었던 각 스타일마다 고유한 특징점을 잡아 분류를 해볼 수 있지 않을까란 가설로 프로젝트를 시작했는데요.
만약 패션에 관련된 커뮤니티가 형성되어있고, 개개인의 옷사진을 분석하여 데이터화할 수 있다면 추천 알고리즘에 큰 도움이 되지 않을까란 생각을 했습니다.
굳이 커뮤니티가 아니더라도 각종 SNS 등에 게시된 사진으로도 개인화 광고 등에 유용하게 쓰일 수 있지 않을까란 생각에 컴퓨터 비전 모델링을 진행하게 되었습니다.

Project4 004

딥러닝 모델링에 들어가기 앞서 딥 러닝 파이프라인을 짚고 넘어가보겠습니다.
일단 스타일 별 전신 패션 이미지가 필요했습니다.
그래서 전부터 알고 있었던 무신사라는 웹사이트 커뮤니티의 스트릿 스냅 이미지를 사용하고자 했습니다.
무신사에 소속된 리포터가 촬영한 사진으로써 스트릿 힙합, 심플 캐쥬얼, 포멀 클래식, 유니크 키치, 걸리시, 섹시 페미닌 이렇게 남성 5가지, 여성 7가지의 스타일로 애초에 분류가 되어있어서 손쉽게 분석에 활용할 수 있었고요.
여러장의 이미지를 쉽고 빠르게 다운로드 하기 위해 셀레니움이라는 라이브러리를 활용하여 저작권 관련 가이드라인을 찾아보고 크롤링을 진행했습니다.
다행히 비상업적인 용도로 사용할 수 있었습니다.
처음에는 스타일별 600장씩, 총 4200장을 수집했다가, 나중에 성능 향상을 위해 두배로 총 8400장을 수집하여 모델링에 활용했습니다. 모두 로컬에 저장하여 EDA를 진행하였고, 애초에 정제가 되어있는 이미지들이었기 때문에 제거할 이상치는 없었고, 검증 분할을 위해 20%를 떼어 디렉토리를 생성했습니다.

딥러닝 관련 내용은 추후에 말씀드리도록 하겠습니다.

딥러닝 모델링 이후 완성된 모델을 플라스크를 이용해서 사용해볼수 있도록 앱을 구축했고, 헤로쿠로 배포해놓은 상태입니다. 나중에 앱 시연을 짧게 보여드리도록 하겠습니다.
그리고 앱 내부에 이용자 데이터가 aws s3에 저장될 수 있도록 구현해놓았습니다.

Project4 005

다음 딥러닝 모델링입니다.
저는 이미지 분류 테스크를 수행해야하기 때문에 CNN 모델을 사용했습니다.
CNN모델은 이미지의 공간 정보를 유지한 채 학습을 하고 이미지를 인식하기 위해 패턴을 찾는데 특히 유용한 방법입니다.
모델링을 진행할 때 현재 7가지의 클래스로 분류하는 문제이기 때문에 Chance Level이 14%여서 그 이상의 정확도를 보여줘야합니다. 그냥 찍어도 맞출 확률보다는 높아야한다는 의미입니다.
성능비교를 위해 간단한 CNN 베이스라인 모델을 구축했고 그 정확도가 30%였습니다. 성능향상을 위해 ResNet-50을 이용해서 전이학습을 진행했는데요.
ResNet-50은 이미 1000가지의 클래스로 분류하는데 탁월하게 훈련이 되어있어서 저와 같은 이미지 분류 테스크에서 특징점을 훌륭하게 추출한다는 장점이 있습니다.
전이 학습을 진행한 후에도 성능이 크게 향상되지 않아, 결국 추가 크롤링을 하여 데이터를 두배로 늘려봤고요.
여러가지 하이퍼파라미터 튜닝 뒤 정확도 60%의 모델을 완성했습니다. 사실 성능이 썩 마음에 들진 않았지만, 그래도 사람도 구분하기 애매모호한 패션스타일 7가지의 클래스 분류에서 60%의 정확도는 나름 괜찮은 결과라 생각했기 때문에 최종 모델로 선택했습니다.

Project4 006

최종 모델로 만든 서비스를 간단히 시연해보겠습니다.

Project4 007

마지막으로 회고를 진행하고 끝내려 하는데요.
한계점과 추후 해결 방안에 대해서 말씀 드리도록 하겠습니다.
먼저 이번 프로젝트가 제일 한계점이나 아쉬운점이 많았던 것 같습니다.
패션 스타일 자체가 사실 ‘이거는 이거다’ 라고 정답을 말할 수가 없기 때문에 사람도 애매모호한 문제로 학습을 한 딥러닝이 성능 향상을 하기가 매우 어려웠을 것 같습니다.
또 사람들은 굉장히 다양한 포즈와 배경에서 사진을 찍기 때문에 사진 전체적으로 분류 학습을 한 것이 아쉬운 진행이었던 것 같습니다.
Segmentation이나 객체 탐지를 통해 진행했다면 훨씬 좋은 모델을 만들 수 있을 것 같습니다.
이 부분은… 아직 제 지식 미숙이라 생각하고 좀 더 공부한다면 진행해보고 싶습니다.
아무튼 어려웠지만 재밌었던 섹션과 프로젝트였습니다. 이상 발표 마치도록 하겠습니다. 감사합니다.

0%