Giter Club home page Giter Club logo

final-project-level3-cv-02's People

Contributors

heosuab avatar hkyoo52 avatar nestiank avatar yewon-dev avatar

Stargazers

 avatar  avatar  avatar

final-project-level3-cv-02's Issues

feat: 하나의 코드 실행 흐름으로 SDEdit, CNN, ESRGAN 통합하기

담당자: 김주영

5/31(화) 17:00 ~ 6/2(목) 16:00

백엔드에서 사진을 받아서 저장한 다음, 하나의 함수만 실행하면 SDEdit, CNN, ESRGAN을 거쳐 최종 결과물을 보여줄 준비를 마칠 수 있도록 해당 함수를 작성하는 것을 목표로 함

입력: 원본 사진과 스케치 사진의 저장 경로와 크기
SDEdit: 결과 사진 80장 합성 및 제안
CNN: 사용자에게 보여 줄 결과 사진 4장 선택
ESRGAN: 선택된 사진 4장의 해상도를 높여서 저장
출력: 해상도를 높인 사진 4장의 저장 경로

  • SDEdit, CNN, ESRGAN의 코드를 각각 하나의 파일이나 폴더로 정리하여 develop 브랜치에 push
  • SDEdit, CNN, ESRGAN의 코드를 하나의 폴더에 병합
  • 세 가지 모델의 코드를 순서대로 사용하는 하나의 함수 작성

docs: Technical specifications 작성하기 (README)

Replaces #2 partially

채택되지 않은 모델이나 프레임워크가 있는 경우, 채택되지 않은 이유와 근거를 포함하여 작성합니다.

  • 모델 specifications 작성하기
  • 프론트엔드 specifications 작성하기
  • 백엔드 specifications 작성하기
  • 서비스 흐름도 (유저 관점 & 기술 관점) 첨부하기
  • 실행을 위한 코드 첨부하기

refactor: 모델 코드 리팩토링하기

담당자: 김주영

현재 모델별로 분리된 모델 코드를 subprocess.call() 함수를 통해 연결해서 사용하고 있는데, 코드에 중복이 많고 성능 상의 비효율이 있어 해당 함수를 사용하지 않는 방향으로 정리하려고 합니다.

survey: 이미지 결과물 upscaling 방법 탐색하기

담당자: 유환규

5/17(화) 18:00 ~ 5/19(목) 16:00

  • 이미지 결과물 upscaling 방법 찾기
  • SRGAN 등을 사용해 보기

중간 점검 로그

5/18(수) 16:00 (조기 완료)
실험 결과(이미지)를 슬랙에 공유함

팀원들이 이미지를 같이 본 결과, 그림판으로 4x upscaling한 것보다 ESRGAN을 사용해서 4x upscaling한 것이 훨씬 자연스러웠음. 창문과 창틀의 경계와 같이 인접한 픽셀들이 확연한 색깔 차이를 보이는 경우에는 성능이 좋았고, 베개와 이불의 경계와 같이 색깔 차이가 덜한 경우에는 성능이 조금 떨어졌으나, 여전히 그림판으로 upscaling한 것보다는 훨씬 좋은 결과 이미지를 만들었음.

Replaces #1 partially

feat: SDEdit 결과물 중에서 보여 줄 이미지를 결정하는 파이프라인 마련하기

담당자: 유환규, 김주영

5/24(화) 18:00 ~ 6/1(수) 16:00

당초 계획

데이터셋 마련은 #35 를 통해서 진행함

  • GAN: 유환규, 김예원
  • CNN: 이수아, 김주영

변경한 계획

  • Masking: 유환규
  • CNN: 유환규
  • Cosine Similarity: 유환규
  • Multi-object 대응: 김주영
  • 코드 정리: 김주영
  • 이미지에서 물체 영역 추출 코드 작성하기
  • 추출한 물체 영역 분류 및 평가 코드 작성하기
  • 여러 물체 영역에 대한 분류 logit 병합 방법을 마련하고, 적용하기
  • 여러 물체 영역에 대한 cosine similarity 병합 방법을 마련하고, 적용하기

Decided by #20
Replaces #25 partially

feat: Back-end 개발

