ICASSP2021:端到端的图像编码方法
本文来自ICASSP2021论文《Image Coding For Machines: An End-to-end Learned Approach》
基于深度学习的计算机视觉在图像领域应用越来越广泛,每天产生的图像数量爆发式增长,传统的图片编码器是面向人眼视觉而不是机器处理。本文提出基于神经网络(NN)的端到端学习的面向机器的图像编码器(Image Coding for Machines,ICM)。
本文算法
本文ICM模型的优化目标是机器任务的性能而不是像素保真度,模型包含一个自编码器,一个概率模型和一个熵编码器。流程如Fig.1所示,输入的未压缩图像x首先被基于神经网络的编码器E变到新的数据空间y=E(x;theta),然后y被量化y^=Q(y),最后被熵编码器EE进行无损压缩,其中熵编码器使用了概率模型进行概率分布的估计。码流在解码端首先使用熵解码器ED进行熵解码,然后由基于神经网络的解码器解码x^=D(y^;theta)。
自编码器
不像普通的自编码器,本文提出的自编码器目的不是重建输入图像,而是为了解码出数据矢量能提供好的机器处理效果,同时编码器的输出能被熵编码器高效压缩。它们可以分别表示为机器处理损失L_task和码率损失L_rate。
用于机器处理的神经网络模型是预训练好的且固化不变的,模型输入是图像格式(三通道),所以解码器的输出向量格式需要和图像相同。
论文中编码器和解码器架构使用CNN,如Fig.2所示,其中S代表stride,c代表输出通道数。
为了节省编码解码时间和计算资源,CNN中间层和最后层滤波器数量都很少。同时自编码器的优化使用L_task和L_rate损失。
概率模型
对于量化输出y^根据其概率估计进行熵编码,如果概率估计和它真实的概率分布一致则其香农熵最小。码字长度r可以按照香农交叉熵估计如下:
为了使r最小,概率模型需要学习分布p_y^,文中使用的模型是高斯混合模型,通过学习其参数来拟合分布。为了解压y^,携带先验信息的码流z^被发送到解码端。最终L_rate由这两段码流总长度计算,
概率模型在端到端的训练中和自编码器进行联合优化。在训练过程在量化步骤被加入均匀噪声替代,这是因为量化是不可微的,而训练是基于梯度的。
训练策略
论文使用了两种CV模型来处理不同任务:Faster R-CNN进行目标检测,Mask R-CNN进行实例分割。对这两种任务训练分别进行。
图像编码通常使用RDO进行优化:J=R+lambda*D。在论文在扩展了失真D的含义,增加了L_task,最终训练的损失函数为:
w_rate,w_mse,w_task分别表示权重,其中训练过程中权重动态变化。
训练数据都是自然图像,论文首先训练一个仅包含L_mse的基础模型(w_rate=w_task=0,w_mse=1),然后在基础模型上保持w_mse=1逐步调大w_rate和w_task,如Fig.3所示。最终w_rate和w_task占据优势,使得系统朝着机器任务方向优化。
实验结果
论文ICM系统面向两个机器任务:示例分割和目标检测。使用未压缩的cityscapes数据集训练和测试模型。由于CV模型是在COCO数据集上预训练的,所以评测效果时只在两个数据集共有的类别上:汽车、人、自行车、公交车、货车、火车和摩托车。
评测方法和基准:对于每种压缩方法的评测是基于码率和在验证集500幅图像上的机器处理表现。使用bpp作为码率指标,mAP作为机器处理评价指标。基准使用VTM-8.2,All-Intra配置。
为了达到不同码率,使用28组参数编码验证集,由QP={22,27,32,37,42,47, 52}和降采样率{100%,75%,50%,25%}组合成。这形成了28组编码的验证集,对于降采样的图像还要上采用为原始尺寸。
权重在训练过程中动态变化,具体如下:
其中e表示epoch,(p1,p2,p3,p4)=(50,75,120,165),
最终的Rate-Performance 曲线如Fig.4所示。本文方法的曲线是在训练每完成一个epoch后在验证集上验证一次得到一个数据点。
如表1所示,文中方法在目标检测上评价节省37.87%码率,在实例分割上评价节省32.90%码率。
Fig.5是输出的重建图像,可以看见ICM对于那些对于机器处理不重要的区域压缩更严重,而低码率区域则很好的保留了物体的形状和边缘等。
感兴趣的请关注微信公众号Video Coding
ICASSP2021:端到端的图像编码方法相关推荐
- ICCV2021- 牛津大学新的预训练视频文本数据集WebVid-2M,设计用于端到端检索的联合视频和图像编码器!代码已开源!...
关注公众号,发现CV技术之美 ▊ 写在前面 视频文本检索的挑战包括视觉网络结构的设计 和训练数据的性质 ,因为可用的大规模视频文本训练数据集 (例如HowTo100M) 是noisy的,因此只能通过大 ...
- 端到端伪激光图像3D目标检测
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文由博主:流浪机器人 授权转载,二次转载请联系原作者 原文地址: ...
- 端到端基于图像的伪激光雷达3D目标检测
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:End-to-End Pseudo-LiDAR for Image-Based 3D Objec ...
- c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式
from: c++ 解析从浏览器端传过来的图像base64编码,并转换成opencv识别的格式 #include <cstdint> #include <fstream> #i ...
- CRNN-基于序列的(端到端)图像文本识别
文章目录 一.前言 二.网络架构 2.1 特征序列提取 2.2. 序列标注 2.3. 转录 2.3.1 标签序列的概率 2.3.2 无字典转录 2.3.3 基于词典的转录 2.4. 网络训练 4. 总 ...
- 论文翻译:基于端到端的可训练神经网络基于图像的序列识别及其在场景文本识别中的应用
An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to S ...
- 大数据 端到端_端到端数据分析性能
大数据 端到端 I came across an article from NVIDIA talking about their TPCx-BB benchmark results on A100. ...
- 端到端神经视频编码=A Better Trade-off ?
归根结底,每一种视频压缩方法都要权衡利弊(trade-off):如果允许更大的文件大小,就可以拥有更好的图像质量:但如果想让文件非常小,那就必须要容忍错误出现的概率.但现在(以及不久的将来),人们希望 ...
- 端到端视频编码:DVC
本文来自CVPR 2019论文<DVC: An End-to-end Deep Video Compression Framework> 官方开源代码地址:https://github.c ...
最新文章
- STL——vector
- qrcodejs2--Vue生成二维码组件封装
- Ethercat解析(二)之获取、编译、安装(debian7)
- 存储过程中用到的年,月,周的函数
- vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: guest_enable
- codevs 2928 你缺什么
- JavaScript遍历DOM
- 对overflow与zoom”清除浮动”的一些认识
- 错误 LNK1104 无法打开文件“C:\Users\Administrator\Desktop\新建文件夹\ConsoleApplication1\x64\Debug\ConsoleApplicat
- Kaggle_Predict Future Sales_Prac 1(时间序列预测商品销量)
- 风变编程python小课课件_待风变编程的 Python 网课是什么? Python 网课怎么
- 算法面试准备建议|面试官角度
- 图像去模糊系列二 高斯白噪声
- PHP中文乱码的三个原因及解决方法
- 自动驾驶路径规划:A*(Astar)算法
- java配置ehcache_配置和使用Ehcache
- Python的strip()函数
- 分布式系统中的幂等性(客户端与服务端的交易一致性,避免多次扣款)
- WEB——HTML、CSS、javascript
- tkinter绘制组件(18)——菜单
热门文章
- 编程入门--前端和后端
- RNN详解、BPTT、LSTM
- 51单片机读取DS18B20温度传感器
- 滴滴回应抽成超过30%的订单占2.7%,网友:抽成规则呢?
- Invalid prop: type check failed for prop centered. Expected Boolean, got String with value true
- SSH配置(局域网两台ubuntu主机传输数据),scp or rsync命令
- 第02章_java基础语法
- 制造企业选择库存管理条码工具需要关注哪些点?
- 组播风暴引起的路由系统重启(LLMNR协议)
- 电力电子技术(8)——器件的串联和并联使用