点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨小马

编辑丨极市平台

导读

尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务的准确性的影响 。在本文介绍了一篇谷歌在ICCV2021的工作,作者提出了一个可学习的调整器模型(resizer model)来提高模型的性能。

【写在前面】

尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务的准确性的影响 。通常,输入图像的大小被调整到一个相对较小的空间分辨率(例如,224×224),然后再进行训练和推理。这种调整大小的机制通常是固定的图像调整器(image resizer)(如:双行线插值)但是这些调整器是否限制了训练网络的任务性能呢? 作者通过实验证明了典型的线性调整器可以被可学习的调整器取代,从而大大提高性能 。虽然经典的调整器通常会具备更好的小图像感知质量(即对人类识别图片更加友好),本文提出的可学习调整器不一定会具备更好的视觉质量,但能够提高CV任务的性能。

在不同的任务中,可学习的图像调整器与baseline视觉模型进行联合训练。这种可学习的基于cnn的调整器创建了机器友好的视觉操作,因此在不同的视觉任务中表现出了更好的性能 。作者使用ImageNet数据集来进行分类任务,实验中使用四种不同的baseline模型来学习不同的调整器,相比于baseline模型,使用本文提出的可学习调整器能够获得更高的性能提升。

背景

目前的resize方法一般都是已经设计好的,不可学习的,典型的有NEAREST,BILINEAR,BICUBIC。

我们先来看看这些resize算法的不同效果:

原图:

NEAREST:

BILINEAR:

BICUBIC:

可以看出,对人来说,不同的resize方法差别还是蛮大的。那么对于模型来说应该采用什么样的resize方法呢?为此,作为提出了采用可学习的resizer model来对图片进行resize,以进一步提高CV任务的性能。

1. 论文和代码地址

论文地址:https://arxiv.org/abs/2103.09950

代码地址:未开源

2. Motivation

深度神经网络和大规模图像数据集的出现使机器视觉识别取得了重大突破。这类数据集中的图像通常是从网络上获得的,因此已经经过了各种后处理步骤。除了收集数据时采用的一些处理方法,在CNN训练的时候,通常还需要额外的图像处理方法,比如resize。

图像下采样是分类模型中最常用的预处理模块。图像大小的调整主要有以下几个原因:

(1)通过梯度下降的mini-batch学习需要batch中的所有图像具有相同的空间分辨率 ;

(2)显存限制阻碍了在高分辨率下训练CNN模型;

(3)较大的图像尺寸会导致训练和推理的速度较慢。

给定固定的显存预算,需要在空间分辨率和Batch Size之间进行trade-off。而这个trade-off会很大程度上会影响模型的最终性能。

目前最基本的调整器的方法有最近邻、bilinear和bicubic(如Section 0中的可视化结果)。这些调整器速度快,可以灵活地集成到训练和测试框架中。但是,这些方法是在深度学习成为视觉识别任务的主流解决方案之前就发展起来的,因此没有对深度学习进行专门的优化。

近年来,通过图像处理方法在提高分类模型的准确性和保持感知质量方面取得了良好的效果。这类方法保持了分类模型的参数固定,并且只训练了增强模块。此外,也有一些方法采用了联合训练预处理模块和识别模型,这些算法建立了具有混合损失的训练框架,允许模型同时学习更好的增强和识别。然而,在实践中,调整图像大小等识别预处理操作不应该优化为更好的感知质量,因为最终目标是让识别网络产生准确的结果,而不是产生对人觉得“看起来好”的图像。

因此,本文提出了一种与分类模型联合训练的新型图像调整器(如上图所示)。

并且,这种设计能够提高分类模型的性能(如上表所示)。

3. 方法

本文的调整器模型是易于训练的,因此它可以插入到各种深度学习框架和任务中。此外,它还可以处理任何的缩放因子,包括不同比例的放大和缩小。在本文中,作者探索了分辨率与batch大小的trade-off,从而为特定CV任务寻找最佳的分辨率。在理想情况下,通过这种自适应调整大小获得的性能增益需要超过调整大小增加到的额外计算复杂度。另一方面,bilinear和bicubic等缩放方法本身是不可训练的,因此不适合完成这样的目标。为此,作者设计了一个满足这些标准的模型。

3.1. Resizer Model

