hdrcnn

GitHub
542 103 中等 1 次阅读 1个月前BSD-3-Clause开发框架图像
AI 解读 由 AI 自动生成,仅供参考

hdrcnn 是一款基于深度卷积神经网络(CNN)的开源工具,旨在从单张普通曝光照片中重建高动态范围(HDR)图像。它主要解决了传统相机传感器在拍摄高对比度场景时,因过曝导致亮部细节丢失(如天空泛白、灯光溢出)的难题。通过智能算法,hdrcnn 能够“脑补”出这些缺失的高光信息,将普通的 8 位图片转化为包含丰富亮度层次的 HDR 图像。

该工具特别适合计算机视觉研究人员、图像处理开发者以及需要处理高光修复问题的技术型设计师使用。由于其核心基于 TensorFlow 框架,使用者需具备一定的 Python 编程基础和环境配置能力,以便运行推理脚本或进行模型训练。

hdrcnn 的技术亮点在于其采用了自编码器结构的深度学习模型,并针对实际应用场景做了细致优化。除了基础的重建功能,它还提供了专门针对 JPEG 压缩伪影训练的权重参数,能有效提升压缩图片的修复质量;同时,项目还探讨了视频帧序列重建的方案,致力于减少逐帧处理可能产生的闪烁瑕疵,展现了其在动态影像处理上的潜力。

使用场景

一位独立游戏开发者正在处理一批在正午强光下拍摄的实景参考图,试图将其转化为高动态范围(HDR)贴图以用于虚幻引擎中的光照烘焙。

没有 hdrcnn 时

  • 高光细节永久丢失:由于相机传感器饱和,天空云层和窗户反光处呈现死白,无法通过传统软件拉回任何纹理细节。
  • 多曝光拍摄成本高昂:为了获取完整动态范围,必须重返现场进行包围曝光拍摄,极大增加了时间与人力的外景成本。
  • 手动修复痕迹明显:尝试用 Photoshop 手工绘制高光过渡不仅耗时,且难以模拟真实物理光照的细腻渐变,导致渲染结果虚假。
  • 格式转换受限:普通的 8 位 PNG 或 JPG 图片缺乏足够的亮度信息,直接导入渲染器会导致暗部噪点增多或亮部过曝。

使用 hdrcnn 后

  • 智能重建饱和区域:hdrcnn 利用深度卷积神经网络,成功从单张过曝照片中“猜”并还原了云层层次与金属反光等丢失的高光信息。
  • 单图即可生成 HDR:无需多张合成,直接将普通 8 位图片输入模型,即可输出包含丰富亮度数据的 OpenEXR 格式文件。
  • 光影过渡自然真实:基于 Siggraph Asia 论文算法训练的参数,确保了重建的光照梯度符合物理规律,消除了人工绘制的生硬感。
  • 兼容压缩伪影处理:针对素材中可能存在的 JPEG 压缩噪点,hdrcnn 提供了专用权重参数,在去噪的同时保持边缘锐利,提升最终画质。

hdrcnn 的核心价值在于将原本需要复杂前期拍摄或多帧合成的 HDR 制作流程,简化为单次推理即可完成的自动化修复过程。

运行环境要求

操作系统
  • 未说明 (基于 Python 和 TensorFlow,通常支持 Linux
  • macOS
  • Windows)
GPU
  • 非必需
  • 支持 GPU 加速(需安装 tensorflow-gpu),具体显卡型号、显存大小及 CUDA 版本未在文档中明确说明
内存

未说明

依赖
notes1. 在 Ubuntu 等 Linux 系统上,使用 pip 安装 OpenEXR 前,可能需要先通过系统包管理器(如 apt-get)安装 openexr 和 libopenexr-dev 开发库。 2. 若需 GPU 支持,请将依赖中的 tensorflow 替换为 tensorflow-gpu。 3. 推理所需的预训练权重文件(.npz)需单独从项目网页下载,不包含在代码库中。 4. 针对视频重建或含 JPEG 压缩伪影的图像,文档提供了不同的预训练参数文件以供选择。
python未说明 (需支持 pip 安装依赖的 Python 环境)
TensorFlow
TensorLayer
OpenEXR
NumPy
SciPy
hdrcnn hero image

快速开始

深度学习HDR图像重建

image

概述

本仓库提供了用于运行我们Siggraph Asia论文中所描述的自编码卷积神经网络(CNN)推理的代码,以及该网络的训练代码。请仔细阅读以下信息,以便正确使用该方法。如果您在研究工作中使用了这些代码,请按照以下方式引用该论文:

@article{EKDMU17,
  author       = "Eilertsen, Gabriel and Kronander, Joel, and Denes, Gyorgy and Mantiuk, Rafał and Unger, Jonas",
  title        = "利用深度CNN从单次曝光重建HDR图像",
  journal      = "ACM Transactions on Graphics (TOG)",
  number       = "6",
  volume       = "36",
  articleno    = "178",
  year         = "2017"
}

