Basic Theory | Neural Style Transfer #2

Aleksa Gordić - The AI Epiphany
23 Mar 202015:20

Summary

TLDRDieses Videotutorial führt in die Grundlagen des neuronalen Stiltransfers ein. Es bietet einen Überblick über die gesamte Videoserie, die sich auf das Erstellen von Stilübertragungen für statische Bilder und Videos konzentriert. Der Schwerpunkt liegt auf der praktischen Anwendung von Techniken wie dem L-BFGS-Optimierungsverfahren und der Verwendung von CNNs. Darüber hinaus wird die Geschichte des Stiltransfers von einfachen Signalverarbeitungstechniken bis hin zu modernen neuronalen Netzen erläutert. Das Video erklärt auch, wie man die Inhalts- und Stilrepräsentationen in einem CNN trennt und wie man mithilfe von Gram-Matrizen die Textur eines Bildes erfasst.

Takeaways

  • 🎨 Die Serie von Videos behandelt das Thema des neuronalen Stiltransfers und ist in mehrere Abschnitte unterteilt, die sich mit verschiedenen Aspekten der Technik befassen.
  • 📊 Der erste Teil der Serie konzentriert sich auf den statischen Bildstiltransfer, während der zweite Teil sich mit Videos und der Anwendung von temporalem Verlust befasst.
  • 🤖 Die dritte Folge der Serie wird sich mit fortgeschrittenen Stiltransfer-Theorien und der Verwendung von CNNs ohne Optimierungsmethoden beschäftigen.
  • 👨‍🏫 Der Ersteller der Serie möchte die Videos code-orientiert gestalten und möchte nur Python und ein oder zwei Frameworks verwenden, um die Komplexität zu reduzieren.
  • 🔗 Der Code für die Serie wird über GitHub bereitgestellt, um es einfacher für die Zuschauer zu machen, die Umgebung zu klonen und sofort loszulegen.
  • 🖼 Der Kern der Stiltransfer-Technik besteht darin, ein Content-Bild und ein Stil-Bild zu kombinieren, um ein kompositorisches Bild zu erzeugen, das den Stil des Stilbildes und den Inhalt des Content-Bildes aufweist.
  • 🎨 Der Stiltransfer kann in zwei Kategorien eingeteilt werden: künstlerischer Stiltransfer und photorealistischer Stiltransfer.
  • 📚 Die Geschichte des Stiltransfers reicht zurück bis zu einfachen Signalverarbeitungstechniken und wurde erstmals 2015 mit der Einführung des neuronalen Stiltransfers revolutioniert.
  • 🧠 Die VGG-Netzwerkarchitektur, insbesondere VGG-19, spielt eine Schlüsselrolle in der Implementierung des neuronalen Stiltransfers, indem Inhalt und Stil innerhalb der Architektur entkoppelt werden können.
  • 🔍 Die Inhaltsrepräsentation eines Bildes wird durch die Feature Maps bestimmter Layer des CNNs ermittelt, wohingegen die Stilrepräsentation durch Gram-Matrizen der Feature Maps gewonnen wird.
  • 📉 Der Gesamtverlust im neuronalen Stiltransfer ist eine Kombination aus Inhaltsverlust und Stilverlust, wobei der Ziel ist, den Stil des Stilbildes und den Inhalt des Content-Bildes im Ergebnisbild widerzuspiegeln.

