확률 모델로 이미지를 생성해 보십시오. (임시)
유구대 OB라고 적혀있는 N/A3, 내가 불러줄게. 투고가 가까워졌어. 그럴 리가 없어.
1. 소개
2014년 Goodfellow씨가 GAN을 개발한 이래로 컴퓨터가 자동으로 이미지를 생성하는 세계가 도래했다. 그리고 나이가 들면서 논문 수도 급격히 증가했고, 심층학습 $\times$이미지 생성은 광범위하게 인식되는 분야이다.
관심 있는 분들은 아래 사이트를 추천합니다. 전자는 우리에게 뜨거운 논문을 가르쳐 줄 것입니다. 그래서 "이런 일을 할 수 있을까!!!"후자는 GAN의 역사적인 논문을 계속 추적하기 때문에 다음에 무엇을 읽어야 할지 알려줄 수 있다.
2. 평균 이미지 및 분산 이미지
단순히 이미지를 생성하고자 할 때 데이터를 수집하여 데이터의 평균과 분산을 구하면 이미지를 생성할 수 있다
그래서 식단.우선 데이터를 읽는 함수를 만들어서 그림을 불러오세요. 쓰는 것을 잊어버렸지만 데이터 집합 MNIST로 하세요.from tensorflow.keras.datasets import mnist
import numpy as np
import pandas as pd
def load_data():
(x, y), _ = mnist.load_data()
mnist_df = pd.DataFrame(x.reshape(-1, 784) / 255.,
columns=['dim' + str(num+1) for num in range(784)])
mnist_df['target'] = y.reshape(-1, 1)
return mnist_df
mnist_df = load_data()
상기 함수에 따라 데이터를 불러오면 다음 그림과 같은 데이터 테이블을 생성할 수 있습니다.
왜 라벨을 붙여야 합니까? mnist 이미지의 밝기 값에서 평균과 분산을 직접 구해도 아래 이미지처럼 눈덩이 이미지만 생성할 수 있기 때문입니다. 그래서 라벨마다 데이터를 추출하여 이미지를 생성하고 싶습니다.
참고로 그림인지 확인하려면 아래 주문을 누르면 확인할 수 있습니다.
(처리 절차: 1. 이미지 데이터의 인덱스 선택, 2.target의 열 제거, 3.numpy 변환, 4. 1차원 데이터를 28x28의 2차원 데이터화)import matplotlib.pyplot as plt
plt.imshow(mnist_df.iloc[0].drop(['target']).values.reshape(28, 28))
그리고 주문의 결과는 바로 이것이다
2.1 레이블당 평균 이미지 제작, 분산 이미지
제목과 같이 각 라벨을 추출하여 평균 이미지를 생성하고 분산시켜 보십시오.def img_write(name, data, norm=True):
data *= 255 if norm else data
data = np.array(data).astype(np.uint8)
cv2.imwrite(name, data.reshape(28,28))
def mnist_static_by_target_cat(df, column='target', norm=True):
for i, cat in enumerate(df[column].unique()):
cat_df = df.groupby(column).get_group(cat)
cat_df = cat_df.drop([column], axis=1)
img_write('mean_' + str(i) + '.jpg', cat_df.mean(), norm)
img_write('std_' + str(i) + '.jpg', cat_df.std(), norm)
mnist_static_by_target_cat(mnist_df)
그리고 생성된 이미지는 다음과 같습니다.
왠지 이런 숫자가 있는 것 같지 않아요?
3. 이미지 변형(시공 중)
시간이 없어서 개요만 썼어요. 이번 주 안에 이론을 포함해서 예쁘게 썼어요.
from tensorflow.keras.datasets import mnist
import numpy as np
import pandas as pd
def load_data():
(x, y), _ = mnist.load_data()
mnist_df = pd.DataFrame(x.reshape(-1, 784) / 255.,
columns=['dim' + str(num+1) for num in range(784)])
mnist_df['target'] = y.reshape(-1, 1)
return mnist_df
mnist_df = load_data()
import matplotlib.pyplot as plt
plt.imshow(mnist_df.iloc[0].drop(['target']).values.reshape(28, 28))
def img_write(name, data, norm=True):
data *= 255 if norm else data
data = np.array(data).astype(np.uint8)
cv2.imwrite(name, data.reshape(28,28))
def mnist_static_by_target_cat(df, column='target', norm=True):
for i, cat in enumerate(df[column].unique()):
cat_df = df.groupby(column).get_group(cat)
cat_df = cat_df.drop([column], axis=1)
img_write('mean_' + str(i) + '.jpg', cat_df.mean(), norm)
img_write('std_' + str(i) + '.jpg', cat_df.std(), norm)
mnist_static_by_target_cat(mnist_df)
시간이 없어서 개요만 썼어요. 이번 주 안에 이론을 포함해서 예쁘게 썼어요.
(왼쪽에서 오른쪽으로, $P(밝기) = [0.9,0.99]$확률이 각각 0.9씩 변화할 때의 이미지 변화)
(또한 혼합 고스 분포는 모든 잠재 변수에 대해 정적 분포를 준비한다. 따라서 상술한 바와 같이 이 모델에서 밝기 확률만 바꾸면 형상의 굵기를 바꿀 수 있다.)
4. 끝날 때
이번에는 리듬과 기세로 참가했을 뿐인데 글은 역시 쓰기 어려웠다. 마감일이 있으면 꼭 쓸 수 있을 것 같았지만 현실은 심각했다. 후배들은 나 같은 장작을 반면교사로 삼아스케줄에 맞춰서 활동을 했으면 좋겠어요.
어쨌든, 아래의 보도는 소문 속의 조고 씨인 것 같습니다. 저보다 더 유용할 것 같습니다!!
Reference
이 문제에 관하여(확률 모델로 이미지를 생성해 보십시오. (임시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/million_color/items/c3946aa6f95c4526dba6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(확률 모델로 이미지를 생성해 보십시오. (임시)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/million_color/items/c3946aa6f95c4526dba6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)