Deep-Image-Analogy

GitHub
1.4k 231 困难 1 次阅读 1个月前MIT开发框架
AI 解读 由 AI 自动生成,仅供参考

Deep-Image-Analogy 是一款由微软研究院开源的图像处理技术,旨在通过深度学习实现两幅图像之间具有语义意义的密集对应关系查找。它核心解决了传统图像类比方法难以理解内容语义的痛点,能够精准地将一幅图像的视觉风格、纹理或色彩迁移到另一幅图像的结构上,同时保持内容的自然与连贯。

该工具基于深度卷积神经网络(DCNN)提取特征,结合改进的 PatchMatch 算法,在照片转艺术风格、艺术品风格互换、草图还原为真实照片以及时序照片色彩转换等场景中表现卓越。其独特的技术亮点在于利用深层网络特征来指导像素级的匹配过程,使得风格迁移不仅停留在表面纹理,更能理解物体的语义结构。

Deep-Image-Analogy 主要面向计算机视觉研究人员、AI 开发者以及需要高质量风格迁移算法的数字艺术家。由于官方实现基于 C++ 和 CUDA,并依赖 Caffe 框架,且主要在 Windows 环境下经过测试,因此使用者需要具备一定的编程基础和深度学习环境配置能力。对于希望深入探索图像语义匹配机制或构建自定义风格迁移应用的专业人士而言,这是一个极具参考价值的经典开源项目。

使用场景

一位数字艺术家需要将一张现代城市照片转化为梵高《星夜》风格的画作,同时严格保留原图中建筑、街道和车辆的几何结构与语义位置。

没有 Deep-Image-Analogy 时

  • 传统风格迁移算法往往只关注整体纹理统计,导致建筑物轮廓扭曲或窗户位置错位,破坏了画面的空间逻辑。
  • 艺术家不得不手动在 Photoshop 中逐层蒙版修复变形区域,耗时数小时甚至数天来对齐细节。
  • 难以处理复杂的语义对应关系,例如无法准确将“天空”的笔触仅映射到目标图的天空区域,容易污染地面景物。
  • 调整参数缺乏直观反馈,每次尝试都需要重新渲染整图,迭代效率极低。

使用 Deep-Image-Analogy 后

  • 利用深度卷积神经网络提取特征,自动建立两张图像间语义一致的稠密对应关系,确保建筑风格转换时结构丝毫不乱。
  • 一键生成高质量结果,原本需要数小时的手工修图工作缩短至几分钟,大幅释放创作精力。
  • 精准实现属性转移,能将《星夜》的漩涡笔触完美限定在天空区域,而街道和车辆则保持清晰锐利且风格统一。
  • 支持从草图到照片、照片到照片等多种模式,为艺术家提供灵活的创作流,快速验证不同艺术风格的视觉效果。

Deep-Image-Analogy 通过深度学习实现了语义级的图像类比,让风格迁移从“模糊滤镜”进化为“可控的结构化重绘”。

运行环境要求

操作系统
  • Windows
GPU

必需 NVIDIA GPU,已测试型号包括 Titan X, Titan Z, K40, GTX770,需 CUDA 7.5 或 8.0

内存

未说明

依赖
notesLinux 和 macOS 用户需切换至专门的 'linux' 分支。输入图像尺寸受限,若参数 ratio 设为 1.0,建议图像大小不超过 700x500 像素。运行前需手动下载 VGG-19 模型文件。主要代码为 C++ 结合 CUDA 实现,非 Python 项目。
python未说明 (基于 C++ 实现)
Caffe (Microsoft 分支)
CUDA
Visual Studio 2013
Eigen
PatchMatch
CudaLBFGS
Deep-Image-Analogy hero image

快速开始

深度图像类比

本仓库的主要贡献者包括微软研究院的廖晶、姚远、袁璐、华刚以及康圣炳。

简介

深度图像类比是一种在两张输入图像之间寻找语义上有意义的密集对应关系的技术。它利用从深度卷积神经网络中提取的特征来实现图像类比的概念。

深度图像类比最初在一篇 SIGGRAPH 2017 论文 中被描述。

image

免责声明

这是 深度图像类比 的官方 C++ 结合 CUDA 实现。需要注意的是:

  • 我们的代码基于 Caffe
  • 我们的代码仅在 Windows 10 和 Windows Server 2012 R2 上,并使用 CUDA 8 或 7.5 进行过测试。
  • 我们的代码仅在以下几款 Nvidia GPU 上进行过测试:Titan X、Titan Z、K40、GTX770。
  • 输入图像的尺寸有限,如果参数 ratio 设置为 1.0,通常不应超过 700x500 像素。

许可证