本文提出的调整器架构如上图所示。该模型最重要的特性是(1)bilinear resizer,(2)skip connection。bilinear resizer使得能够向模型中合并以原始分辨率计算的特征。skip connection使得模型能够更容易学习。上图中的bilinear resizer模块使得模型能够呈现一个bottleneck或者inverse bottleneck的结构。与典型的编码-解码器架构不同,Resizer Model能够将图像调整为任何目标大小和长宽比。此外,学习到的Resizer Model的性能几乎不依赖于bilinear resizer的选择。

在Resizer Model中有r个相同的残差块,在实验中,作者设置了r=1或2。所有的中间卷积层都有n(n=16)个大小为3×3的核。第一层和最后一层的卷积核大小为7×7。

本文提出的Resizer Model相对来说比较轻量级,与原始的模型相比,没有添加大量的可训练参数。Resizer Model各种配置的可训练参数数量如上表所示。ResNte-50有约2300万个参数,与原始模型的参数相比,Resizer Model引入的参数可以说是非常小的。

3.2. Learning Losses

Resizer Model是用Baseline Model的损失函数进行联合训练的。由于Resizer Model的目标是学习baseline视觉任务的最优调整器,因此作者没有对Resizer Mode用任何其他损失或正则化约束。

3.2.1 Image Classification

分类模型采用交叉熵损失进行训练。ImageNet由1000个类组成,因此,模型的输出代表1000个预测类概率。作者在训练过程中采用了label-smoothing方法,损失函数如下所示:

其中和是预测和平滑的标签,K表示类的总数。

3.2.2 Image Quality Assessment (IQA)

质量评估模型通过回归损失进行训练。AVA数据集中的每张图像都有一个人工评级的直方图,得分从1到10不等。在本文中,作者使用Earth Mover's Distance (EMD)作为训练损失。具体地说,baseline模型有一个Softmax层,输出10个logits。EMD损失可以表示为:

其中代表累积分布函数,,。

4.实验

上表展示了本文实验的细节的总结。首先,在每个数据集上,作者用 bilinear和bicubic进行图片缩放来训练baseline模型,而不用提出的Resizer Model。这些模型被用作benchmark来对比Resizer Model的性能。训练的任务包括分类和IQA。然后作者又用了可学习的Resizer Model和Baseline模型进行联合训练来对比实验结果。

4.1. Classification

作者采用了四个模型来验证Resizer Model的有效性。可以看到,使用Resizer Model训练的网络显示出比默认baseline更好的性能。与默认baseline相比,DenseNet-121和MobileNet-v2分别显示出最大和最小的性能增益。

此外,无论是否使用Resizer Model,增加输入分辨率都有利于DenseNet-121、ResNet-50和MobileNet-v2的性能提升。

上表显示了不同resize方法和不同模型下resizer model的输出结果。这些结果的共同点是具备高频细节,这可能会使分类模型更有效。

4.2. Quality Assessment

在AVA数据集上,作者训练了三个baseline模型,并使用PLCC和SRCC评价指标来评价模型的性能。可以看出,与Baseline模型相比,本文提出的resizer model能够进一步模型的性能。

上图展示了resizer model的输出结果。可以看出,Inception和DenseNet模型的图像有更多的细节信息;EfficientNet输出模型有很强颜色偏移。

4.3. Generalization

此外,作者还验证了resizer model的迁移泛化能力,作者尝试了在不同baseline模型训练的resizer model进行互换,结果如上表所示。这些结果表明,为一个模型训练的resizer model通过很少的fine-tune就可以作为另一个模型的resizer model。

4.4. Ablation

作者在不同的和上进行了消融实验,结果如上表所示。作者在实验中采用了和。

5. 总结

在本文中,作者提出了一个可学习的调整器模型(resizer model)来提高模型的性能。作者关注于调整图像大小,并没有对重新调整的图像施加像素或感知的损失函数,因此结果只针对机器视觉任务进行了优化。实验表明,用resizer model代替传统的图像调整器可以提高视觉模型的性能。

个人认为,本文的实现方法其实非常简单,就是用了一个模型去学习图片应该怎么resize。但是思路还是比较新奇的,因为以前的方法大多都是关注在怎么更改模型的结构来提升模型的性能,但是这篇论文自己开了一个赛道,学习一个更好的调整器模型,用更适用于深度学习模型的方式来进行resize。

本文亮点总结

1.图像大小的调整主要原因:

(1)通过梯度下降的mini-batch学习需要batch中的所有图像具有相同的空间分辨率 ;

(2)显存限制阻碍了在高分辨率下训练CNN模型;

(3)较大的图像尺寸会导致训练和推理的速度较慢。

