7,8월결산
7,8월 결산 for blog
거의 두달만에 작성하는 블로그 게시글입니다.. 8월에 해당 글을 작성하다가 결국 블로그에는 올리지 못하고 9월이 되어서야 이어서 작성합니다..
그동안의 커리큘럼은 아래 이미지와 같았는데요.
강사님도 계속해서 바뀌시고 학습기간은 짧았던 것에 비해 프로젝트 기간이 길었던 시간이였습니다.
+추가내용
상세 시간표..
기존에 예정되었던 큰 틀과는 조금 달라졌지만 강사님들의 실강과 패스트캠퍼스에 준비되어있는 인강들을 들으며 진도가 이어졌습니다.
트랙학습(CV) 프로젝트
그리고 7월21일부터 8월5일까지 CV프로젝트가 진행되었습니다.
약 2주간의 프로젝트가 진행되었는데 사실 스스로 느끼기에 제가 프로젝트를 하면서 얼마나 기여를 했는지 잘 모르겠습니다.
트랙학습은 평소 관심있던 영상매체나 엔터테인먼트 쪽과 가장 관련이 깊다고 생각되는 CV를 선택해서 나름대로 수업도 재밌다고 생각하며 듣기는 했지만 딥러닝 학습이 시작되면서 부터 진도를 따라가기가 벅차다고 느꼈었고 배운 내용을 전부 제껄로 체득하기에는 아직 시간이 더 필요한 느낌이였습니다. 그래서 프로젝트를 마친 뒤에도 돌려본 모델에 대한 간략한 이해 말고는 적용했던 코드에 대한 이해라던지 인지한 한계점에 대한 돌파구를 어떻께 찾아야할지 막막한 느낌입니다.
함께 프로젝트를 진행했던 팀원들에 비해 저는 부트캠프를 하나 수료하고 온 나름의 유경험자라 생각하고 있었는데 팀을 이끌기는 커녕 그냥 버스를 탄거같아 팀원들에게도 송구스럽고 스스로에게는 자책감이 드네요..
그렇지만 프로젝트 결과물은 나름대로 잘 나온것 같아 프로젝트가 어떤식으로 진행되었는지, 진행하면서 어떤 어려움을 겪었는지, 어려움을 어떻게 극복했었는지 체계적이고 상세하지는 못하지만 회의록을 들춰보며 나름대로 정리해보려합니다.
프로젝트 주제
우리팀은 강사님이 제공해주셨던 의료관련 데이터에는 별로 관심이 가지 않았습니다. 그래서 어떤 데이터를 가지고 프로젝트를 하면 다같이 재미있게 참여할 수 있을지 의논하던 중 사람의 얼굴을 인식하고 생성해보는 쪽에 팀원 모두가 관심을 보여 그쪽으로 방향을 잡았습니다.
얼굴 인식과 생성 쪽으로 방향을 잡고 어떻게 하면 더 의미있는 곳에 우리가 배운, 혹은 새로 학습한 기술을 적용해볼 수 있을까 생각하다보니 실종된 아동의 사진을 가지고 현재 모습이 어떠할지 예측을 해보는게 좋겠다는 팀원들의 의견에 따라 적합한 모델을 찾다보니 Cycle GAN을 통해 사람의 얼굴을 원본사진보다 더 어리게, 혹은 더 나이들게 만드는 프로젝트가 open source로 github에 공개되어있어 이것을 가지고 프로젝트를 진행하기로 했습니다.
프로젝트 내용
우리가 참조한 프로젝트의 github 주소입니다
GitHub - royorel/Lifespan_Age_Transformation_Synthesis: Lifespan Age Transformation Synthesis code
우리가 참조한 프로젝트에서 모델을 학습시키는데 사용한 dataset입니다.
해당 프로젝트는 NVIDIA FFHQ dataset을 가지고 진행한 프로젝트이며 처음에 저희는 위와같이 별도로 segmentation이 되어있는 이미지가 있을 줄 알고 이를 확보하려 했으나 번번히 실패하며 에러의 원인을 찾지 못했는데, 그 원인은 데이터를 다운로드 받는 코드를 통해 받은 json파일이 완전하게 다운로드 되지 않아서였습니다.
json파일을 제대로 다운받아 코드를 돌려보니 받아지는 이미지들은 따로 위와같은 이미지로 segmentation된 이미지가 아니라 그냥 사이즈만 다른 이미지였기 때문에 더이상 이미지를 다운로드 받을 필요가 없어졌습니다.
원본 프로젝트의 논문도 읽어보면서 Cycle GAN의 원리를 공부하고 이해해보는 좋은 기회가 되었습니다.(Cycle GAN 에 대한 설명이나 정리는 이 페이지에서 다루기에는 내용이 무겁고 제가 잘 정리하기 힘들거 같아 해당 페이지에서는 생략하겠습니다. - 추후 해당 내용에 대한 이해도를 높여서 따로 정리할 계획)
위 프로젝트의 demo코드를 돌려보니 우리가 구현하려는 방향과 맞기는 하는데 가지고 있는 사진을 넣고 돌려봤을 때 서구적인 얼굴을 가진 결과물이 나와서 동양인으로 이루어진 데이터셋을 새롭게 찾거나 인종을 분류해주는 모델을 찾아 데이터셋에서 동양인 이미지만을 남긴 뒤 모델을 다시 학습시켜야 한다는 의견이 나왔습니다.
하지만 우리의 프로젝트 기간은 한정되어있고 그 안에 위와 같은 작업을 성공적으로 해낼 수 있을지 불투명한 것과 GPU의 부재, 처음에 해보고자 했던 웹 구현까지 하려면 시간이 부족하겠다는 판단 등의 이유로 일단은 애자일 방법론과 같이 미흡하더라도 일단 하고자 했던 마지막 단계까지 다 구현한 다음 다시 처음으로 돌아가 부족한 부분을 보완하기로 하였습니다.
그렇게 하고자 했던 flask를 통한 웹 화면에서 현재의 모습을 예측하고자 하는 이미지를 업로드하면 모델을 통해 이미지를 생성해 결과물을 띄워주는 부분까지 구현하게 되었습니다. 그리고 다시 앞부분으로 돌아가 모델을 다시 학습시키고 하는 부분은 시간이 부족하여 하지 못했고 그대로 프로젝트 발표회를 가지게 되었습니다.
미흡한 부분도 많고 한계점도 명확하지만 주어진 시간에 최선을 다했고 아쉬움도 조금은 남지만 조장님께서 발표도 멋지게 성공적으로 해주시고 마음이 잘 맞는 팀원들과 열심히 했던 좋은 프로젝트였다고 생각합니다.
프로젝트 결과
결과물 github 주소입니다.(미흡한 부분이 많아 부끄럽지만 첨부합니다..)
GitHub - YDSCVProject/face: Predicting the Current Face of Missing Children
프로젝트를 마친 뒤 근황
프로젝트를 마친 뒤 시간표에 있는대로 Linux와 AWS, Hadoop&Hive, Aparche Spark, MLOps 등을 배웠는데..
실습 위주의 수업이다보니 프로그램 설치와 환경설정 등을 실시간으로 따라가다가 에러가 나거나 하면 한없이 뒤쳐지게되고 녹화강의가 제공되기는 하지만 구조적인 부분과 내용에 대한 이해가 부족한채로 무작정 코드만 복사 붙여넣기 하다보니 무슨내용인지 하나도 모르겠는 상태에 이르렀습니다…
특히 MLOps 직무에 관심이 있었던 저인데.. 해당 직무와는 영영 멀어질것만 같은 기분이 드는 요즘입니다.
그리고 9월 1일에는 코딩테스트가 있었습니다.
저번 코딩테스트는 이어드림 과정 평가 점수에 반영이 되지 않는 모의 테스트였으나 이번에는 이어드림과정 평가 점수에 10%가 반영되는 진짜 코딩테스트가 있었습니다.
그동안 컨디션 난조와 코로나 확진 등을 핑계로 학습을 거의 손 놓고 있었는데 올것이 오고야 만 것입니다..
저번 모의코딩테스트 때 보다 문제의 난이도가 낮았던 것인지 다른 수강생 분들 중에는 만점을 받으신 분도 더러 있으신것 같았습니다. 저는 저번보다는 점수가 올라가기는 했지만 많이 부족함을 느꼈습니다.
그래도 그동안은 알고리즘/코딩테스트 공부를 어떻게 해야할지 감이 안오고 막막하기만 했는데 이제는 꾸준히 자주 많은 문제를 들여다봐야하는것을 깨닳았기 때문에 조금은 성장했다는 기분이 듭니다.
앞으로의 과정
앞으로 이어드림에서 남은 과정은 기업연계 Final Project와 캐글 경진대회 참가 정도가 있습니다.
위와 같이 지난 8월29일과 30일에는 기업연계 프로젝트에 참여하는 기업들이 제안하는 프로젝트 주제와 회사에 대한 설명회가 있었는데요, 제가 이어드림 과정에서 가장 관심있게 생각했던 과정이고 프로젝트를 성공적으로 수행하고 운이 좋다면 참여기업에 취업연계로 까지 이어질 수 있는 부분이라 기대가 큽니다.
9월1일 자정까지 원하는 기업과 프로젝트에 지원하는 지원서를 중진공과 패스트캠퍼스 측에 전달한 상태이고 아마도 내일 지원 결과와 Final Project 조편성이 발표될 예정입니다. → 20개에 달하는 프로젝트와 1지망부터 3지망까지 수강생들이 지원한 지원서를 토대로 가장 적절한 팀 분배와 프로젝트 배정으로 인해 9월5일 월요일에 조편성이 발표되기로 미루어졌습니다.
앞으로의 학습 계획
Final Project가 어떤식으로 진행될지는 아직 알 수 없지만 저는 이어드림 과정에서 마지막까지 남아있기보다 조금 더 일찍 취업을 하고 싶은 생각이 크기 때문에 앞으로 저의 개인 학습은 면접 대비와 코딩테스트, 머신러닝/딥러닝 이론 정리 등이 될 것 같습니다. 그리고 이 내용들이 어느정도 정리된다면 AWS 자격증 공부도 병행하려 합니다. 하지만 이전 부트캠프에서의 경험으로 보았을 때, 프로젝트를 하면서 다른 공부를 병행한다는 것은 쉽지 않다는걸 알기 때문에,, 시간을 효율적으로 잘 써야겠다는 생각입니다.
다음 포스팅은 어떤 기업과 연계 프로젝트를 하게 되었는지, 프로젝트가 어떻게 진행되고있는지 등의 내용으로 돌아오겠습니다.
댓글남기기