Большинство парней, занимающихся информатикой, или специалистов по данным, мало знают об искусстве, как и я. И я могу сказать вам, что последнее место, куда я пойду, когда посещаю город, — это художественный музей.

Не говоря уже о том, чтобы создавать свои собственные картины… убей меня, пожалуйста…

Тем не менее, вашей девушке или парню могут нравиться эти скучные вещи… что, если вы можете программировать, чтобы создавать особые произведения искусства? Вы когда-нибудь думали об использовании этого, чтобы удивить своих возлюбленных?

Хорошо, я не говорю, что вы сделаете ее/его день, используя то, что я поделюсь с вами здесь сегодня, но не помешает попробовать.

Я не создаю это с нуля, я на самом деле повторно использую работу некоторых блестящих парней, должен признать их здесь: Лоуренс Фрэнсис, это его Github, код от его творения.

Указание кодировки

сначала нам нужно клонировать git-код из Lawrence в наш Colab.

# this line actually check if the folder exist, it will remove it if it's already there.
!rm -r ComputerVision NeuralStyleTransfer
# this line clone the repository 
!git clone https://github.com/ldfrancis/ComputerVision.git
#copy the directly into the current working directly, it's imporant, because in colab, the change directory command you use will only happen in that cell. 
!cp -r ComputerVision/NeuralStyleTransfer .

Затем мы загружаем два изображения, когда вы запускаете следующую команду в Colab, появляется кнопка загрузки, выберите изображения с вашего ноутбука по одному и нажмите «Загрузить».

from google.colab import files 
files.upload()

после загрузки изображения нам нужно установить размер изображения, чтобы наша модель могла его понять. По сути, изображение содержимого и изображение стиля должны быть одного размера. Примечание: когда вы нажимаете «Выполнить», вы должны быть быстрыми, иначе загрузка не будет работать, странно от Colab!

CONTENT_IMAGE = "content.jpg" 
STYLE_IMAGE = "style.jpg"
IMAGE_HEIGHT = 400
IMAGE_WIDTH = 300
ITERATION = 800

затем мы устанавливаем путь к изображениям, которые мы настроили, мы помещаем его в папку с именем /content/ для последующего использования.

path_to_content_image = "/content/"+CONTENT_IMAGE
path_to_style_image = "/content/"+STYLE_IMAGE

Теперь мы можем взглянуть на изображение, которое мы загрузили:

#import matplotlib for ploting
import matplotlib.pyplot as plt
c_image = plt.imread(path_to_content_image)
s_image = plt.imread(path_to_style_image)

распечатать изображение, изображение содержимого:

print("Content Image of size (height, width) => {0}".format(c_image.shape[:-1]))
plt.imshow(c_image)

и стиль изображения:

print("Style Image of size (height, width) => {0}".format(s_image.shape[:-1]))
plt.imshow(s_image)

Обучите модель!

from NeuralStyleTransfer import implementNTS as NST
NST.setImageDim(IMAGE_WIDTH,IMAGE_HEIGHT)
NST.run(ITERATION, style_image=path_to_style_image,content_image=path_to_content_image)
  

перечислите изображение, которое мы создали в папке

!ls NeuralStyleTransfer/output/

Посмотреть сгенерированное изображение!

generated_image_path = "/content/NeuralStyleTransfer/output/generated_image.jpg"
image = plt.imread(generated_image_path)
plt.imshow(image)

если вы хотите загрузить образ на свой ноутбук, используйте скрипт ниже:

files.download("NeuralStyleTransfer/output/generated_image.jpg")

Я также пробовал еще кое-что, чтобы изменить итерацию, у вас будут другие результаты!

Различные итерации:

Хорошо, а теперь придумайте что-нибудь, чтобы похвастаться перед девочками или мальчиками :-)

И последнее, но не менее важное: я не должен забывать, что блокнот Colab здесь:



Автор: Юди Сюй

CTO-консультант по новым цифровым технологиям

Руководитель проектов и эксперт в области Интернета вещей

Бывший специалист по данным в Shell

LinkedIn: https://www.linkedin.com/in/xuyudi/