该OpenVINO图书馆的开放型动物园模型库包含了许多不同类型的深层神经网络的计算机视觉领域(而不是只)。但是我们还没有遇到可以从噪声中产生新数据的GAN模型。在本文中,我们将在Keras中创建这样的模型并在OpenVINO中运行它。

有关GAN网络的一些知识
经过良好训练的生成性竞争网络(GAN)使您可以从噪点或输入图像中创建新图像,而这些图像或输入图像将被视为真实图像而不是合成图像。GAN网络越来越多地用于各种任务:
- 草拟图片说明;
- 通过描述生成图片;
- 用摄影创作表情符号;
- 增加图像分辨率;
- 图像样式转换;
- 提高医学图像的质量;
- 面部表情等等。
但首先,让我们继续练习 猫 数字以确保OpenVINO能够进行GAN联网。
GAN图像生成
Keras, , MNIST. OpenVINO , GAN . , NVIDIA .
Keras : . GAN Keras .
, OpenVINO, OpenVINO .
5 .

GAN , , Fashion MNIST — , — . , ?
OpenVINO : Caffe, Tensorflow, ONNX .. Keras, ONNX, ONNX OpenVINO. , , Keras->ONNX->OpenVINO , Keras->TensorFlow->OpenVINO. , ONNX , Tensorflow, .
Python Keras ONNX:
import numpy as np
import argparse
import onnx
import keras2onnx
from keras.models import load_model
model = load_model('gan_digits.h5')
onnx_model = keras2onnx.convert_keras(model, model.name)
onnx.save_model(onnx_model, 'gan_digits.onnx')
ONNX OpenVINO ( Windows) Model Optimizer:
python "C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\mo.py" --input_model gan_digits.onnx --input_shape [100,100]
, , OpenVINO. :
import numpy as np
import sys
import matplotlib.pyplot as plt
from openvino.inference_engine import IENetwork, IECore
ie = IECore()
net = IENetwork(model='gan_digits_R2020.1.xml', weights='gan_digits_R2020.1.bin')
exec_net = ie.load_network(net, 'CPU')
input_blob = next(iter(net.inputs))
out_blob = next(iter(net.outputs))
noise = np.random.normal(loc=0, scale=1, size=[100, 100])
generated_images = exec_net.infer(inputs={input_blob: noise})
generated_images = generated_images['Tanh']
generated_images = generated_images.reshape(100, 28, 28)
figsize = (10, 10)
dim = (10, 10)
plt.figure(figsize=figsize)
for i in range(generated_images.shape[0]):
plt.subplot(dim[0], dim[1], i + 1)
plt.imshow(generated_images[i], interpolation='nearest', cmap='gray_r')
plt.axis('off')
plt.tight_layout()
plt.show()
, . , , 100%.
OpenVINO . , , OpenVINO , .
, , styleGAN. :

styleGAN NVIDIA , . GitHub , GPU. OpenVINO.
, PyTorch ONNX ( OpenVINO). , , !
, , .
.