back to index

GAN Lecture 8 (2018): Photo Editing


link |
00:00.500
做修圖的例子
link |
00:02.500
我們先來看一個DEMO
link |
00:04.500
這個DEMO像這個右邊有很多的BAR
link |
00:06.500
你把這個BAR調整一下以後
link |
00:09.000
這些相片裡面的臉就會換
link |
00:12.000
這個NVIDIA做的DEMO
link |
00:14.000
這個是變禿頭
link |
00:17.000
然後再反過來就是頭髮會變多
link |
00:21.000
然後變黑頭髮
link |
00:24.000
變金頭髮
link |
00:31.000
然後戴眼鏡
link |
00:35.000
然後變男的
link |
00:39.000
反過來就是變女的
link |
00:44.000
這個是出現鬍子
link |
00:47.000
大家笑了
link |
00:54.000
反過來就生氣了
link |
00:57.000
藍皮膚是嗎?
link |
00:59.000
變年輕
link |
01:01.000
有一個Attractive
link |
01:03.000
變白
link |
01:07.000
變小鼻子
link |
01:09.000
自己調一下
link |
01:12.000
你說我變藍皮膚嗎?
link |
01:14.000
我沒有發現
link |
01:16.000
我之後再仔細看看
link |
01:18.000
哪邊有變藍皮膚
link |
01:20.000
那現在就講一下
link |
01:22.000
這個東西是怎麼做的呢?
link |
01:24.000
這個東西是怎麼做的?
link |
01:26.000
這就是以後可以拿來自動修圖
link |
01:28.000
就是了
link |
01:30.000
我們知道說
link |
01:32.000
今天假設你Train一個Generator
link |
01:34.000
Train一個人臉的Generator
link |
01:36.000
那其實INPUT的
link |
01:38.000
你會INPUT一個RANDOM VECTOR
link |
01:40.000
然後就OUTPUT一個人臉
link |
01:42.000
這作業大概要3-1的時候已經有做了
link |
01:44.000
因為我們在一開始講GAME的時候
link |
01:46.000
跟大家說過說
link |
01:48.000
其實INPUT VECTOR的每一個Dimension
link |
01:50.000
其實可能對應了
link |
01:52.000
某一種類的特徵
link |
01:54.000
只是問題是
link |
01:56.000
我們並不知道每一個Dimension
link |
01:58.000
對應的特徵是什麼
link |
02:00.000
那我們現在要講的是說
link |
02:02.000
怎麼去反推出
link |
02:04.000
現在INPUT的這個Vector
link |
02:06.000
每一個Dimension
link |
02:08.000
它對應的特徵是什麼
link |
02:10.000
那現在的問題
link |
02:12.000
是這個樣子
link |
02:14.000
你其實可以收集到大量的Image
link |
02:16.000
你可以收集到
link |
02:18.000
這些Image的Label
link |
02:20.000
Label說這張Image裡面的人
link |
02:22.000
是金頭髮的、是男的、是年輕的
link |
02:24.000
等等
link |
02:26.000
你可以得到Image
link |
02:28.000
你也可以得到Image的特徵
link |
02:30.000
你也可以得到Image的Label
link |
02:32.000
但你現在的問題是說
link |
02:34.000
你會搞不清楚這張Image
link |
02:36.000
它到底應該是由什麼Vector
link |
02:38.000
假設你可以知道說
link |
02:40.000
生成這張Image的Vector
link |
02:42.000
長什麼樣子
link |
02:44.000
假設你可以知道說
link |
02:46.000
生成這張Image的Vector長什麼樣子
link |
02:48.000
你就可以知道Vector跟Attribute
link |
02:50.000
Vector跟Label之間的關係
link |
02:52.000
因為你現在有Image
link |
02:54.000
然後你有Image的Label
link |
02:56.000
你有Image跟它的特徵的Label
link |
02:58.000
你有Image跟它的特徵的Label
link |
03:00.000
假設你可以知道說
link |
03:02.000
某一張Image
link |
03:04.000
它可以用什麼樣的Vector
link |
03:06.000
丟到Generator就可以產生這張Image
link |
03:08.000
那你就可以把這個Vector
link |
03:10.000
跟Label的特徵
link |
03:12.000
把它Link起來
link |
03:14.000
那現在的問題就是
link |
03:16.000
給你一張Image
link |
03:18.000
你其實並不知道
link |
03:20.000
什麼樣的Random Vector
link |
03:22.000
可以產生這張Image
link |
03:24.000
所以這邊要做的第一件事情是
link |
03:26.000
給一張Image
link |
03:28.000
假設你已經Train好一個Generator
link |
03:30.000
這個Generator給一個Vector
link |
03:32.000
它可以產生一個Image
link |
03:34.000
它可以產生一個Image
link |
03:36.000
我們這邊要做的事情是去
link |
03:38.000
做一個逆向的工程
link |
03:40.000
去反推說如果給你一張
link |
03:42.000
現成的Image
link |
03:44.000
什麼樣的Z可以生成這張
link |
03:46.000
現成的Image
link |
03:48.000
做一個逆向的工程
link |
03:50.000
怎麼做呢
link |
03:52.000
這邊的做法就是再Link另外一個
link |
03:54.000
Encoder
link |
03:56.000
再Link另外一個Encoder
link |
03:58.000
這個Encoder跟這個Generator
link |
04:00.000
合起來就是一個
link |
04:02.000
Auto Encoder
link |
04:04.000
在Train這個Auto Encoder的時候
link |
04:06.000
你Input一張ImageX
link |
04:08.000
把這個X壓成一個VectorZ
link |
04:10.000
希望把Z丟到
link |
04:12.000
Generator以後
link |
04:14.000
它Output的是原來那張Image
link |
04:16.000
在Train的過程中
link |
04:18.000
Generator的參數是固定不動的
link |
04:20.000
就是你Generator是事先已經Train訓練好的
link |
04:22.000
就放在那邊
link |
04:24.000
但我們要做一個逆向工程
link |
04:26.000
猜出說今天假設Generator產生
link |
04:28.000
某一張ImageX的時候
link |
04:30.000
我們應該Input什麼樣的Z
link |
04:32.000
我們要做一個反向的工程
link |
04:34.000
這個怎麼做
link |
04:36.000
就是Link一個Encoder
link |
04:38.000
然後在Train的時候
link |
04:40.000
給Encoder一張Image
link |
04:42.000
把這個Image變成一個CodeZ
link |
04:44.000
再把Z丟到Generator
link |
04:46.000
希望Input跟Output的Image
link |
04:48.000
越接近越好
link |
04:50.000
在Train的時候要記得
link |
04:52.000
這個Generator是不動的
link |
04:54.000
因為我們是要對這個Generator
link |
04:56.000
做逆向的工程
link |
04:58.000
用什麼樣的Z
link |
05:00.000
可以產生什麼樣的X
link |
05:02.000
所以這個Generator是不動的
link |
05:04.000
我們只Train這個Encoder
link |
05:06.000
然後在實作上
link |
05:08.000
這個Encoder跟Discriminator很像
link |
05:10.000
所以你可以拿Discriminator的參數
link |
05:12.000
來初始化這個Encoder的參數
link |
05:14.000
總之就是一個實驗的細節
link |
05:16.000
就是了
link |
05:18.000
接下來假設做了剛才那件事以後
link |
05:20.000
你就得到一個Encoder
link |
05:22.000
那個Encoder做的事情就是給一張Image
link |
05:24.000
他會告訴你說
link |
05:26.000
你可以用什麼樣的Vector
link |
05:28.000
來生成
link |
05:30.000
接下來你就把你Database裡面的Image
link |
05:32.000
都倒出來
link |
05:34.000
然後反推出他們的Vector
link |
05:36.000
就是
link |
05:38.000
這個Vector可以生成這張圖
link |
05:40.000
這個Vector生這張圖
link |
05:42.000
這個Vector生這張圖
link |
05:44.000
然後我們知道說
link |
05:46.000
這些Image
link |
05:48.000
他們的特徵我們是知道的
link |
05:50.000
這些是短髮的人臉
link |
05:52.000
這些是長髮的人臉
link |
05:54.000
你把短髮的人臉
link |
05:56.000
他的Code推出來
link |
05:58.000
再平均
link |
06:00.000
你就得到一個短髮的人臉的代表
link |
06:02.000
你把這個長髮的人臉的Code都平均
link |
06:04.000
你就得到一個長髮的人臉的代表
link |
06:06.000
再把它們相減
link |
06:08.000
你就知道說
link |
06:10.000
今天在這個Code的Space上面
link |
06:12.000
做什麼樣的變化
link |
06:14.000
就可以把短髮的臉變成長髮的臉
link |
06:16.000
你把這個短髮的臉
link |
06:18.000
加上這個向量Zlong
link |
06:20.000
他就會變成長髮
link |
06:22.000
這個就只是講一下Zlong怎麼來
link |
06:24.000
你就把這個
link |
06:26.000
長髮的ImageX
link |
06:28.000
他的Code都找出來
link |
06:30.000
把X丟到Encoder裡面把Code都找出來
link |
06:32.000
然後變平均
link |
06:34.000
那把這個不是長髮的
link |
06:36.000
短髮的Code都找出來
link |
06:38.000
平均到這個點
link |
06:40.000
把這樣的點相減
link |
06:42.000
你就得到Zlong這個向量
link |
06:44.000
接下來你在生成Image的時候
link |
06:46.000
給你一張短髮
link |
06:48.000
你要怎麼把它變成長髮呢
link |
06:50.000
你把X這張Image丟到Encoder裡面
link |
06:52.000
得到他的Code
link |
06:54.000
再加上Zlong得到新的Vector Z'
link |
06:56.000
再把Z'丟到Generator裡面
link |
06:58.000
你就可以產生一張長髮的圖了
link |
07:00.000
就這樣子
link |
07:02.000
所以剛才那個NVIDIA的Demo裡面
link |
07:04.000
他做的事情就是
link |
07:06.000
他不是做各種的調整
link |
07:08.000
他可以說變黑頭髮
link |
07:10.000
變男的變年輕的
link |
07:12.000
他就只是找出黑頭髮的Vector長什麼樣子
link |
07:14.000
年輕的Vector長什麼樣子
link |
07:16.000
是男的Vector長什麼樣子
link |
07:18.000
你給他任何一張Image
link |
07:20.000
他就是把那張Image變成Code
link |
07:22.000
再把那個Code加上你要的特徵的Vector
link |
07:24.000
然後變成新的Vector
link |
07:26.000
再丟到Generator
link |
07:28.000
就可以產生新的圖了
link |
07:30.000
所以剛才那個Demo就是這樣做
link |
07:32.000
link |
07:34.000
那這邊還有另外一個Demo
link |
07:36.000
這個Demo是一個智能的Photoshop
link |
07:38.000
智能的Photoshop
link |
07:44.000
我突然發現說
link |
07:46.000
沒有聲音
link |
07:48.000
不過沒有聲音你應該還是看得懂的
link |
08:18.000
OK
link |
08:20.000
OK
link |
08:22.000
OK
link |
08:24.000
OK
link |
08:26.000
OK
link |
08:28.000
OK
link |
08:30.000
OK
link |
08:32.000
OK
link |
08:34.000
OK
link |
08:36.000
OK
link |
08:38.000
OK
link |
08:40.000
OK
link |
08:42.000
OK
link |
08:44.000
OK
link |
08:46.000
OK
link |
08:48.000
OK
link |
08:50.000
OK
link |
08:52.000
OK
link |
08:54.000
OK
link |
08:56.000
OK
link |
08:58.000
OK
link |
09:00.000
OK
link |
09:02.000
OK
link |
09:04.000
OK
link |
09:06.000
OK
link |
09:10.000
OK
link |
09:12.000
OK
link |
09:14.000
OK
link |
09:16.000
OK
link |
09:20.000
OK
link |
09:22.000
OK
link |
09:24.000
OK
link |
09:26.000
OK
link |
09:28.000
OK
link |
09:30.000
OK
link |
09:32.000
OK
link |
09:34.000
OK
link |
09:36.000
OK
link |
09:38.000
OK
link |
09:40.000
OK
link |
09:42.000
OK
link |
09:44.000
OK
link |
09:46.000
OK
link |
09:48.000
OK
link |
09:50.000
OK
link |
09:52.000
OK
link |
09:54.000
OK
link |
09:56.000
OK
link |
09:58.000
OK
link |
10:00.000
OK
link |
10:02.000
OK
link |
10:06.000
OK
link |
10:08.000
OK
link |
10:10.000
OK
link |
10:12.000
OK
link |
10:16.000
OK
link |
10:18.000
OK
link |
10:20.000
OK
link |
10:22.000
OK
link |
10:24.000
OK
link |
10:26.000
OK
link |
10:28.000
OK
link |
10:30.000
OK
link |
10:32.000
OK
link |
10:34.000
OK
link |
10:36.000
OK
link |
10:38.000
OK
link |
10:40.000
OK
link |
10:44.000
OK
link |
10:46.000
OK
link |
10:48.000
OK
link |
10:50.000
OK
link |
10:52.000
OK
link |
10:54.000
OK
link |
10:56.000
OK
link |
10:58.000
OK
link |
11:00.000
OK
link |
11:02.000
OK
link |
11:04.000
OK
link |
11:06.000
OK
link |
11:08.000
OK
link |
11:12.000
OK
link |
11:14.000
OK
link |
11:16.000
OK
link |
11:18.000
OK
link |
11:20.000
OK
link |
11:22.000
OK
link |
11:24.000
OK
link |
11:26.000
OK
link |
11:28.000
OK
link |
11:30.000
OK
link |
11:32.000
OK
link |
11:34.000
OK
link |
11:36.000
OK
link |
11:38.000
OK
link |
11:40.000
OK
link |
11:42.000
OK
link |
11:44.000
OK
link |
11:46.000
OK
link |
11:48.000
OK
link |
11:50.000
OK
link |
11:52.000
OK
link |
11:54.000
OK
link |
11:58.000
OK
link |
12:00.000
OK
link |
12:02.000
OK
link |
12:06.000
OK
link |
12:08.000
OK
link |
12:10.000
OK
link |
12:12.000
OK
link |
12:14.000
OK
link |
12:16.000
OK
link |
12:18.000
OK
link |
12:20.000
OK
link |
12:22.000
OK
link |
12:24.000
OK
link |
12:26.000
OK
link |
12:28.000
OK
link |
12:30.000
OK
link |
12:32.000
OK
link |
12:34.000
OK
link |
12:36.000
OK
link |
12:38.000
OK
link |
12:40.000
OK
link |
12:42.000
OK
link |
12:44.000
OK
link |
12:46.000
OK
link |
12:48.000
OK
link |
12:50.000
OK
link |
12:54.000
OK
link |
12:56.000
OK
link |
12:58.000
OK
link |
13:00.000
OK
link |
13:02.000
OK
link |
13:04.000
OK
link |
13:06.000
OK
link |
13:08.000
OK
link |
13:10.000
OK
link |
13:12.000
OK
link |
13:14.000
OK
link |
13:16.000
OK
link |
13:18.000
OK
link |
13:20.000
OK
link |
13:24.000
OK
link |
13:26.000
OK
link |
13:30.000
OK
link |
13:32.000
OK
link |
13:34.000
OK
link |
13:36.000
OK
link |
13:38.000
OK
link |
13:40.000
OK
link |
13:42.000
OK
link |
13:44.000
OK
link |
13:46.000
OK
link |
13:48.000
OK
link |
13:50.000
OK
link |
13:52.000
OK
link |
13:54.000
OK
link |
13:56.000
OK
link |
14:00.000
OK
link |
14:02.000
OK
link |
14:04.000
OK
link |
14:06.000
OK
link |
14:08.000
OK
link |
14:10.000
OK
link |
14:12.000
OK
link |
14:14.000
OK
link |
14:16.000
OK
link |
14:18.000
OK
link |
14:20.000
OK
link |
14:22.000
OK
link |
14:26.000
OK
link |
14:28.000
OK
link |
14:30.000
OK
link |
14:32.000
OK
link |
14:34.000
OK
link |
14:36.000
OK
link |
14:38.000
OK
link |
14:40.000
OK
link |
14:42.000
OK
link |
14:44.000
OK
link |
14:46.000
OK
link |
14:48.000
OK
link |
14:50.000
OK
link |
14:52.000
OK
link |
14:54.000
OK
link |
14:56.000
OK
link |
14:58.000
OK
link |
15:00.000
OK
link |
15:02.000
OK
link |
15:04.000
OK
link |
15:06.000
OK
link |
15:08.000
OK
link |
15:12.000
OK
link |
15:14.000
OK
link |
15:16.000
OK
link |
15:18.000
OK
link |
15:20.000
OK
link |
15:24.000
OK
link |
15:26.000
OK
link |
15:28.000
OK
link |
15:30.000
OK
link |
15:32.000
OK
link |
15:34.000
OK
link |
15:36.000
OK
link |
15:38.000
OK
link |
15:40.000
OK
link |
15:42.000
OK
link |
15:44.000
OK
link |
15:46.000
OK
link |
15:50.000
OK
link |
15:52.000
OK
link |
15:54.000
OK
link |
15:56.000
OK
link |
15:58.000
OK
link |
16:00.000
OK
link |
16:02.000
OK
link |
16:04.000
OK
link |
16:06.000
OK
link |
16:08.000
OK
link |
16:10.000
OK
link |
16:12.000
OK
link |
16:14.000
OK
link |
16:18.000
OK
link |
16:20.000
OK
link |
16:22.000
OK
link |
16:24.000
OK
link |
16:26.000
OK
link |
16:28.000
OK
link |
16:30.000
OK
link |
16:32.000
OK
link |
16:34.000
OK
link |
16:36.000
OK
link |
16:38.000
OK
link |
16:40.000
OK
link |
16:42.000
OK
link |
16:46.000
OK
link |
16:48.000
OK
link |
16:50.000
OK
link |
16:52.000
OK
link |
16:54.000
OK
link |
16:56.000
OK
link |
16:58.000
OK
link |
17:00.000
OK
link |
17:02.000
OK
link |
17:04.000
OK
link |
17:06.000
OK
link |
17:08.000
OK
link |
17:10.000
OK
link |
17:14.000
OK
link |
17:16.000
OK
link |
17:18.000
OK
link |
17:20.000
OK
link |
17:22.000
OK
link |
17:24.000
OK
link |
17:26.000
OK
link |
17:28.000
OK
link |
17:30.000
OK
link |
17:32.000
OK
link |
17:34.000
OK
link |
17:36.000
OK
link |
17:38.000
OK
link |
17:42.000
OK
link |
17:44.000
OK
link |
17:46.000
OK
link |
17:48.000
OK
link |
17:50.000
OK
link |
17:52.000
OK
link |
17:54.000
OK
link |
17:56.000
OK
link |
17:58.000
OK
link |
18:00.000
OK
link |
18:02.000
OK
link |
18:04.000
OK
link |
18:06.000
OK
link |
18:10.000
OK
link |
18:12.000
OK
link |
18:14.000
OK
link |
18:16.000
OK
link |
18:18.000
OK
link |
18:20.000
OK
link |
18:22.000
OK
link |
18:24.000
OK
link |
18:26.000
OK
link |
18:28.000
OK
link |
18:30.000
OK
link |
18:32.000
OK
link |
18:34.000
OK
link |
18:38.000
OK
link |
18:40.000
OK
link |
18:42.000
OK
link |
18:44.000
OK
link |
18:46.000
OK
link |
18:48.000
OK
link |
18:50.000
OK
link |
18:52.000
OK
link |
18:54.000
OK
link |
18:56.000
OK
link |
18:58.000
OK
link |
19:00.000
OK
link |
19:02.000
OK
link |
19:06.000
OK
link |
19:08.000
OK
link |
19:10.000
OK
link |
19:12.000
OK
link |
19:14.000
OK
link |
19:16.000
OK
link |
19:18.000
OK
link |
19:20.000
OK
link |
19:22.000
OK
link |
19:24.000
OK
link |
19:26.000
OK
link |
19:28.000
OK
link |
19:30.000
OK
link |
19:34.000
OK
link |
19:36.000
OK
link |
19:38.000
OK
link |
19:40.000
OK
link |
19:42.000
OK
link |
19:44.000
OK
link |
19:46.000
OK
link |
19:48.000
OK
link |
19:50.000
OK
link |
19:52.000
OK
link |
19:54.000
OK
link |
19:56.000
OK
link |
19:58.000
OK
link |
20:02.000
OK
link |
20:04.000
OK
link |
20:06.000
OK
link |
20:08.000
OK
link |
20:10.000
OK
link |
20:12.000
OK
link |
20:14.000
OK
link |
20:16.000
OK
link |
20:18.000
OK
link |
20:20.000
OK
link |
20:22.000
OK
link |
20:24.000
OK
link |
20:26.000
OK
link |
20:30.000
OK
link |
20:32.000
OK
link |
20:34.000
OK
link |
20:36.000
OK
link |
20:38.000
OK
link |
20:40.000
OK
link |
20:42.000
OK
link |
20:44.000
OK
link |
20:46.000
OK
link |
20:48.000
OK
link |
20:50.000
OK
link |
20:52.000
OK
link |
20:54.000
OK
link |
20:58.000
OK
link |
21:00.000
OK
link |
21:02.000
OK
link |
21:04.000
OK
link |
21:06.000
OK
link |
21:08.000
OK
link |
21:10.000
OK
link |
21:12.000
OK
link |
21:14.000
OK
link |
21:16.000
OK
link |
21:18.000
OK
link |
21:20.000
OK
link |
21:22.000
OK
link |
21:24.000
OK
link |
21:26.000
OK
link |
21:28.000
OK
link |
21:30.000
OK
link |
21:32.000
OK
link |
21:34.000
OK
link |
21:36.000
OK
link |
21:38.000
OK
link |
21:40.000
OK
link |
21:42.000
OK
link |
21:46.000
OK
link |
21:48.000
OK
link |
21:50.000
OK
link |
21:52.000
OK
link |
21:54.000
OK
link |
21:56.000
OK
link |
21:58.000
OK
link |
22:00.000
OK
link |
22:02.000
OK
link |
22:04.000
OK
link |
22:06.000
OK
link |
22:08.000
OK
link |
22:10.000
OK
link |
22:14.000
OK
link |
22:16.000
OK
link |
22:18.000
OK
link |
22:20.000
OK
link |
22:24.000
OK
link |
22:26.000
OK
link |
22:28.000
OK
link |
22:30.000
OK
link |
22:32.000
OK
link |
22:34.000
OK
link |
22:36.000
OK
link |
22:38.000
OK
link |
22:40.000
OK
link |
22:42.000
OK
link |
22:44.000
OK