오늘의 한 일
- 유화 제작 프로젝트 발제, 시작
- 프로젝트 뼈대, 추론 모델 적용
유화 제작 프로젝트
A7-Lucky🍀 油畵(유화)
사용자의 이미지를 유화로 만들어 티셔츠, 휴대폰 케이스 등 사물을 커스텀 할 수 있도록 도와주는 서비스
S.A - https://www.notion.so/A7-Lucky-07b15bbf5fed4c05a7d3528ec6165a06
프로젝트 뼈대, 추론 모델 적용
추론 모델 적용
articles/utils.py
from datetime import datetime
import cv2
import numpy as np
def inference(filestr, style):
# 이미지 불러오기
npimg = np.fromstring(filestr, np.uint8)
input_img = cv2.imdecode(npimg, cv2.IMREAD_COLOR)
style = cv2.dnn.readNetFromTorch(f"articles/models/{style}")
# 전처리 코드
h, w, c = input_img.shape
input_img = cv2.resize(input_img, dsize=(500, int(h / w * 500)))
MEAN_VALUE = [103.939, 116.779, 123.680]
blob = cv2.dnn.blobFromImage(input_img, mean=MEAN_VALUE)
# 결과 추론하기
style.setInput(blob)
output = style.forward()
# 전처리한 이미지(blob)를 모델에 넣고 추론, output 변수에 추론한 결과 저장(forward)
# 결과 후처리
output = output.squeeze().transpose((1, 2, 0))
output += MEAN_VALUE
output = np.clip(output, 0, 255)
output = output.astype("uint8")
# 생성시간을 이름으로 저장
time = datetime.now().strftime("%y%m%d%H%M%S")
cv2.imwrite(f"media/{time}.jpeg", output)
result = f"media/{time}.jpeg"
return result
생성 시간을 기준으로 추론모델을 돌려서 생성된 이미지를 media 폴더 내에 저장하기 완료!
근데 media 폴더가 없을시에는 파일 이름만 나오고 폴더생성 및 파일 저장이 실행되지는 않는다.. 이건 방법을 모르겠네
** 프론트엔드 고민해봐야할 부분
스타일 선택 방식 - radio vs dropdown
radio가 더 좋아보이긴 하는데 모델이 11개나 되다보니 샘플이미지까지 모두 넣어서 적용시키려면 가로 스크롤이라도 집어넣어야하려나?
참조 : checkbox와 radio - https://blog.naver.com/heartflow89/221164211964
🎯 TroubleShooting
생성시간 기준 이름짓기 - datetime.now().strftime() 에러
strftime 함수 사용중 invalid 에러가 계속 떠서 도대체 뭐가 문제인가 구글링을 해봤더니 윈도우 환경에서 strftime을 사용할때 여러 에러가 난다는 것을 알았다..
https://hcid-courses.github.io/TA/QnA/issues_with_windows_korean_strftime.html
근데 타이핑 새로해보니까 그냥 되기 시작함; 오타는 아니였는데 도저히 원인을 모르겠다 ㅠㅠ