【论文阅读】Faster Neural Networks Straight from JPEG

news2024/12/23 13:30:18

Faster Neural Networks Straight from JPEG

论文链接:Faster Neural Networks Straight from JPEG (neurips.cc)

作者:Lionel Gueguen,Alex Sergeev,Ben Kadlec,Rosanne Liu,Jason Yosinski

机构:Uber,Uber AI Labs

关键词:DCT,CNN,JPEG,图像编码

参考文献:Gueguen L, Sergeev A, Kadlec B, et al. Faster neural networks straight from jpeg[J]. Advances in Neural Information Processing Systems, 2018, 31.

代码链接:https://github.com/calmevtime/DCTNet

摘要

在这里插入图片描述

直接从RGB像素训练卷积神经网络(CNNs)的简单、优雅的方法在经验上取得了压倒性的成功。但是,通过使用不同的输入表示,是否可以从网络中挤出更多的性能?在本文中,提出并探索了一个简单的想法:直接在JPEG编解码器中间计算并可用的分块离散余弦变换(DCT)系数上训练CNN。直观地说,当使用CNN处理JPEG图像时,似乎没有必要将逐块频率表示解压缩为扩展的像素表示,将其从CPU搬到GPU,然后使用CNN进行处理,该CNN将在其第一层中学习类似于转换回频率表示的东西。为什么不跳过这两个步骤,直接将频域输入网络?在本文中,作者修改libjpeg以直接生成DCT系数,并修改ResNet-50网络以适应不同大小和跨步输入,并在ImageNet上评估性能。实验发现网络速度更快、更准确,以及精度大致相同但比ResNet-50快1.77倍。

Method

在这里插入图片描述

来自 Y 通道 D Y D_Y DY 的 DCT 系数通常比来自色度通道 D C b D_{Cb} DCb D C r D_{Cr} DCr 的 DCT 系数具有更大的尺寸,如图 1a 所示,其中实际形状是根据图像输入大小 224 × 224 224×224 224×224 计算的。因此,有必要进行特殊的转换来处理空间维度匹配,然后才能将生成的激活连接起来并馈送到传统的CNN中。论文考虑了两个抽象变换 ( T 1 , T 2 ) (T_1, T_2) (T1,T2) ,它们分别在不同的系数通道上运行,目的是在三个激活 a Y a_Y aY a C b a_{Cb} aCb a C r a_{Cr} aCr 之间产生匹配的空间大小,其中 a Y = T 1 ( D Y ) a_Y = T_1(D_Y) aY=T1(DY) a C b = T 2 ( D C b ) a_{Cb} = T_2(D_{Cb}) aCb=T2(DCb) a C r = T 2 ( D C r ) a_{Cr} = T_2(D_{Cr}) aCr=T2(DCr)。图 3 说明了这一过程。

在这里插入图片描述

除了确保卷积特征图大小对齐外,还必须考虑在变换结束时和整个网络中每个单元生成的感受野大小和步幅(以下用 R R R S S S 表示)。对于采用RGB输入的典型网络,每个单元的感受野和步幅在每个输入通道(红色、绿色、蓝色)方面都是相同的,但对于流经Y通道与Cb和Cr通道的信息,原始像素空间中考虑的感受野可能不同,这是不希望的。通过检查 DCT 操作产生的表示大小,当与不同块(下表)的 ResNet-50 的同一组参数进行比较时,发现 D Y D_Y DY 的空间维度与Block 3 的激活维度匹配,而 D C r D_{Cr} DCr D C b D_{Cb} DCb 的空间维度与Block 4 的空间维度匹配。这启发了我们在网络架构设计中跳过一些 ResNet 模块,但跳过而不进行进一步修改会导致网络功能大大降低(层数和参数更少),以及最终的网络层具有更小的感受野。