2.本文模型最重要的特性是(1)bilinear resizer,(2)skip connection。bilinear resizer使得能够向模型中合并以原始分辨率计算的特征。skip connection使得模型能够更容易学习。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好!相关推荐

  1. 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好

    作者丨小马 编辑丨极市平台 本文原创首发于极市平台公众号,转载请获得授权并标明出处. [写在前面] 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务 ...

  2. pytorch 26 科学炼丹(训练)方式之——魔改网络(给模型做外科手术,实现module的删除、修改与添加,forward流程的修改)

    网络结构层出不穷,但经典网络总是大家工程上的最爱.有的时候需要对网络进行微操,直接该源码一是工作量太大:二是破坏了原来的网络结构会导致预训练权重无法加载.因此,可以在加载预训练权重后对模型进行微操. ...

  3. 魔改YOLOv5!一种实时多尺度交通标志检测网络

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:集智书童 Improved YOLOv5 network for real-time multi-s ...

  4. Oracle魔改linux,【更新】一键网络重装系统 - 魔改版(适用于Linux / Windows)

    本帖最后由 MeowLove 于 2020-9-21 15:34 编辑 简介 这还要介绍??懒得写了. 魔改版本及开源地址 最新版本:3.1.0(2020/09/15) 官方发布:https://ww ...

  5. OpenAI魔改大模型,参数减少100倍!13亿参数InstructGPT碾压GPT-3

      视学算法报道   编辑:好困 拉燕 [新智元导读]文能吟诗一首,武能「打劫邻居」,只需百分之一的参数量,InstructGPT包您满意. 2020年5月,OpenAI推出了参数量高达1750亿的语 ...

  6. 冰蝎各版本工具分析与魔改思路

    0x00 V2版本 1. 项目 github项目:https://github.com/rebeyond/Behinder/releases/ V2 源码:https://github.com/hkt ...

  7. 魔改ResNet反超Transformer再掀架构之争!作者说“没一处是创新”,这些优化trick值得学...

    梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 过去一年,Transformer频频跨界视觉领域,大有抢CNN饭碗之势. 先是图像分类上被谷歌ViT突破,后来目标检测和图像分割又被微软Swin ...

  8. 魔改GPT自动写网文,速度一秒十字,还能给太监作品无限续更 | 开源

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如果一个人只看网文,那会写出来怎样的文字? 看了100G网文后,这个AI模型帮你试了一下. 先来一段自由创作: 乍眼看去很有内味,而且基本是 ...

  9. Google研究员Ilya Sutskever:成功训练LDNN的13点建议

     Google研究员Ilya Sutskever:成功训练LDNN的13点建议 width="22" height="16" src="http: ...

最新文章

  1. 可汗学院向量入门 矩阵入门
  2. FreeDos 历史
  3. python程序设计报告-Python程序设计实验一报告
  4. 006_FastDFS文件上传
  5. 第十天2017/04/21(3、泛型编程:STL)
  6. ios序列化与反序列化,本地化
  7. 部署DNS split分离解析服务
  8. rest功能java,java – 功能翻转REST端点的注释
  9. 指针的高阶用法——指向指针的指针
  10. AliSQL-5.6.32编译安装
  11. mtk刷机工具sp flash tool_qpst刷机(翻到高中刷机时的记录,想来qpst对现在玩机的人也有用吧...
  12. 禁忌搜索算法(现代优化计算方法)
  13. 【踩坑】XML转JSON中如何把单个元素转成数组
  14. JS 更合理的随机分组
  15. 9月【笔耕不辍】勋章活动获奖名单公布
  16. 千挂科技与东风柳汽达成前装量产合作,2024年交付自动驾驶牵引车
  17. 本地数据库IndexedDB - 初学者
  18. 关于Python的基础练习题
  19. jira新增、修改、关闭问题,“处理结果”错误
  20. Android剪切板工具clipper,自动化

热门文章

  1. Angular2:从AngularJS 1.x 中学到的经验
  2. 同事把实数作为 HashMap 的key,领导发飙了...
  3. DevOps 的发展史
  4. 36 张图详解应用层协议:网络世界的最强王者
  5. 某程序员吐槽:组里新来一位美女同事,男同事们冲上去大献殷勤,过几天又一哄而散!...
  6. Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis | 附实践清单
  7. 八个层面比较 Java 8, RxJava, Reactor
  8. 《我想进大厂》之Spring夺命连环10问
  9. 使用了这个神器,让我的代码bug少了一半
  10. 新款 iPad 写代码 真香,包邮送一个!