diff --git a/stargan/__pycache__/attacks.cpython-37.pyc b/stargan/__pycache__/attacks.cpython-37.pyc index 65ddb78..f209dca 100644 Binary files a/stargan/__pycache__/attacks.cpython-37.pyc and b/stargan/__pycache__/attacks.cpython-37.pyc differ diff --git a/stargan/__pycache__/model.cpython-37.pyc b/stargan/__pycache__/model.cpython-37.pyc index d0fddac..9459c8a 100644 Binary files a/stargan/__pycache__/model.cpython-37.pyc and b/stargan/__pycache__/model.cpython-37.pyc differ diff --git a/stargan/__pycache__/solver.cpython-37.pyc b/stargan/__pycache__/solver.cpython-37.pyc index 5047032..e12d25a 100644 Binary files a/stargan/__pycache__/solver.cpython-37.pyc and b/stargan/__pycache__/solver.cpython-37.pyc differ diff --git a/stargan/attacks.py b/stargan/attacks.py index 30a294e..0d42ac7 100644 --- a/stargan/attacks.py +++ b/stargan/attacks.py @@ -6,8 +6,10 @@ from scipy.stats import truncnorm import torch import torch.nn as nn +import defenses.smoothing as smoothing + class LinfPGDAttack(object): - def __init__(self, model=None, device=None, epsilon=0.05, k=20, a=0.01, feat = None): + def __init__(self, model=None, device=None, epsilon=0.05, k=30, a=0.01, feat = None): self.model = model self.epsilon = epsilon self.k = k @@ -48,6 +50,104 @@ class LinfPGDAttack(object): return X, X - X_nat + def perturb_blur(self, X_nat, y, c_trg): + """ + Given examples (X_nat, y), returns adversarial + examples within epsilon of X_nat in l_infinity norm. + """ + X = X_nat.clone().detach_() + X_orig = X_nat.clone().detach_() + + ks = 11 + sig = 1 + + # preproc = smoothing.AverageSmoothing2D(channels=3, kernel_size=ks).to(self.device) + preproc = smoothing.GaussianSmoothing2D(sigma=sig, channels=3, kernel_size=ks).to(self.device) + + # blurred_image = smoothing.AverageSmoothing2D(channels=3, kernel_size=ks).to(self.device)(X_orig) + blurred_image = smoothing.GaussianSmoothing2D(sigma=sig, channels=3, kernel_size=ks).to(self.device)(X_orig) + + for i in range(self.k): + # print(i) + X.requires_grad = True + output, feats = self.model.forward_blur(X, c_trg, preproc) + + if self.feat: + # print('self.feat ', self.feat) + output = feats[self.feat] + y = np.zeros(output.shape) + y = torch.FloatTensor(y).to(self.device) + + self.model.zero_grad() + loss = -self.loss_fn(output, y) + loss.backward() + grad = X.grad + + X_adv = X + self.a * grad.sign() + + eta = torch.clamp(X_adv - X_nat, min=-self.epsilon, max=self.epsilon) + X = torch.clamp(X_nat + eta, min=-1, max=1).detach_() + + self.model.zero_grad() + + return X, X - X_nat, blurred_image + + def perturb_blur_iter(self, X_nat, y, c_trg): + """ + Given examples (X_nat, y), returns adversarial + examples within epsilon of X_nat in l_infinity norm. + """ + X = X_nat.clone().detach_() + + ks_gauss = 11 + ks_avg = 3 + sig = 1 + blur_type = 1 + + for i in range(self.k): + # Declare smoothing layer + if blur_type == 1: + preproc = smoothing.AverageSmoothing2D(channels=3, kernel_size=ks_avg).to(self.device) + elif blur_type == 2: + preproc = smoothing.GaussianSmoothing2D(sigma=sig, channels=3, kernel_size=ks_gauss).to(self.device) + + X.requires_grad = True + output, feats = self.model.forward_blur(X, c_trg, preproc) + + if self.feat: + # print('self.feat ', self.feat) + output = feats[self.feat] + y = np.zeros(output.shape) + y = torch.FloatTensor(y).to(self.device) + + self.model.zero_grad() + loss = -self.loss_fn(output, y) + loss.backward() + grad = X.grad + + X_adv = X + self.a * grad.sign() + + eta = torch.clamp(X_adv - X_nat, min=-self.epsilon, max=self.epsilon) + X = torch.clamp(X_nat + eta, min=-1, max=1).detach_() + + if blur_type == 1: + sig += 0.2 + if sig == 3.2: + blur_type = 2 + sig = 1 + if blur_type == 2: + ks_avg += 2 + if ks_avg == 11: + blur_type = 1 + ks_avg = 3 + + print(blur_type, sig, ks_avg) + + + self.model.zero_grad() + + return X, X - X_nat + def clip_tensor(X, Y, Z): # Clip X with Y min and Z max X_np = X.data.cpu().numpy() diff --git a/stargan/model.py b/stargan/model.py index a8e91e8..5eefdc1 100644 --- a/stargan/model.py +++ b/stargan/model.py @@ -73,6 +73,19 @@ class Generator(nn.Module): return x, feature_maps + def forward_blur(self, x, c, blur_layer): + c = c.view(c.size(0), c.size(1), 1, 1) + c = c.repeat(1, 1, x.size(2), x.size(3)) + x = blur_layer(x) + x = torch.cat([x, c], dim=1) + + feature_maps = [] + # Get intermediate feature maps + for layer in self.main: + x = layer(x) + feature_maps.append(x) + + return x, feature_maps class Discriminator(nn.Module): """Discriminator network with PatchGAN.""" @@ -134,7 +147,7 @@ class AvgBlurGenerator(nn.Module): layers_preproc = [] # layers_preproc.append(nn.ReflectionPad2d(2)) - layers_preproc.append(smoothing.AverageSmoothing2D(channels=3+c_dim, kernel_size=5)) + layers_preproc.append(smoothing.AverageSmoothing2D(channels=3+c_dim, kernel_size=21)) self.preprocessing = nn.Sequential(*layers_preproc) def forward(self, x, c): diff --git a/stargan/results/1-images.jpg b/stargan/results/1-images.jpg new file mode 100644 index 0000000..0cc87cb Binary files /dev/null and b/stargan/results/1-images.jpg differ diff --git a/stargan/results/10-images.jpg b/stargan/results/10-images.jpg new file mode 100644 index 0000000..2f348d8 Binary files /dev/null and b/stargan/results/10-images.jpg differ diff --git a/stargan/results/100-images.jpg b/stargan/results/100-images.jpg new file mode 100644 index 0000000..856e1d7 Binary files /dev/null and b/stargan/results/100-images.jpg differ diff --git a/stargan/results/101-images.jpg b/stargan/results/101-images.jpg new file mode 100644 index 0000000..020c41f Binary files /dev/null and b/stargan/results/101-images.jpg differ diff --git a/stargan/results/102-images.jpg b/stargan/results/102-images.jpg new file mode 100644 index 0000000..6299f8f Binary files /dev/null and b/stargan/results/102-images.jpg differ diff --git a/stargan/results/103-images.jpg b/stargan/results/103-images.jpg new file mode 100644 index 0000000..5a2c67f Binary files /dev/null and b/stargan/results/103-images.jpg differ diff --git a/stargan/results/104-images.jpg b/stargan/results/104-images.jpg new file mode 100644 index 0000000..fdf1392 Binary files /dev/null and b/stargan/results/104-images.jpg differ diff --git a/stargan/results/105-images.jpg b/stargan/results/105-images.jpg new file mode 100644 index 0000000..6e85bec Binary files /dev/null and b/stargan/results/105-images.jpg differ diff --git a/stargan/results/106-images.jpg b/stargan/results/106-images.jpg new file mode 100644 index 0000000..11ac304 Binary files /dev/null and b/stargan/results/106-images.jpg differ diff --git a/stargan/results/107-images.jpg b/stargan/results/107-images.jpg new file mode 100644 index 0000000..bdce884 Binary files /dev/null and b/stargan/results/107-images.jpg differ diff --git a/stargan/results/108-images.jpg b/stargan/results/108-images.jpg new file mode 100644 index 0000000..096732d Binary files /dev/null and b/stargan/results/108-images.jpg differ diff --git a/stargan/results/109-images.jpg b/stargan/results/109-images.jpg new file mode 100644 index 0000000..402c109 Binary files /dev/null and b/stargan/results/109-images.jpg differ diff --git a/stargan/results/11-images.jpg b/stargan/results/11-images.jpg new file mode 100644 index 0000000..0db779f Binary files /dev/null and b/stargan/results/11-images.jpg differ diff --git a/stargan/results/110-images.jpg b/stargan/results/110-images.jpg new file mode 100644 index 0000000..0b15f84 Binary files /dev/null and b/stargan/results/110-images.jpg differ diff --git a/stargan/results/111-images.jpg b/stargan/results/111-images.jpg new file mode 100644 index 0000000..4332a96 Binary files /dev/null and b/stargan/results/111-images.jpg differ diff --git a/stargan/results/112-images.jpg b/stargan/results/112-images.jpg new file mode 100644 index 0000000..aa77f37 Binary files /dev/null and b/stargan/results/112-images.jpg differ diff --git a/stargan/results/113-images.jpg b/stargan/results/113-images.jpg new file mode 100644 index 0000000..1d7fb3a Binary files /dev/null and b/stargan/results/113-images.jpg differ diff --git a/stargan/results/114-images.jpg b/stargan/results/114-images.jpg new file mode 100644 index 0000000..575ba42 Binary files /dev/null and b/stargan/results/114-images.jpg differ diff --git a/stargan/results/115-images.jpg b/stargan/results/115-images.jpg new file mode 100644 index 0000000..602eb56 Binary files /dev/null and b/stargan/results/115-images.jpg differ diff --git a/stargan/results/116-images.jpg b/stargan/results/116-images.jpg new file mode 100644 index 0000000..bda5293 Binary files /dev/null and b/stargan/results/116-images.jpg differ diff --git a/stargan/results/117-images.jpg b/stargan/results/117-images.jpg new file mode 100644 index 0000000..eb72dc1 Binary files /dev/null and b/stargan/results/117-images.jpg differ diff --git a/stargan/results/118-images.jpg b/stargan/results/118-images.jpg new file mode 100644 index 0000000..6073996 Binary files /dev/null and b/stargan/results/118-images.jpg differ diff --git a/stargan/results/119-images.jpg b/stargan/results/119-images.jpg new file mode 100644 index 0000000..39730e0 Binary files /dev/null and b/stargan/results/119-images.jpg differ diff --git a/stargan/results/12-images.jpg b/stargan/results/12-images.jpg new file mode 100644 index 0000000..5321601 Binary files /dev/null and b/stargan/results/12-images.jpg differ diff --git a/stargan/results/120-images.jpg b/stargan/results/120-images.jpg new file mode 100644 index 0000000..325333e Binary files /dev/null and b/stargan/results/120-images.jpg differ diff --git a/stargan/results/121-images.jpg b/stargan/results/121-images.jpg new file mode 100644 index 0000000..6e43b9b Binary files /dev/null and b/stargan/results/121-images.jpg differ diff --git a/stargan/results/122-images.jpg b/stargan/results/122-images.jpg new file mode 100644 index 0000000..dc78a19 Binary files /dev/null and b/stargan/results/122-images.jpg differ diff --git a/stargan/results/123-images.jpg b/stargan/results/123-images.jpg new file mode 100644 index 0000000..927df40 Binary files /dev/null and b/stargan/results/123-images.jpg differ diff --git a/stargan/results/124-images.jpg b/stargan/results/124-images.jpg new file mode 100644 index 0000000..4672a16 Binary files /dev/null and b/stargan/results/124-images.jpg differ diff --git a/stargan/results/125-images.jpg b/stargan/results/125-images.jpg new file mode 100644 index 0000000..190d670 Binary files /dev/null and b/stargan/results/125-images.jpg differ diff --git a/stargan/results/126-images.jpg b/stargan/results/126-images.jpg new file mode 100644 index 0000000..a537c77 Binary files /dev/null and b/stargan/results/126-images.jpg differ diff --git a/stargan/results/127-images.jpg b/stargan/results/127-images.jpg new file mode 100644 index 0000000..514580d Binary files /dev/null and b/stargan/results/127-images.jpg differ diff --git a/stargan/results/128-images.jpg b/stargan/results/128-images.jpg new file mode 100644 index 0000000..85fc2be Binary files /dev/null and b/stargan/results/128-images.jpg differ diff --git a/stargan/results/129-images.jpg b/stargan/results/129-images.jpg new file mode 100644 index 0000000..289b24b Binary files /dev/null and b/stargan/results/129-images.jpg differ diff --git a/stargan/results/13-images.jpg b/stargan/results/13-images.jpg new file mode 100644 index 0000000..b20fe3b Binary files /dev/null and b/stargan/results/13-images.jpg differ diff --git a/stargan/results/130-images.jpg b/stargan/results/130-images.jpg new file mode 100644 index 0000000..2749e74 Binary files /dev/null and b/stargan/results/130-images.jpg differ diff --git a/stargan/results/131-images.jpg b/stargan/results/131-images.jpg new file mode 100644 index 0000000..582ec24 Binary files /dev/null and b/stargan/results/131-images.jpg differ diff --git a/stargan/results/132-images.jpg b/stargan/results/132-images.jpg new file mode 100644 index 0000000..6962bfa Binary files /dev/null and b/stargan/results/132-images.jpg differ diff --git a/stargan/results/133-images.jpg b/stargan/results/133-images.jpg new file mode 100644 index 0000000..eb7cc3c Binary files /dev/null and b/stargan/results/133-images.jpg differ diff --git a/stargan/results/134-images.jpg b/stargan/results/134-images.jpg new file mode 100644 index 0000000..e39c38e Binary files /dev/null and b/stargan/results/134-images.jpg differ diff --git a/stargan/results/135-images.jpg b/stargan/results/135-images.jpg new file mode 100644 index 0000000..cbffa9c Binary files /dev/null and b/stargan/results/135-images.jpg differ diff --git a/stargan/results/136-images.jpg b/stargan/results/136-images.jpg new file mode 100644 index 0000000..3ef2739 Binary files /dev/null and b/stargan/results/136-images.jpg differ diff --git a/stargan/results/137-images.jpg b/stargan/results/137-images.jpg new file mode 100644 index 0000000..6f7d89b Binary files /dev/null and b/stargan/results/137-images.jpg differ diff --git a/stargan/results/138-images.jpg b/stargan/results/138-images.jpg new file mode 100644 index 0000000..1235061 Binary files /dev/null and b/stargan/results/138-images.jpg differ diff --git a/stargan/results/139-images.jpg b/stargan/results/139-images.jpg new file mode 100644 index 0000000..7b34c23 Binary files /dev/null and b/stargan/results/139-images.jpg differ diff --git a/stargan/results/14-images.jpg b/stargan/results/14-images.jpg new file mode 100644 index 0000000..f20d0b3 Binary files /dev/null and b/stargan/results/14-images.jpg differ diff --git a/stargan/results/140-images.jpg b/stargan/results/140-images.jpg new file mode 100644 index 0000000..ed4fd94 Binary files /dev/null and b/stargan/results/140-images.jpg differ diff --git a/stargan/results/141-images.jpg b/stargan/results/141-images.jpg new file mode 100644 index 0000000..e5afd78 Binary files /dev/null and b/stargan/results/141-images.jpg differ diff --git a/stargan/results/142-images.jpg b/stargan/results/142-images.jpg new file mode 100644 index 0000000..ddd9ff6 Binary files /dev/null and b/stargan/results/142-images.jpg differ diff --git a/stargan/results/143-images.jpg b/stargan/results/143-images.jpg new file mode 100644 index 0000000..52479f9 Binary files /dev/null and b/stargan/results/143-images.jpg differ diff --git a/stargan/results/144-images.jpg b/stargan/results/144-images.jpg new file mode 100644 index 0000000..1f24d6b Binary files /dev/null and b/stargan/results/144-images.jpg differ diff --git a/stargan/results/145-images.jpg b/stargan/results/145-images.jpg new file mode 100644 index 0000000..b55e11f Binary files /dev/null and b/stargan/results/145-images.jpg differ diff --git a/stargan/results/146-images.jpg b/stargan/results/146-images.jpg new file mode 100644 index 0000000..3baf88e Binary files /dev/null and b/stargan/results/146-images.jpg differ diff --git a/stargan/results/147-images.jpg b/stargan/results/147-images.jpg new file mode 100644 index 0000000..49a7aca Binary files /dev/null and b/stargan/results/147-images.jpg differ diff --git a/stargan/results/148-images.jpg b/stargan/results/148-images.jpg new file mode 100644 index 0000000..e0f5ed8 Binary files /dev/null and b/stargan/results/148-images.jpg differ diff --git a/stargan/results/149-images.jpg b/stargan/results/149-images.jpg new file mode 100644 index 0000000..813254d Binary files /dev/null and b/stargan/results/149-images.jpg differ diff --git a/stargan/results/15-images.jpg b/stargan/results/15-images.jpg new file mode 100644 index 0000000..4efce63 Binary files /dev/null and b/stargan/results/15-images.jpg differ diff --git a/stargan/results/150-images.jpg b/stargan/results/150-images.jpg new file mode 100644 index 0000000..98b657f Binary files /dev/null and b/stargan/results/150-images.jpg differ diff --git a/stargan/results/151-images.jpg b/stargan/results/151-images.jpg new file mode 100644 index 0000000..ef58981 Binary files /dev/null and b/stargan/results/151-images.jpg differ diff --git a/stargan/results/152-images.jpg b/stargan/results/152-images.jpg new file mode 100644 index 0000000..8aad464 Binary files /dev/null and b/stargan/results/152-images.jpg differ diff --git a/stargan/results/153-images.jpg b/stargan/results/153-images.jpg new file mode 100644 index 0000000..6c79fc6 Binary files /dev/null and b/stargan/results/153-images.jpg differ diff --git a/stargan/results/154-images.jpg b/stargan/results/154-images.jpg new file mode 100644 index 0000000..98b7d6d Binary files /dev/null and b/stargan/results/154-images.jpg differ diff --git a/stargan/results/155-images.jpg b/stargan/results/155-images.jpg new file mode 100644 index 0000000..9359ca3 Binary files /dev/null and b/stargan/results/155-images.jpg differ diff --git a/stargan/results/156-images.jpg b/stargan/results/156-images.jpg new file mode 100644 index 0000000..35d4e48 Binary files /dev/null and b/stargan/results/156-images.jpg differ diff --git a/stargan/results/157-images.jpg b/stargan/results/157-images.jpg new file mode 100644 index 0000000..6046ec5 Binary files /dev/null and b/stargan/results/157-images.jpg differ diff --git a/stargan/results/158-images.jpg b/stargan/results/158-images.jpg new file mode 100644 index 0000000..a3aa626 Binary files /dev/null and b/stargan/results/158-images.jpg differ diff --git a/stargan/results/159-images.jpg b/stargan/results/159-images.jpg new file mode 100644 index 0000000..25a2a6a Binary files /dev/null and b/stargan/results/159-images.jpg differ diff --git a/stargan/results/16-images.jpg b/stargan/results/16-images.jpg new file mode 100644 index 0000000..d48ffc7 Binary files /dev/null and b/stargan/results/16-images.jpg differ diff --git a/stargan/results/160-images.jpg b/stargan/results/160-images.jpg new file mode 100644 index 0000000..3aadc23 Binary files /dev/null and b/stargan/results/160-images.jpg differ diff --git a/stargan/results/161-images.jpg b/stargan/results/161-images.jpg new file mode 100644 index 0000000..4490cf2 Binary files /dev/null and b/stargan/results/161-images.jpg differ diff --git a/stargan/results/162-images.jpg b/stargan/results/162-images.jpg new file mode 100644 index 0000000..df19fb1 Binary files /dev/null and b/stargan/results/162-images.jpg differ diff --git a/stargan/results/163-images.jpg b/stargan/results/163-images.jpg new file mode 100644 index 0000000..e838913 Binary files /dev/null and b/stargan/results/163-images.jpg differ diff --git a/stargan/results/164-images.jpg b/stargan/results/164-images.jpg new file mode 100644 index 0000000..914d575 Binary files /dev/null and b/stargan/results/164-images.jpg differ diff --git a/stargan/results/165-images.jpg b/stargan/results/165-images.jpg new file mode 100644 index 0000000..ec0ef99 Binary files /dev/null and b/stargan/results/165-images.jpg differ diff --git a/stargan/results/166-images.jpg b/stargan/results/166-images.jpg new file mode 100644 index 0000000..37172c3 Binary files /dev/null and b/stargan/results/166-images.jpg differ diff --git a/stargan/results/167-images.jpg b/stargan/results/167-images.jpg new file mode 100644 index 0000000..7462891 Binary files /dev/null and b/stargan/results/167-images.jpg differ diff --git a/stargan/results/168-images.jpg b/stargan/results/168-images.jpg new file mode 100644 index 0000000..7faa440 Binary files /dev/null and b/stargan/results/168-images.jpg differ diff --git a/stargan/results/169-images.jpg b/stargan/results/169-images.jpg new file mode 100644 index 0000000..9ba9411 Binary files /dev/null and b/stargan/results/169-images.jpg differ diff --git a/stargan/results/17-images.jpg b/stargan/results/17-images.jpg new file mode 100644 index 0000000..818d7bf Binary files /dev/null and b/stargan/results/17-images.jpg differ diff --git a/stargan/results/170-images.jpg b/stargan/results/170-images.jpg new file mode 100644 index 0000000..abc9e1e Binary files /dev/null and b/stargan/results/170-images.jpg differ diff --git a/stargan/results/171-images.jpg b/stargan/results/171-images.jpg new file mode 100644 index 0000000..ac10c29 Binary files /dev/null and b/stargan/results/171-images.jpg differ diff --git a/stargan/results/172-images.jpg b/stargan/results/172-images.jpg new file mode 100644 index 0000000..6e5bd9c Binary files /dev/null and b/stargan/results/172-images.jpg differ diff --git a/stargan/results/173-images.jpg b/stargan/results/173-images.jpg new file mode 100644 index 0000000..23e5478 Binary files /dev/null and b/stargan/results/173-images.jpg differ diff --git a/stargan/results/174-images.jpg b/stargan/results/174-images.jpg new file mode 100644 index 0000000..02996e3 Binary files /dev/null and b/stargan/results/174-images.jpg differ diff --git a/stargan/results/175-images.jpg b/stargan/results/175-images.jpg new file mode 100644 index 0000000..b4ade32 Binary files /dev/null and b/stargan/results/175-images.jpg differ diff --git a/stargan/results/176-images.jpg b/stargan/results/176-images.jpg new file mode 100644 index 0000000..b89f2ed Binary files /dev/null and b/stargan/results/176-images.jpg differ diff --git a/stargan/results/177-images.jpg b/stargan/results/177-images.jpg new file mode 100644 index 0000000..10e30cf Binary files /dev/null and b/stargan/results/177-images.jpg differ diff --git a/stargan/results/178-images.jpg b/stargan/results/178-images.jpg new file mode 100644 index 0000000..7156061 Binary files /dev/null and b/stargan/results/178-images.jpg differ diff --git a/stargan/results/179-images.jpg b/stargan/results/179-images.jpg new file mode 100644 index 0000000..9f4eac2 Binary files /dev/null and b/stargan/results/179-images.jpg differ diff --git a/stargan/results/18-images.jpg b/stargan/results/18-images.jpg new file mode 100644 index 0000000..ce50e7c Binary files /dev/null and b/stargan/results/18-images.jpg differ diff --git a/stargan/results/180-images.jpg b/stargan/results/180-images.jpg new file mode 100644 index 0000000..46f8646 Binary files /dev/null and b/stargan/results/180-images.jpg differ diff --git a/stargan/results/181-images.jpg b/stargan/results/181-images.jpg new file mode 100644 index 0000000..0afbfa4 Binary files /dev/null and b/stargan/results/181-images.jpg differ diff --git a/stargan/results/182-images.jpg b/stargan/results/182-images.jpg new file mode 100644 index 0000000..45d81e2 Binary files /dev/null and b/stargan/results/182-images.jpg differ diff --git a/stargan/results/183-images.jpg b/stargan/results/183-images.jpg new file mode 100644 index 0000000..6df1560 Binary files /dev/null and b/stargan/results/183-images.jpg differ diff --git a/stargan/results/184-images.jpg b/stargan/results/184-images.jpg new file mode 100644 index 0000000..5dc3bd1 Binary files /dev/null and b/stargan/results/184-images.jpg differ diff --git a/stargan/results/185-images.jpg b/stargan/results/185-images.jpg new file mode 100644 index 0000000..c80697e Binary files /dev/null and b/stargan/results/185-images.jpg differ diff --git a/stargan/results/186-images.jpg b/stargan/results/186-images.jpg new file mode 100644 index 0000000..3b6ffc9 Binary files /dev/null and b/stargan/results/186-images.jpg differ diff --git a/stargan/results/187-images.jpg b/stargan/results/187-images.jpg new file mode 100644 index 0000000..dddf29f Binary files /dev/null and b/stargan/results/187-images.jpg differ diff --git a/stargan/results/188-images.jpg b/stargan/results/188-images.jpg new file mode 100644 index 0000000..cfae73c Binary files /dev/null and b/stargan/results/188-images.jpg differ diff --git a/stargan/results/189-images.jpg b/stargan/results/189-images.jpg new file mode 100644 index 0000000..8d6bd1c Binary files /dev/null and b/stargan/results/189-images.jpg differ diff --git a/stargan/results/19-images.jpg b/stargan/results/19-images.jpg new file mode 100644 index 0000000..2793f0f Binary files /dev/null and b/stargan/results/19-images.jpg differ diff --git a/stargan/results/190-images.jpg b/stargan/results/190-images.jpg new file mode 100644 index 0000000..c2bb454 Binary files /dev/null and b/stargan/results/190-images.jpg differ diff --git a/stargan/results/191-images.jpg b/stargan/results/191-images.jpg new file mode 100644 index 0000000..584cfb2 Binary files /dev/null and b/stargan/results/191-images.jpg differ diff --git a/stargan/results/192-images.jpg b/stargan/results/192-images.jpg new file mode 100644 index 0000000..461efb1 Binary files /dev/null and b/stargan/results/192-images.jpg differ diff --git a/stargan/results/193-images.jpg b/stargan/results/193-images.jpg new file mode 100644 index 0000000..245f2d0 Binary files /dev/null and b/stargan/results/193-images.jpg differ diff --git a/stargan/results/194-images.jpg b/stargan/results/194-images.jpg new file mode 100644 index 0000000..93b7b8c Binary files /dev/null and b/stargan/results/194-images.jpg differ diff --git a/stargan/results/195-images.jpg b/stargan/results/195-images.jpg new file mode 100644 index 0000000..6bab8df Binary files /dev/null and b/stargan/results/195-images.jpg differ diff --git a/stargan/results/196-images.jpg b/stargan/results/196-images.jpg new file mode 100644 index 0000000..114fb03 Binary files /dev/null and b/stargan/results/196-images.jpg differ diff --git a/stargan/results/197-images.jpg b/stargan/results/197-images.jpg new file mode 100644 index 0000000..40a350b Binary files /dev/null and b/stargan/results/197-images.jpg differ diff --git a/stargan/results/198-images.jpg b/stargan/results/198-images.jpg new file mode 100644 index 0000000..1d0990c Binary files /dev/null and b/stargan/results/198-images.jpg differ diff --git a/stargan/results/199-images.jpg b/stargan/results/199-images.jpg new file mode 100644 index 0000000..98d13a9 Binary files /dev/null and b/stargan/results/199-images.jpg differ diff --git a/stargan/results/2-images.jpg b/stargan/results/2-images.jpg new file mode 100644 index 0000000..1e3be06 Binary files /dev/null and b/stargan/results/2-images.jpg differ diff --git a/stargan/results/20-images.jpg b/stargan/results/20-images.jpg new file mode 100644 index 0000000..5dcf1a6 Binary files /dev/null and b/stargan/results/20-images.jpg differ diff --git a/stargan/results/200-images.jpg b/stargan/results/200-images.jpg new file mode 100644 index 0000000..8348688 Binary files /dev/null and b/stargan/results/200-images.jpg differ diff --git a/stargan/results/21-images.jpg b/stargan/results/21-images.jpg new file mode 100644 index 0000000..3b6774e Binary files /dev/null and b/stargan/results/21-images.jpg differ diff --git a/stargan/results/22-images.jpg b/stargan/results/22-images.jpg new file mode 100644 index 0000000..894fd79 Binary files /dev/null and b/stargan/results/22-images.jpg differ diff --git a/stargan/results/23-images.jpg b/stargan/results/23-images.jpg new file mode 100644 index 0000000..a725093 Binary files /dev/null and b/stargan/results/23-images.jpg differ diff --git a/stargan/results/24-images.jpg b/stargan/results/24-images.jpg new file mode 100644 index 0000000..2eebb09 Binary files /dev/null and b/stargan/results/24-images.jpg differ diff --git a/stargan/results/25-images.jpg b/stargan/results/25-images.jpg new file mode 100644 index 0000000..895ba50 Binary files /dev/null and b/stargan/results/25-images.jpg differ diff --git a/stargan/results/26-images.jpg b/stargan/results/26-images.jpg new file mode 100644 index 0000000..76c5b93 Binary files /dev/null and b/stargan/results/26-images.jpg differ diff --git a/stargan/results/27-images.jpg b/stargan/results/27-images.jpg new file mode 100644 index 0000000..aeaa4f5 Binary files /dev/null and b/stargan/results/27-images.jpg differ diff --git a/stargan/results/28-images.jpg b/stargan/results/28-images.jpg new file mode 100644 index 0000000..8362948 Binary files /dev/null and b/stargan/results/28-images.jpg differ diff --git a/stargan/results/29-images.jpg b/stargan/results/29-images.jpg new file mode 100644 index 0000000..bd6b8dc Binary files /dev/null and b/stargan/results/29-images.jpg differ diff --git a/stargan/results/3-images.jpg b/stargan/results/3-images.jpg new file mode 100644 index 0000000..1c8855a Binary files /dev/null and b/stargan/results/3-images.jpg differ diff --git a/stargan/results/30-images.jpg b/stargan/results/30-images.jpg new file mode 100644 index 0000000..2b6f3e8 Binary files /dev/null and b/stargan/results/30-images.jpg differ diff --git a/stargan/results/31-images.jpg b/stargan/results/31-images.jpg new file mode 100644 index 0000000..e9c9d8b Binary files /dev/null and b/stargan/results/31-images.jpg differ diff --git a/stargan/results/32-images.jpg b/stargan/results/32-images.jpg new file mode 100644 index 0000000..f03bd91 Binary files /dev/null and b/stargan/results/32-images.jpg differ diff --git a/stargan/results/33-images.jpg b/stargan/results/33-images.jpg new file mode 100644 index 0000000..ab12751 Binary files /dev/null and b/stargan/results/33-images.jpg differ diff --git a/stargan/results/34-images.jpg b/stargan/results/34-images.jpg new file mode 100644 index 0000000..51f6d63 Binary files /dev/null and b/stargan/results/34-images.jpg differ diff --git a/stargan/results/35-images.jpg b/stargan/results/35-images.jpg new file mode 100644 index 0000000..60a4774 Binary files /dev/null and b/stargan/results/35-images.jpg differ diff --git a/stargan/results/36-images.jpg b/stargan/results/36-images.jpg new file mode 100644 index 0000000..4612ff5 Binary files /dev/null and b/stargan/results/36-images.jpg differ diff --git a/stargan/results/37-images.jpg b/stargan/results/37-images.jpg new file mode 100644 index 0000000..3f0243e Binary files /dev/null and b/stargan/results/37-images.jpg differ diff --git a/stargan/results/38-images.jpg b/stargan/results/38-images.jpg new file mode 100644 index 0000000..742c14a Binary files /dev/null and b/stargan/results/38-images.jpg differ diff --git a/stargan/results/39-images.jpg b/stargan/results/39-images.jpg new file mode 100644 index 0000000..d47a7bd Binary files /dev/null and b/stargan/results/39-images.jpg differ diff --git a/stargan/results/4-images.jpg b/stargan/results/4-images.jpg new file mode 100644 index 0000000..da5f3f9 Binary files /dev/null and b/stargan/results/4-images.jpg differ diff --git a/stargan/results/40-images.jpg b/stargan/results/40-images.jpg new file mode 100644 index 0000000..0f079ca Binary files /dev/null and b/stargan/results/40-images.jpg differ diff --git a/stargan/results/41-images.jpg b/stargan/results/41-images.jpg new file mode 100644 index 0000000..6543acf Binary files /dev/null and b/stargan/results/41-images.jpg differ diff --git a/stargan/results/42-images.jpg b/stargan/results/42-images.jpg new file mode 100644 index 0000000..6a2cb71 Binary files /dev/null and b/stargan/results/42-images.jpg differ diff --git a/stargan/results/43-images.jpg b/stargan/results/43-images.jpg new file mode 100644 index 0000000..0a034e0 Binary files /dev/null and b/stargan/results/43-images.jpg differ diff --git a/stargan/results/44-images.jpg b/stargan/results/44-images.jpg new file mode 100644 index 0000000..28732f3 Binary files /dev/null and b/stargan/results/44-images.jpg differ diff --git a/stargan/results/45-images.jpg b/stargan/results/45-images.jpg new file mode 100644 index 0000000..127422c Binary files /dev/null and b/stargan/results/45-images.jpg differ diff --git a/stargan/results/46-images.jpg b/stargan/results/46-images.jpg new file mode 100644 index 0000000..70c0b38 Binary files /dev/null and b/stargan/results/46-images.jpg differ diff --git a/stargan/results/47-images.jpg b/stargan/results/47-images.jpg new file mode 100644 index 0000000..3ed3ccc Binary files /dev/null and b/stargan/results/47-images.jpg differ diff --git a/stargan/results/48-images.jpg b/stargan/results/48-images.jpg new file mode 100644 index 0000000..8057d9f Binary files /dev/null and b/stargan/results/48-images.jpg differ diff --git a/stargan/results/49-images.jpg b/stargan/results/49-images.jpg new file mode 100644 index 0000000..f90d660 Binary files /dev/null and b/stargan/results/49-images.jpg differ diff --git a/stargan/results/5-images.jpg b/stargan/results/5-images.jpg new file mode 100644 index 0000000..349f398 Binary files /dev/null and b/stargan/results/5-images.jpg differ diff --git a/stargan/results/50-images.jpg b/stargan/results/50-images.jpg new file mode 100644 index 0000000..dede1e8 Binary files /dev/null and b/stargan/results/50-images.jpg differ diff --git a/stargan/results/51-images.jpg b/stargan/results/51-images.jpg new file mode 100644 index 0000000..0e44e60 Binary files /dev/null and b/stargan/results/51-images.jpg differ diff --git a/stargan/results/52-images.jpg b/stargan/results/52-images.jpg new file mode 100644 index 0000000..f7f35e7 Binary files /dev/null and b/stargan/results/52-images.jpg differ diff --git a/stargan/results/53-images.jpg b/stargan/results/53-images.jpg new file mode 100644 index 0000000..0c87709 Binary files /dev/null and b/stargan/results/53-images.jpg differ diff --git a/stargan/results/54-images.jpg b/stargan/results/54-images.jpg new file mode 100644 index 0000000..6eac744 Binary files /dev/null and b/stargan/results/54-images.jpg differ diff --git a/stargan/results/55-images.jpg b/stargan/results/55-images.jpg new file mode 100644 index 0000000..c13360e Binary files /dev/null and b/stargan/results/55-images.jpg differ diff --git a/stargan/results/56-images.jpg b/stargan/results/56-images.jpg new file mode 100644 index 0000000..9ca7efc Binary files /dev/null and b/stargan/results/56-images.jpg differ diff --git a/stargan/results/57-images.jpg b/stargan/results/57-images.jpg new file mode 100644 index 0000000..02b7831 Binary files /dev/null and b/stargan/results/57-images.jpg differ diff --git a/stargan/results/58-images.jpg b/stargan/results/58-images.jpg new file mode 100644 index 0000000..a37b743 Binary files /dev/null and b/stargan/results/58-images.jpg differ diff --git a/stargan/results/59-images.jpg b/stargan/results/59-images.jpg new file mode 100644 index 0000000..f2a06fe Binary files /dev/null and b/stargan/results/59-images.jpg differ diff --git a/stargan/results/6-images.jpg b/stargan/results/6-images.jpg new file mode 100644 index 0000000..be01ab6 Binary files /dev/null and b/stargan/results/6-images.jpg differ diff --git a/stargan/results/60-images.jpg b/stargan/results/60-images.jpg new file mode 100644 index 0000000..c836ab7 Binary files /dev/null and b/stargan/results/60-images.jpg differ diff --git a/stargan/results/61-images.jpg b/stargan/results/61-images.jpg new file mode 100644 index 0000000..a3b2e47 Binary files /dev/null and b/stargan/results/61-images.jpg differ diff --git a/stargan/results/62-images.jpg b/stargan/results/62-images.jpg new file mode 100644 index 0000000..da7d58b Binary files /dev/null and b/stargan/results/62-images.jpg differ diff --git a/stargan/results/63-images.jpg b/stargan/results/63-images.jpg new file mode 100644 index 0000000..4bf3519 Binary files /dev/null and b/stargan/results/63-images.jpg differ diff --git a/stargan/results/64-images.jpg b/stargan/results/64-images.jpg new file mode 100644 index 0000000..a48c6a7 Binary files /dev/null and b/stargan/results/64-images.jpg differ diff --git a/stargan/results/65-images.jpg b/stargan/results/65-images.jpg new file mode 100644 index 0000000..9fd84dc Binary files /dev/null and b/stargan/results/65-images.jpg differ diff --git a/stargan/results/66-images.jpg b/stargan/results/66-images.jpg new file mode 100644 index 0000000..051b14a Binary files /dev/null and b/stargan/results/66-images.jpg differ diff --git a/stargan/results/67-images.jpg b/stargan/results/67-images.jpg new file mode 100644 index 0000000..3dc5f34 Binary files /dev/null and b/stargan/results/67-images.jpg differ diff --git a/stargan/results/68-images.jpg b/stargan/results/68-images.jpg new file mode 100644 index 0000000..c0cdb1a Binary files /dev/null and b/stargan/results/68-images.jpg differ diff --git a/stargan/results/69-images.jpg b/stargan/results/69-images.jpg new file mode 100644 index 0000000..e6b2f21 Binary files /dev/null and b/stargan/results/69-images.jpg differ diff --git a/stargan/results/7-images.jpg b/stargan/results/7-images.jpg new file mode 100644 index 0000000..cebdfac Binary files /dev/null and b/stargan/results/7-images.jpg differ diff --git a/stargan/results/70-images.jpg b/stargan/results/70-images.jpg new file mode 100644 index 0000000..e5ba112 Binary files /dev/null and b/stargan/results/70-images.jpg differ diff --git a/stargan/results/71-images.jpg b/stargan/results/71-images.jpg new file mode 100644 index 0000000..85299e2 Binary files /dev/null and b/stargan/results/71-images.jpg differ diff --git a/stargan/results/72-images.jpg b/stargan/results/72-images.jpg new file mode 100644 index 0000000..6c657a1 Binary files /dev/null and b/stargan/results/72-images.jpg differ diff --git a/stargan/results/73-images.jpg b/stargan/results/73-images.jpg new file mode 100644 index 0000000..5ccc254 Binary files /dev/null and b/stargan/results/73-images.jpg differ diff --git a/stargan/results/74-images.jpg b/stargan/results/74-images.jpg new file mode 100644 index 0000000..9047077 Binary files /dev/null and b/stargan/results/74-images.jpg differ diff --git a/stargan/results/75-images.jpg b/stargan/results/75-images.jpg new file mode 100644 index 0000000..c17f402 Binary files /dev/null and b/stargan/results/75-images.jpg differ diff --git a/stargan/results/76-images.jpg b/stargan/results/76-images.jpg new file mode 100644 index 0000000..68cdf09 Binary files /dev/null and b/stargan/results/76-images.jpg differ diff --git a/stargan/results/77-images.jpg b/stargan/results/77-images.jpg new file mode 100644 index 0000000..8291010 Binary files /dev/null and b/stargan/results/77-images.jpg differ diff --git a/stargan/results/78-images.jpg b/stargan/results/78-images.jpg new file mode 100644 index 0000000..20178f5 Binary files /dev/null and b/stargan/results/78-images.jpg differ diff --git a/stargan/results/79-images.jpg b/stargan/results/79-images.jpg new file mode 100644 index 0000000..17b48d7 Binary files /dev/null and b/stargan/results/79-images.jpg differ diff --git a/stargan/results/8-images.jpg b/stargan/results/8-images.jpg new file mode 100644 index 0000000..f4627a3 Binary files /dev/null and b/stargan/results/8-images.jpg differ diff --git a/stargan/results/80-images.jpg b/stargan/results/80-images.jpg new file mode 100644 index 0000000..d0739d7 Binary files /dev/null and b/stargan/results/80-images.jpg differ diff --git a/stargan/results/81-images.jpg b/stargan/results/81-images.jpg new file mode 100644 index 0000000..d4171bb Binary files /dev/null and b/stargan/results/81-images.jpg differ diff --git a/stargan/results/82-images.jpg b/stargan/results/82-images.jpg new file mode 100644 index 0000000..cbcf74d Binary files /dev/null and b/stargan/results/82-images.jpg differ diff --git a/stargan/results/83-images.jpg b/stargan/results/83-images.jpg new file mode 100644 index 0000000..8433b2f Binary files /dev/null and b/stargan/results/83-images.jpg differ diff --git a/stargan/results/84-images.jpg b/stargan/results/84-images.jpg new file mode 100644 index 0000000..b9c873e Binary files /dev/null and b/stargan/results/84-images.jpg differ diff --git a/stargan/results/85-images.jpg b/stargan/results/85-images.jpg new file mode 100644 index 0000000..7877fa3 Binary files /dev/null and b/stargan/results/85-images.jpg differ diff --git a/stargan/results/86-images.jpg b/stargan/results/86-images.jpg new file mode 100644 index 0000000..c3be997 Binary files /dev/null and b/stargan/results/86-images.jpg differ diff --git a/stargan/results/87-images.jpg b/stargan/results/87-images.jpg new file mode 100644 index 0000000..de1ba31 Binary files /dev/null and b/stargan/results/87-images.jpg differ diff --git a/stargan/results/88-images.jpg b/stargan/results/88-images.jpg new file mode 100644 index 0000000..c03cd3c Binary files /dev/null and b/stargan/results/88-images.jpg differ diff --git a/stargan/results/89-images.jpg b/stargan/results/89-images.jpg new file mode 100644 index 0000000..5a3378a Binary files /dev/null and b/stargan/results/89-images.jpg differ diff --git a/stargan/results/9-images.jpg b/stargan/results/9-images.jpg new file mode 100644 index 0000000..2f276ae Binary files /dev/null and b/stargan/results/9-images.jpg differ diff --git a/stargan/results/90-images.jpg b/stargan/results/90-images.jpg new file mode 100644 index 0000000..2b9344f Binary files /dev/null and b/stargan/results/90-images.jpg differ diff --git a/stargan/results/91-images.jpg b/stargan/results/91-images.jpg new file mode 100644 index 0000000..b9fd2d3 Binary files /dev/null and b/stargan/results/91-images.jpg differ diff --git a/stargan/results/92-images.jpg b/stargan/results/92-images.jpg new file mode 100644 index 0000000..17c531c Binary files /dev/null and b/stargan/results/92-images.jpg differ diff --git a/stargan/results/93-images.jpg b/stargan/results/93-images.jpg new file mode 100644 index 0000000..80e3871 Binary files /dev/null and b/stargan/results/93-images.jpg differ diff --git a/stargan/results/94-images.jpg b/stargan/results/94-images.jpg new file mode 100644 index 0000000..0e4f187 Binary files /dev/null and b/stargan/results/94-images.jpg differ diff --git a/stargan/results/95-images.jpg b/stargan/results/95-images.jpg new file mode 100644 index 0000000..4056884 Binary files /dev/null and b/stargan/results/95-images.jpg differ diff --git a/stargan/results/96-images.jpg b/stargan/results/96-images.jpg new file mode 100644 index 0000000..6219c92 Binary files /dev/null and b/stargan/results/96-images.jpg differ diff --git a/stargan/results/97-images.jpg b/stargan/results/97-images.jpg new file mode 100644 index 0000000..3bf5d4b Binary files /dev/null and b/stargan/results/97-images.jpg differ diff --git a/stargan/results/98-images.jpg b/stargan/results/98-images.jpg new file mode 100644 index 0000000..16071e0 Binary files /dev/null and b/stargan/results/98-images.jpg differ diff --git a/stargan/results/99-images.jpg b/stargan/results/99-images.jpg new file mode 100644 index 0000000..b47a46c Binary files /dev/null and b/stargan/results/99-images.jpg differ diff --git a/stargan/solver.py b/stargan/solver.py index cc3ae6e..af76cee 100644 --- a/stargan/solver.py +++ b/stargan/solver.py @@ -14,6 +14,7 @@ from PIL import ImageFilter from PIL import Image from torchvision import transforms +import defenses.smoothing as smoothing class Solver(object): """Solver for training and testing StarGAN.""" @@ -77,8 +78,8 @@ class Solver(object): def build_model(self): """Create a generator and a discriminator.""" if self.dataset in ['CelebA', 'RaFD']: - # self.G = Generator(self.g_conv_dim, self.c_dim, self.g_repeat_num) - self.G = AvgBlurGenerator(self.g_conv_dim, self.c_dim, self.g_repeat_num) + self.G = Generator(self.g_conv_dim, self.c_dim, self.g_repeat_num) + # self.G = AvgBlurGenerator(self.g_conv_dim, self.c_dim, self.g_repeat_num) self.D = Discriminator(self.image_size, self.d_conv_dim, self.c_dim, self.d_repeat_num) elif self.dataset in ['Both']: self.G = Generator(self.g_conv_dim, self.c_dim+self.c2_dim+2, self.g_repeat_num) # 2 for mask vector. @@ -622,9 +623,13 @@ class Solver(object): x_real_mod = self.blur_tensor(x_real_mod) gen_noattack, gen_noattack_feats = self.G(x_real_mod, c_trg) # Attack - x_adv, perturb = pgd_attack.perturb(x_real, black, c_trg) + # x_adv, perturb = pgd_attack.perturb(x_real, black, c_trg) + # x_adv, perturb, blurred_image = pgd_attack.perturb_blur(x_real, black, c_trg) + x_adv, perturb = pgd_attack.perturb_blur_iter(x_real, black, c_trg) # _, perturb = x_advs[idx] - # x_adv = x_real + perturb + + # This next line is key for blur defense + x_adv = x_real + perturb # x_adv = torch.clamp(x_real + perturb, min=-1, max=1) # TODO: Blurring here. @@ -637,6 +642,7 @@ class Solver(object): # Add to lists # x_fake_list.append(preproc_x) + # x_fake_list.append(blurred_image) x_fake_list.append(x_adv) # x_fake_list.append(perturb) x_fake_list.append(gen) @@ -784,13 +790,18 @@ class Solver(object): save_image(self.denorm(x_concat.data.cpu()), result_path, nrow=1, padding=0) print('Saved real and fake images into {}...'.format(result_path)) + # def blur_tensor(self, tensor): + # # PIL to numpy + # img = self.denorm(tensor[0].data.cpu()) + # img = transforms.ToPILImage()(img) + # img = img.filter(ImageFilter.GaussianBlur(radius=1.5)) + # # img = img.filter(ImageFilter.BoxBlur(radius=2)) + # img = transforms.ToTensor()(img) + # img = transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))(img) + # img = torch.unsqueeze(img, 0).to(self.device) + # return img + def blur_tensor(self, tensor): - # PIL to numpy - img = self.denorm(tensor[0].data.cpu()) - img = transforms.ToPILImage()(img) - img = img.filter(ImageFilter.GaussianBlur(radius=2)) - # img = img.filter(ImageFilter.BoxBlur(radius=1)) - img = transforms.ToTensor()(img) - img = transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5))(img) - img = torch.unsqueeze(img, 0).to(self.device) - return img \ No newline at end of file + # preproc = smoothing.AverageSmoothing2D(channels=3, kernel_size=5).to(self.device) + preproc = smoothing.GaussianSmoothing2D(sigma=2, channels=3, kernel_size=11).to(self.device) + return preproc(tensor) \ No newline at end of file