做底层视觉方向的论文整理我一直有个习惯每个顶会结束后先不看社交平台上的碎片讨论而是把官方论文列表整个拖下来按关键词筛一遍再逐个进仓库看有没有公开代码。最近在整理ECCV2020这批图像重建与底层视觉的论文时我明显感觉到这个方向到了一个范式切换的节点——超分辨率、去雨、去雾、去模糊、去噪这些子领域论文数量比以往更集中方法上的共性也开始显现。这篇汇总帖就是基于完整论文清单做的一次梳理把方向趋势、技术拆解、代码获取路径和复现经验放在一起希望能帮正在调研或准备复现的同学省下踩坑的时间。1. ECCV2020底层视觉方向整体观察1.1 顶会里的图像重建论文为什么值得单独拎出来看底层视觉在整个计算机视觉体系里的位置很特殊它不像目标检测、语义分割那样有清晰的工业落地链路和榜单文化但几乎所有上层视觉算法都依赖底层图像质量。ECCV2020这届的论文列表里图像重建相关的工作占了相当可观的比重而且从题目关键词看超分辨率、图像恢复、去噪、去雨、去雾、去模糊这几个细分方向都在同时扩量。为什么会集中爆发我理解有两个原因。第一深度卷积网络在底层视觉上的应用已经足够成熟早期靠堆层数提升PSNR的做法走到瓶颈大家开始寻找新的特征交互方式比如通道注意力、非局部操作、多尺度融合这些都成为新论文的发力点。第二工业端的真实需求在倒逼学术研究转向手机上拍照要超分和降噪自动驾驶要应对雨雾天气监控安防要恢复模糊画面医疗影像要提升分辨率这些场景催生了一批从真实退化模型出发的研究。对于正在做方向调研的人来说ECCV2020这批论文恰好提供了观察底层视觉演进的绝佳切片既有传统CNN方法的收尾与集大成也出现了Transformer架构向底层视觉渗透的苗头。看懂这一届的方法脉络基本就能理解后面底层视觉领域大半的技术走向。1.2 底层视觉研究范式究竟在切换什么如果只看结论不看过程很容易误以为ECCV2020底层视觉只是网络结构的小修小补。其实这一年最大的信号是研究范式开始从“加深网络”转向“重构特征交互”。早期的图像重建方法核心思路是让网络通过大量卷积层逐步扩大感受野把输入图像映射到目标图像。这种做法的特点是简单、可控但问题也很明显随着网络加深梯度传播和优化难度陡增而且模型往往对所有图像区域一视同仁重要细节和背景区域在计算资源上没有差别对待。ECCV2020上明显可以看到一条主线让网络学会“在哪里花力气”。通道注意力机制已经在超分领域被证明有效这一届很多工作把它迁移到去噪、去雾、去模糊任务上非局部模块被用来建模长距离像素依赖有些论文在重建阶段引入了空间注意力让网络更关注边缘和纹理区域。与此同时Transformer开始出现在底层视觉的论文里尽管当时还只是探索性的应用但这种从全局角度建模像素关系的思路在后来被反复验证是底层视觉继续前进的重要方向之一。另外一个不容忽视的变化是数据集和评价基准的升级。过去大家习惯在合成噪声、合成雨纹、合成模糊上训练和测试ECCV2020有相当一部分工作开始把真实退化数据作为衡量标准去噪方向尤为明显。从“在模拟环境里跑高分”到“在真实场景中可用”这个转变是底层视觉从论文走向产品必须迈过的坎。2. 五大核心子方向技术要点与成果盘点2.1 超分辨率注意力机制成为绝对主流轻量化设计初露锋芒超分辨率在ECCV2020里的地位依然是底层视觉的绝对核心相关论文数量最大。这一届的超分工作大致可以分成三条技术线。第一条线是以注意力机制为核心改进网络结构。这类工作大多以残差网络为骨架在特征提取阶段引入通道注意力模块让网络在重建高频细节时对有用的特征通道赋予更高权重。相比单纯的卷积堆叠这种做法的优势是在计算量增加很有限的情况下显著提升PSNR和SSIM指标尤其是在Urban100这类包含大量重复纹理的数据集上注意力机制对结构恢复的帮助非常明显。第二条线是面向真实场景的退化建模。传统超分训练通常采用简单的双三次下采样构造低分辨率图但真实图片的低质量来源远不止下采样可能是镜头模糊、传感器噪声、压缩伪影共同作用的结果。ECCV2020有不少工作尝试把退化过程分解成多个子过程在训练时随机组合模糊、噪声、下采样参数试图让模型适应更广泛的实际输入。这个方向说白了就是对“退化空间”的覆盖训练集里的退化方式越多样模型在未知退化上的泛化能力才越有保证。第三条线是轻量化超分。移动端实时超分的需求非常明确EECV2020的一些工作开始强调参数效率用可分离卷积、递归结构或者紧凑注意力模块在保证输出质量的同时把模型压到适合移动设备部署的体积。如果你手头有手机端超分需求这批论文里提炼出的结构设计思路是值得直接参考的。评测方面超分论文的基准几乎没有争议训练基本围绕DIV2K和Flickr2K展开测试集惯用Set5、Set14、B100、Urban100放大倍数集中在×2、×3、×4。指标上PSNR和SSIM是硬通货近年来越来越多论文会补一个LPIPS来体现感知质量。看论文实验部分时要特别留意PSNR是在Y通道计算还是在RGB全通道计算这直接决定了数值能不能横向对比。2.2 图像去噪真实噪声数据集开始取代合成高斯噪声去噪方向是我这次整理时感觉变化最大的子领域之一。早些年去噪论文的标准套路是在干净图像上叠加高斯白噪声合成训练和测试数据模型只要学会“滤掉高斯噪声”就算完成任务。但真实照片里的噪声是传感器在光电转换过程中产生的复杂信号和简单的高斯假设之间有不小差距。ECCV2020上真实去噪之所以成为热点很大程度上得益于真实噪声数据集的公开。一些工作开始直接用真实短曝光、长曝光图像对来构造训练数据网络在真实成对图像上学习降噪效果比单纯在合成噪声上训练后再做域适应要好得多。另一个值得关注的做法是把噪声建模为泊松-高斯混合模型在训练阶段通过更接近物理过程的噪声仿真来提升模型在真实相机上的表现。做去噪复现时需要注意一个细节真实噪声数据集的ground truth通常由多张静态场景图像平均得到不同厂商、不同ISO下的噪声特性差异很大训练时如果混入了过多的相机类型模型反而可能“不知道学谁”。更合理的策略是面向目标设备或目标ISO范围做定向训练这也是工业界做降噪时常见的做法。2.3 图像去雨从端到端一步到位转向多阶段拆解单图像去雨在ECCV2020之前已经形成“检测雨纹→去除雨纹”的通用框架这届论文则更多在探讨如何把拆解做得更精细。一类思路是显式引入雨纹掩码或雨纹密度估计让网络先搞清楚雨纹在哪、雨强多大再集中资源去清理这些区域。这种方法直觉上很好理解无雨区域本身已经很干净不需要浪费计算量去“增强”把劲儿使在雨纹区域才是关键。另一类思路是在频域做文章雨纹在高频分量中占主导把图像分解成低频背景和高频细节后专门处理由雨纹引起的频带异常再和背景重新融合。这类方法的好处是背景细节保持得更好不容易出现去雨后图像发糊的问题。去雨方向评估数据的割裂感是我特别想提醒的合成的Rain100H、Rain100L上表现优秀的模型搬到真实雨景上经常明显掉点。原因并不复杂合成雨纹的物理模拟始终无法覆盖真实雨滴的拖尾、方向、焦距变化。所以评选一篇去雨论文是否实用不能只看它在合成数据集上的PSNR最好能找到作者在真实雨图上的可视化对比或者代码仓库里有没有附带真实场景测试脚本。2.4 图像去雾物理模型先验和数据驱动学习的拉锯与融合去雾问题的数学基础是大气散射模型把有雾图像拆成透射率、全局大气光和清晰辐射三部分。传统方法需要先估计这些中间量再反演求解而端到端深度学习方法直接学习有雾图到清晰图的映射省去了中间量估计。ECCV2020上的去雾论文焦点就落在这两条路线的结合点上。一部分工作仍然坚持物理模型的重要性在训练网络时把透射率和大气光作为中间监督信号让网络在物理约束下生成更真实的清晰图。另一部分工作则尝试把大气散射模型作为可微模块嵌入网络结构让网络自己学习如何拆分。这两类做法各有各的道理物理模型提供了很强的归纳偏置但真实雾天图像往往不符合理想散射模型过度依赖物理先验反而会引入误差完全端到端则自由度高但可解释性差在指标上未必占优。做相关复现时我建议先确认一件事训练数据用的是合成雾还是真实雾。合成雾用深度图生成空气光均匀假设很强而真实雾的散射系数在空间上并不一致这导致在合成数据上收敛很好的模型应用到真实雾图时经常出现色彩偏沉或对比过度的现象。如果目标是真实场景去雾优先考虑那些在训练中混合了多种大气条件数据的工作。2.5 图像去模糊动态场景与未知模糊核的双重挑战去模糊分为非盲去模糊和盲去模糊。非盲场景假设模糊核已知退化模型清晰问题退化成反卷积盲去模糊则是模糊核未知需要同时估计模糊核和恢复清晰图像难度高出一个档次。ECCV2020的去模糊论文大多集中在盲去模糊和动态场景去模糊上。动态场景带来的非均匀模糊是一个难点不同像素位置的模糊方向和幅度不同整图共享一个模糊核的假设不再成立。一种流行的解法是引入光流或多帧信息通过相邻帧的运动估计来辅助当前帧的去模糊单帧方法则更多依赖大规模合成模糊数据比如模拟高速运动产生的拖影让网络隐式学习模糊的多样模式。同样需要注意GOPRO这类合成数据集仍然覆盖不了所有真实运动模糊的类型。我见过不少模型在合成数据上指标很好遇到手持夜景长曝光拍摄的模糊却“翻车”因为这类模糊往往夹杂噪声和颜色偏移。所以把去模糊应用在实际场景中时最好配合一个轻量级的真实模糊数据集微调环节甚至需要对输出做一次锐化后处理。2.6 图像重建/恢复的统一视角与扩展方向把超分、去噪、去雨、去雾、去模糊放在一起看会发现它们在数学上共享同一套逆问题框架从带退化的观测中恢复干净图像区别只在于退化算子的具体形式不同。ECCV2020里已经有一些工作尝试把多种退化任务统一在一个模型里处理比如在训练时通过退化条件向量控制模型行为实现“一个模型多任务复用”。这类设计的意义不仅在节省参数更在于利用不同退化任务之间的共性让模型在某一特定任务上获得更好的泛化。此外弱光增强、图像复原等方向也可以归入这个扩展谱系。它们面对的问题本质都是低质量输入到高质量输出的映射工程实现上经常共享编码器-解码器结构、感知损失、GAN对抗训练这些配方。我在调研时建议大家不要只盯着自己手头的任务把相邻任务的做法也扫一遍往往能在损失函数设计或特征融合模块上获得可以迁移的灵感。3. 高效检索ECCV2020底层视觉论文的完整路径3.1 第一步生成全量子方向论文清单不要一上来就通过某篇文章的引用链跳来跳去那样永远看不全。正确的方式是拿到ECCV2020的完整论文列表然后用关键词筛选。具体操作先把官方论文标题、摘要和ID抓下来这一步可以用爬虫也可以直接借助GitHub上已有的顶会论文清单项目。搜索关键词时除了完整单词还要注意缩写和变体超分辨率super-resolution、super resolution、SR图像恢复/重建image restoration、image reconstruction、low-level vision去噪denoising、noise removal、image denoise去雨deraining、rain streak、rain removal去雾dehazing、haze removal、atmospheric scattering去模糊deblurring、motion blur、blind deblurring相关扩展image enhancement、low-light、degradation、inverse problem把关键词组合成多条检索式分别过滤每一轮都保留命中论文的ID和标题最后做一次并集去重。这个过程大概半小时能完成但之后调研的完整度就有了保证。3.2 第二步用GitHub挖掘开源代码和实现质量拿到论文清单后判断哪些能直接进入复现是效率的关键。我的标准流程是每篇候选论文在GitHub上搜索“论文方法名”或“论文名词关键词”。搜索结果里优先看标注了官方代码的仓库其次是star数和更新时间都正常的第三方复现。还要留意仓库的可读性README里有没有写清楚环境版本、数据集的下载方式、训练启动命令代码是完整训练脚本还是只有测试脚本有没有附带预训练权重这三点直接决定复现成本。实际调研中有些工作论文写得漂亮但代码仓库缺依赖、少数据预处理脚本我通常直接把这样的仓库标记为“仅阅读不优先复现”。如果论文没有官方开源也不要立刻放弃可以去平台化的论文代码聚合站如Papers with Code上看看有没有高星第三方复现注意对照原论文的实验数据和第三方复现的结果是否接近。这个步骤能帮你省下盲目重写模型的时间。3.3 第三步按主题分组精读并建立笔记矩阵筛选和查代码只是准备工作真正有价值的是把论文读成一张知识网络。我的做法很朴素先按大的子方向分组再用“技术模块”而不是“论文单位”重新切片。比如超分方向里所有用到通道注意力的工作放在一组看所有做了退化建模的工作放在另一组看这样的横向比较能非常清晰地暴露技术迭代的脉络谁先提出、谁改进、谁合并了多种机制。阅读每篇论文时记下一个固定模板核心解决什么问题、方法的主要模块、训练数据与评测数据集、关键指标、代码状态、复现堵点在哪。表格格式比长篇文字笔记更适合后续检索。积累二三十篇之后你对这个方向的方法谱系基本就了如指掌了。4. 复现与验证的实操经验4.1 复现环境的推荐配置与依赖选择ECCV2020时代的底层视觉代码绝大多数跑在PyTorch上环境相对好配。我建议的基础环境是Python 3.7或3.8、PyTorch 1.6到1.8之间、CUDA 10.2或11.0。无需过于追求新版本很多老代码在新版PyTorch下会踩到torchvision接口变化或分布式API调整反而不如用一个与代码发布时间接近的版本稳定。显存方面一个标准的超分训练任务输入patch 48×48、batch size 16、尺度×4大概需要8GB以上显存才比较舒服12GB以上可以跑更复杂的注意力模型。如果只有小显存优先减小batch size而不是缩小patch因为patch太大会影响感受野。为了稳定复现随机性建议固定随机种子并在代码里关闭cudnn的自动tuning。4.2 常用数据集的获取与预处理细节底层视觉论文的实验数据集高度标准化我把常用数据集总结成下面这张速查表数据集主要用途规模获取要点DIV2K超分、去噪通用训练集800张训练、100张验证高分辨率原图按退化方式预处理Flickr2K超分、去噪扩展训练集2650张高清图常与DIV2K合并训练Set5 / Set14超分经典测试集5张 / 14张小规模快速验证B100 (BSD100)超分、去噪通用测试集100张自然图像纹理多样Urban100超分测试集100张建筑图包含大量重复结构考验结构恢复Rain100H / Rain100L单图像去雨测试集雨强不同注意区分合成域与真实域RESIDE去雾训练与测试大规模合成雾包含室内外场景、多种大气条件GOPRO去模糊训练与测试多组动态模糊序列由高速摄影模拟模糊生成SIDD / DND真实去噪训练与测试真实相机噪声ground truth多为多帧平均预处理阶段最常踩的坑是数据范围不一致有的代码把图像归一化到[0,1]有的归一化到[-1,1]两个范围直接决定损失函数的初始化状态切换到不匹配的代码时结果会离谱地差。我在每次复现前都会先确认数据加载部分的归一化逻辑再跑一行代码检查样本张量的数值范围这个习惯帮我避开过好几天的无效调试。4.3 训练参数的经验值与损失函数设计逻辑以超分为例一个稳定可复现的训练配置大概是这样的输入patch裁剪48×48原图区域batch size设为16优化器用Adam初始学习率1e-4训练约300到500个epoch时把学习率降到1e-5。损失函数首选L1损失而不是L2因为L1在像素级回归上更利于保留边缘锐度L2容易让结果偏平滑。追求更高感知质量时可以在主损失之外叠加感知损失通常在预训练VGG网络的relu层计算特征距离或者加入GAN对抗损失来增强纹理真实感。但要注意对抗损失可能让PSNR/SSIM下降这属于指标与感知体验的权衡不是bug。调整损失权重时要同步监控可视化结果不能只看指标曲线。4.4 PSNR与SSIM计算的几个细节坑底层视觉论文的指标计算有一套隐含约定很多复现掉点就掉在这里。第一个坑PSNR必须在Y通道计算。通用的做法是把RGB图像转到YCbCr颜色空间只取Y通道计算PSNR。直接在RGB上计算会得到偏低的数值和论文对不上。第二个坑计算前要裁掉边界。超分任务里测试图像往往会先按放大尺度裁掉一圈边界像素原因是网络padding方式不同边界像素的重建质量天然偏低。第三个坑SSIM的实现参数包括高斯窗口大小和标准差不同库的默认值有差异尽量使用论文作者提供的评测脚本。下面给一个参考的实现思路用PyTorch或NumPy两步走先转Y通道再按边界裁剪最后在Y通道上算指标。import numpy as np from skimage.metrics import structural_similarity as ssim def rgb_to_y(rgb): # rgb: HxWx3, float, 范围 [0, 1] return np.dot(rgb[..., :3], [65.481, 128.553, 24.966]) / 255.0 16.0 def eval_psnr_ssim(pred, gt, scale4, borderNone): if border is None: border scale pred_y rgb_to_y(pred)[border:-border, border:-border] gt_y rgb_to_y(gt)[border:-border, border:-border] mse np.mean((pred_y - gt_y) ** 2) psnr 10 * np.log10(255.0 * 255.0 / mse) ssim_val ssim(gt_y, pred_y, data_range255) return psnr, ssim_val这段逻辑是复现中的常用套路但我还是要强调不同论文对边界裁剪和颜色空间处理的细节有差异最稳妥的方式永远是找到作者公开的评测代码对照着复核。4.5 复现过程中的高频踩坑记录我在复现这批ECCV2020论文时遇到了几类高频问题逐一记录一下。数据加载慢是最常见的问题。尤其是DIV2K和Flickr2K这类高分辨率图像每次在线做随机裁剪再增强CPU会成为瓶颈。解决方式是把图像预处理成HDF5或npy格式训练时用内存映射读取速度提升非常明显。训练不收敛的情况优先检查数据归一化和学习率很多时候是归一化范围不对导致初始loss就异常。显存不够时除了减小batch size还可以尝试梯度累计每几个step做一次参数更新效果上接近大batch训练。超分输出出现周期性棋盘伪影时肯定是转置卷积使用不当改用PixelShuffle上采样几乎都能解决。5. 常见问题与排查技巧速查表问题现象可能原因排查与解决方案复现PSNR与论文差0.5dB以上指标在RGB全通道计算、边界未裁、Y通道转换公式不统一对照作者评测脚本统一颜色空间与边界裁剪Loss下降缓慢或震荡学习率过大、batch size过小、数据归一化不一致降低初始lr增大batch或使用梯度累计检查输入像素范围训练到后期过拟合训练数据少、增强强度不够增加随机旋转、水平翻转或引入CutMix等更强增强超分结果出现规律网格PixelShuffle通道顺序不匹配、转置卷积产生重叠核查通道重排逻辑上采样层统一改PixelShuffle真实雨图上效果明显变差合成与真实域差距在真实雨图数据上做微调或选择多退化混合训练的方法去雾结果偏暗大气光或透射率估计偏离端到端训练物理约束弱增加透射率/大气光中间监督或降低全局损失权重真实噪声降噪后过于平滑模型将纹理当作噪声滤除增加感知损失或高频保留损失引入成对真实噪声数据视频去模糊出现闪烁单帧独立处理缺乏时序一致性引入光流对齐模块或时序卷积层这组排查项是我在复现和实际应用过程中沉淀下来的不是从哪篇论文里直接抄的结论。遇到问题时优先怀疑数据管道而不是模型结构这个习惯能省下大量无效调试时间。我个人在整理这些论文时最深的体会是底层视觉方向的论文看起来门槛低——无非是配环境、下数据、跑实验——但真正拉开差距的地方恰恰是那些论文里不会写的细节比如指标计算方式、边界处理策略、数据增广强度、优化器配置。想要把别人的方法真正变成自己的工具光读PDF远远不够动手复现时把每个环节都做扎实才算真正把这篇论文消化掉。后续这个主题的论文清单和代码状态我会在实际复现和项目应用过程中持续补充更新把值得跟进的模型和仓库逐步加进来。