FBCNN 去 JPEG 块效应实战:一个模型搞定所有压缩质量
FBCNN 去 JPEG 块效应实战一个模型搞定所有压缩质量【免费下载链接】FBCNNOfficial Code for ICCV 2021 paper Towards Flexible Blind JPEG Artifacts Removal (FBCNN)项目地址: https://gitcode.com/gh_mirrors/fb/FBCNN微信里转发的图片放大看总有那种一格一格的马赛克感说白了就是 JPEG 有损压缩留下的块效应。FBCNN 就是专门治这个的——它是 ICCV 2021 论文《Towards Flexible Blind JPEG Artifacts Removal》的官方 PyTorch 实现一个盲模型覆盖所有质量因子还能让你手动控制去块的力度。它比传统去块网络强在哪一个网络通吃所有质量因子。传统方法ARCNN、MWCNN 这类得给每个质量因子单独训一个模型质量因子变了就得换模型。FBCNN 是个盲模型内部先预测这张图的压缩质量再喂给重建网络10 到 90 全都能处理不用来回切模型。去块力度可以手动调。这是它名字里「FFlexible」的含义。默认它自己预测质量因子来复原你也可以强行指定一个 QF 值让输出在「去得更干净」和「保留更多细节」之间自行权衡不同用途给不同版本。双 JPEG 也没在怕。网上抓的图很多被压缩过不止一次甚至两次压缩的 8x8 块没对齐以前的盲方法一碰这种情形就崩。FBCNN 提出了双 JPEG 退化模型y JPEG(shift(JPEG(x, QF1)), QF2)做训练增强专门治这个。网络结构长这样编码器负责预测质量因子解码器通过 QF 注意力块把它嵌回去做可控复原。从零跑通一次推理你只需要做三件事。第一步拉代码装依赖。仓库里没有 requirements 文件但依赖很干净一条命令装齐git clone https://gitcode.com/gh_mirrors/fb/FBCNN cd FBCNN pip install torch torchvision opencv-python numpy requestsPyTorch 1.7、Python 3.7 即可OpenCV 用来做 JPEG 编解码。第二步准备权重。测试脚本很贴心如果model_zoo/里没有.pth会联网自动从 Release 下载手动把fbcnn_color.pth丢进model_zoo/也行。第三步跑推理。彩色、灰度、双 JPEG 各有入口这里以彩色为例python main_test_fbcnn_color.py它会遍历testsets/LIVE1_color/的图对每个质量因子10~90各复原一遍。跑通的标志test_results/下生成复原的.png日志里滚出每张图的PSNR / SSIM / PSNRB和predicted quality factor。⚠️ 卡点一model_zoo/是空的第一次跑必须联网或手动放权重否则会卡在下载或加载报错。⚠️ 卡点二默认跑满 10~90 共 9 个质量因子、29 张图CPU 上挺慢可以先把quality_factor_list改成只留一两个快速验证再放开。真实场景怎么用它场景一清理网上抓的双 JPEG 图。社交媒体、微信传图几乎都会二次压缩块效应叠加得比单次更脏。用main_test_fbcnn_gray_doublejpeg.py跑一遍靠双 JPEG 退化模型训出来的权重比 DnCNN、QGAC 这些老方法在非对齐情况下稳得多——人家一到像素错位就失效FBCNN 还能正常出图。场景二同一张图输出去块力度不同的版本。跑main_test_fbcnn_color_real.py时QF_control会按 5/10/30/50/70/90 各存一张方便按用途挑存档要干净就调低预览要保细节就调高。进阶与周边想批量处理时用 OpenCV 把testsets/换成你自己的目录接进util.imread_uint的读取链路就行核心就是 网络定义 里那个FBCNN类。下一步建议改 训练配置 的dataroot_H指向你的数据再python main_train_fbcnn.py做微调通常比直接套默认权重更贴合你的场景。【免费下载链接】FBCNNOfficial Code for ICCV 2021 paper Towards Flexible Blind JPEG Artifacts Removal (FBCNN)项目地址: https://gitcode.com/gh_mirrors/fb/FBCNN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