Q & A

  • Worum geht es in der zweiten Video-Serie des Skripts?

    -Das zweite Video der Serie behandelt die grundlegende Theorie des neuronalen Stiltransfers (NST). Es bietet einen tieferen Einblick in die Theorie und wird später auf statischen Bildstiltransfer und Optimierungsmethoden wie L-BFGS oder Adam eingehen.

  • Was wird im dritten und vierten Video der Serie behandelt?

    -Im dritten Video wird es um den statischen Bildstiltransfer mithilfe von Optimierungsverfahren wie L-BFGS oder Adam gehen. Das vierte Video dient als Anhang zum zweiten Video und behandelt fortgeschrittene Theorien zum neuronalen Stiltransfer.

  • Was ist das Ziel der Video-Serie laut dem Skript?

    -Die Serie soll sehr praxisorientiert und codebasiert sein. Es wird hauptsächlich auf Python und PyTorch als Framework gesetzt, um es den Zuschauern einfach zu machen, den Code nachzuvollziehen. Es wird kein TensorFlow oder andere exotische Frameworks verwendet.

  • Was ist der Unterschied zwischen künstlerischem Stiltransfer und fotorealistischem Stiltransfer?

    -Der künstlerische Stiltransfer verwendet künstlerische Bilder wie Gemälde oder Zeichnungen, um den Stil zu übertragen. Der fotorealistische Stiltransfer überträgt den Stil zwischen zwei realistischen Bildern, um einen realistischeren Effekt zu erzielen.

  • Was unterscheidet neuronalen Stiltransfer von herkömmlichem Stiltransfer?

    -Herkömmlicher Stiltransfer existiert seit Jahrzehnten und nutzte Signalverarbeitungstechniken. Neuronaler Stiltransfer verwendet neuronale Netze, um den Stil zu übertragen, was erst ab 2015 möglich wurde und ältere Methoden übertraf.

  • Welche Rolle spielt das VGG-Netzwerk beim neuronalen Stiltransfer?

    -Das VGG-Netzwerk wird verwendet, um sowohl die Stil- als auch die Inhaltsrepräsentationen eines Bildes zu extrahieren. Es wurde ursprünglich für Bildklassifizierungsaufgaben trainiert, spielt aber eine zentrale Rolle im neuronalen Stiltransfer, indem es Inhalte und Stile trennt.

  • Wie wird der Inhaltsverlust beim neuronalen Stiltransfer berechnet?

    -Der Inhaltsverlust wird durch die Differenz der Feature-Maps des Eingangsbildes und des Rauschbildes im VGG-Netzwerk berechnet. Diese Differenz wird mit einer MSE-Verlustfunktion minimiert.

  • Wie wird der Stil eines Bildes im neuronalen Stiltransfer erfasst?

    -Der Stil eines Bildes wird durch die Berechnung von Gram-Matrizen aus den Feature-Maps des VGG-Netzwerks erfasst. Diese Matrizen stellen die stilistischen Merkmale des Bildes dar, wie z.B. Texturen und Farben.

  • Was ist eine Gram-Matrix und welche Rolle spielt sie im Stiltransfer?

    -Eine Gram-Matrix ist eine Kovarianzmatrix, die die Beziehungen zwischen verschiedenen Feature-Maps eines Bildes erfasst. Sie zeigt, welche Merkmale zusammen aktiviert werden, und wird verwendet, um die stilistische Information eines Bildes zu bestimmen.

  • Wie wird die Gesamtkostenfunktion (Loss) beim neuronalen Stiltransfer berechnet?

    -Die Gesamtkostenfunktion ist eine gewichtete Kombination aus Inhaltsverlust und Stilverlust. Ziel ist es, ein Bild zu erzeugen, das sowohl den Inhalt des Eingabebildes als auch den Stil des Stilbildes in sich vereint.

Outlines

00:00

🎨 Einleitung in die Serie über neuronale Stilübertragung

Dieser erste Absatz stellt die Videoserie vor, die sich mit neuronaler Stilübertragung befasst. Der Ersteller möchte, dass die Zuschauer eine tiefere Verständnis der Theorie der neuronalen Stilübertragung erlangen und gibt einen Überblick über die gesamte Serie. Es wird erwähnt, dass die erste Folge als Vorgeschmack dient, um die Möglichkeiten der Mural-Stilübertragung zu zeigen. Die dritte Folge wird sich auf die statische Bild-Stilübertragung mit optimierungsmethoden wie L-BFGS konzentrieren. Die Serie wird sich zunächst auf statische Bild-Stilübertragung konzentrieren, bevor sie sich der Video-Stilübertragung und fortschrittlicheren Techniken widmet. Der Ersteller möchte die Serie code-orientiert gestalten und nur Python und ein oder zwei Frameworks verwenden, um die Komplexität zu reduzieren. Der Code wird über GitHub geteilt werden, um es den Zuschauern zu ermöglichen, die Umgebung einfach einzurichten und loszulegen.

05:00

🔬 Grundlagen der neuronalen Stilübertragung

