OAPT:用于双JPEG伪影去除的偏移感知分区的Transformer

news2024/10/2 8:21:27

OAPT: Offset-Aware Partition Transformer for Double JPEG Artifacts Removal

https://github.com/QMoQ/OAPT

2408.11480 (arxiv.org)

基于深度学习的方法在去除单个JPEG伪影任务中表现出了显著的性能。然而,现有方法在处理双重JPEG图像时往往会退化,而这类图像在真实场景中普遍存在。

本文提出了一种用于去除双重JPEG伪影的偏移感知分区Transformer,称为OAPT。本文对双重JPEG压缩进行了分析,发现每个8x8块内最多会出现四种模式,并设计了我们的模型以聚类相似模式来克服恢复难度。

OAPT由两部分组成:压缩偏移预测器和图像重建器。具体来说,预测器估计第一次和第二次压缩之间的像素偏移量,然后利用这些偏移量来区分不同的模式。重建器主要基于多个混合分区注意力块(HPAB),该块结合了基于窗口的自注意力和稀疏注意力来处理聚类模式特征。

大量实验表明,在双重JPEG图像恢复任务中,OAPT的性能优于最先进的方法,高出0.16dB以上。此外,在不增加任何计算成本的情况下,HPAB中的模式聚类模块可以作为插件来增强其他基于Transformer的图像恢复方法。

问题描述

与单次压缩相比,双JPEG压缩在现实场景中更为常见,因为互联网上的图像通常会经历多个压缩周期[14, 28, 40, 62]。例如,如图1(a)所示,一张新拍摄的照片在首次压缩后存储在相机的磁盘中,之后在图像编辑(如裁剪)或上传到社交媒体云服务器时,会进行第二次压缩,从而成为双压缩图像。随着上述过程的重复发生,自然会产生多压缩图像。

然而,大多数以前的方法都是在单次压缩数据上进行训练的,并且只考虑了质量因子(QF)的范围,这导致在双JPEG图像恢复中性能大幅下降。

FBCNN[28]作为双JPEG伪影去除的开创性工作,估计了双压缩中的主导QF或在合成的双JPEG图像上进行微调。尽管它在减少单次和双次压缩伪影方面都是有效的,但它并没有专门针对双JPEG压缩的特性进行设计

通过分析双JPEG图像的出现,本文发现除了QF的各种组合外,双JPEG图像中还存在明显的压缩偏移。由于像素级偏移,非对齐压缩导致第二次压缩中每个8x8块内不超过四种模式,如图1(b)所示。这会在8x8块中产生明显的边界和不同的模式特征,如图1(c)所示。通过在各种双压缩场景下测试DnCNN[73]发现,非对齐压缩的图像恢复任务要困难得多。与对齐压缩相比,非对齐压缩的峰值信噪比(PSNR)明显下降。

Motivation

首先,本文先证明了上面问题的存在。证明方法如下:

通过后面介绍的的数据退化方法,从LIVE1[55]数据集中生成了两组灰度图像,分别是偏移量为(0,0)的对齐双重JPEG图像和偏移量为(4,4)的非对齐双重JPEG图像。

计算了在(QF1, QF2) = (30, 50)和(QF1, QF2) = (50, 30)条件下,低质量图像与DnCNN处理后的相应增强图像之间的ΔPSNR值。

对于对齐的双重压缩图像,ΔPSNR值分别为2.06 dB和3.24 dB,而对于非对齐的双重压缩图像,ΔPSNR值分别为1.66 dB和1.64 dB。

发现,非对齐双重压缩图像的恢复性能不如对齐双重压缩图像。由此可以得出,非对齐双重JPEG图像的恢复更为复杂和困难。

在图1(b)中,描绘了双重压缩中的偏移量在每个8×8编码单元中产生了四种模式。这四个部分在第二次压缩中位于同一个8×8块中,但在第一次压缩中分别属于四个不同的8×8块。因此,在第二次压缩后,同一个8×8块中的四个部分会受到不同种类的块效应和压缩模式的影响而退化。

这启发了双重JPEG图像恢复的潜在简化方法可能是分别处理具有相同模式的聚类块。

方法描述

Overview

