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

干货第一时间送达

作者丨萧箫

来源丨量子位

编辑丨极市平台

景色很好看,可是手机相机分辨率太低,照不出清晰的照片?

没关系,试试这个超分辨率算法,让AI“自动”帮你调整分辨率。

经过算法调整后,照片几乎立刻就清晰了数倍,连角落里模糊的文字都看得清:

这是来自谷歌的一个手机超分辨率算法,此前登上过SIGGRAPH 2019顶会,阐述的是自家手机Pixel 3中使用的超分技术。

现在,这个算法确实被复现了出来,然而,方法却与论文不全一致(复现的作者Michael Kunz认为,论文有些地方写错了)。

来看看这是怎么回事。

多帧合一帧,效果更清晰

论文中,这个用手机实现超分辨率的原理,是这样的:

在用手机拍照的过程中,手部会出现轻微的震颤。

手抖示例

这导致在连续拍摄同一景象的过程中,每张照片都会有一个微小的偏移量,这些小偏移量,恰好能提供超分辨率所需要的亚像素信息。

然后,将这些彼此之间略有差异的图像帧,进行对齐、融合,就可以得到一张每个像素位置都有红、绿、蓝三通道值的图像。

具体算法是这样的:

首先,获取多帧RAW图像;然后,选择其中一帧作为基准帧,其余图像进行局部对齐,并通过核回归,估计每一帧对结果的局部贡献度;最后,分成RGB三种颜色通道,将贡献进行叠加。

在训练过程中,图像的局部特征会对核形状进行调整,并对采样值进行加权。

最后,对每个颜色通道进行归一化,获得最后的RGB图像。

整体来说,就是用多帧融合算法,代替了去马赛克的传统超分辨率算法。

然而,听起来非常完美的算法,有人在复现的过程中,却发现了一些问题。

实际复现并不容易

项目的作者表示,在复现这篇论文的过程中,发现了一些bug,但目前论文原作者、发行方都还没回应他。

再来看看这个算法:

首先,在图像帧的获取上,如果采用谷歌相机的单反模式进行拍摄,由于时间间隔较长,手部产生的“震颤”可能比想象得大,需要再通过全局的预对齐来弥补缺陷。

然后,主要的问题出在b、c两个步骤上。

第一个不准确的问题,是具体采用的帧数。论文表明“通过分析每个帧的局部梯度结构张量,来计算核的协方差矩阵”,然而作者发现,对每一帧都这样操作其实毫无意义。

作者放弃了像论文所述那样进行采样,选择了5×5而非3×3的核,并对梯度进行了高斯平滑,在全分辨率下计算每个像素的结构张量。

此外,则是步骤d的情况,经过长时间曝光的图像,包含许多低频噪声,使得精确跟踪无法实现。因此,作者在跟踪步骤前面还加入了一个高通滤波器。

然而,论文却完全没有提到“高通滤波器”这种东西。

到了步骤e和f,谷歌论文的作者用了一个专业术语“Wiener shrinkage” ,但这个术语在引用论文中完全没有出现,无法得知具体含义。

因此,复现的作者,只能根据自己的猜测,结合引用的论文来复现。

其他还有一些细节上的错误,例如把公式搞错了的情况也有发生:

好在,最后他还是将这篇论文复现了出来:

而且做成了一个完整的项目,来看看具体效果。

具体效果

先来看看论文中所展示的效果,看上去还是非常不错的:

不仅噪点去除了不少,边缘也很平滑,没有放大后物体轮廓凸显的棱角。

而且,看起来也比其他的论文算法要更好:

那么,实际上复现出来的效果如何呢?

整体好像不太看得出效果,放大一点试试:

单栋大楼的窗子确实清晰了不少,原本是模糊一片,现在几乎能数得出数量了。

不过,相比于论文中的效果,复现出来的实际结果,似乎并没有那么“完美”。

但用来拍摄风景,效果还挺好:

拍照如果手抖的话,可以将它装到手机里试一试了~

项目地址:
https://github.com/kunzmi/ImageStackAlignator

论文地址:
https://dl.acm.org/doi/10.1145/3306346.3323024

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

下载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视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

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

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

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

