From 5dbce83e93e939eea1301256b8a9a43b8b38834a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=9B=E5=90=9B=E8=87=A3=E8=87=A3=E5=90=9B?= Date: Fri, 23 Sep 2022 04:03:12 +0000 Subject: [PATCH] =?UTF-8?q?update=20examples/face=5Fadversarial=5Fattack/e?= =?UTF-8?q?xample/AFR.py.=20=E4=BF=AE=E6=94=B9=E4=BA=86=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=EF=BC=9B=E5=8C=85=E7=9A=84=E9=A1=BA=E5=BA=8F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 君君臣臣君 --- .../face_adversarial_attack/example/AFR.py | 42 +++++-------------- 1 file changed, 10 insertions(+), 32 deletions(-) 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): """