当前位置: 首页 > news >正文

基于解压缩模块的JPEG同步重压缩检测论文学习

一、论文基本信息:

论文题目:基于解压缩模块的JPEG同步重压缩检测

作者:王金伟1 ,胡冰涛1 ,张家伟1 ,马 宾2 ,罗向阳3

(1.南京信息工程大学计算机学院、网络空间安全学院,江苏南京 210044;2.齐鲁工业大学山东省计算机网络重点实验室,山东济 南 250353;3.数学工程与高级计算国家重点实验室,河南郑州 450001)

来源刊物:电子学报

时间:2023年4月第四期

二、论文背景

        JPEG(Joint Photographic Experts Group)作为一种广泛应用的图像压缩标准,因其高效性与普适性而受到广泛的关注。然而,连续对同一图像进行多次JPEG压缩可能会导致可检测的重压缩痕迹,在数字图像取证等敏感领域具有重要的实际意义,可以判断图像是否被篡改。

        传统的方法过于依赖于人工提取的截断和舍入误差,无法实现端到端,这种方式存在一定的信息损失的风险,会导致JPEG图像的特征不能被充分挖掘,可能会对后续的图像分析和取证造成一定的困扰。在此背景下,本文章提出了一种基于解压缩模块的JPEG同步重压缩检测方法,通过卷积操作模拟JPEG的解压缩过程,利用卷积网络的自动优化去寻找解压缩过程的最优解,同时解除对JPEG同步重压缩问题的性能限制,充分挖掘出JPEG图像的特征,提高对同步重压缩问题的检测性能。

三、论文研究方法

基于解压缩模块的JPEG同步重压缩检测模型如下图所示:

a81f67986bb1453e97a24fd4ded83d50.png

解压缩模块:利用IDCT变换矩阵实现 IDCT

        本文利用矩阵乘法实现了IDCT,将反量化后得到的每个8*8图像块拉伸成长度为64的一维列向量,从而得到一个64*256大小的新矩阵。新矩阵左乘一个IDCT变换矩阵,实现对原图的IDCT变换。变换过程如图1所示。

 73a6848cdcd1445892d6cef84c4d688d.png

图 1 利用IDCT变换矩阵实现IDCT的方式

特征提取模块:

        文章的特征提取模块设计为双流的结构,分为亮度通道和色度通道两种,对亮度和色度先进行提取,然后将提取到的特征信息进行聚合。如下图所示:

27c714ceb76847b7968c48f41e4ba6d8.png

 

        亮度通道流由一个BN层,四个卷积层和一个池化层组成。其中,BN层进行数据归一化操作,防止过拟合。池化窗口的大小为2*2,步长为2*2。卷积层的卷积核大小为3*3,并且卷积核数量依次递增,分别为16,32,64,128。

        色度通道较亮度通道,BN层和池化层的设计相同而卷积层少一层。卷积层的卷积核大小为5*5,卷积核个数也依次增加,分别为16,32,64,128。这样的结构设计是因为压缩过程对色度信息损失严重,使用多的卷积层可能会导致特征冗余,但使用太少的卷积层有可能会导致不能提取到有效信息,使精度下降。

统计层

        选择传统的均值和方差作为分类依据,通过将提取到的特征转换为统计特征,引导模型关注图像像素值的变化,从而更好地提取重压缩特征。

消融实验验证了解压缩模块和统计层的有效性。

        通过实验,探究解压缩模块的影响。分别测试包含解压缩模块和去除解压缩模块的方法在JPEG重压缩检测问题上的性能,对比两个测试的结果,与去除解压缩模块的模型相比,含有解压缩模块的检测模型整体精度平均提升了3.01%。最终证明出解压缩模块能有效提取出特征,减少信息损失。

        通过实验,探究统计层的影响。分别测试包含统计层的模型和去除统计层模型的方法在 JPEG 重压缩检测问题上的性能,对比测试结果,得出包含统计层的检测模型相比去除统计层的模型,整体精度平均提升了1.53%。同时也验证了统计特征中的均值和方差在JPEG重压缩检测问题中具有重要作用。