In diesem Abschnitt wird auf die historischen Entwicklungen der Stilübertragung eingegangen, von einfachen Signalverarbeitungstechniken bis hin zu neuronalen Netzen. Die neuronale Stilübertragung, die 2015 eingeführt wurde, hat alle anderen Methoden übertroffen. Das Herzstück der Methode ist die Fähigkeit, Inhalt und Stil in der CNN-Architektur zu decouplen. Die VGG-Netzwerke, die auf dem ImageNet-Datensatz trainiert wurden, spielen eine Schlüsselrolle bei der Erstellung von Inhalts- und Stilrepräsentationen. Die Inhaltsrepräsentation wird durch das Auswählen von Feature Maps aus bestimmten Layern des CNN erreicht, während die Stilrepräsentation durch Graham-Matrizen aus diesen Feature Maps gebildet wird. Der Abschnitt zeigt auch, wie durch die Minimierung des Verlustes die Feature Maps der Eingangsbilder annähernd werden, um die gewünschte Stilübertragung zu erreichen.

10:01

🖌️ Erfassung des Stils einer Bildes

Dieser Abschnitt konzentriert sich auf die Methode, wie man die Stilrepräsentation eines Bildes findet. Es wird erklärt, dass man ein gestyltes Bild durch das VGG-Netzwerk liefert und aus den Feature Maps Graham-Matrizen erzeugt. Diese Matrizen repräsentieren den Stil des Bildes. Der Graham-Matrix ist eine einfache Kovarianzmatriz zwischen verschiedenen Feature Maps und zeigt, welche Feature Maps zusammen aktiviert werden. Der Stilverlust wird durch eine gewichtete Summe der MSE-Verluste für jede Schicht im Netzwerk berechnet. Der Abschnitt zeigt auch Animationen, die veranschaulichen, wie sich das Eingangsrauschen bildlich dem Stil des gestylten Bildes annähert, während der Inhaltsverlust minimiert wird.

15:01

📺 Zusammenfassung und Aufruf zur Abonnement

Der letzte Absatz fasst die Hauptpunkte des Videos zusammen und fordert die Zuschauer auf, das Video zu mögen und das Abonnement-Feature zu nutzen, um die kommenden Videos nicht zu verpassen. Es wird betont, dass die Serie praxisorientiert ist und den Zuschauern viele praktische Anwendungen und Beispiele bietet, um das Verständnis der neuronalen Stilübertragung zu vertiefen.

Mindmap

Keywords

💡Neural Style Transfer

Neural Style Transfer ist eine Technik, die es ermöglicht, die visuelle Stilmerkmale einer Bildes auf ein anderes Bild zu übertragen. Im Video wird diese Methode verwendet, um ein Bild in einem künstlerischen Stil darzustellen, der von einem anderen Bild entlehnt wird. Es ist ein zentrales Thema des Videos, das die Theorie und die praktische Umsetzung dieser Technik erläutert.

💡VGG-Net

Das VGG-Net ist ein tiefes neuronales Netzwerk, das im Video zur Darstellung von Inhalt und Stil von Bildern verwendet wird. Es ist ein Schlüsselinstrument in der Technik des neuronalen Stiltransfers, da es die Feature-Maps liefert, die für die Inhalts- und Stilrepräsentationen notwendig sind.

💡Inhaltsrepräsentation

Die Inhaltsrepräsentation bezieht sich auf die semantischen Merkmale eines Bildes, die beibehalten werden sollen. Im Kontext des Videos wird die Inhaltsrepräsentation durch die Feature-Maps eines bestimmten Layers des VGG-Netzwerks erfasst, um den Inhalt des zu stylisierenden Bildes zu erfassen.

💡Stilrepräsentation

Die Stilrepräsentation bezieht sich auf die visuellen Stilmerkmale eines Bildes, die auf ein anderes Bild übertragen werden sollen. Im Video wird die Stilrepräsentation durch Graham-Matrizen erfasst, die aus den Feature-Maps der Stilbildes erstellt werden, um die Textur und das Muster des Stilbildes zu erfassen.

💡Graham-Matrix

Eine Graham-Matrix ist ein Werkzeug, das verwendet wird, um die Stilmerkmale eines Bildes zu erfassen. Im Video wird erklärt, dass Graham-Matrizen durch die Berechnung der Kovarianz zwischen verschiedenen Feature-Maps erstellt werden, was hilft, die Texturen und Muster im Bild zu identifizieren.