变换 ( T 1 , T 2 ) (T_1, T_2) (T1,T2)是通用的,允许我们将DCT系数调整到兼容的大小。在确定变换时,考虑了以下设计概念。变换可以是 (1) 非参数或手动设计的,例如原始 DCT 系数的上采样或下采样,(2) 可学习并且可以简单地表示为卷积层,或 (3) 卷积层的组合,例如 ResNet 模块本身。论文探索了七种不同的变换方法 ( T 1 , T 2 ) (T_1, T_2) (T1,T2),从最简单的上采样到反卷积,并结合了后续 ResNet 块的不同选择:

UpSampling:色度 DCT 系数 D_{Cb} 和 D_{Cr} 都是通过将像素的高度和宽度复制 2 倍到 D_{Y} 的尺寸来上采样的。然后将这三者按通道连接起来,并在进入 ResNet ConvBlock 3 (CB_3) 之前经过批量归一化层,但步幅为 1,然后是标准 CB_4 和 CB_5。

UpSampling-RFA:类似于 UpSampling,但在这里保留 ResNet CB_2(而不是删除它)以及 CB_2 和 CB_3,以便它们模仿在原始 ResNet-50 块中观察到的 R 和 S 的增加,并记作“Receptive Field Aware”或 RFA。

Deconvolution-RFA:上采样的替代方法是可学习的反卷积层。在此设计中,在 D C b D_{Cb} DCb D C r D_{Cr} DCr 上使用两个独立的反卷积层来增加空间尺寸。设计的其余部分与 UpSampling-RFA 相同。

DownSampling:使用卷积层对较大的系数 D Y D_Y DY 进行下采样。

Late-Concat:通过 ResNet-50 的两个 ConvBlocks (CBs) 和三个 IdentityBlocks (IBs) 自行运行 D Y D_Y DY D C b D_{Cb} DCb D C r D_{Cr} DCr 在与 D Y D_{Y} DY 路径连接之前并行通过 CB。然后,在 C B 4 CB_4 CB4 之后将连接的表示形式馈送到标准 ResNet 中。

Late-Concat-RFA:将 D Y D_Y DY 通过三个 CBs,并调整了内核大小和步幅,使得 R 的增加模仿原始 ResNet-50 中的 R。在并行中, D C b D_{Cb} DCb D C r D_{Cr} DCr 在连接到 D Y D_Y DY 路径的结果之前采用与 Late-Concat 相同的路径。

Late-Concat-RFA-Thinner:与 Late-Concat-RFA 相同,但通道数有所修改。沿 D Y D_Y DY 路径的前两个 CB 的通道数减少,第三个 CB 的通道数增加,将通道数从 {1024、512、512} 更改为 {384、384 、 768}。 D C b D_{Cb} DCb D C r D_{Cr} DCr 通过具有 256 个通道而不是 512 个通道的 CB 反馈。

实验

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变,特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变,提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…

降分违规?90%新手会遇到的抖音小店运营问题!解决方法快围观!

哈喽~我是电商月月 今天我们聊聊新手开抖音小店会遇到的问题以及解决方法 为了完整性我们从头到尾分析,根据情况不同可自行翻阅 一,入驻和运营时的操作问题 1.营业执照的办理,选择,填写 营业执照的办理可以去当地工商局办理&…

Redis、Mysql双写情况下,如何保证数据一致

Redis、Mysql双写情况下,如何保证数据一致 场景谈谈数据一致性三个经典的缓存模式Cache-Aside Pattern读流程写流程 Read-Through/Write-Through(读写穿透)Write behind (异步缓存写入) 操作缓存的时候,删除…

智慧公厕,为智慧城市建设注入了新的活力

随着智慧城市的快速发展,公共厕所不再是简单的功能设施,而是成为了提升城市形象、改善民生服务的重要一环。智慧公厕作为新形态的公共厕所,通过精准监测公厕内部的人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态…

如何在CentOS使用Docker搭建MinIO容器并实现无公网ip远程访问本地服务

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼…

