diff --git a/examples/face_adversarial_attack/example/AFR.py b/examples/face_adversarial_attack/example/AFR.py index 6267c87..7c1fde4 100644 --- a/examples/face_adversarial_attack/example/AFR.py +++ b/examples/face_adversarial_attack/example/AFR.py @@ -15,20 +15,20 @@ import os import re import numpy as np -import matplotlib.image as mp -import dlib -import face_recognition as fr -import face_recognition_models as frm -from PIL import Image, ImageDraw import mindspore +import mindspore.dataset.vision.py_transforms as P from mindspore.dataset.vision.py_transforms import ToPIL as ToPILImage from mindspore import Parameter, ops, nn, Tensor from mindspore.dataset.vision.py_transforms import ToTensor -import mindspore.dataset.vision.py_transforms as P -from loss_design import TrainOneStepCell, MyWithLossCell, FaceLossTargeTattack, FaceLossNoTargetAttack +import dlib +import matplotlib.image as mp +import face_recognition as fr +import face_recognition_models as frm +from PIL import Image, ImageDraw +from loss_design import MyTrainOneStepCell, MyWithLossCell, FaceLossTargetAttack, FaceLossNoTargetAttack from FaceRecognition.eval import get_net -class Attack(object): +class FaceAdversarialAttack(object): """ Class used to create adversarial facial recognition attacks """ @@ -78,10 +78,10 @@ class Attack(object): if attack_method == "non-target attack": LOSS = FaceLossNoTargetAttack(self.target_emb) if attack_method == "target_attack": - LOSS = FaceLossTargeTattack(self.target_emb) + LOSS = FaceLossTargetAttack(self.target_emb) net_with_criterion = MyWithLossCell(self.resnet, LOSS, self.input_tensor) - train_net = TrainOneStepCell(net_with_criterion, self.opt) + train_net = MyTrainOneStepCell(net_with_criterion, self.opt) for i in range(2000): @@ -133,28 +133,6 @@ class Attack(object): print("target_confidence:", self.target_emb.asnumpy()[0][target]) print("input: %d, target: %d, adversarial: %d" % (input, target, adversarial)) - def test1(self, adversarial_tensor): - self.adversarial_emb = self.resnet( - self.expand_dims((adversarial_tensor - self.MEAN[:, None, None]) / self.STD[:, None, None], 0)) - self.input_emb = self.resnet(self.expand_dims(self.input_tensor, 0)) - self.target_emb = self.resnet(self.expand_dims(self.target_tensor, 0)) - - adversarial = np.argmax(self.adversarial_emb.asnumpy()) - target = np.argmax(self.target_emb.asnumpy()) - input = np.argmax(self.input_emb.asnumpy()) - - print("input:", input) - print("input_confidence:", self.input_emb.asnumpy()[0][input]) - print("================================") - print("adversarial:", adversarial) - print("adversarial_confidence:", self.adversarial_emb.asnumpy()[0][adversarial]) - print("Confidence changes for input:", self.adversarial_emb.asnumpy()[0][input]) - print("================================") - print("target:", target) - print("target_confidence:", self.target_emb.asnumpy()[0][target]) - print("input:%d, target:%d, adversarial:%d" % (input, target, adversarial)) - - def _reverse_norm(self, image_tensor): """