💡L-BFGS-Optimierer

Der L-BFGS-Optimierer ist eine numerische Optimierungsmethode, die im Video für den Stiltransfer-Prozess verwendet wird. Es handelt sich um einen effizienten Algorithmus, der schnell zu einer Lösung führt, indem er die Abweichungen zwischen den Ziel- und aktuellen Feature-Maps minimiert.

💡Feature-Maps

Feature-Maps sind eine Abstraktion von Bildern, die von neuronalen Netzwerken erstellt werden und Informationen über die Struktur und das Design eines Bildes enthalten. Im Video werden Feature-Maps verwendet, um sowohl die Inhalts- als auch die Stilrepräsentationen für den Stiltransfer zu extrahieren.

💡MSE-Verlust

MSE-Verlust, oder Mean Squared Error, ist ein Verlustfunktion, der verwendet wird, um die Abweichung zwischen den gewünschten und den tatsächlichen Ausgaben eines Modells zu messen. Im Video wird MSE-Verlust verwendet, um sowohl den Inhalts- als auch den Stilverlust zu berechnen, um die Optimierung des Stiltransfers zu steuern.

💡Artistischer Stiltransfer

Artistischer Stiltransfer ist eine Art von Stiltransfer, bei dem die Stilmerkmale eines künstlerischen Bildes auf ein anderes Bild übertragen werden. Im Video wird dieser Begriff verwendet, um die Technik zu beschreiben, bei der z.B. ein Foto in einem Stil dargestellt wird, der an eine Gemälde erinnert.

💡Photorealistischer Stiltransfer

Photorealistischer Stiltransfer ist eine andere Form des Stiltransfers, bei der die Stilmerkmale eines realistischen Bildes auf ein anderes realistisches Bild übertragen werden. Im Video wird dieser Begriff im Gegensatz zum künstlerischen Stiltransfer eingeführt, um eine andere Anwendung des Stiltransfers zu veranschaulichen.

Highlights

Introduction to the second video in a series about neural style transfer.

Overview of the video series, focusing on static image style transfer and later on videos.

The third video will cover static image neural style transfer using optimization methods.

Fifth video will teach how to use CNNs for style transfer without optimization methods.

The series will be code-heavy, practical, and use PyTorch and Python.

Code will be shared through a GitHub repository for easy access and use.

Definition of the neural style transfer task: combining content and style into a stylized image.

Two types of style transfer: artistic and photo-realistic.

History of style transfer from signal processing to neural networks.

The pivotal 2015 paper by Gatys et al. that introduced neural style transfer.

Explanation of how content and style can be decoupled within a CNN architecture.

The role of the VGG network in the neural style transfer process.

How feature maps from the VGG network represent the content of an image.

Demonstration of the optimization process to match content representations.

Introduction to the concept of capturing the style of an image through feature maps.

Explanation of Gram matrices and their role in representing style.

How the style loss is calculated using Gram matrices and MSE loss.

Animation showing the transformation of a noise image to match style and content.

Final thoughts on the neural style transfer process and its visual results.

Call to action for viewers to subscribe and like the video for more content.

Transcripts

play00:00

welcome to the second video in this

play00:01

video series owner old style transfer

play00:03

where are you gonna learn how to do this

play00:05

and let's jump into the video so this

play00:10

video will give you deeper understanding

play00:12

of the basic neuro Starr transfer theory

play00:15

but before I go there I'd like to give

play00:18

you an overview of the whole series if

play00:21

you only came for this video feel free

play00:22

to skip directly to it so let's start so

play00:28

last video was more of a teaser of

play00:31

showing you all the things that mural

play00:33

style transfer can actually do and as I

play00:36

already mentioned this one will be about

play00:38

basic theory and the third one will be

play00:41

about static image neural style transfer

play00:43

using the optimization method l-bfgs or

play00:48

atom numerical optimizers whatever so

play00:51

and and in general the first part of the

play00:55

series will focus on static image style

play00:57

transfer whereas the second part will

play01:00

focus on videos and fourth will be the

play01:04

second the app index pretty much to this

play01:06

video on a more advanced and euro style

play01:09

transfer theory and fifth one will focus

play01:12

on so not using the optimization method

play01:15