© 微软,2017。根据 MIT 许可证授权。

引用

如果您发现 深度图像类比(包括深度 patchmatch)对您的研究有所帮助,请考虑引用以下文献:

@article{Liao:2017:VAT:3072959.3073683,
 author = {Liao, Jing and Yao, Yuan and Yuan, Lu and Hua, Gang and Kang, Sing Bing},
 title = {Visual Attribute Transfer Through Deep Image Analogy},
 journal = {ACM Trans. Graph.},
 issue_date = {July 2017},
 volume = {36},
 number = {4},
 month = jul,
 year = {2017},
 issn = {0730-0301},
 pages = {120:1--120:15},
 articleno = {120},
 numpages = {15},
 url = {http://doi.acm.org/10.1145/3072959.3073683},
 doi = {10.1145/3072959.3073683},
 acmid = {3073683},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {deep matching, image analogy, transfer},
} 

应用

照片到风格

我们代码的一个主要应用是将一幅画作的风格迁移到照片上。

风格到风格

它也可以在两幅艺术作品之间交换风格。

image

风格到照片

最具挑战性的应用是将草图或绘画转换为照片。

照片到照片

它还可以在两张照片之间进行颜色迁移,例如生成延时摄影效果。

image

快速入门

前提条件

  • Windows 7/8/10(对于 Linux 或 macOS 用户,请查看 linux 分支。)
  • CUDA 8 或 7.5
  • Visual Studio 2013

构建

  • 首先构建 Caffe。请按照此处的教程操作:Microsoft Caffe
  • 编辑 windows/deep_image_analogy 下的 deep_image_analogy.vcxproj 文件,确保其中的 CUDA 版本与您系统中的版本一致。
  • 打开解决方案 Caffe 并添加 deep_image_analogy 项目。
  • 构建 deep_image_analogy 项目。

下载模型

在运行演示之前,您需要下载 VGG-19 模型。请前往 windows/deep_image_analogy/models/vgg19/ 文件夹并下载:

演示

打开 windows/deep_image_analogy/source/ 中的 main.cpp 文件,查看如何运行演示。您需要设置论文中提到的几个参数。具体来说,您需要设置:

  • path_model,即 VGG-19 模型所在的路径。
  • path_A,输入图像 A。
  • path_BP,输入图像 BP。
  • path_output,输出路径。
  • GPU Number,您希望用于本次实验的 GPU ID。
  • Ratio,在将输入送入网络之前调整其大小的比例。
  • Blend Weight,混合过程中的权重级别。
  • WLS 滤波器标志,如果您尝试进行照片风格迁移,建议将其打开,以保持原始照片的结构。

直接运行

我们还在 windows/deep_image_analogy/exe/ 文件夹中提供了一个预编译的可执行文件,您可以随时尝试。

要运行此 deep_image_analogy.exe,您需要编写如下命令行:

deep_image_analogy.exe ../models/ ../demo/content.png ../demo/style.png ../demo/output/ 0 0.5 2 0

其含义如下:

  • path_model=../models/
  • path_A=../demo/content.png
  • path_BP=../demo/style.png
  • path_output=../demo/output/
  • GPU Number=0
  • Ratio=0.5
  • Blend Weight=2
  • WLS 滤波器标志=00:禁用 WLS 滤波器;1:启用 WLS 滤波器,仅在照片到照片的情况下需要)

小贴士

  • 我们通常测试 600x400 和 448x448 大小的图像。
  • 默认情况下,我们将 ratio 设置为 1.0。特别地,在处理人脸(肖像)图像时,我们发现将 ratio 设置为 0.5 通常能得到更好的结果。
  • Blend weight 控制最终结果的外观。如果您希望结果更接近原始内容照片,请增加该值;如果您希望结果更忠实于风格,请降低该值。
  • 对于四种应用场景,我们的设置大致如下(但并非绝对):
    • 照片到风格:blend weight=3,ratio=0.5(人脸)或 1.0(其他情况)。
    • 风格到风格:blend weight=3,ratio=1.0。
    • 风格到照片:blend weight=2,ratio=0.5。
    • 照片到照片:blend weight=3,ratio=1.0。

致谢

我们的代码感谢 EigenPatchMatchCudaLBFGSCaffe 的贡献。同时,我们也感谢我们所使用的图像和风格示例的作者,但我们并不拥有这些图片的版权。

常见问题

相似工具推荐

openclaw

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

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

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

162.1k|★★★☆☆|3天前
开发框架图像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 真正成长为懂上

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

ComfyUI

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

108.1k|★★☆☆☆|今天
开发框架图像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|★★☆☆☆|2天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|2天前
语言模型图像Agent