У сучасному світі глибокі нейронні мережі (CNN) використовуються для вирішення широкого спектру завдань, включаючи обробку зображень. Один із застосувань цих мереж – стильовий перенос зображення, який дозволяє змінювати стиль одного зображення так, щоб воно набуло характеристики стилю іншого зображення. У цій статті ми розглянемо, як отримати вихідне зображення з моделі CNN після навчання на прикладі стильового переносу зображення.
Один з типів моделей, який використовується для стильового переносу зображення, – це модель змісту і стилю (Style Content Model). Ця модель використовує глибоку нейронну мережу, яка навчена розпізнавати як стиль, так і зміст зображення. Вона включає у себе два набори шарів: шари для визначення стилю та шари для визначення змісту. Після навчання модель може застосовуватися для переносу стилю з одного зображення на інше.
Однак, після навчання моделі, виникає питання: як отримати вихідне зображення з моделі CNN? Ось один із можливих підходів до цього завдання.
1 2 3 4 5 6 7 8 |
image = load_img('Tests\hut.jpeg') def show_processed_image(image): outputs = extractor(image) generated_image = outputs['content']['block5_conv2'] print(generated_image) tensor_to_image(generated_image) plt.show() show_processed_image(image) |
У цьому коді ми використовуємо функцію show_processed_image
, яка приймає вхідне зображення та викликає екстрактор – навчену модель. Потім ми отримуємо вихідне зображення, використовуючи ключ 'content'
та назву шару 'block5_conv2'
. Нарешті, ми відображаємо отримане зображення.
Екстрактор – це екземпляр навченої моделі StyleContentModel
, яка містить у собі шари для визначення стилю та змісту зображення. Після навчання моделі за допомогою функції call
вона може застосовуватися для обробки нових зображень.
В цій статті ми розглянули, як отримати вихідне зображення з моделі CNN після навчання на прикладі стильового переносу зображення. Використовуючи певні функції та методи, ми можемо отримати вихідне зображення, яке має бути перетворене в заданий стиль.