but using CNN's you're just plugging an

play01:18

image input as an input and you get a

play01:20

stylized image ah and I'm also gonna

play01:24

teach you how to train your own models

play01:26

so that you can use different styles

play01:30

then we'll talk a little bit about

play01:33

segmentation which will help you stylize

play01:36

only certain portions of the of the

play01:39

image and then we'll jump into the

play01:43

videos part starting with primitive

play01:45

video where we're gonna learn how to

play01:48

apply it

play01:49

on a per frame basis without using any

play01:51

temporal loss but then we'll start using

play01:54

including the temporal loss itself

play01:56

inside the models and we'll get much

play01:59

more stable model there and the output

play02:03

also of course the tenth we'll focus on

play02:06

training those models and the last one

play02:09

in this series will be about going

play02:11

in general like try and use some some

play02:14

other family of models like mobile nets

play02:17

efficient nets some state-of-the-art

play02:19

models and see if that gives us better

play02:22

results in general next off I want to

play02:26

tell you more about what I want this

play02:28

series to actually be so I want to be a

play02:31

code heavy it's gonna be really

play02:33

practical and except for this video and

play02:37

the advanced theory one and I want to

play02:40

keep it simple I want to only use part

play02:42

or two the framework and Python as a

play02:44

programming language so no dual boots

play02:46

new system dependent scripts no exotic

play02:50

languages such as Lua absolute framework

play02:52

such as tort or cafe and no tensorflow

play02:55

even though it's still relevant

play02:57

especially with a 2.0 version but I just

play03:00

want to pick one and I think my torque

play03:02

is winning the battle and it's much more

play03:05

it's nicer to you write in code will be

play03:08

shared through my github repo so you

play03:10

have you can just I wanna make it I

play03:13

wanna make it really simple you can just

play03:15

get clone my repo create the environment

play03:18

file clean environment using my

play03:21

environment file and that's it you can

play03:22

start playing straight ahead so that's

play03:24

the end of the series overview now let's

play03:26

jump straight ahead into the video

play03:29

itself and let me start off with

play03:30

defining what the actual task will will

play03:34

be so we get one image as as the first

play03:37

input which contains the content that we

play03:39

want to preserve we get a second image

play03:42

which has the style that we want to

play03:45

transfer to this content image we

play03:47

combine them where the plus denotes

play03:49

neural style trends transfer transform

play03:52

and what we get out is a composite image

play03:55

that's a stylized version of the content

play03:58

image and that's it that's a task next

play04:02

up let's see two basic types of style

play04:05

transfer and the first one is the one

play04:09

I'll be showing you in this video series

play04:11

it's the artistic style transfer where

play04:13

the where the style imagery we want to

play04:16

use is actually artistic image can be

play04:21

either a cartoonish and drawings

play04:22

painting whatever

play04:25

and the second type of style transfer is

play04:27

a photo realistic style transfer where

play04:29

both the damages are actually real and

play04:32

we try to just just mimic the style of

play04:35

the of one of these onto another and get

play04:39

a composite image out as you can see

play04:40

here on the screen so I thought you'd be

play04:44

worth including some history here and

play04:46

basically there's a difference between a

play04:49

style transfer a neural style transfer

play04:51

style transfer is something that's been

play04:53

going on for decades now already and

play04:55

neural style transfer is just the same

play04:57

thing but using neural neural nets and

play05:00

it all started in natives pretty much

play05:02

where people were using simple signal

play05:06

processing techniques and filters to to

play05:09

get a stylized images out like the one

play05:11

you see here and then in 2000 they

play05:15

started applying patch based methods

play05:17

like the one here called image knowledge

play05:19

is where you need to have image pairs so

play05:22

the contact image and the stylist

play05:24

version and then given the new content

play05:26

image you can stylize it the same as the

play05:29

pair that was previously given and this

play05:32

method gave some decent results but only

play05:35

in 2015 did we get to the neural style

play05:39

transfer ie applying commnets

play05:43

to do the same thing of transferring and

play05:45

it outperformed every other approach

play05:47

previously developed and now to decor

play05:51

NST algorithm itself so where it all

play05:55

started it all started in 2015 where

play05:58

long gages and his colleagues through

play06:01

this research paper titled I knew rule

play06:03

algorithm of artistic style and what the

