IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> IMAGE CODING FOR MACHINES: AN END-TO-END LEARNED APPROACH 2021 -> 正文阅读

[Python知识库]IMAGE CODING FOR MACHINES: AN END-TO-END LEARNED APPROACH 2021

1.1 摘要

该文提出了一种基于神经网络(NN)的、基于端到端学习的机器的图像编解码器。特别地,我们提出了一套训练策略,以解决平衡竞争损失函数的微妙问题,如计算机视觉任务损失、图像失真损失和速率损失。该文的实验结果表明,该文的基于nn的编解码器在目标检测和实例分割任务上优于最先进的通用视频编码(VVC)标准,分别实现了-37.87%和-32.90%的bd率增益。

以下游任务为主导的编解码系统

1.2 模型

该文提出了一种针对任务性能(ICM)系统的图像编码,而不是像素域保真度。我们的编解码器包括一个神经自动编码器,一个学习的概率模型和一个熵编解码器。所提议的管道如下图所示。

基于神经网络的编码器将未压缩的图像 x x x转换为一个新的数据表示 y = E ( x ; θ E ) y=E(x;\theta_{E}) y=E(x;θE?),然后将其量化为 y ^ = Q ( y ) \hat{y}=Q(y) y^?=Q(y),然后由熵编码器利用概率模型估计的概率分布对熵编码器进行无损压缩。输出比特流在解码器端被解压缩,并由NN解码器解码回像素域,称为 x ^ = D ( y ^ ; θ D ) \hat{x}=D(\hat{y};\theta_D) x^=D(y^?;θD?)。任务NN以 x ^ \hat{x} x^作为输入,并返回相应的任务结果。

1.2.1 Auto-encoder

与普通的自动编码器不同,该文提出的自动编码器的目的不是重建输入图像。相反,它的目标是解码一个数据张量,可以提供一个良好的任务性能,而编码器的输出可以被熵编解码器有效地压缩。这两个目标分别被称为任务损失 L t a s k L_{task} Ltask?、和速率损失 L r a t e L_{rate} Lrate?。下游任务使用经过预先训练的模型,因此它们接受图像格式的输入数据,即三个通道。因此,解码器的输出需要是与图像形状相同的张量。对于编码器和解码器的结构,使用了带有残余连接的卷积神经网络(CNN)结构,如图2所示。

1.2.2 Probability model

非对称数字系统(ANS)[11]编解码器首先根据每个符号的概率将一个符号流编码为单个自然数,然后将该数字转换为一个二进制位流。给定量化的潜在张量 y ^ \hat{y} y^?及其估计的分布 p y ^ ( y ^ ) p_{\hat{y}}(\hat{y}) py^??(y^?),我们有兴趣用最小编码长度对 y ^ \hat{y} y^?的符号进行编码。如果边缘分布 m y ^ m_{\hat{y}} my^?? p y ^ p_{\hat{y}} py^??相同,则得到了下界。由于 m y ^ m_{\hat{y}} my^??来源于未知的输入图像分布 p x p_x px?和变换方法 Q ( E ( , θ E ) ) Q(E(,\theta_{E})) Q(E(,θE?)),因此码长r只能通过香农交叉熵来估计:
r = E y ^ ? m y ^ [ ? l o g 2 p y ^ ( y ^ ) ] = E x ^ ? p x [ ? l o g 2 p y ^ ( Q ( E ( x ; θ E ) ) ) ] (1) r=E_{\hat{y}-m_{\hat{y}} }[-log_2p_{\hat{y}}(\hat{y})] \\ =E_{\hat{x}-p_{x}}[-log_2p_{\hat{y}}(Q(E(x;\theta_E)))] \tag 1 r=Ey^??my^???[?log2?py^??(y^?)]=Ex^?px??[?log2?py^??(Q(E(x;θE?)))](1)
概率模型的目的是学习分布 p y ^ p_{\hat{y}} py^??,以最小化r。对于这个模块,我们使用[9]中提出的“Mean&Scale Hyperprior”结构,该结构通过高斯混合模型建模潜在的分布,并学习这些分布的参数。利用这些参数以封闭的方式动态得到分布 p y ^ p_{\hat{y}} py^??。为了解压缩编码的 y ^ \hat{y} y^?,一个携带估计概率信息的附加码流 z ^ \hat{z} z^被发送到接收器侧。因此,速率损失项 L r a t e L_{rate} Lrate?由两个位流的总长度给出:
L r a t e = E y ^ ? m y ^ [ ? l o g 2 p y ^ ( y ^ ) ] ? l a t e b t s ? r a t e + E z ^ ? m z ^ [ ? l o g 2 p z ^ ( z ^ ) ] ? h y p e r ? l a t e n t s ? r a t e (2) L_{rate}=\underbrace{E_{\hat{y}-m_{\hat{y}}}[-log_2p_{\hat{y}}(\hat{y})]}_{latebts\ rate}+\underbrace{E_{\hat{z}-m_{\hat{z}}}[-log_2p_{\hat{z}}(\hat{z})]}_{hyper-latents\ rate}\tag 2 Lrate?=latebts?rate Ey^??my^???[?log2?py^??(y^?)]??+hyper?latents?rate Ez^?mz^??[?log2?pz^?(z^)]??(2)
将概率模型与自动编码器以端到端训练的方式进行联合优化。在训练过程中,量化步骤被附加的均匀噪声所取代,使基于梯度的优化成为可能.

1.2.3 Training strategy

该文分别训练和评估了两种计算机视觉任务的两种不同的压缩模型:目标检测,使用Faster R-CNN[13],和实例分割,使用Mask R-CNN[14]。在每种情况下,我们冻结相应的预训练任务网络,并将 L t a s k L_{task} Ltask?定义为各自的训练任务损失。因此, L t a s k L_{task} Ltask?的梯度只计算关于编解码器的参数。

考虑到解码后的图像是被机器运用,就没有必要拥有在视觉上吸引人类的高保真输出图像。相反,我们通过在模型训练中施加任务损失和任务最小化来优先考虑良好的任务性能。我们的ICM系统将RDO方法进行了扩展,将任务损失 L t a s k L_{task} Ltask?添加到“失真”D中。一般的训练损失函数由:
L t o t a l = w r a t e L r a t e + w m s e L m s e + w t a s k L t a s k (3) L_{total}=w_{rate}L_{rate}+w_{mse}L_{mse}+w_{task}L_{task} \tag 3 Ltotal?=wrate?Lrate?+wmse?Lmse?+wtask?Ltask?(3)
其中,wrate、wmse、wtask分别为每个损失项Lrate、Lmse、Ltask的标量权值

Loss weighting strategy:

该文没有使用固定的损失权重,而是提出了一个动态损失权重策略来进行有效的多任务训练,因为:

  1. 损失项的竞争性质使它们各自的梯度恶化了其他‘的性能。在每次更新中,在目标之间保持正确的平衡是至关重要的,由于其缺乏灵活性,这对于固定损失权重来说是非常具有挑战性的。

  2. 对最优权重的详尽搜索是非常耗时的

1.3 结果

Loss weighting

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kZdjNdby-1648623225848)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220330002246155.png)]

可以看到,针对机器的编码在下游任务上的效果甚至比原高分辨率的效果都要好。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IezVMJZz-1648623225849)(C:\Users\Liujiawang\AppData\Roaming\Typora\typora-user-images\image-20220330002426026.png)]

参考文献

IMAGE CODING FOR MACHINES: AN END-TO-END LEARNED APPROACH

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:00:16  更:2022-04-01 00:01:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 4:10:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计