为了解决非对齐压缩图像的恢复问题,本文尝试获取压缩偏移并将相同的模式聚合在一起以进行更好的恢复

受Swin Transformer中分区操作的启发,提出了一种针对8x8块中相同位置模式的新型分区策略。

基于此,设计了偏移感知分区Transformer(Offset-Aware Partition Transformer,简称OAPT)。OAPT由两个主要部分组成:一个基于CNN的压缩偏移预测器和一个基于Transformer的图像重建器

压缩偏移预测器估计两次JPEG压缩之间的像素偏移,从而在整个图像中每个8x8块的相同位置对表现出相似压缩效果的模式进行有效聚类。

图像重建器由混合分区注意力块(Hybrid Partition Attention Blocks,简称HPAB)组成,结合了基于窗口的自注意力机制和稀疏注意力机制来处理聚类后的模式特征。交替的注意力和模式聚类机制可以增强双压缩伪影去除的鲁棒性。

压缩偏移预测器

偏移体现在均匀且周期性的8x8块中,表明行和列的偏移范围从0到7。在图像退化过程中,在第二次压缩中随机移除前i行和前j列,以模拟非对齐压缩,并将得到的偏移标记为(i, j)。

关于合成双重压缩图像的详细信息见后面。如图2所示,压缩偏移预测器采用ResNet-18。它以低质量图像为输入,并估计行和列的偏移。

预测器的输入仅是输入图像左上角的一个44x44的区块,JPEG从此处开始将图像分割成块并进行压缩。

为了最小化参数数量,将残差块中的所有卷积层替换为深度可分离卷积[13]层,并将这些修改后的块表示为D-Resblocks。

此外,引入了一个额外的线性层、sigmoid激活函数和取整操作,以生成一个由两个介于0和7之间的整数组成的输出,如公式所示:

其中,r′ 和 c′ 是最后一个线性层的输出,而 r^ 和 c^ 是行和列的最终预测偏移。

利用紧凑的CNN网络和缩小的输入尺寸,预测器的计算成本远低于重构器。

通过最小化以下损失函数来优化偏移预测器:

其中,r 和 c 是行和列的真实偏移。

基于混合分区注意力块的图像重构器

本文设计了一种新的分区操作,以匹配混合注意力机制,用于双重JPEG图像恢复。

利用预测器估计的偏移量,可以将每个8x8块分割成四部分,并对相同位置的模式进行聚类,以便进行后续的自注意力处理。

图像重构器主要由这种新的混合注意力机制组成。图像重构器包含三个部分:一个用于浅层特征提取的卷积层、一系列基于Transformer的模块用于深层特征提取,以及一个用于高质量图像重构的卷积层。

深层特征提取部分是OAPT的核心,由混合分区注意力块(HPAB)和一个卷积层组成。如图2所示,HPAB是一个残差块,包含一个卷积层、四个Swin Transformer层(STL)和两个基于模式聚类的Swin Transformer层(PC-STL)。HPAB可以提供基于窗口的普通自注意力[39]和稀疏注意力。

STL专注于每个窗口内局部连续特征的密集注意力。

而PC-STL则配备了基于模式聚类的多头自注意力(PC-MSA)。模式聚类模块利用估计的偏移量将每个8x8块分成四种模式,并对相同位置的模式进行聚类以进行自注意力处理,如图3所示。

聚类后,PC-STL实现稀疏模式注意力,并将聚类后的模式恢复到其原始位置。

虽然看起来与ART[71]中的稀疏注意力类似,但本文的方法是根据偏移量将输入特征分解为4个相对稀疏的块,以便更好地提取相同模式中的信息,而ART中均匀采样的稀疏注意力的目的是扩大感受野的大小。

同时,本文的模块在参数和计算成本上优于ART的注意力模块。

PC-STL的表达式如下公式所示,

其中X代表PC-STL的输入特征,offset是从预测器估计的偏移量,Y是PC-STL的输出。

PC-MSA可以表达为:

其中,PC表示模式聚类模块,xi表示模式聚类后相似模式的聚类部分,invPC表示模式聚类的逆操作,XLN表示PC-MSA的输入特征。

W-MSA表示对每个聚类部分分别进行的基于窗口的多头自注意力,也可以表示为:

其中,Q、K、V分别是输入xi线性投影后的查询、键、值,B是可学习的相对位置编码,d是每个标记的维度大小。由于Charbonnier损失[6]在图像恢复中很有效,通过最小化像素损失来优化重构器:

其中,ϵ是一个常数值10−3,ˆI 是重构器重构的图像,I 是对应的高质量真实图像。

基于Transformer的模式聚类插件模块

HPAB中提出的模式聚类是一种鲁棒的机制,能够作为其他基于Transformer方法的插件模块运行,而不会引入额外的参数或计算开销。

基于Transformer的网络可以很容易地将模式聚类作为自注意力之前的预处理步骤,以增强非对齐双重压缩图像的恢复效果。

同时,逆模式聚类也可以作为后处理步骤,用于在自注意力处理后将聚类后的块重新排列回其原始位置。因此,本文的模式聚类插件模块由模式聚类操作和逆模式聚类操作组成。

在HAT-S上实现了模式聚类机制的实验。实验结果表明,这个低成本的插件模块不仅提高了HAT-S的性能,而且在不增加额外参数或计算复杂度的情况下扩大了感受野。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

127-隧道搭建穿透上线FRPNPSNgrok

使用了几种工具将会一一介绍 ngrokru 项目地址:Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 这个网站现在要实名认证(还得花2元解锁) 用这种在线的网站怎么说呢,真不如自己买个云服务器用下面的frp,毕竟流量…

Python3:多行文本内容转换为标准的cURL请求参数值

背景 在最近的工作中,经常需要处理一些接口请求的参数,参数来源形式很多,可能是Excel、知识库文档等,有些数据形式比较复杂,比如多行或者包含很多不同的字符,示例如下: **客服质检分析指引** …

多个程序监听不同网卡的相同端口、相同网卡不同IP的相同端口

1 概述 一个主机上的多个程序监听同一个端口,是否一定存在冲突?如果是多网卡、单网卡多IP的情景下,多个程序是可以独立监听的。 2 多个程序监听不同网卡的相同端口 3 多个程序监听同一个网卡不同IP的相同端口 4 小结 多个程序监听同一个网…

生成式人工智能会导致人工智能崩溃吗

况可能很快就会发生变化。 从定义上讲,LLM 需要大量数据,而且所使用的数据集越来越大。根据缩放定律[2],要提高性能,必须同时增加参数数量和训练标记数量(后者被认为是最重要的因素)。 这些数据集包含人类产…

0x03 ShowDoc 文件上传漏洞(CNVD-2020-26585)复现

参考:ShowDoc文件上传漏洞(CNVD-2020-26585)_showdoc漏洞-CSDN博客 一、fofa 搜索使用该工具的网站 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统 "S…

ZMQ请求应答模型

案例一 这个案例的出处是ZMQ的官网。请求段发送Hello&#xff0c;应答端回复World。 ZMQ Request(client) #include <string> #include <iostream> #include <zmq.hpp>using namespace std; using namespace zmq; // 使用 zmq 命名空间int main() {// ini…

知识竞赛答题设备及答题方式有哪些

根据我们多年的知识竞赛承办经验&#xff0c;我来谈谈在知识竞赛中常用的答题设备和答题方式。 一、常用答题设备 1.电脑 如果电脑资源充足&#xff0c;可以用笔记本电脑进行答题&#xff0c;笔记本电脑可以采取有线或无线方式进行连网&#xff0c;可以根据情况选择连网方案&…

PyTorch专栏介绍

专栏导读 深度学习作为人工智能领域的重要分支&#xff0c;其应用范围广泛&#xff0c;从图像识别到自然语言处理&#xff0c;再到强化学习等。PyTorch作为当前流行的深度学习框架之一&#xff0c;以其动态计算图和易用性受到了广大开发者的青睐。本专栏将带领读者从零开始&am…

kubeadm搭建生产环境高可用集群

前言 搞了好多天&#xff08;今天是20240819&#xff09;&#xff0c;中途遇到各种各样的问题&#xff0c;总算是可以用了 我这里用的vmware开了5台服务器做学习实践 K8S因为直接使用的 pkgs.k8s.io 仓库&#xff0c;所以直接拉取的最新release版&#xff08;v1.31&#xff09…