小哥质疑谷歌顶会论文有错,并且拿出了复现代码来证明相关推荐

  1. 日本小哥“自虐神器”一夜爆火:用手柄控制自己的脸,代码自取,后果自负...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 鱼羊 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 用游戏手 ...

  2. 4年4篇顶刊顶会论文!清华开源肖像线条画生成代码,惟妙惟肖模仿人类作画...

      视学算法报道   编辑:好困 [新智元导读]近日,清华大学提出的非成对人脸照片肖像线条画生成方法,被IEEE Transactions on Pattern Analysis and Machin ...

  3. 小哥自创AI防拖延系统,一玩手机就被“闪瞎” | Reddit高热

    Alex 发自 凹非寺 量子位 | 公众号 QbitAI 你有过被Deadline支配的恐惧吗? 为了克服拖延症,一位小哥对自己"下了狠手". 他编写出一套使用物体检测API的算法 ...

  4. 6篇论文入选NIPS 2018,这位中国小哥的开挂人生

    世界上总有一群人,过着开挂的人生. 很不幸,我不是这样的人. 根据 Google Scholar Metric 的最新榜单,NIPS 是 Artificial Intelligence 下排名最高的学 ...

  5. MLNLP顶会论文发表总榜:谷歌最狂,清北入前十,周明、张岳、刘挺华人前三...

    中美差距何止一丁点! 作者 | 丛末.蒋宝尚 编辑 | 贾伟 伦敦帝国理工学院机器学习和自然语言处理著名学者Marek Rei 教授从2016年起,每年都会对ML&NLP相关的会议论文进行统计 ...

  6. 微软图像加密算法被破解,谷歌等大厂都在用,MIT硕士小哥开源逆向所用方法...

    明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软号称"永不会被逆向"的图像加密算法,现在被MIT一位硕士小哥轻松破解了. 只用几行代码,原本被加密为一串数字的图片便 ...

  7. 德国小哥1人“黑掉”谷歌地图:99部手机就能造成交通拥堵

    十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 想要"黑掉"谷歌地图,99部手机就够了. 对于大多数开车的人来说,想要去一个不熟悉的地方,地图APP无疑是一个非常有利的 ...

  8. centos网络隔一段时间就断_潮汕青年说 | 瞎吃小哥:隔着屏幕也要把你看馋的顶配版吃货...

    编者按 这已经是他第N次站在镜头前了,但是做直播,还是第一次.在新浪潮汕直播间,我们认识了这个在镜头背后十分内向腼腆,说话都脸红的他.看了直播,很多粉丝惊呼,这么腼腆,还是我们认识的瞎吃小哥吗? 为什 ...

  9. 语音合成论文与韩国小哥“撞车”后续:英伟达“赶紧”把代码开源了

    乾明 编辑整理 量子位 出品 | 公众号 QbitAI 前两天,量子位报道了韩国小哥语音合成论文与英伟达撞车一事. 在得知自己的论文与英伟达的论文"撞车"之后,韩国小哥赶紧在arX ...

最新文章

  1. 这位北大CS硕士小老弟,简直是“卷怪”!
  2. 对我而言Linux究竟有什么魅力
  3. 如何在WPF中通过XAML代码创建菜单项
  4. 2022年全球及中国滑雪铲行业品牌调研与市场消费规模分析报告
  5. 迁移数据时 timestamp类型字段报错: 1067 - Invalid default value for 'login_time'
  6. 让linux系统做网关,代理上网!!!
  7. ligerDialog的使用
  8. ruby 生成哈希值_如何检查Ruby中是否存在哈希键?
  9. dj电商-数据表的设计-购物车表与订单表设计
  10. 面试官系统精讲Java源码及大厂真题 - 10 Map源码会问哪些面试题
  11. 蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】
  12. Interview Tips with Consulting Firms
  13. WEB测试项目实战——2.产品需求与设计评审
  14. 网页Loding效果的实现
  15. ARM Cortex-M处理器详解
  16. 遭遇“windows已经阻止此软件因为无法验证发行者
  17. 在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,用Python编写程序,问有多少种摆法?并列举出所有摆法。
  18. 服务器修改系统盘符,服务器盘符怎么改
  19. openCV的sobel算子的深度学习卷积网络部分的C语言源码
  20. 基于JAVA毕业设计的客户关系系统的设计与实现

热门文章

  1. 如何去除使用inline-block之后的间距(二)?
  2. js、PHP将分数字符串转换为小数
  3. [转]英文版VS2010制作中文环境安装包
  4. Java-----applet小程序简介
  5. 高德渲染网关Go语言重构实践
  6. 京东超大规模联邦学习探索实践
  7. 我问占小狼到底什么是面向对象编程?他转头就走。
  8. 技术天地 | CSS-in-JS:一个充满争议的技术方案
  9. 大白话聊聊 Kafka 的架构原理和网络设计,它的性能高在什么地方?
  10. 掌握Redis分布式锁的正确姿势