개발자로 후회없는 삶 살기

BOAZ part.adv 회의 27~31(MS API, 스케치 메뉴얼) 본문

[대외활동]/[BOAZ]

BOAZ part.adv 회의 27~31(MS API, 스케치 메뉴얼)

몽이장쥰 2023. 2. 1. 00:57

서론

이제 컨퍼런스 발표까지 2주도 안 남았습니다. 팀원 들과 함께 막판 스퍼트 달립니다!

 

본론

- 회의 27

이제부터는 모델 학습을 돌리고 학습 상황을 공유하며 어떤 epoch이 제일 좋은 성능을 보이나 확인하고 MS API까지 사용해서 전체적인 파이프라인을 그리기로 했습니다.

 

-> MS API

검색 결과를 어떻게 고객에게 예쁘게 보여줄 것인가는 서비스하는 입장에서 매우 중요한 문제입니다. bing 검색 결과 이미지와 링크를 반환하기 때문에 html 파일을 파이썬으로 작성하여 html을 클릭하면 예쁜 템플릿이 보이도록 하는 아이디어를 제안하였고 모두 동의하였습니다.

 

따라서 모델 학습은 꾸준히 하고 남은 시간은 몇 에폭이 가장 좋은 성능을 보이는지와 MS API에 집중합니다.

 

- 회의 28

 

회의 27에서 말했던 것처럼 계속해서 모델 학습 결과를 공유하고 있습니다.

 

-> 에폭 선정 기준

에폭 선정 기준을 어떻게 해야 할지 고민을 하였습니다. 보통 정확도와 손실 같은 정량적인 지표를 가지고 선택을 할 텐데 GAN 모델의 경우 손실 그래프가 에폭에 따라, 그리고 상황에 따라 바뀝니다. 이것은 내시균형에 들었다가도 다시 폭발하는 GAN의 특성 때문입니다.

 

현재는 모델 생성 결과와 HTML 전시 결과를 보고 에폭을 정하기로 했고(GAN 교재에 보면 눈으로 보고 판단하라는 얘기가 있었습니다.) 나중에 더 생각해 보기로 했습니다.

 

+ 스케치 Rule

또한 채색이 스타일에 따라 어떤 결과를 보일까 비교해 보았습니다.

왼쪽 : 듬성듬성/ 오른쪽 : 촘촘히

듬성듬성 칠한 것에 비해 촘촘하게 칠한 채색 결과가 더 좋고

 

왼쪽 : 선/ 오른쪽 : 점

선이 많은 방식보다 포인트로 찍은 방식이 더 채색이 잘 된다는 것을 확인하였습니다.

 

+ 추가로 발견한 사실

추가로 위 방식 외에 저자의 깃허브(참고 1)에 남겨져 있던 말이 있었습니다. 사용자는 수동으로 가장자리에 선을 그리고 컬러 포인트/라인을 추가하는 것이 좋다는 사실입니다. 실제로 저자가 사용한 드로잉 룰과 방식대로 채색을 하니 더 좋은 결과가 나왔습니다.

 

-> MS API

 

남은 시간 동안은 MS api를 html에 보기 좋게 만드는 법을 구상하고 있습니다. 처음엔 맨 위 사진처럼 쥬피터 노트북에서 시각화 라이브러리를 통해서 보여주려고 했는데 역시 html을 활용하는 것이 보기에도 깔끔하고 서비스화하기에도 용이하여 HTML을 사용하기로 하였고, 아래 사진 같은 구성으로 결정 했습니다.

 

- 다음 회의까지 할 것

1) 모델 학습 계속 하기

① 다음 회의에 나온 결과보고 가장 좋은 에폭을 선정

② 치마로 학습시킨 모델보다 모자로 학습시킨 모델이 치마를 더 잘 만든다면 어떻게 할지 생각하기

 

2) MS API 필터링

의외로 모델은 생성을 잘하는데 생각보다 이미지 검색이 결과가 좋지 않습니다. 유의미한 결과가 나오도록 json을 필터링할 방법을 고민해야 합니다.

 

- 회의 29

오늘부터는 모델 학습 결과를 바탕으로 PPT 만들기를 돌입합니다. PPT를 만드는 와중에도 모델 학습은 계속하기로 했고 API는 필터링할 방법이 없어서 발표 후에 디벨롭하기로 했습니다.

 

-> PPT 역할 정하기

여러 명이서 PPT를 만드는 것은 꽤 충돌이 많은 일입니다. 그래서 역할 분담이 확실히 필요합니다. 아직은 PPT 개요만 정하는 단계이므로 모두 함께하고 추후에는 역할을 정해서 파트를 정하기로 했습니다.

 

- 회의 30

- 최종 역할 분담

PPT 돌입과 함께 최종 역할 분담을 진행합니다. 원래는 다 함께 PPT를 만드려고 했는 데 모델 결과가 좋아 갑자기 욕심이 생겨 할 일이 많아졌고 한 명은 PPT, 한 명은 드로잉, 저는 서버 개발을 하기로 했습니다. 제가 마침 이때 K-bootcamp에서 Flask 개발을 배우고 있어서 가능할 거라 예상하였습니다.

 

=> 필요한 역할

1) 스케치 이미지 제작

각 카테고리 별로 테두리 이미지와 원본 이미지 2장씩 업로드, 검색에 쓰일 source 이미지 업로드 > 드로잉 역할을 맡은 팀원의 요청 사항입니다. 해당 팀원만 macbook 사용자로 저자가 사용한 드로잉 툴을 mac에서 설치할 수 있어서 역할 배정이 되었습니다.

 

테두리 이미지와 원본 이미지는 위와 같은 ppt에 비교 페이지를 넣기 위해 필요하였고

 

검색에 쓰일 소스 이미지는 ppt에 검색 결과 페이지에 넣을 레퍼런스를 위해 필요했습니다.

 

2) 서버 구축

저는 현재 k-bootcamp를 동시에 진행하고 있습니다. 캠프에서 Flask를 활용한 인공지능에 친화적인 웹 서비스 개발 수업을 들었 기에 충분히 할 수 있을 것이라는 생각을 하였습니다.

 

=> sketch2fashion

동아리 프로젝트를 웹으로 서버 개발까지 해보도록 하겠습니다.

 

-> 세부 목표

1) 개발환경 셋팅
2) 이미지 업로드
3) 업로드한 이미지 채색
4) 채색한 이미지 ms api 입력

=> 프로젝트 시작
① 개발환경 셋팅

아래 느낀 점에서 말씀드린 것처럼 가상환경을 venv 폴더를 만들어 따로 관리하고 adv 프로젝트 폴더에는 코드들만 존재하도록 했습니다.

 

② 이미지 업로드

수업에서 배운 내용을 토대로 이미지 업로드 페이지와 라우팅 함수를 작성하였습니다.

 

③ 업로드한 이미지 채색

 

카테고리를 선택하여 카테고리에 맞는 모델을 로드하도록 함수를 작성하였습니다. 이미지 채색 버튼을 누르면 학습시킨 채색 모델이 채색 결과를 생성합니다.

 

④ 채색한 이미지 ms api 입력

이미지 검색 버튼을 누르면 ms 검색 결과를 보여줍니다.

 

3) PPT 제작

다음 회의까지는 각자 맡은 역할을 하고 후에 마지막 회의까지 모두 다 함께 PPT를 제작하기로 했습니다. 이제 진짜 마지막 회의만 남았습니다. 다음 포스트에서는 PPT 양식과 세부 항목 설명을 하겠습니다.

 

참고

저자의 깃허브

Comments