跑通代码-ICCV2021-HiNet: Deep Image Hiding by Invertible Network

系列文章目录



前言

关于论文的详解请参考博文:基于可逆神经网络的图像隐藏技术 (ICCV 2021) - HiNet: Deep Image Hiding by Invertible Network
HiNet


一、官方代码介绍

官方代码链接HiNet 下载或者直接git clone之后有以下文件。model下面储存模型,测试时选择官方的模型model.pt,训练阶段会按照生成频率50个epoch生成训练的模型。
在这里插入图片描述

二、DIV2K数据集的下载

DIV2K数据集,下载最后两个High Resolution Images。
在这里插入图片描述

将下载的800张训练数据集DIV2K_train_HR和100张测试数据集DIV2K_valid_HR放在dataset文件夹中。

三、测试官方模型

3.1 测试说明

将官方的模型放在文件model/model.pt,然后修改config.py对应的参数,主要时模型的路径,数据集的路径,直接运行test.py,测试过程中会在image下四个子文件中生成对应的宿主图像、水印图像、嵌入水印之后的图像和提取水印的图像。

3.2 结果展示

在这里插入图片描述
第一排是原始的宿主图像,第二排是原始的水印图像,也就是需要嵌入到原始宿主图像的信息,第三排是嵌入水印图像之后的图像,能看到,嵌入水印之后的图像与原始的图像非常的相似,肉眼几乎无法分辨,说明算法的不可感知性很好,最后一排是提取出来的水印图像,与第二排的原始水印图像很相近,说明算法的鲁棒性很好,恢复水印图像的能力很强。在图像水印算法中,应该对嵌入水印图像之后的图像进行图像攻击,然后再提取水印图像,如果依然能很好的提取出来水印图新,说明算法的鲁棒性很好,这里的攻击可以是噪声攻击,滤波攻击,几何攻击等等。

3.3 训练模型

运行train.py文件,便能开始训练。

在这里插入图片描述

3.4 测试训练模型的结果

训练200多个epoch之后,使用保存的model_checkpoint_00200.pt进行测试,还是使用dataset的数据集,只需要将config.py中的第56行改成 suffix = ‘model_checkpoint_00200.pt’,其他的和测试官方模型一样,得到的结果如下,与官方的模型结果不分伯仲。

在这里插入图片描述

四、避坑指南

  1. 有的包报错,说没有dll文件,明明自己安装了包,就是报错,最好的办法就是卸了重新装一遍。
  2. 训练时出现freeze_support()错误可以将datasets.py第64行改成num_workers=0,测试时出现freeze_support()错误可以修改datasets.py第73行改成num_workers=0
  3. 遇到GPU内存溢出的时候减少config.py第16行的batch_size,实验所用显卡是1050 Ti,batch_size=2不会溢出。

总结

跑通了ICCV2021的一篇关于图像隐藏算法的程序,整个程序写的非常好,条理清晰,很容易就能跑通程序,得到论文中的结果。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值