机器学习图像编码:一种内容自适应方法

这周看的文章题目是:机器学习图像编码:一种内容自适应方法(LEARNED IMAGE CODING FOR MACHINES: A CONTENT-ADAPTIVE APPROACH)
文章链接:https://ieeexplore.ieee.org/document/9428224/
参考文章链接:
多尺度渐进统计模型(Lossless Image Compression Using a Multi-Scale Progressive Statistical Model)
IMAGE CODING FOR MACHINES: AN END-TO-END LEARNED APPROACH(https://ieeexplore.ieee.org/document/9414465/)
目前视频图片处理方法有两种,一种是以人为目标的图像和视频编码标准适应即期消费的用例,一种是为机器通信开发全新的压缩返利和架构。
作者在这篇论文中提出了一种推理时间内容自适应微调方案,优化端到端学习图像编解码器的潜在表示,提高机器消耗的压缩效率,针对实力分割任务网络进行的试验表明,作者的在线微调相对于我们的预训练编解码器带来了-3.66%的平均比特率节省。尤其在低比特率下,作者提出的方法有一个-9.85%的比特率节约。总之,我们的预训练然后经过微调在实例分割方面比最先进的图像/视频编解码器通用视频编码(VVC)实现了30.54%的比特率节省。

关键词:机器图片编码、学习的图片压缩、内容自适应、微调、机器视频编码
这个实验是基于一个已有的端到端学习的图像编解码器,通过冻结解码器和概率模型,通过反向传播关于 y 元素的损失梯度来微调潜在张量 y 。这样很好的解决了测试数据和预测数据的数据域转移问题。下面我将按以下结构展开:首先介绍一个这个基于神经网络的编解码器的组成部分以及如何实现的,其次介绍以下如何通过微调张量y解决数据域转移的问题,最后给出作者的实现结果、方法的应用场景以及本人认为可以优化的方向。
一、ICM系统
这个基于神经网络的端到端学习的图像编解码器一共由三部分组成,分别是:一个概率模型、一个代表“机器”的任务网络、一个自动编解码器(有损压缩编码器和无损压缩编码器)。值得注意的是,这个模型里面用了两次压缩,第一次是有损压缩,然后第二次是把有损的使用熵编码进行了一次无损压缩。这里的编解码器模型使用的是第一篇论文里面的,概率统计模型换成了第二篇论文中的多尺度渐进统计模型。
机器学习图像编码:一种内容自适应方法_第1张图片
概率模型:
概率模型是为了估计要压缩的数据的概率分布和概率,作者结合了基于无损图像编码系统提出的概率模型对有损图像进行求解概率分布,然后使用熵编码对有损图像进一步执行无损压缩。
较低分辨率表示中的像素用作上下文以估计较高分辨率表示中像素的分布函数。并且较低分辨率中的像素是从较高像素分表率图像中使用某种方法选出来的。也就是说,较低分辨率图像中像素是较高分辨率图像像素的子集。则原始图像的概率分布就可以表示为下式:
机器学习图像编码:一种内容自适应方法_第2张图片
为了进一步提高压缩率,使概率分布更加准确。我们吧每个采样后得到的图像分成若干组:
分成若干组
Bi代表组数;
因此有:
分组以后可以参考的上下文信息增多
在这里插入图片描述
机器学习图像编码:一种内容自适应方法_第3张图片
其中每组的概率分布等于组中每个像素的概率分布的乘积。混合模型 p ( x(i) j,k |G(i) j ) 的参数是使用深度神经网络从上下文函数 G(i) j 导出的。
训练深度神经网络以最小化输入 x(0) 的交叉熵:
机器学习图像编码:一种内容自适应方法_第4张图片
如下图所示就是多尺度渐进统计模型:
机器学习图像编码:一种内容自适应方法_第5张图片
在这个系统中,首先原始图像x(0)首先经过下采样得到低分辨率的图像x(1)和x(2),然后将该尺度图像、上一级图像和上下文信息输入到progressive Predicition Model中去,得到该尺度下的概率分布。
下图所示是在一个尺度下中求每个组的概率分布:
机器学习图像编码:一种内容自适应方法_第6张图片
其中初始上下文 z(i) 0 设置为尺度 i + 1 的输出上下文。对于没有可用上下文信息的最后一个尺度,我们将上下文设置为零,即 zM 0 = 0。深度 CNN输出参数 p(i) j 为组 j 中像素的估计值分布函数,以及上下文信息 z(i) j。

在训练和编码阶段,当 ground truth x(i−1) 可用时,在处理完组 j 中的像素后,系统将 ^ x(i) j+1 中的相应值设置为真实像素值,使用混合器组件,并相应地更新掩码 m(i) j+1 。然后,将 ^ x(i) j+1、m(i) j+1 和 z(i) j 传递给深度 CNN 以导出 p(i) j+1 和 z(i) j+1。在训练阶段使用 p(i) j+1 和 x(i) 计算第 j + 1 组像素的熵。在编码阶段,算术编码器根据使用参数p(i)j+1的估计值分布函数对像素进行编码。在解码阶段,j 组像素的估计值分布函数用于使用算术解码器从比特流中解码真实值。 ^ x(i) j+1 和 m(i) j+1 的更新方式与训练和编码阶段相同。这个过程一直持续到所有 B(i) 组都被处理。

编解码器D/E:
编解码器的目标是解码可以提供良好任务性能的数据张量,编解码器的架构我们使用卷积神经网络:
机器学习图像编码:一种内容自适应方法_第7张图片
卷积块用尖锐的矩形表示。 “TCONV”表示转置的卷积层。在每个卷积块中,“S”表示步幅,“C”表示所有子块的输出通道数。如果没有另外说明,这些值是从父块继承的。

任务网络:
任务网络是基于MASK R-CNN的,实现的是实例分割。该网络经过预训练,并且在实验中保持不变。任务损失定义为 Mask R-CNN 网络的训练损失:
训练损失
二、在线潜在张量微调
在预训练以后,这里通过反向传播只对编码器得到的潜在张量y进行微调,对于解码器和概率模型保持不变。(我的理解是对有损编码器的输出进行一个微调,微调的时候冻结概率模型和解码器,然后把微调以后的结果进行无损编码,这样做就解决了数据域转移的问题,这个地方我不是很明白)
作者建议使用以下微调损失的梯度来微调 y:
损失函数
微调方案:
机器学习图像编码:一种内容自适应方法_第8张图片
作者使用在 ImageNet 上预训练的 VGG-16 模型作为特征提取器。
并且由于机器分析任务不可知,作者就用中间特征层的损失作为了机器任务性能损失。
性能损失
其中 MSE 表示均方误差计算,Fi(t) 表示给定输入 t 后特征提取器的第 i 个 Max Pooling 层的输出。
下图为在线微调张量的算法图:
机器学习图像编码:一种内容自适应方法_第9张图片
机器学习图像编码:一种内容自适应方法_第10张图片
实验
实验装置:
在基线系统中,作者遵循相同的训练配置。使用的是包含分辨率为2048*1024的未压缩图片的CitySpace,分为两个子集:训练集和验证集。在包含2975张图像的训练集上训练了基线系统,这些类别包括:汽车、人、自行车、公共汽车、卡车、火车、摩托车。这个实例分割任务网络被Trochversion提供,这个系统使用Python1.5实现。
在每一次训练阶段之后,作者使用500张验证集中的图片对机器分析的任务性能进行评估。作者分别使用MAP和BPP分别作为机器分析和比特率的参数。注意由于经过训练损失项有不同的权重,编码能在一个广泛的比特率范围内得到一个很好的权衡。使用方程式中香农熵报告的比特率估计,而不是实际比特流长度产生的比特率。在实践中,作者已经验证了它们之间的差异可以忽略不计。
作者也提供了最先进的编解码标准VVC,在JVET通用测试条件下。这个验证集被编码了28种设置,7个量化参数和4种下采样来实现不同的比特率输出。这28种原始输入的编码方案被用来评估任务性能。这个帕累托前沿来自这28种比特率。此外“VVC full- size images”被说明仅表示没有下采样的编码数据点,即VVC的常见用例。
由于基线模型在较高比特率下已经有了显著的性能提升,因此我们在这项工作中专注于微调低比特率下的编码效率。下面是两张实验结果图:
机器学习图像编码:一种内容自适应方法_第11张图片
机器学习图像编码:一种内容自适应方法_第12张图片
结论:
这个所提出的内容自适应微调技术能显著提高编码性能,尤其在低比特率下。这个方法不需要一个复杂的编码器也不依赖任务网络或任务真实背景,因此它能够很容易的适应许多计算机视觉工作流利用基于卷积神经网络的编码。此外,与传统的VVC编解码器的比较证实了机器目标视频编码器在机器消费方面的卓越编码性能。
为了未来提高作者的技术,未来的工作能够探索不同的配置,在更大的码率范围内放大编码效率的提升。另外,微调技术的有效性能被在更多的计算机视觉任务上验证,单独或在相同的微调输出上。

你可能感兴趣的:(文献阅读笔记,人工智能,深度学习)