|
há 1 semana atrás | |
---|---|---|
tests | há 1 semana atrás | |
watermark_verify | há 1 semana atrás | |
.gitignore | há 3 meses atrás | |
MANIFEST.in | há 3 meses atrás | |
README.md | há 1 semana atrás | |
setup.py | há 3 meses atrás |
提供模型训练嵌入白盒水印和从已经嵌入白盒水印的模型中提取水印的功能
master
分支使用onnx权重文件进行水印提取流程om
分支使用昇腾平台专用om权重文件格式进行水印提取流程验签通过,模型水印提取检测成功
白盒水印提取流程
初始化参数和参数检查(模型绝对路径、公钥文件public.key、投影矩阵导出文件key.npy、嵌入水印的卷积层位置)
获取指定卷积层,通过运算,提取密码标签
对提取的密码标签进行验签
验签通过,模型水印提取检测成功
model_watermark_detect
├── MANIFEST.in # 打包描述文件
├── README.md # 项目说明文档
├── setup.py # 打包配置文件
├── tests
│ ├── README.md
│ ├── classification_performance_loss_test.py # 图像分类模型性能测试脚本
│ ├── detection_performance_loss_test.py # 目标检测模型性能测试脚本
│ ├── inference_test.py # 模型推理模块测试脚本
│ ├── prune_tool.py # onnx文件剪枝工具
│ ├── models # 待测模型
│ ├── verify_tool_accuracy_test.py # 模型水印检测成功率测试脚本
│ └── verify_tool_test.py # 模型水印检测测试
└── watermark_verify # 模型水印提取验证工具
├── __init__.py
├── inference # 模型推理流程
│ ├── __init__.py
│ ├── classification_inference.py
│ ├── rcnn_inference.py
│ ├── ssd_inference.py
│ └── yolox_inference.py
├── process # 各种模型水印提取验证流程、每个文件代表指定类型模型提取验证流程
│ ├── __init__.py
│ ├── classification_all_whitebox_process.py
│ ├── classification_pytorch_blackbox_process.py
│ ├── classification_tensorflow_blackbox_process.py
│ ├── faster_rcnn_pytorch_blackbox_process.py
│ ├── faster_rcnn_pytorch_whitebox_process.py
│ ├── general_process_define.py
│ ├── googlenet_vgg16_all_whitebox_process.py
│ ├── ssd_pytorch_blackbox_process.py
│ ├── ssd_pytorch_whitebox_process.py
│ ├── yolox_pytorch_blackbox_process.py
│ └── yolox_pytorch_whitebox_process.py
├── tools # 工具脚本目录
│ ├── __init__.py
│ ├── evaluate_tool.py
│ ├── general_tool.py
│ ├── parse_qrcode_label_file.py
│ ├── qrcode_tool.py
│ ├── secret_label_func.py
│ └── sign_verify.py
├── utils # 目标检测模型推理所需工具代码
│ ├── anchors.py
│ └── utils_bbox.py
└── verify_tool.py # 验证工具接口
inference保存各种模型onnx权重文件的推理流程,可根据模型类型选择指定文件使用onnx权重进行推理
rcnn_inference.py :Faster-RCNN模型推理流程
```python from watermark_verify.inference.rcnn_inference import FasterRCNNInference from watermark_verify.inference.ssd_inference import SSDInference from watermark_verify.inference.yolox_inference import YOLOXInference
if name == 'main':
# 模型文件位置
model_filename = "/mnt/e/DevTools/workspace/model_watermark_detect/tests/models/origin/faster-rcnn/model.onnx"
# 图片位置
image_path = 'VOC2007/JPEGImages/000001.jpg'
dets = FasterRCNNInference(model_filename).predict(image_path) # 使用Faster-RCNN进行推理,获取模型输出结果
# dets = SSDInference(model_filename).predict(image_path) # 使用SSD进行推理,获取模型输出结果
# dets = YOLOXInference(model_filename).predict(image_path) # 使用YOLOX进行推理,获取模型输出结果
print(f"dets: {dets}")
## process目录下文件说明
process保存各种模型黑盒水印或白盒水印提取验证流程,文件名定义如下:
```text
[模型名称]_[支持深度学习框架]_[模型水印类型]_process.py
python setup.py sdist
项目目录会生成dist
目录,其中watermark_detector-1.0.tar.gz
即为发布包
pip install watermark_detector-1.0.tar.gz