담당자 : @Yewon-dev

  • FastAPI(BE)와 React(FE) 연결
  • GCS 연결
  • DB 연결
  • Inference 연결
  • 결과 이메일로 내보내기
  • 배포

test: 파일 입력에 대한 테스트 코드 작성하기

이미지를 업로드 받는 단계를 위해 주로 다음에 대한 테스트를 수행하는 코드 작성이 필요합니다.

경우에 따라, 프론트엔드(업로드 시도 시점)나 백엔드(업로드 완료 시점)에서 적용해야 합니다.

  1. 누군가 잘못된 입력을 넣더라도, 다른 사람의 사용에 문제가 없는 경우, 큰 문제가 되지는 않는 것들
  • 파일 용량 확인(사진 한 장이 1KB이거나 1GB인 경우 오류 발생)
  • 파일 크기 확인(픽셀 기준으로 4 x 4인 이미지는 rescale을 해도 의미가 없을 것임)
  • 파일 유사도 확인(완전히 다른 두 장의 사진을 업로드하는 것은 의미가 없을 것임)
  • 파일 인코딩 정상 여부 확인(pdf 파일을 png로 확장자 바꿔서 업로드하는 경우 오류 발생)
  1. 항상 문제가 될 수 있는 것들
  • 이메일 형식 확인
  • 파일 확장자 확인
  • 파일 덮어쓰기 여부 확인(알려진 이름(제목 없음.png 등) 혹은 같은 파일명으로 이미지를 여러 번 업로드할 경우, 같은 이메일로 여러 번 업로드할 경우에도 덮어쓰기 되면 안 됨)

survey: SDEdit의 학습 소요 시간 확인하기

담당자: 이수아

5/17(화) 18:00 ~ 5/19(목) 16:00

  • 사용할 모델을 처음부터 학습시키는 것이 얼마나 걸리는지 확인하기

중간 점검 로그

5/18(수) 16:00
실험을 진행 중임

최종 점검 로그

5/19(목) 16:00
시간이 몹시 오래 걸림

Replaces #1 partially

survey: SDEdit inference 직접 해 보기

담당자: 전원

