본문 바로가기
728x90
반응형
SMALL

Visual Intelligence/Generative Model16

[Generative Model] SRGAN SRGAN 단일 이미지 초해상화 (Single Image Super Resolution)는 컴퓨터 비전 연구 분야의 한 갈래로 저해상도 (Low Resolution, LR) 영상으로부터 고해상도 (High Resolution, HR) 영상을 생성하는 기술이다. 일반적으로, 저해상도 영상으로부터 고해상도 영상을 복원하는 문제는 부적절하게 정립된 역 문제 (ill-posed inverse problem)로 정의된다. 기존에는 보간법 (Interpolation) 혹은 선형 매핑 (Linear Mapping) 을 사용한 로컬 패치 (local patch) 기반의 초해상화 기법들이 널리 연구되었다. 그러나 이러한 기법들은 비교적 매끄러운 효과를 주거나 선형적인 특징만을 살리기 때문에 복잡하고 비선형적인 고주파 세.. 2022. 12. 14.
[Generative Model] CycleGAN 이미지 대 이미지 변환 GAN 어플리케이션 분야 중 하나는 이미지 대 이미지 변환이다. 비디오, 이미지는 물론 앞서 설명한 Style Transfer에서도 GAN이 엄청난 성공을 거두었다. 실제로 GAN은 새로운 종류의 애플리케이션을 가능하게 하기 때문에 딥러닝 연구에서의 선두에 있다. 시각적 효과가 두드러진 탓에 성공한 GAN 모델은 유튜브와 트위터 등 SNS에 많이 등장한다. 이런 종류의 변환을 구현하려면 생성자의 입력이 사진이어야 한다. 생성자가 이미지에서부터 시작하기 때문이다. 다른 말로 하면, 한 도메인의 이미지를 다른 도메인의 이미지로 매핑한다. 이전에 생성자에게 주입한 잠재 벡터는 해석이 불가능했다. 이제, 이 벡터를 입력 영상으로 대체한다. CycleGAN (Cycle-Consistent .. 2022. 12. 13.
[Generative Model] DCGAN (CIFAR-10) 데이터 로드 from keras.layers import Input, Dense, Reshape, Flatten, Dropout from keras.layers import BatchNormalization, Activation, ZeroPadding2D from keras.layers.advanced_activations import LeakyReLU from keras.layers.convolutional import UpSampling2D, Conv2D, Conv2DTranspose from keras.models import Sequential, Model from keras.optimizers import Adam,SGD from keras import initializers import os .. 2022. 12. 13.
[Generative Model] DCGAN DCGAN Ian Goodfellow가 GAN을 발표한 이후로 많은 분야에 GAN이 적용하여 연구가 되었지만 복잡한 영상에서는 좋은 이미지를 생성하지 못하였고 항상 불안정한 구조로 인한 문제가 따라붙었다. 그래서 이후 GAN을 다룬 논문들을 보면 공통적으로 이러한 부분에 대한 어려움에 대해 토로하고 있고, NIPS 2016 에서 Tutorial이나 workshop 세션에서도 큰 주제가 되었던 부분이 바로 이 "GAN의 안정화"였다. Minimax problem을 풀어야하는 GAN은 어쩔 수 없이 태생적으로 불안정할 수밖에 없는데 이는 fixed solution으로 수렴하는 것이 보장되어 보이지만, 실제 적용에서는 이론적 가정이 깨지면서 생기는 불안정한 구조적 단점을 보이곤 했다. 이후 나온 여러 논문들이.. 2022. 12. 9.
[Generative Model] GAN (MNIST) 데이터 로드 import os import numpy as np import matplotlib.pyplot as plt from tqdm import tqdm from keras.layers import Input from keras.models import Model, Sequential from keras.layers.core import Dense, Dropout from keras.layers import LeakyReLU from keras.datasets import mnist from keras.optimizers import Adam from keras import initializers # Keras 가 Tensorflow를 벡엔드로 사용할 수 있도록 설정 os.environ["KERA.. 2022. 12. 9.
[Generative Model] GAN (Generative Adversarial Network) GAN (Generative Adversarial Network) 영상 처리 AI 기술의 대중화에 GAN8이 차지하는 비중은 매우 크다. 기존의 분류 또는 영역화 문제는 기존의 영상 처리 문제를 푸는 전문가들에게 큰 관심사였다고 한다면 새로운 방법으로 영상을 합성해 대중들의 이목을 집중시킨 것은 GAN이다. GAN은 ‘Generative Adversarial Network’의 약자다. 첫 단어인 ‘Generative’는 GAN이 생성 (Generation) 모델이라는 것을 뜻한다. 생성 모델이란 ‘그럴듯한 가짜’를 만들어내는 모델이다. 언뜻 보면 진짜 같은 가짜 사람 얼굴 사진을 만들어내거나 실제로 있을 법한 고양이 사진을 만들어내는 것이 생성 모델의 예다. ‘그럴듯하다’라는 것을 어떻게 정의할 수 있을.. 2022. 12. 9.
[Generative Model] Neural style transfer 데이터 로드 import keras from google.colab import auth # Google File Drive Stream 접근 허용 auth.authenticate_user() from google.colab import drive drive.mount('/content/gdrive') 사용할 데이터는 구글 드라이브에 저장하고 Colaboratory에서 연동하여 파일을 불러와 사용한다. %cd gdrive/My Drive/Datasets/sample/ 이미지를 작성하기 전에 colaboratory의 terminal 위치를 이미지 샘플이 있는 곳으로 바꿔준다. from keras.preprocessing import image from tensorflow.keras.utils import .. 2022. 12. 9.
[Generative Model] 스타일 전송 (Style Transfer) 스타일 전송 (Style Transfer) Style Transfer는 주로 스타일 이미지가 주어졌을 때 같은 부류에 속한 것 같은 느낌을 주도록 입력 이미지를 변환하는 모델을 훈련하는 것이다. 이 기술은 상업 어플리케이션에 주로 도입되어 스마트폰 어플리케이션, 컴퓨터 게임 디자인 등 많은 곳에서 쓰인다. Style Transfer는 스타일 이미지에 내재된 분포를 모델링하는 것이 아니라 이미지에서 스타일을 결정하는 요소만 추출하여 입력 이미지에 주입하는 것이다. 또한, 하나의 이미지를 사용하는 것이 아니라 스타일 이미지 세트 전체에서 아티스트의 스타일을 잡아낸다. 따라서, 모델이 전체 이미지셋에 걸쳐 사용된 스타일을 학습하기 위한 방법을 찾아야 한다. Style Transfer는 여러가지 모델로 달성될 .. 2022. 12. 9.
[Generative Model] VAE (MNIST) 데이터 로드 import numpy as np import matplotlib.pyplot as plt from keras.datasets import mnist from keras.layers import Input, Dense, Lambda from keras.models import Model from keras import backend as K from keras import losses from scipy.stats import norm (x_train, _), (x_test, _) = mnist.load_data() x_train, x_test = x_train.astype('float32')/255., x_test.astype('float32')/255. x_train, x_test = x.. 2022. 12. 8.
[Generative Model] VAE (Variational AutoEncoder) VAE (Variational AutoEncoder) 생성 모델 (Generative Model)이란 새로운 data instance를 생성하는 모델이다. 즉, 학습 데이터의 분포도를 근사하는 특성을 가지고 있다. 예를 들어, 고양이, 강아지의 이미지 데이터를 생성 모델의 입력으로 준다면 입력 데이터와 상당히 유사한 분포를 갖는 새로운 이미지를 얻게 된다. 수학적으로 Autoencoder와 Variational Autoencoder는 전혀 관계가 없다. •Autoencoder의 목적은 Manifold learning이다. - AE는 네트워크의 앞단을 학습하기 위해 뒷단을 붙임 - 입력 데이터의 압축을 통해 데이터의 의미 있는 manifold를 학습한다. •Variational Autoencoder는 Ge.. 2022. 12. 8.
728x90
반응형
LIST