데이터분석, 인공지능

[인공지능] VQGAN과 CLIP을 활용한 이미지 생성 프로그램

RuBPCase 2022. 2. 21. 14:01
728x90

Intro

인터넷을 뒤지다가 재밌는 영상과 그에 딸려있는 코드를 찾았다.
VQGANCLIP 을 활용해서 인공지능으로 이미지를 생성하는 코드가 있었다.
궁금해서 한번 해봤는데 꽤나 재밌어서 여기에 포스팅하게 되었다.

이미 구조가 다 짜여있어서 코딩 없이도 프로그램을 돌릴 수 있어서 여기 소개하려 한다.

관련 영상 소개

직접 사용해보기

해당 영상에서 전체 내용을 잘 설명해줘서 저기 나와있는대로 따라하면 이미지를 얻어낼 수 있다.

(그런데 자막이 없으니 알아서 들어야 한다)


그래도 그냥 기록용으로 나도 동작 과정을 적어보려 한다.

일단 영상 하단에 올라와있는 Colab 주소로 들어가서 해당 파일을 드라이브로 복사해주자.
링크: https://colab.research.google.com/drive/1_4Jl0a7WIJeqy5LTjPJfZOwMZopG5C-W?usp=sharing#scrollTo=ZdlpRFL8UAlW

해당 프로그램에서 Optional이라 표기된 부분을 제외하고 나머지 값을 조정해서 실행시켜가면 된다.

먼저 위 이미지와 같이 어떤 image 데이터 셋을 기준으로 모델을 학습시키고 이미지를 생성할지 결정해주자.
난 혹시 모르니까 상업용 목적으로도 쓸 수 있는 sflckr를 선택했다.

그리고 파라미터를 입력하는 값에서 적절하게 원하는 수치를 입력해주자.
widthheight는 레퍼런스를 참고해서 조정하면 된다. (기본값 512x512)
prompts에 원하는 키워드를 영어로 기입해주면 된다.
샘플로 귀여운 사막 여우와 관련된 이미지를 생성해보려 했다.

display_frequency는 몇 번째 iteration마다 이미지를 생성할지를 나타낸다.
그리고 max_iterations는 최대 반복 횟수를 나타내며, -1로 하면 무한히 동작된다.
나는 편의상 5번 마다 이미지를 생성하고, 최대 100번 까지 학습하도록 설정했다.

그 외 기타 파라미터는 레퍼런스에 언급되어 있기는 하나, 여기서는 그닥 필요없으므로 생략하려 한다.

이제 위와 같이 Execution에서 코드를 돌리게 되면 학습 정보와 진행 상황 등이 나온다.
더불어서 display_frequency마다 이미지가 생성된다.

먼저 초기 이미지는 다음과 같이 임의로 생성되었다.

그리고 100번째까지 학습시킨 결과는 저러했다.

(으악 이게 뭐야 기분 나빠)

만일 변화하는 모습을 영상으로 저장하려면 하단의 ffmpeg사용 코드를 동작시키면 된다.
지금까지 생성한 이미지를 영상 형태로 만들어서 화면에 보여주고 저장도 할 수 있다.
위와 같이 View video in browser 코드를 동작하면 하단에 영상이 바로 뜬다.
그 아래에 별도로 저장할 수 있는 코드도 있다.

참고로 앞선 결과로 얻은 영상은 다음과 같다. (불쾌한 골짜기가 또...)

마무리

여기서는 그냥 이 코드와 관련 영상을 소개하는 정도로 끝냈다.
다만, 나중에 시간이 난다면 개인적으로 여기 있는 코드들을 뜯어보고 싶다.
과거 인공지능을 배우면서 GAN이란 모델이 매우 인상 깊었는데, 시간적인 여유가 없어서 아쉽게도 배우질 못했다.
따라서 여기에 나와있는 코드를 참고해서 차후 사후분석이나 코드분석 등을 해볼 생각이다.
(물론 시간이 남는다면 말이다.)

728x90