5/21(토) 00:00 ~ 5/23(월) 16:00

  • 리팩토링된 SDEdit inference 코드(#23)를 사용해서, iteration 관련 기록을 작성하고 공유하면서, 각자 10~20장의 inference 진행하기

Leads to #29
Replaces #2 partially

survey: SDEdit의 정성적인 최저 성능 확인하기

담당자: 김주영

5/17(화) 18:00 ~ 5/19(목) 16:00

  • SDEdit의 입력과 출력에 대해 알아보기
  • 입력의 색깔이 결과물에 반영되도록 하는 방법 찾기

중간 점검 로그

5/18(수) 16:00
코드에서 발생한 오류를 수정 중임

최종 점검 로그

5/19(목) 16:00
보고된 것처럼 색깔이 반영이 아예 안 되는 건 아닌데, 그게 유의미하기에는 일단 성능이 너무 좋지 않았음

녹색 베개를 합성해 달라고 했는데 베개가 없어지거나 빨간 베개를 합성한 경우가 있었음.
아예 벽으로 덮어지면서 없어지는 물체도 많이 있었음.
창문을 그렸을 때 내가 그린 창틀에 맞춰서 창문을 합성해 주는 것이 아니라, 흔한 창문 사진을 가져와서 잘라서 붙이는 듯한 결과가 나왔음.

후속 논의

5/19(목) 16:00
모델의 성능 관련 논의

색깔이 반영되지 않는 문제는 비즈니스 관점에서 비교적 작은 문제임. 내가 그린 물건이 합성된 사진에서 나타나지 않는 경우가 가장 심각한데, 마침 SDEdit은 여러 가지 합성된 이미지를 제안하므로, 이를 해결하기 위해서 영역별로 기존 사진과 가장 유사도가 낮은 사진의 영역을 가져오는 방법이 있음.
고화질 이미지가 아니더라도 학습을 하는 것이 불리할 것 같지는 않음.
5/20(금) 16:00까지 각자 아이디어를 마련해 오기로 함.

Leads to #13, #25
Replaces #1 partially

(임시 이슈) 파트별 2차 개발 완료

이슈 규칙을 준비하기 전에 작성한 임시 이슈입니다.
관련된 규칙의 적용을 받지 않고, 업데이트되지 않습니다.

기한 및 제약 조건

5/24(화) 18:00 ~ 6/2(목) 16:00

내용

"영상을 찍어도 되는 상태"에 도달하기 위한 개발 진행

세부적인 목표는 #2 결과에 따라 확정될 예정

train: 사용할 데이터셋 탐색

담당자: 이수아

5/17(화) 18:00 ~ 5/19(목) 16:00

  • 사용할 데이터셋을 찾기

중간 점검 로그

5/18(수) 16:00
탐색을 진행 중임

최종 점검 로그

5/19(목) 16:00
현실적으로 사용할 수 있는 데이터셋이 없음

학습이 유의미하려면 고화질 이미지를 사용해서 학습시켜야 하는데, 데이터셋의 크기를 고려했을 때 GPU 메모리 용량 문제와 디스크 용량 문제가 반드시 모두 발생할 것임.

Replaces #1 partially

train: 모델, 데이터셋 그리고 hyper-parameter 변경 tracking 체계 마련하기

담당자: 김주영

5/25(수) 18:00 ~ ASAP

모델의 경우, 이슈 생성 전에 SDEdit이 우월하다는 것이 확인되었으므로 실험 결과를 수집하여 정리만 하면 됩니다.

본 이슈는 모델 학습을 시도한다는 전제 하에 작성되었습니다. (#13 의 성공을 가정함)

테스트 결과와 inference 결과물 tracking 체계는 #29 에서 마련합니다.

  • SDEdit이 아닌 모델에 대한 실험 결과 수집하기(Replaced with #41)
  • 실험 결과와, 실험에서 사용한 데이터셋과 hyper-parameter를 기록할 수 있는 실험 tracking 체계 마련하기

docs: DALLE-2 실험 결과 첨부하기 (README)

담당자: 전원

별도의 기한을 설정하지 않음

코어 모델로 SDEdit을 채택한 이유를 설명하기 위해서 DALLE-2로 진행했던 실험의 결과를 README에 넣어야 합니다.

  • DALLE-2 실험 결과물 수집하기
  • DALLE-2 실험 결과물 첨부하기

Replaces #14 partially

test: 모델 성능의 정량평가 metric 마련하기

담당자: 김주영

별도의 기한을 정하지 않음

분류 logit과 cosine similarity의 경우 #34 에서 사용하기로 했으므로, 다른 것을 추가로 마련하는 것을 목표로 함

  • 모델의 성능을 객관적으로 평가할 수 있는 metric 마련하기

(임시 이슈) 파트별 초기 점검 진행

이슈 규칙을 준비하기 전에 작성한 임시 이슈입니다.
관련된 규칙의 적용을 받지 않고, 업데이트되지 않습니다.

기한 및 제약 조건

5/17(화) 18:00 ~ 5/19(목) 16:00

내용

AI

  • 이수아: 사용할 모델을 처음부터 학습시키는 것이 얼마나 걸리는지 확인하고, 사용할 데이터셋을 찾기 (Replaced with #19, #12)
  • 김주영: SDEdit의 입력과 출력에 대해 알아보고, 입력의 색깔이 결과물에 반영되도록 하는 방법 찾기 (Replaced with #20)
  • 유환규: 이미지 결과물 upscaling 방법 찾기(SRGAN 등을 사용해 보기) (Replaced with #21)

백엔드

  • 김예원: FastAPI를 알아보고 React.js 프론트엔드와 연결할 수 있는 방법 공유하기 (Replaced with #22)

중간 점검 로그

5/18(수) 16:00

  • 이수아: 실험 및 탐색을 진행 중임
  • 김주영: 코드에서 발생한 오류를 수정 중임
  • 유환규: 실험 결과(이미지)를 슬랙에 공유함

팀원들이 이미지를 같이 본 결과, 그림판으로 4x upscaling한 것보다 ESRGAN을 사용해서 4x upscaling한 것이 훨씬 자연스러웠음. 창문과 창틀의 경계와 같이 인접한 픽셀들이 확연한 색깔 차이를 보이는 경우에는 성능이 좋았고, 베개와 이불의 경계와 같이 색깔 차이가 덜한 경우에는 성능이 조금 떨어졌으나, 여전히 그림판으로 upscaling한 것보다는 훨씬 좋은 결과 이미지를 만들었음.

  • 김예원: FastAPI 공부에 많은 진전이 있음

프론트엔드와 연결할 수 있는 방법에 대해서는, 프론트엔드를 맡은 팀원도 관련 공부를 충분히 마칠 수 있도록, 팀 전체가 자신의 파트를 공유하는 날을 따로 잡고, 그 날 공유하기로 했음.

최종 점검 로그

5/19(목) 16:00

  • 이수아: 현실적으로 사용할 수 있는 데이터셋이 없음

학습이 유의미하려면 고화질 이미지를 사용해서 학습시켜야 하는데, 데이터셋의 크기를 고려했을 때 GPU 메모리 용량 문제와 디스크 용량 문제가 반드시 모두 발생할 것임.

  • 김주영: 보고된 것처럼 색깔이 반영이 아예 안 되는 건 아닌데, 그게 유의미하기에는 일단 성능이 너무 좋지 않았음

녹색 베개를 합성해 달라고 했는데 베개가 없어지거나 빨간 베개를 합성한 경우가 있었음.
아예 벽으로 덮어지면서 없어지는 물체도 많이 있었음.
창문을 그렸을 때 내가 그린 창틀에 맞춰서 창문을 합성해 주는 것이 아니라, 흔한 창문 사진을 가져와서 잘라서 붙이는 듯한 결과가 나왔음.

  • 김예원: FastAPI를 사용해 보면서 도커 이미지가 있어서 사용해 보려고 했는데, 도커에서 너무 많은 오류를 겪어서, 도커를 사용하지 않는 방법으로 다시 연습해 보고 있음

이수아: 프론트엔드 파트의 백엔드 파트로의 진행 상황 공유는 주말까지 웹페이지 작업을 좀 더 한 다음에 진행하는 것이 좋겠음

  • 모델의 성능 관련 논의 (Copied to #20)

색깔이 반영되지 않는 문제는 비즈니스 관점에서 비교적 작은 문제임. 내가 그린 물건이 합성된 사진에서 나타나지 않는 경우가 가장 심각한데, 마침 SDEdit은 여러 가지 합성된 이미지를 제안하므로, 이를 해결하기 위해서 영역별로 기존 사진과 가장 유사도가 낮은 사진의 영역을 가져오는 방법이 있음.
고화질 이미지가 아니더라도 학습을 하는 것이 불리할 것 같지는 않음.
5/20(금) 16:00까지 각자 아이디어를 마련해 오기로 함.

(임시 이슈) 파트별 3차 개발 완료

이슈 규칙을 준비하기 전에 작성한 임시 이슈입니다.
관련된 규칙의 적용을 받지 않고, 업데이트되지 않습니다.

기한 및 제약 조건

6/2(목) 17:00 ~ 6/5(일) 24:00

6/6(월) 11:00까지 피드백을 받기 위한 발표 영상을 제출해야 함

내용

"마지막 피드백을 받기 위한 상태"에 도달하기 위한 개발 진행

세부적인 목표는 #3 결과에 따라 확정될 예정

survey: FastAPI docs 확인 및 React.js 연결점 마련하기

담당자: 김예원

5/17(화) 18:00 ~ 5/19(목) 16:00

  • FastAPI를 알아보기
  • React.js 프론트엔드와 연결할 수 있는 방법 공유하기

중간 점검 로그

5/18(수) 16:00
FastAPI 공부에 많은 진전이 있었음

프론트엔드와 연결할 수 있는 방법에 대해서는, 프론트엔드를 맡은 팀원도 관련 공부를 충분히 마칠 수 있도록, 팀 전체가 자신의 파트를 공유하는 날을 따로 잡고, 그 날 공유하기로 했음.

최종 점검 로그

5/19(목) 16:00
FastAPI를 사용해 보면서 도커 이미지가 있어서 사용해 보려고 했는데, 도커에서 너무 많은 오류를 겪어서, 도커를 사용하지 않는 방법으로 다시 연습해 보고 있음

이수아: 프론트엔드 파트의 백엔드 파트로의 진행 상황 공유는 주말까지 웹페이지 작업을 좀 더 한 다음에 진행하는 것이 좋겠음

Replaces #1 partially

(임시 이슈) 프로젝트 최종 수정 완료

이슈 규칙을 준비하기 전에 작성한 임시 이슈입니다.
관련된 규칙의 적용을 받지 않고, 업데이트되지 않습니다.

기한 및 제약 조건

6/6(월) 11:00 ~ 6/9(목) 24:00

6/10(금) 17:00까지 최종 발표 영상을 제출해야 함

내용

피드백 결과를 반영하기 위한 개발 진행

세부적인 목표는 #4 결과에 따라 확정될 예정

docs: 이슈 및 PR 템플릿 작성하기

담당자: 김주영

현재 이슈 및 PR 템플릿은 없으나, 담당자, 날짜, 설명, 할 일 순으로 간단하게 정리하는 것이 정착되었습니다.
이것을 템플릿으로 만들고자 합니다.

train: 모델 학습 방법 탐색

담당자: 김주영

학습을 제외한 모델 성능 개선은 #25 를 통해서 진행함

데이터셋 마련은 #35 를 통해서 진행함

V100 GPU 서버에는 메모리 이슈와 디스크 용량 이슈가 있다.
Federated learning 등을 고려한다.

  • 서버의 한계를 고려하여 성능을 향상시킬 수 있는 모델 학습 방법을 탐색하기

Decided by #20

feat: 학습을 요구하지 않는 SDEdit 성능 개선 아이디어 마련하기

담당자: 전원

5/20(금) 17:00 ~ 5/23(월) 16:00

학습을 통한 모델 성능 개선은 #13 을 통해서 진행함

  • 학습을 제외한 모델 성능 개선 방법 관련 아이디어(결과물 후처리 등)를 마련하기(Leads to #21)
  • 모델의 여러 결과물 중에서 가장 좋은 결과물을 선택하는 방법 관련 아이디어를 마련하기(Leads to #34, #35)

Decided by #20
Replaces #2 partially

feat: Front-end 개발 (React.js)

담당자: 이수아
05/18(수) ~

  • 전체 Component, element 구성 틀 잡기
  • Carousel Slide 구현
  • 이미지 업로드, 미리보기 구현
  • Back-end 서버와 연결, 이미지 송수신 구현
  • 애니메이션 추가, 디자인 수정
  • 유효성 검사
  • 모달창 구현, 가이드라인 작성
  • 문구 수정, Result 이미지 추가
  • 버그 수정
  • 배포용 코드 생성 (+경량화)

(임시 이슈) 파트별 1차 개발 완료

이슈 규칙을 준비하기 전에 작성한 임시 이슈입니다.
관련된 규칙의 적용을 받지 않고, 업데이트되지 않습니다.

기한 및 제약 조건

5/19(목) 18:00 ~ 5/24(화) 16:00

내용

"제출을 할 수는 있는데 부족한 상태"에 도달하기 위한 개발 진행

세부적인 목표는 #1 결과에 따라 확정될 예정

중간 점검 로그

5/20(금) 16:00

  • 5/23(월) 16:00까지 모두 프로젝트 README 관련 노션 페이지 채우기 (Replaced with #7, #8, #9, #10, #11, #16)
  • 5/23(월) 16:00까지 최소 한 명은 SDEdit 공식 레포지토리의 demo용 inference 코드를 리팩토링해서, 이미지 2장의 링크를 입력으로 넣으면 그 이미지들을 다운로드한 뒤 input으로 사용하도록 만들기 (Replaced with #23)
  • 5/23(월) 16:00까지 리팩토링된 SDEdit inference 코드(#23)를 사용해서, iteration 관련 기록을 작성하고 공유하면서, 각자 10~20장의 inference 진행하기 (Replaced with #24)
  • 5/23(월) 16:00까지 학습을 제외한 모델 성능 개선 방법 관련 아이디어(결과물 후처리 등)를 마련하기 (Replaced with #25)

학습을 통한 모델 성능 개선은 #13 을 통해서 진행함
원래 당일 논의하기로 하였으나(decided by #20) 미뤄짐

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.