该CNN经过训练,能够重建因传感器饱和而丢失信息的图像区域,例如高光和明亮的图像特征。这意味着可以将一张标准的8位单次曝光图像输入到网络中,网络会重建缺失的信息,从而生成一张高动态范围(HDR)图像。有关该方法的更多信息,请参阅项目主页

下文将介绍如何使用训练好的网络进行HDR图像重建。关于训练新权重的相关信息和代码则位于training_code文件夹中。

代码说明

模型和预测脚本使用Python编写,并依赖以下软件包:

  • TensorFlow:用于模型定义和预测。
  • TensorLayer:用于简化TensorFlow层的构建。
  • OpenEXR:用于将重建的HDR图像写入磁盘。
  • NumPySciPy:用于图像处理等操作。

所有依赖项均可通过Python的pip包管理器安装(若需GPU支持,请将tensorflow替换为tensorflow-gpu):

$ pip install numpy scipy tensorflow tensorlayer OpenEXR

在使用pip安装之前,您可能需要先通过相应的包管理器安装OpenEXR(例如,在Ubuntu上执行sudo apt-get install openexr and libopenexr-dev)。

使用方法

  1. 用于推理的已训练 CNN 权重可在 这里 找到。
  2. 运行 python hdrcnn_predict.py -h 可显示可用的输入选项。
  3. 下面是一个示例,演示如何进行 HDR 重建。

示例

我们提供了一些测试图像,可以按如下方式用于重建:

$ python hdrcnn_predict.py --params hdrcnn_params.npz --im_dir data --width 1024 --height 768

也可以对单个帧进行预测:

$ python hdrcnn_predict.py --params hdrcnn_params.npz --im_dir data/img_001.png --width 1024 --height 768

压缩伪影

我们还提供了在包含 JPEG 压缩伪影的图像上训练得到的参数,可从 这里 下载。如果用于重建的图像包含压缩伪影,使用这些参数相比之前的参数能显著提升重建质量。然而,如果输入图像没有压缩伪影,我们建议使用 原始参数,因为它们在重建细节方面略占优势。

视频重建

逐帧重建视频素材通常会导致闪烁伪影和局部时间不一致的问题。为缓解这一问题,我们提供了 这里 的参数,这些参数是基于我们 2019 年 CVPR 论文提出的正则化方法训练得到的(论文项目主页):

@inproceedings{EMU19,
  author       = "Eilertsen, Gabriel and 
                  Mantiuk, Rafa\l and 
                  Unger, Jonas",
  title        = "Single-frame Regularization for Temporally Stable CNNs",
  booktitle    = "The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)",
  month        = "June",
  year         = "2019"
}

为提高时间一致性的参数同样使用了 JPEG 压缩图像,因此也可用于处理已应用压缩的视频。重建质量和时间一致性之间存在一定的权衡。如果不需要重建视频素材,则应优先使用 原始参数

应用上述正则化方法进行训练的功能可在 training_code 中找到。

评估

正确评估单张图像 HDR 重建方法十分困难(参见例如 这里)。我们建议采用我们在 SIGGRAPH 2022 论文中提出的推荐评估协议(论文项目主页):

@inproceedings{hanji2022sihdr,
  author    = {Hanji, Param and Mantiuk, Rafa{\l} K. and Eilertsen, Gabriel and Hajisharif, Saghi and Unger, Jonas},
  title     = {单张图像 HDR 重建方法比较——质量评估的注意事项},
  booktitle = {Special Interest Group on Computer Graphics and Interactive Techniques Conference Proceedings (SIGGRAPH '22 Conference Proceedings)},
  year      = {2022},
  doi       = {10.1145/3528233.3530729},
  url       = {https://www.cl.cam.ac.uk/research/rainbow/projects/sihdr_benchmark/},
}

控制重建过程

使用 CNN 进行 HDR 重建是完全自动化的,无需任何参数校准。然而,在某些情况下,能够控制重建后像素的亮度可能会有所帮助。为此,有一个简单的技巧可用于实现这种控制。

给定输入图像 x,CNN 预测 y = f(x) 可以通过在输入图像上应用指数/伽马函数,并在重建后将其逆运算来一定程度上进行控制:

    y = f(x1/g)g

本质上,这会修改图像的相机曲线,从而使重建基于不同的相机特性进行。对于 g > 1 的值,重建后的高光区域强度会被增强;而对于 g < 1,则相反。程序提供了一个 --gamma 输入选项来执行此操作:

$ python hdrcnn_predict.py [...] --gamma 1.2

一般来说,取 1.1–1.3 左右的值较为合适,因为这样可以避免对最亮像素的低估,而这种低估在其他情况下较为常见(例如由于训练数据的局限性)。

许可证

版权所有 © 2017,加布里埃尔·艾尔特森。 保留所有权利。

该代码以 BSD 许可证发布。有关信息请参阅 LICENSE 文件。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架