play06:07

key finding of the paper was is that the

play06:10

content and the style representations

play06:12

can be decoupled inside a CNN

play06:14

architecture and specifically a bgg not

play06:18

played a key role in this in this paper

play06:21

and you can see the architecture on the

play06:24

screen a bit more detail on the vdg

play06:27

network itself so it was trained on the

play06:31

image net data set for the tests of

play06:34

image classification and object

play06:36

localization

play06:38

but it actually wasn't a winner on that

play06:41

year's classification challenge it was a

play06:44

first runner up the first nail

play06:45

productivity the one the competition was

play06:48

Google Matt or Google Leonard but vdg

play06:51

did one the localization task let's see

play06:55

what ovg had in this honesty paper so it

play07:01

helped create a rich and robust

play07:05

representation of the semantics of the

play07:07

input image so how we find the counter

play07:09

representation is the following we take

play07:12

some images in them but we feed it

play07:14

through the CNN the vgg not here and we

play07:18

take the feature maps from a certain

play07:20

layer like let's say a comp for one and

play07:23

those future maps are what represents

play07:26

the content of the input image and it's

play07:29

really that easy and just for the sake

play07:31

of making feature maps less abstract

play07:33

let's see how they actually look like

play07:35

for this concrete image for this line

play07:37

image and you can see why they're called

play07:40

future maps they can basically be

play07:42

interpreted as images and they contain

play07:45

either a low-level details such as edges

play07:48

stuff like that or high-level details

play07:51

depending from which layer of the vgg

play07:54

net or in general CNN do you extract

play07:56

them out okay and now for the fun part

play07:58

so let's take a Gaussian noise image

play08:02

which will eventually become the

play08:03

stylized image that we want and feed it

play08:06

through the bgg and we'll get its

play08:09

contour representation which is

play08:10

currently rubbish but let's see how we

play08:13

can drive it so that it has the same

play08:15

representation as the input image so we

play08:18

get those two images in zimba we feed

play08:21

them through the vgg and we get their

play08:24

feature maps which are as I already

play08:26

mentioned the content representation the

play08:28

current content representation of those

play08:31

two images we we can flatten those

play08:34

feature maps so each feature map becomes

play08:36

a row and this output matrix and now we

play08:39

need to drive those P and F matrices to

play08:43

be the same and we accomplished there

play08:45

using this loss which is a simple MSU

play08:49

lost where you adjust

play08:51

take a element-wise subtraction and we

play08:53

do element wise squaring on those

play08:56

elements and we just try and drive that

play08:58

that loss to zero I would try to

play09:01

minimize it and now for the really fun

play09:05

part and we'll don't see what happens

play09:08

when we drive the last down to zero and

play09:10

I'll just give you a couple of seconds

play09:12

to watch the animations so what you can

play09:19

see on the screen is on the left side

play09:21

you see what happens when the you see

play09:23

that the F matrix is getting closer to

play09:25

the P matrix which is equivalent to the

play09:27

last getting down to zero and on the

play09:30

right you can see the optimization

play09:31

procedure itself nice image becoming

play09:34

slowly becoming the input image the

play09:37

bottom animation is just the whole

play09:39

optimization procedure whereas the upper

play09:42

animation is just the initial part of

play09:44

the optimization procedure in a slow

play09:46

mode because it happens really fast

play09:48

using l-bfgs optimizer but you can see

play09:52

on the next screen is that the l-bfgs is

play09:55

much more is much faster than the atom

play09:58

optimizer and only hundred creations

play10:00

l-bfgs already seems to be a morphing

play10:04

this nice image into content image

play10:06

whereas atom is only just beginning to

play10:08

do that now for the second most

play10:10

important idea in this video and that's

play10:13

how do we capture the style of an image

play10:15

so how do we find its style

play10:17

representation so we have this styled

play10:21

image input style image we feed it

play10:24

through this v2g net and we get a set of

play10:27

feature maps this time taking those from

play10:30

starting from layer cam 1 1 and going

play10:33

through layer count Phi 1 and what we do

play10:36

is we construct this feature space over

play10:39

these feature maps using something

play10:42

called Graham transform so we create

play10:46

Graham matrices out of those feature

play10:48

maps and the set of those Graham

play10:51

matrices is what ultimately represents

