SRNet隐写分析网络模型 (pytorch实现)

本文介绍了宾汉姆顿大学Jessica教授团队的SRNet隐写分析模型,包括其网络结构、训练过程和优化策略。重点讲述了模型的组成、超参数调整以及在空域和频域隐写检测中的应用。
该文章已生成可运行项目,


一 SRNet隐写分析模型介绍

  SRNet模型是宾汉姆顿大学(Binghamton University)Jessica教授团队于2018年提出的图像隐写分析网络模型,应该说是当时SOTA(state-of-the-art)的隐写分析网络模型了,实验证明不论对空域隐写算法还是JEPG频域隐写算法,SRNet都有较好的检测性能。关于SRNet论文、官方代码和中文翻译分别如下所示:

  1. SRNet网络论文地址: https://ieeexplore.ieee.org/document/8470101
  2. SRNet模型官方代码实现(tensorflow): http://dde.binghamton.edu/download/feature_extractors/
  3. SRNet知乎中文翻译: https://zhuanlan.zhihu.com/p/362127299

  Jessica团队给出了tensorflow版代码,但是没有pytorch实现,小编斗胆pytorch复现了一版 (没办法,总不能厚脸皮直接用源码吧,好歹这是毕设啊),嘿嘿,其实最终还是借鉴了源码,毕竟自己复现的效果比不上源码,话说小编的脸皮好像也不是很厚吧,像我这样脸皮薄的很少见了:)

  1. 小编自己pytorch版SRNet模型复现: https://github.com/Uranium-Deng/Steganalysis-StegoRemoval

二 SRNet网络概述

  SRNet网络结构图如下所示:
在这里插入图片描述
  SRNet网络可以分成3段4类(从功能模块上分可以分成3段,从网路结构上可以分成4类),其中4类就是上图中下半部分的Layer Type 1 -Layer Type 4四类,3段对应功能模块,其中第一段是前两个阴影块也就是从第一层到第七层,该部分主要作用是提取之前隐写嵌入时引入的高频噪声;第二段是第三个阴影块,也就是第8层到第11层,该段主要作用是缩小特征图的维度;第三段是从第12层及其之后的所有网络层,主要扮演一个分类器的角色classifier。
  关于SRNet网络模型在训练时一些超参数的设置,此处不会赘述。一开始自己按照论文中说明的超参数设置进行训练,得到的结果并不好,虽然在训练集上的accuracy一直在上升,但是在验证集上accuracy震荡的很厉害,得到的结果很不好,难道是自己用的电脑不行?鬼知道!于是小编只能慢慢摸索合适自己的网络参数。
  论文中评判网络模型性能时采用的是错误率 Error Rate,计算公式为: P ( E ) = m i n P F A 1 2 ( P F A + P M D ) P(E) = min_{P_{FA}} \frac{1}{2}(P_{FA} + P_{MD}) P(E)=minPFA21(PFA+PMD),小编这里没有计算错误率,而是通过混淆矩阵计算准确率(个人认为相比于错误率,准确率更直观)此外原论文中提出引入选择信道 Selection Channel 会使模型的准确率更高,坦白说小编当时没明白选择通道怎么弄的所以就没引入选择通道。
  pytorch版本SRNet网络模型如下(更多的代码大家去上面的Github网址下载吧):

import torch
import torch.nn as nn


class Block1(nn.Module):
    def __init__(self, in_channels, out_channels):
        super(Block1, self).__init__()
        self.in_channels = in_channels
        self.out_channels = out_channels

        self.block = nn.Sequential
本文章已经生成可运行项目
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值