[AINFT 제작기] #2 AI Doodles

AI Network
7 min readMar 25, 2022

이번 글에서는 Doodles NFT를 이용해서 AI Doodles를 만들어보는 과정을 한 번 살펴보겠습니다. 글에 앞서 Doodles NFT가 궁금하신 분들은 Doodles 유튜브 영상을 시청하셔서 Doodles에 대한 정보를 얻어보세요!

AI Doodles를 만들기 위해서 Segmentation을 이용해 이미지의 배경을 바꾸는 작업이 사용되는데요, 그렇다면 Segmentation이 뭔지 살펴보겠습니다.

Segmentation

이미지 Segmentation은 픽셀 단위로 classification을 진행하여 픽셀이 어느 클래스에 해당되는지 예측하는 작업입니다. Segmentation의 종류에는 크게 Semantic segmentation와 Instance segmentation이 있습니다. Semantic segmentation은 클래스 단위로 라벨을 구별하고, Instance segmentation은 (class, id)의 쌍을 라벨로 사용하여 같은 클래스여도 다른 객체이면 다른 라벨로 구별합니다. 아래 사진은 Semantic segmentation과 Instance segmentation의 차이점을 보여줍니다.

Semantic segmentation과 Instance segmentation의 차이

AI Doodles 제작에는 rembg 패키지를 이용합니다. rembg 패키지는 U2-Net(U-Square Net)을 이용한 Segmentation을 통해 이미지에서 물체에 해당하는 부분만 얻어냅니다. 그렇다면 U2-Net의 기초가 되는 U-Net과 함께 U2-Net을 알아보겠습니다.

U-Net and U2-Net

U-Net은 의학 이미지에 대한 Segmentation을 진행하기 위해 제작된 모델입니다. 컨볼루션 레이어로 구성이 되어있고, 모델 구조가 알파벳 U처럼 생겨서 U-Net이라는 이름이 붙었습니다.

U-Net의 모델 구조

U-Net은 절반을 기준으로 앞쪽은 Contracting path, 뒤쪽은 Expansive path로 나뉩니다. 먼저 Contracting path는 컨볼루션 연산과 Max pooling 연산을 이용하여 이미지의 context를 추출하는 부분입니다.

U-Net의 Contracting path

Expansive path에서 Up-Sampling과 Concatenation을 진행합니다. Concatenation은 같은 레벨에 있는 Contracting path의 출력과 채널 방향으로 진행됩니다. 이 때, Contracting path의 출력의 크기와 Expansive path의 출력의 크기가 다르므로 Contracting path의 출력을 Crop한 후에 Concatenation을 합니다. 이러한 과정을 Copy and Crop이라고 합니다.

U-Net의 Expansive path

최종적으로 U-Net의 출력에 대해 시그모이드 또는 소프트맥스 연산을 하면 Segmentation 결과를 얻을 수 있습니다.

이번에는 U2-Net의 구조를 살펴보겠습니다. U-Net과 마찬가지로 U2-Net의 전체적인 구조도 알파벳 U형태를 띱니다. 다만 자세히 보면 U-Net 안에 U-Net이 있는 구조를 가집니다. 이렇게 U-Net이 있는 한 블럭을 residual U-block(RSU)이라고 합니다. RSU를 이용하여 모델을 구성하고, 각 side별로 나온 출력에 컨볼루션 연산, 시그모이드 연산, Up-Sampling을 진행합니다. 그리고 모든 side의 출력들에 대해 Concatenation을 거쳐 최종 Segmentation 출력을 얻습니다.

U2-Net의 모델 구조

AI Doodles를 만들어 봅시다.

그럼 Ainize에 배포된 Image Background Changer를 이용하여 AI Doodles를 직접 제작해보겠습니다. 링크를 클릭하면 웹페이지에 접속할 수 있습니다. 배경을 바꾸기 위해서는 배경을 바꿀 오리지날 이미지와 바꿀 배경이 되는 배경 이미지가 필요합니다. 웹페이지에서 오리지날 이미지는 Original Image부분에, 배경 이미지는 Background Image부분에 업로드 할 수 있습니다.

이번 실습에서는 오리지날 이미지로 Doodles 캐릭터 이미지, 배경 이미지로는 숲 사진을 업로드하였습니다.

하단에 있는 “RUN”버튼을 누르면 약 1~2초 뒤에 배경이 바뀐 Doodles 캐릭터 이미지를 얻을 수 있습니다. 결과물을 보면 단조로웠던 오리지날 이미지의 배경이 숲 사진으로 변경이 된 것을 볼 수 있습니다.

지난 AI BAYC 제작 과정에는 모델 학습을 해야했기 때문에 2분정도의 작업 시간이 걸렸지만, AI Doodles 제작 과정에서는 모델 추론만 진행하면 되기 때문에 AI BAYC에 비해 작업 시간이 크게 줄었습니다. 실습 내용을 영상으로 확인하고 싶으면 AI Doodles 유튜브 영상을 시청해보세요!

Conclusion

지금까지 Image Background Changer를 이용하여 AI Doodles를 제작하는 방법을 살펴보았는데요, 배경 이미지로 무엇을 선택하는지에 따라 다른 스타일의 AI Doodles를 제작할 수 있습니다.

다음에는 Azuki NFT를 이용하여 AI Azuki를 제작하도록 하겠습니다. 과연 어떤 AI Azuki가 나올지 궁금하지 않으신가요? 다음 주제도 기대해주세요!

Reference

AI 네트워크는 블록체인 기반 플랫폼으로 인공지능 개발 환경의 혁신을 목표로 하고 있습니다. 수백만 개의 오픈 소스 프로젝트가 라이브로 구현되는 글로벌 백엔드 인프라를 표방합니다.

최신 소식이 궁금하시다면 아래 커뮤니케이션 채널을 참고해주시기 바랍니다. 다시 한 번 감사합니다.

AI네트워크 공식 홈페이지: https://ainetwork.ai/

공식 텔레그램: telegram.com/ainetwork_kr

아이나이즈(Ainize): https://ainize.ai

유튜브: https://www.youtube.com/channel/UCnyBeZ5iEdlKrAcfNbZ-wog

페이스북: https://www.facebook.com/ainetworkofficial/

포럼: https://forum.ainetwork.ai/

AIN Price chart: https://coinmarketcap.com/currencies/ai-network/onchain-analysis/

--

--

AI Network

A decentralized AI development ecosystem built on its own blockchain, AI Network seeks to become the “Internet for AI” in the Web3 era.