play10:53

the style for image or let's call it the

play10:58

styler presentation and now you might

play11:00

ask what's what's a gray matrix and

play11:02

that's a legit question

play11:04

so I took a style image as an input I

play11:07

fed it through the vgg and from one of

play11:09

those layers I constructed a gram matrix

play11:12

and this is how it looks like this is

play11:14

exactly how it looks like and it answers

play11:17

an important question and that which

play11:19

feature maps tend to activate together

play11:21

we already saw how the feature maps look

play11:25

like and in one of the previous slides

play11:27

and now we have an answer to this

play11:30

question so it's a simple covariance

play11:33

matrix between different feature maps

play11:35

and the way we calculate an element in

play11:38

this matrix is by just doing a dot

play11:41

product between two feature maps and

play11:43

that just captures the the texture

play11:46

information as it turns out let me give

play11:50

you some more intuition behind why

play11:51

Graham matrix actually works so here's a

play11:55

hypothetical example where on the upper

play11:57

row we have a hypothetical output three

play12:00

feature maps and on the bottom row the

play12:02

same thing or just for some other input

play12:05

image and if we would take element wise

play12:08

subtraction between those two rows would

play12:10

get a nonzero output which means we have

play12:13

a nonzero common loss which means that

play12:17

the input images have different

play12:18

semantics right different content so the

play12:21

dog is upside down on the bottom row but

play12:24

on the other hand if you take a look on

play12:26

the right side you'll see that the grand

play12:28

matrices are actually the same which

play12:31

means that the two input images are

play12:33

stylized in the same manner which is

play12:35

kind of true if you take a look at it

play12:36

and the style loss will be 0 because

play12:40

that so let's make it more explicit how

play12:42

we calculate the style loss so we have

play12:45

the inputs all image we have the input

play12:47

noise image we feed them through a VG

play12:50

we'll get a set of feature maps here I

play12:52

am only showing for simplicity just one

play12:54

set of feature maps we construct gram

play12:58

matrices over those feature Maps and

play13:00

what we do is just a simple MSE loss

play13:03

again which is just a element-wise

play13:06

subtraction followed by element wise

play13:08

squaring and the final style loss is

play13:13

actually just weighted sum of those

play13:14

terms for every layer in the

play13:18

and that's it now I'll do the same thing

play13:20

is a different pecan image let's see

play13:23

what happens when the style or

play13:24

presentation of the input noise image

play13:26

becomes the same as the style

play13:28

representation of the input style image

play13:29

and I'll give you a couple of seconds to

play13:32

just watch the animations watch closely

play13:37

and you can see there's a spike there so

play13:40

what happens is on the left side G

play13:43

represents the set of grand matrices of

play13:46

the input noise image and a represents

play13:49

the set of Grammy toeses of the input

play13:51

style image and as they are getting

play13:53

closer to each other on the right side

play13:56

you can see an animation where an input

play13:58

noise image initially input noise image

play14:01

is slowly becoming stylized it's

play14:04

capturing the style of the simple style

play14:06

image although it's district

play14:08

disregarding the semantics it's just

play14:11

capturing the style that's it

play14:12

and now putting it all together so the

play14:14

total loss is away a combination of a

play14:17

con loss and the style loss and what it

play14:21

basically says is the following we want

play14:23

the input noise image they have the same

play14:25

style of presentation as input style

play14:27

image and you have the same content

play14:30

representation as the input können image

play14:32

and that objective might not be fully

play14:35

minimized because a there does not exist

play14:38

a solution or B we cannot find a

play14:41

solution but still we'll get a visual

play14:43

appear instead we want and just take a

play14:46

look at the animation here and the line

play14:51

is slowly appearing in that style image

play14:55

and we are getting the composite image

play14:57

out that we and that was there was like

play14:58

the whole point of this video so that's

play15:01

it for the second video if you like my

play15:02

content consider subscribing

play15:05

gently push that like button

play15:07

and seeing the next video

play15:09

[Music]

Rate This

5.0 / 5 (0 votes)

Related Tags
Neuronale NetzeStilübertragungVideo-TutorialKünstlerische TechnikenProgrammierungVGG-NetzOptimierungDeep LearningInhalts- und StilanalyseKünstlerische Bildbearbeitung
Do you need a summary in English?