You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.1 kB

3 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # 人脸识别物理对抗攻击
  2. ##描述
  3. 本项目是对人脸识别模型的物理对抗攻击,通过生成对抗口罩,使人脸佩戴后实现目标攻击和非目标攻击,并应用于mindspore平台。
  4. ##模型结构
  5. 采用华为mindspore官方训练的FaceRecognition模型
  6. https://www.mindspore.cn/resources/hub/details?MindSpore/1.7/facerecognition_ms1mv2
  7. ##环境要求
  8. mindspore=1.7,硬件平台为GPU。
  9. ##脚本说明
  10. ├── readme.md
  11. ├── opencv_photo
  12. │ ├── adv_input //对抗图像
  13. │ ├── input //输入图像
  14. │ └── target //目标图像
  15. ├── outputs //训练后的图像
  16. ├── FaceRecognition //模型设置
  17. ├── AFR.py //训练脚本
  18. ├── camera.py //opencv图像采集
  19. │── example_non-target_attack.py //无目标攻击训练
  20. │── example_target_attack.py //目标攻击训练
  21. │── loss_design.py //训练优化设置
  22. └── test.py //评估攻击效果
  23. ##模型调用
  24. 方法一:
  25. #基于mindspore_hub库调用FaceRecognition模型
  26. import mindspore_hub as mshub
  27. from mindspore import context
  28. def get_net():
  29. context.set_context(mode=context.GRAPH_MODE,
  30. device_target="GPU",
  31. device_id=0)
  32. model = "mindspore/1.7/facerecognition_ms1mv2"
  33. network = mshub.load(model)
  34. network.set_train(False)
  35. return network
  36. 方法二:
  37. 利用 MindSpore代码仓中的https://gitee.com/mindspore/models/blob/master/research/cv/FaceRecognition/eval.py的get_model函数加载模型
  38. ##训练过程
  39. 目标攻击:
  40. $ cd face_adversarial_attack/example/
  41. $ python example_target_attack.py
  42. 非目标攻击:
  43. $ cd face_adversarial_attack/example/
  44. $ python example_non-target_attack.py
  45. ##默认训练参数
  46. optimizer=adam, learning rate=0.01, weight_decay=0.0001, epoch=2000
  47. ##评估过程
  48. 评估方法一:
  49. AFR.Attack.test()
  50. 评估方法二:
  51. $ cd face_adversarial_attack/example/
  52. $ python test.py

MindArmour关注AI的安全和隐私问题。致力于增强模型的安全可信、保护用户的数据隐私。主要包含3个模块:对抗样本鲁棒性模块、Fuzz Testing模块、隐私保护与评估模块。 对抗样本鲁棒性模块 对抗样本鲁棒性模块用于评估模型对于对抗样本的鲁棒性,并提供模型增强方法用于增强模型抗对抗样本攻击的能力,提升模型鲁棒性。对抗样本鲁棒性模块包含了4个子模块:对抗样本的生成、对抗样本的检测、模型防御、攻防评估。