对比实验

        在多个数据集上,与其他两种最新的基于深度学习的 JPEG 同步重压缩检测方法进行的对比实验显示,所提出的方法在大多数实验组中表现出优势。这充分说明了本文章提出的基于解压缩模块的JPEG重压缩检测方法在解决JPEG同步重压缩问题上的有效性。

四、论文研究结果

  1. 完成解压缩模块的设计与实现,利用卷积操作模拟JPEG的解压缩过程,并通过对比实验得出该方法较两种。
  2. 提出一个端到端的基于解压缩模块的JPEG同步重压缩检测模型,并通过实验验证压缩模块和统计层的有效性。
  3. 贡献了一个数据集。现有的JPEG公开的数据库时间都比较长远,实验团队自行拍摄、收集、制作了新的数据集Nuist-v1,方便验证实验的有效性。

五、总结与展望

         通过学习这篇论文,我学到在JPEG解压缩的过程中会产生截断和舍入误差,特征过于依赖于此,造成只能通过人工的方法在预处理阶段提取特征,这同时也导致无法实现端到端。并且现有的解压缩是根据经验设计的,模型的精度方面还有很大的进步空间。而本文章提出的基于解压缩模块的JPEG重压缩检测方法可以利用卷积操作模拟JPEG的解压缩过程,成功实现端到端,省去了预处理步骤,并且利用深度学习自动调整参数,找到最优解问题,减少因为人工操作而造成的信息损失。该方法不仅在实验中表现出色,而且为数字图像取证和图像完整性验证等领域提供了一种更为有效的解决方案。其次,本文章的实验方法中还使用了卷积操作,利用深度学习的特性进行研究,这也启示我,深度学习可以涉及的领域很广泛,它的优势也是非常鲜明的,未来也要加深这方面的学习。同时,我也注意到对比实验中在质量因子为60和70时性能略有下降的情况,可能是因为空域特征的提升有限,还在一定程度上造成了一定的冗余,这可能需要进一步的改进,才能得到更好的结果。

 

相关文章:

基于解压缩模块的JPEG同步重压缩检测论文学习