结构开发笔记(五):solidworks软件(四):绘制36x36方块摄像头基座

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/141422131 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

【hot100篇-python刷题记录】【盛最多水的容器】

R6-双指针篇 印象题 双指针法&#xff0c;num1在0处&#xff0c;num2在n-1处&#xff0c;相对移动收缩。 核心&#xff1a; 每次单步移动短板&#xff0c;因为长板收缩面积肯定变小。 面积&#xff1a;短板决定 class Solution:def maxArea(self, height: List[int]) ->…

【嵌入式软件】stm32内部flash读写

1.简介 控制系统采用STM32F429IGT6,STM32F429IGT6 的 FALSH 容量为 1024K 字节。 STM32F429 的闪存模块组织如下表所示。 STM32F429xx 的闪存模块由:主存储器、系统存储器、OTP 区域和选项字节等 4 部分组 成。 1)主存储器,该部分用来存放代码和数据常数(如 con…

PHP开发过程中常见问题快速解决

1.PHP解决文件名不合法,无法创建 文件名称不能含有 /\:*?"<>|符号&#xff0c;直接替换关键词就OK了 $search array(*,$,\\,/,"",",*,?,:,<,>,|, ,[,],【,】,(,),&#xff08;,&#xff09;); $name"1:.php"; $new_namestr_repla…

Windows 11新版将至:Zen5、Zen4、Zen3游戏性能一起飞

锐龙9000系列发布之初&#xff0c;有些媒体和玩家发现&#xff0c;其游戏性能没有官方宣传的提升那么高&#xff0c;于是产生了一些质疑&#xff0c;AMD今天特意就此撰文&#xff0c;给出了详细的解释&#xff0c;并透露未来会随着Windows 11的升级而释放更多性能潜力。 事实上…

FreeRTOS学习:内存管理

FreeRTOS内存管理简介 在使用 FreeRTOS 创建任务、队列、信号量等对象的时候&#xff0c; FreeRTOS 一般都提供了两种方法&#xff0c; 动态方法创建&#xff1a;自动地从 FreeRTOS 管理的内存堆中申请所创建对象所需的内存&#xff0c;在对象被删除后&#xff0c;又可以将这…

基于Django的停车场车辆出入管理系统,可识别车牌图片

研究背景 随着城市化进程的加快&#xff0c;车辆数量不断增加&#xff0c;停车场的管理成为一个日益重要的课题。传统的停车场管理系统依赖人工登记和监控&#xff0c;不仅效率低下&#xff0c;而且容易出现疏漏和错误&#xff0c;难以满足现代社会对停车场管理智能化、高效化…

Scrum敏捷开发高效实践课程:面向企业团队的系统化训练,旨在提升研发效率,优化项目管理,推动企业敏捷化发展。

课程简介&#xff1a; Scrum 是一种广泛应用的敏捷开发方法&#xff0c;用于项目管理和产品研发。该课程为期两天&#xff0c;专为研发管理者、项目经理、产品经理和研发团队设计。通过案例讲解和沙盘演练&#xff0c;学员将深入理解Scrum的核心理念&#xff0c;如产品价值驱动…

基于x86 平台opencv的图像采集和seetaface6的人脸跟踪功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸跟踪功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸跟踪模块从而实现…

谢广坤:愿意说话你自己起个头行不?刘能:我起头不费劲吗!

谢广坤&#xff1a;愿意说话你自己起个头行不&#xff1f;刘能&#xff1a;我起头不费劲吗&#xff01; --小品《欢乐农家》&#xff08;赵家班、上&#xff09;的台词与解说 刘能&#xff1a;大脚 谢大脚&#xff1a;咋的了这是 大过年的 刘&#xff1a;脚崴了 大脚&…

Godot自定义快捷键(配置视图快捷键)

如图 这个没啥技术&#xff0c;但是配置快捷键的时候有讲究如图 选择万国码并且将前后左右下上&#xff08;顶底&#xff09;分别配置为123456。汝等自管记好&#xff0c;今后自有妙用&#xff08;哈哈&#xff09;效果如图