cv2 style-transfer model 반반치킨 도전하기.

be1le·2022년 3월 13일
9

Open-CV

목록 보기
7/11
post-thumbnail

한국인들의 소울푸드 치킨, 치킨을 시킬떄 우리는 보통 반반으로 시키게 된다. 두가지 맛을 절대 포기할 수 없기 때문이다. 나또한 그렇다. 작성자의 소울푸드는 이미 완성된 모델인데 한번에 한가지만 먹기에는 너무 아쉽다. 그래서 이번에는 두가지를 함께 먹어보려 한다. 남은 양념에 밥도 싹싹 비벼먹을수 있게 다들 햇반 하나씩 챙겨왔을 거라 생각하고 블로깅을 시작해 보겠다.

패키지 부터 로드하기!


벌써 세번째 같은 패키지만 로드하고 있다. 이제는 익숙해 지기 시작한다!

모델로드하기

우리는 앞서 모델을 로드할떄 net 이라는 변수에 로컬에 저장된 model을 할당 해왔다. 하지만 이번시간에 우리는 반반 치킨을 먹기로 했기에, 양념이 필요하다. 두가지 치킨을 먹고싶다면 두가지의 조리법으로 요리해야한다. 두가지 조리법을 준비해 보자!

두가지 맛을 느끼고 싶다면 당연 히모델도 두개여야 한다! net과 net2에 각각 모델을 한개씩 할당하여 우리는 2가지의 모델을 사용할 수 있게 되었다!

다시한번 우리는 flow를 상기시켜보자.

강제로 외우게 할테야.

전처리

우리가 늘 해오던 전처리 flow 대로 direct로 적어보았다.
1.이렇게 hwc에 img의 shape을 담아준후
2.이런식으로 방정식을 사용하여 원본의 비율을 유지한채로 resizing을 해준다.
3.또한 cv2.dnn.blobFromImage는 차원변형을 해준다.

추론


net.setInput(blob) 이구문으로 blob을 인풋으로 지정해주고
net.forward()라는 함수는실질적인 추론을 해주겠다!

후처리 및 두번째 이미지 추론및 후처리 구문.

여기까지의 과정은 이제 우리가 치킨을 2가지 조리법으로 조리한거라 봐도 무방하다. 하지만 반씩 나눠담아야 먹기 편하듯 우리는 반씩 나눠담아주려 한다.

반씩 나눠담기.

이렇게 해주면 우리는 0부터 250까지는 후라이드로 250 부터 500까지는 양념 맛으로 조리된 우리의 치킨(output)을 만나볼수 있다.

다들 즉섭밥 하나씩 들고 오세요


저도 하나 들고왔어요!

이렇게 출력문을 입력하면


음음.. 반씩 너무 맛있게 조리된걸 우리는 확인할 수 있다.
다들 싸우지말구 넉넉히 시켰으니 천천히 먹어보도록 하자!!!
오늘도 긴글을 읽어줌에 정말 깊은 감사를 표하며 글을 마치겠다.
하도 치킨 이야기를 해서 실제로 치킨을 시켜버렸다..
항상 부족한 블로그 보러와 주심에 감사드립니다. 늘 행복하세요 :)

profile
그저 그런 개발자가 되지 않겠습니다.

0개의 댓글