一、论文基本信息: 论文题目:基于解压缩模块的JPEG同步重压缩检测 作者:王金伟1 ,胡冰涛1 ,张家伟1 ,马 宾2 ,罗向阳3 (1.南京信息工程大学计算机学院、网络空间安全学院&#xf…...

音视频入门基础:FLV专题(7)——Tag header简介

一、引言 从《音视频入门基础:FLV专题(3)——FLV header简介》中可以知道, 在FLV header之后,FLV文件剩下的部分应由PreviousTagSize和Tag组成。FLV文件 FLV header PreviousTagSize0 Tag1 PreviousTagSize1 Ta…...

【Linux 报错】“make: ‘xxxx‘ is up to date.” 解决办法

一、报错原因 我们使用 make 命令,想要将 text.c 文件编译形成 可执行文件 text 时,报错如下 make: test is up to date. 中文含义:test 文件已经达到最新状态 意思是: test.c 文件里面的 所有源代码都没有修改过,你…...

【FPGA开发】Xilinx FPGA差分输入时钟的使用方法

正文 以前在使用ZYNQ的领航者ZYNQ7020进行FPGA学习时,它们使用的单端50M的输入时钟,在verlog代码编写上比较简单,而现在使用Alinx的AXU3EG开发板时,发现它使用的是200M的差分输入时钟,哪这个时候,输入时钟要…...

面试扩展知识点

1.C语言中分为下面几个存储区 栈(stack): 由编译器自动分配释放堆(heap): 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收全局区(静态区): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域&#…...

【经验分享】MyCAT 中间件

学习了一下数据量过大的解决方案,使用 MyCAT 中间件。 MyCAT 可以解决分布式事务、读写分离、主从、分片等一系列MySQL集群和分布式问题。 整体过程可以概括为拦截 - 分发 - 响应 例如设置 MyCAT 分片规则为每500万条数据就换一个数据库存储。 分库分表的中心思想都是将数据…...

Kotlin:1.8.0 的新特性

一、概述 Kotlin 1.8.0版本英语官方文档 Kotlin 1.8.0 中文官方文档 The Kotlin 1.8.0 release is out and here are some of its biggest highlights: Kotlin 1.8.0发布了,下面是它的一些亮点: JVM 平台新增实验性函数:递归复制或删除目录内容改进了 …...

深度学习之开发环境(CUDA、Conda、Pytorch)准备(4)

目录 1.CUDA 介绍 1.1 CUDA 的基本概念 1.2 CUDA 的工作原理 1.3 CUDA 的应用领域 2. 安装CUDA 2.1 查看GPU版本 2.2 升级驱动(可选) 2.3 查看CUDA版本驱动对应的支持的CUDA ToolKit工具包 2.4 下载Toolkit 2.5 安装(省略&#xff0…...

10月2日笔记(内网资源探测篇)

内网资源探测 在内网渗透中,测试人员往往需要通过各种内网扫描技术来探测内网资源的情况,为后续的横向渗透做准备,通常需要发现内网存活的主机,并探测主机的操作系统、主机开放了哪些端口、端口上运行了哪些服务、服务的当前版本…...

SpringCloud-基于Docker和Docker-Compose的项目部署

一、初始化环境 1. 卸载旧版本 首先,卸载可能已存在的旧版本 Docker。如果您不确定是否安装过,可以直接执行以下命令: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…...

Linux下的基本指令/命令(一)

目录 基本命令 1. Is命令/指令: 罗列当前目录下指定的文件或者目录. 2. pwd命令: 查看当前工作的路径 3. cd命令: 切换到指定路径下。 只能切换到目录中 4. tree命令: 树状显式目录 使用前要输入命令 yum install -y tree ,用来安装一个…...

从零开始Ubuntu24.04上Docker构建自动化部署(四)Docker安装gitlab

你会发现所有gitlab都无法拉取到的情况下,经查找极狐下的gitlab还可以下载,具体如下: 建议保存地址: https://packages.gitlab.cn/#browse/searchkeyword%3Dgitlab 最新版本: sudo docker pull registry.gitlab.cn…...

No module named ‘_ssl‘

目录 背景具体报错检验升级过程步骤一:升级ssl。步骤二:重新编译安装python 背景 换了台服务器按照之前centos升级python版本升级python正常编译安装成功,但是当使用时又出现了奇怪的报错,估计是机器太老了 具体报错 这个报错也…...

Linux —— Socket编程(三)

一、本章重点 1. tcp服务器实现思路,进一步了解和总结相关的接口 2. 了解日志和守护进程 二、tcp服务器核心思路 tcp版的服务器与udp的不同在于,udp是面向数据报传输数据,在数据传输中不需要建立与客户端的链接,直接用recvfrom…...

5G N2 N3 N6 NB口

在5G架构中,N2、N3和N6是三种关键的接口,每个接口都有其特定的功能和应用场景。 N2接口: N2接口是5G无线接入网(RAN)与5G核心网(5GC)之间的控制面接口。它主要负责传递控制平面消息&#xff0c…...

【数据结构】堆(Heap)详解

在深入了解堆这一重要的数据结构之前,不妨先回顾一下我之前的作品 ——“二叉树详解”。 上篇文章👉剖析二叉树(Binary Tree) 二叉树作为一种基础的数据结构,为我们理解堆以及其他更复杂的数据结构奠定了坚实的基础。它…...

《Linux从小白到高手》理论篇(四):Linux用户和组相关的命令

List item 本篇介绍Linux用户和组相关的命令,看完本文,有关Linux用户和组相关的常用命令你就掌握了99%了。Linux用户和组相关的命令可以分为以下六类: 一.用户和用户组相关查询操作命令: Id id命令用于显示用户的身份标识。常见…...

OpenGL ES 之EGL(6)

OpenGL ES 之EGL(6) 简述 EGL是OpenGL ES的封装,目的是跨设备跨平台,隔离不同平台对窗口不同的实现。上一节我们基本没有使用到EGL,因为GLSurfaceView帮助我们处理了相关的逻辑,我们这一节来看一下EGL的一些概念以及接口的使用。…...

kotlin 委托

一、类委托 interface DB{fun insert() } class SqliteDB : DB {override fun insert() {println(" SqliteDB insert")} }class MySql : DB{override fun insert() {println(" MySql insert")} }class OracleDB : DB{override fun insert() {println(&quo…...

Stream流的中间方法

一.Stream流的中间方法 注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程 注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据 二.filter filter的主要用法是…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

Kafka入门-生产者

生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...