vue3 引入svg 图片的详细方法

我们都知道 svg 文件比图片小的多,可以节省很多空间,这对页面性能来说是个很大的提升。 下面介绍一下 vue3 项目中使用 svg 的详细方法: (1)安装依赖插件 npm install vite-plugin-svg-icons -D(2&#x…

基于GIS、python机器学习技术的地质灾害风险评价与信息化建库

入门篇,ArcGIS软件的快速入门与GIS数据源的获取与理解;方法篇,致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法;拓展篇,GIS在灾害重建中的应用方法;高阶篇&#xff1…

数字化转型核心 数据治理神器Hadoop 生态介绍HDFS、Yarn以及HBase/Hive

大数据Hadoop 生态的三大部件的目录 往期热门专栏回顾前言1、HDFS2、Yarn3、Hive4、HBase4.1.特点4.2.存储 5、Spark及Spark Streaming关于作者 往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用;手写框架等Aws服务器实战Aws L…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa,是GPI锚定的细胞表面蛋白Ly-6超家族的成员,在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞(包括单核细胞、巨噬细胞、粒…

Edge浏览器控制台(F12)中网络不显示接口信息

🐓情况描述 点击页面接口,控制台中网络选项中无法显示其接口信息 🐓问题解决 1.查看接口是否开启筛选,如果开启更改为全部即可 2.如果非上述情况,则可能是浏览器配置的问题,将浏览器配置可能有所变动 将浏…

【CASS精品教程】CASS添加标准图幅(50×50cm+50×40cm)

大比例尺地形图图幅一般分为正方形和矩形分幅两种,本文讲解CASS中添加标准图幅(5050cm、5040cm)的方法。 文章目录 一、CASS参数配置二、添加标准图幅(5050cm)三、添加标准图幅(5040cm)打开基于CASS自带案例数据study.dat绘制好的地形图study.dwg,如下图所示,下面来演示两种…

需求生命周期管理

背景 回顾很多项目或者产品,我们发现现在的版本和当初的理解或者设想是天壤之别,这是什么原因,对于这种情况又应该如何处理呢? 业务分析的交付物是需求文档,业务分析整个过程随着对业务的逐步深入,观察视…

基于Java在线考试系统系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

推荐几个python的工具

Beautiful Soup Beautiful Soup用于清理和提取HTML和XLM中的数据。 它用于解析HTML文本,并允许数据科学家将文本数据转换为结构化数据,只需几行代码,就可以提取复杂的HTML数据。在某些情况下,您只需要一个表标签,并且…

后端前行Vue之路(一):初识Vue

1.Vue是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方…

C++资产设备管理系统

一、引言 1.1 项目设计背景及意义 1.1.1理论研究基础 (1)C在C的基础上增加了面向对象的机制。 (2)充分利用面向对象机制中的多态性实现函数的设计。 1.1.2 技术层面的支持 运用系统为C面向对象程序设计提供的各种设计方法和V…

国外创意二维码广告:芬兰知名狗粮品牌如何在用AI技术说狗话?

AI 的飞速发展,极大地促进了各行各业的技术更迭,随之出现的是许多创意应用。比如,这次的户外创意广告案例中,AI面部识别技术就被用到了宠物狗身上。 今年3月份,芬兰一家知名的狗粮品牌Hau-Hau Champion ,在…

基于java实现的高校二手交易平台

开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclip…

ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…

Linux_进程概念_冯诺依曼_进程概念_查看进程_获取进程pid_创建进程_进程状态_进程优先级_环境变量_获取环境变量三种方式_3

文章目录 一、硬件-冯诺依曼体系结构二、软件-操作系统-进程概念0.操作系统做什么的1.什么叫做进程2.查看进程3.系统接口 获取进程pid- getpid4.系统接口 获取父进程pid - getppid5.系统接口 创建子进程 - fork1、手册2、返回值3、fork做了什么4、基本用法 6.进程的状态1、进程…