분류 전체보기(11)
-
[Stable Diffusion] 2. Text가 안내하는 곳으로: CLIP 인코더와 CFG
Introduction 지난 포스트에서는 Stable Diffusion의 원형이 되는 denoising diffusion probabilistic models(DDPM)에 대해 살펴보며 diffusion model의 기본적인 이미지 생성 원리에 대해 알아봤습니다. 하지만 이것만으로는 실제 Stable Diffusion이 하는 것처럼 text-to-image나 image-to-image 작업을 수행할 수는 없었습니다. 이전에 언급했다시피 text-to-image는 이미지의 데이터 공간 상의 임의의 위치에 있는 노이즈를 우리가 원하는 이미지가 있는 위치로 조금씩 이동시키는 과정인데, 이를 위해서는 많은 준비물이 필요하기 때문입니다. 느닷없지만 등산을 한다고 가정해 볼까요? 우리는 거대한 산의 어느 위치에 서..
2023.03.14 -
[Stable Diffusion] 1. 모든 것의 시작: DDPM과 UNet
Introduction Stable Diffusion은 사실 2022년 8월에 출시되어, 2023년 3월 기준 이미 건드려 볼 사람들은 다 건드려 본 툴입니다. 하지만 여전히 잘 만들어진 web UI나 MidJourney와 같은 앱을 통해서 프롬프트 엔지니어링을 하시는 분들이 대부분일 것이고, 그 기능들의 작동 원리까지 이해하시고 사용하시는 분은 그렇게 많지 않을 것입니다. 사실 작동 원리를 모르더라도 어떻게 프롬프트를 잘 쓰고, 체크포인트를 잘 섞고, 적절한 컨디셔닝을 잘 주는지만 알면 좋은 결과물을 뽑을 수 있기 때문에 이론적인 배경은 크게 중요하지 않을 수도 있습니다. 그럼에도 각 기능의 작동 원리를 충분히 이해하고 있다면 자신이 원하는 결과물을 얻기 위해 주먹구구식으로 노가다하기보다 어느 정도 추..
2023.03.10 -
ptflops로 PyTorch 네트워크 분석하기
GitHub - sovrasov/flops-counter.pytorch: Flops counter for convolutional networks in pytorch framework Flops counter for convolutional networks in pytorch framework - GitHub - sovrasov/flops-counter.pytorch: Flops counter for convolutional networks in pytorch framework github.com 딥 러닝 모델을 개발하거나 실험 분석을 할 때 네트워크의 연산량과 패러미터 수를 측정하는 것은 필수입니다. 만약 PyTorch로 구현된 네트워크의 연산량과 패러미터 수를 알고 싶다면 ptflops라는 라이브러리..
2022.03.18 -
Alias-Free Generative Adversarial Networks
NVIDIA의 연구팀에서 2019년에 공개한 StyleGAN은 정규분포에서 임의로 sampling 된 latent style code를 통한 adaptive instance normalization을 통해 고해상도의 이미지를 효과적으로 생성할 수 있는 모델입니다. 그 이후로 모델 개량을 통해 여러 가지 문제점들을 개선한 StyleGAN2가 2020년에 공개되었고, 여기에 효율적으로 적용할 수 있는 data augmentation 방식이 동년에 StyleGAN2-ADA라는 이름의 후속작으로 공개되었습니다. 이렇듯 StyleGAN 시리즈는 여태까지 총 세 가지 버전의 모델로 발표되면서 이미지 생성과 관련된 GAN 분야에 큰 족적을 남겨왔습니다. StyleGAN2-ADA에 이르러서는 네 자리 수의 데이터만을 ..
2021.09.07 -
Unity에서 Azure Kinect Body Tracking SDK 사용하기
Unity와 Azure Kinect DK를 동시에 사용해야 하는 상황이라면 많은 분들이 Unity 스크립트 언어에 맞춰 C#으로 개발을 진행할 것입니다. 일반적인 C# 프로젝트에서는 위와 같이 Azure Kinect Body Tracking SDK와 관련된 NuGet 패키지들을 설치함으로써 Azure Kinect DK를 손쉽게 활용할 수 있습니다. 그렇다면 이 방법으로 Unity에서 Azure Kinect DK를 바로 쓸 수 있을까요? 하지만 평소에 하던 대로 패키지를 설치하더라도 위와 같이 해당 패키지의 네임스페이스를 인식하지 못해 Unity에서 컴파일 에러가 발생하는 모습을 확인할 수 있습니다. 다행스럽게도, Microsoft에서 직접 만든 Azure Kinect의 여러 sample이 담긴 GitHu..
2021.06.29 -
귀류법(Proof by contradiction)
귀류법(歸謬法)은 "P이면 Q이다."라는 명제에서 결론인 Q를 부정함으로써 생기는 새로운 명제 "P이면서 Q가 아니다."에서 모순이 발생함을 증명하여 원래의 명제가 참임을 증명하는 간접 증명법입니다. 배리법(背理法) 또는 반증법(反證法)이라고도 불리는 이 방법은 현재 고등학교 1학년 학생이 배우는 과목에서도 등장하는 증명법으로, 가장 유명한 문제는 다음과 같은 명제를 증명하는 것입니다. $\sqrt{2}$는 유리수가 아니다. 고등학교 교과과정에서는 다음과 같은 과정을 거쳐 이 명제를 증명합니다. 결론을 부정하여 $\sqrt{2}$가 유리수라고 가정한다. 유리수의 정의에 의해 서로소인 어떤 두 정수 $p$와 $q$를 이용하여 $\sqrt{2} = \frac{p}{q} (q \neq 0)$의 꼴로 나타낼 수..
2021.04.16