PIFu

GitHub
1.8k 350 较难 1 次阅读 2天前NOASSERTION图像其他开发框架
AI 解读 由 AI 自动生成,仅供参考

PIFu 是一款基于深度学习的开源项目,旨在通过单张二维照片重建高分辨率的三维穿衣人体模型。它主要解决了传统方法难以从普通照片中精准还原人物复杂衣着褶皱、身体姿态及精细几何细节的难题,让数字化过程不再依赖昂贵的专业扫描设备。

这项技术的核心亮点在于其提出的“像素对齐隐式函数”(Pixel-Aligned Implicit Function)。不同于常规方法,PIFu 能将图像中的每个像素特征直接映射到三维空间,从而在生成网格时保留极高的纹理和几何保真度,即使是宽松衣物产生的复杂遮挡也能得到良好还原。

PIFu 非常适合计算机视觉研究人员、3D 开发者以及数字内容创作者使用。研究人员可以利用其提供的 PyTorch 代码进行算法改进或训练自定义数据;开发者可将其集成到虚拟试衣、游戏角色生成等应用中;而设计师则能通过它快速将概念图转化为可用的 3D 资产。虽然项目也提供了 Google Colab 演示方便体验,但要充分发挥其训练和数据生成能力,用户最好具备一定的编程基础和深度学习环境配置经验。作为 ICCV 2019 的获奖成果,PIFu 为单图三维重建领域设立了重要的技术标杆。

使用场景

一家小型独立游戏工作室急需为新款角色扮演游戏批量生成高精度的 3D 角色模型,但团队中缺乏专业的 3D 建模师,仅能提供角色的正面和背面概念设计图。

没有 PIFu 时

  • 人力成本高昂:美术人员必须手动在 Blender 或 Maya 中从零开始雕刻模型,每个角色耗时数天,严重拖慢开发进度。
  • 细节还原困难:手工建模难以完美复刻原画中复杂的衣褶、头发纹理等高频细节,导致最终模型与概念图神似形不似。
  • 拓扑结构复杂:非专业建模师生成的网格拓扑往往混乱不堪,后续绑定骨骼和制作动画时极易出现模型拉伸或穿模错误。
  • 迭代成本极高:一旦策划调整服装设计,整个建模流程需推倒重来,无法快速响应需求变更。

使用 PIFu 后

  • 自动化快速生成:只需输入去除背景的角色正背视图,PIFu 即可利用像素对齐隐式函数技术,在几分钟内自动重建出带纹理的高分辨率 3D 网格。
  • 像素级细节保留:算法能精准捕捉图像中的细微特征,将原画中的衣物褶皱和轮廓细节无损地转化为三维几何结构,实现“所见即所得”。
  • 高质量网格输出:直接生成结构合理、表面平滑的 .obj 文件,大幅减少了后期清理拓扑和修复破面的工作量,可直接用于动画绑定。
  • 低成本灵活迭代:修改设计图后重新运行脚本即可瞬间获得新模型,让团队能以极低的试错成本探索多种角色风格。

PIFu 将原本需要数天的人工建模工作压缩至分钟级,让小型团队也能凭借 2D 概念图轻松构建电影级精度的 3D 数字人资产。

运行环境要求

操作系统
  • Linux
  • Windows
GPU
  • 训练和数据生成需要 NVIDIA GPU(支持 EGL 渲染需最新驱动),测试未明确强制要求但建议使用
  • CUDA 版本参考为 10.1
内存

未说明

依赖
notesWindows 用户需通过 Miniconda 和 Git Bash 手动配置环境,且部分功能(如数据生成和训练)仅限 Linux。若在无显示器服务器上使用 EGL 渲染,需安装 libgl1-mesa-dri 等包并更新 NVIDIA 驱动至最新版,否则可能报错。pyembree 对性能至关重要,未安装会导致代码运行极慢。预训练模型主要针对直立姿态拍摄,输入图像若偏差过大重建质量会下降。
python3
PyTorch (tested on 1.4.0)
trimesh
pyembree
pyexr
PyOpenGL
freeglut
PIL
scikit-image
opencv (cv2)
tqdm
PIFu hero image

快速开始

PIFu:用于高分辨率着装人体数字化的像素对齐隐式函数

report Open In Colab

新闻:

  • [2020/05/04] 增加了用于生成训练数据的EGL渲染选项。现在你可以使用无头机器创建自己的训练数据!
  • [2020/04/13] 提供了带有Google Colab的演示(包括可视化)。特别感谢@nanopoteto!!!
  • [2020/02/26] 许可证更新为MIT许可证!尽情享用吧!

本仓库包含“PIFu:用于高分辨率着装人体数字化的像素对齐隐式函数”(arxiv.org/abs/1905.05172)的PyTorch实现。

项目页面 预告图

如果你在研究中觉得这段代码很有用,请考虑引用该论文。

@InProceedings{saito2019pifu,
author = {Saito, Shunsuke and Huang, Zeng and Natsume, Ryota and Morishima, Shigeo and Kanazawa, Angjoo and Li, Hao},
title = {PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization},
booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
month = {October},
year = {2019}
}

该代码库提供了:

  • 测试代码
  • 训练代码
  • 数据生成代码

需求

  • Python 3
  • PyTorch 经测试版本为1.4.0
  • json
  • PIL
  • skimage
  • tqdm
  • numpy
  • cv2

用于训练和数据生成:

  • trimeshpyembree
  • pyexr
  • PyOpenGL
  • freeglut(对于Ubuntu用户,使用sudo apt-get install freeglut3-dev
  • (可选)与EGL相关的软件包,用于在无头机器上进行渲染。(对于Ubuntu用户,使用apt install libgl1-mesa-dri libegl1-mesa libgbm1

警告:我发现过时的NVIDIA驱动程序可能会导致EGL出现错误。如果你想尝试EGL版本,请将你的NVIDIA驱动程序更新到最新版本!!

Windows演示安装说明

  • 安装Miniconda
  • conda添加到PATH中
  • 安装Git Bash
  • 启动Git\bin\bash.exe
  • eval "$(conda shell.bash hook)"然后conda activate my_env,因为有这个问题
  • 自动env create -f environment.yml(参见这里
  • 或者手动设置环境
    • conda create —name pifu python,其中pifu是你环境的名字
    • conda activate
    • conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
    • conda install pillow
    • conda install scikit-image
    • conda install tqdm
    • conda install -c menpo opencv
  • 下载wget.exe
  • 将其放置在Git\mingw64\bin
  • sh ./scripts/download_trained_model.sh
  • 从你的图像中移除背景(例如使用remove.bg
  • 创建黑白掩膜.png
  • 替换sample_images/中的原始文件
  • 尝试运行 - sh ./scripts/test.sh
  • 下载Meshlab,因为有这个问题
  • 在Meshlab中打开.obj文件

演示

警告:发布的模型主要是在弱透视投影和0度俯仰角下,以直立姿势扫描的数据上训练的。对于与训练数据偏差较大的图像,重建质量可能会下降。

  1. 运行以下脚本以从以下链接下载预训练模型,并将其复制到./PIFu/checkpoints/目录下。
sh ./scripts/download_trained_model.sh
  1. 运行以下脚本。该脚本会在./PIFu/eval_results/目录下生成一个带纹理的.obj文件。为了获得更好的效果,你可能需要使用./apps/crop_img.py来大致对齐输入图像及其对应的掩膜与训练数据。对于背景去除,你可以使用任何现成的工具,如removebg
sh ./scripts/test.sh

Google Colab上的演示

如果你没有运行PIFu的环境,我们提供Google Colab版本供你试用,让你可以在云端免费运行PIFu。请使用以下笔记本尝试我们的Colab演示: Open In Colab

数据生成(仅限Linux)

由于商业扫描数据的限制,我们无法公开完整的训练数据,但我们提供了使用RenderPeople中免费模型的渲染代码。本教程使用rp_dennis_posed_004模型。请从此链接下载模型,并将内容解压到名为rp_dennis_posed_004_OBJ的文件夹中。同样的步骤也可以应用于其他RenderPeople的数据。

警告:如果没有pyembree,以下代码会变得极其缓慢。请确保已安装pyembree。

  1. 运行以下脚本以计算预计算辐射传输(PRT)的球谐系数。简而言之,PRT用于准确地模拟光照传输,包括环境遮挡,同时不牺牲在线渲染速度,从而显著提高照片级真实感,相比使用表面法线的普通球谐光照渲染有了很大提升。这一过程需要为每个.obj文件单独执行一次。
python -m apps.prt_util -i {path_to_rp_dennis_posed_004_OBJ}
  1. 运行以下脚本。在指定的数据路径下,代码会创建名为GEORENDERMASKPARAMUV_RENDERUV_MASKUV_NORMALUV_POS的文件夹。请注意,你可能需要在{path_to_training_data}/val.txt中列出要排除在训练之外的验证对象(本教程只有一个对象,因此保持为空)。如果你想使用配备NVIDIA GPU的无头服务器进行渲染,可以添加-e参数以启用EGL渲染。
python -m apps.render_data -i {path_to_rp_dennis_posed_004_OBJ} -o {path_to_training_data} [-e]

训练(仅限 Linux)

警告:如果没有 pyembree,以下代码会变得极其缓慢。请确保已安装 pyembree。

  1. 运行以下脚本以训练形状模块。中间结果和检查点分别保存在 ./results./checkpoints 目录下。您可以添加 --batch_size--num_sample_input 标志,根据可用的 GPU 内存调整批处理大小和采样点数量。
python -m apps.train_shape --dataroot {训练数据路径} --random_flip --random_scale --random_trans
  1. 运行以下脚本以训练颜色模块。
python -m apps.train_color --dataroot {训练数据路径} --num_sample_inout 0 --num_sample_color 5000 --sigma 0.1 --random_flip --random_scale --random_trans

相关研究

单目实时体积化表演捕捉(ECCV 2020)
Li Ruilong*, Xiu Yuliang*, Shunsuke Saito, Huang Zeng, Olszewski Kyle, Li Hao

首个通过加速重建与渲染实现的实时 PIFu!!

PIFuHD:用于高分辨率三维人体数字化的多层级像素对齐隐式函数(CVPR 2020)
Saito Shunsuke, Simon Tomas, Saragih Jason, Joo Hanbyul

我们进一步利用多层级方法提升了重建质量!

ARCH:可动画化的着装人体重建(CVPR 2020)
Huang Zeng, Xu Yuanlu, Lassner Christoph, Li Hao, Tung Tony

在规范空间中学习 PIFu,用于生成可动画化的虚拟形象!

秒级鲁棒三维自画像(CVPR 2020)
Li Zhe, Yu Tao, Pan Chuanyu, Zheng Zerong, Liu Yebin

他们将 PIFu 扩展到 RGBD,并引入了“PIFusion”,利用 PIFu 的重建结果进行非刚性融合。

无需三维监督的学习隐式曲面推断(NeurIPS 2019)
Liu Shichen, Saito Shunsuke, Chen Weikai, Li Hao

我们回答了一个问题:“如果没有三维真值,我们该如何学习隐式函数?”

SiCloPe:基于轮廓的着装人物(CVPR 2019,最佳论文入围)
Natsume Ryota*, Saito Shunsuke*, Huang Zeng, Chen Weikai, Ma Chongyang, Li Hao, Morishima Shigeo

我们首次尝试仅从一张图像重建带有纹理的三维着装人体!

来自极稀疏多视角表演捕捉的深度体积视频(ECCV 2018)
Huang Zeng, Li Tianye, Chen Weikai, Zhao Yajie, Xing Jun, LeGendre Chloe, Luo Linjie, Ma Chongyang, Li Hao

针对稀疏视图的人体表演捕捉中的隐式表面学习!


如需商业合作,请联系:

Hao Li:hao@hao-li.com ccto:saitos@usc.edu Baker!!

常见问题

相似工具推荐

openclaw

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

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

stable-diffusion-webui

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

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

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

ComfyUI

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

108.3k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

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

100.8k|★★☆☆☆|2天前
插件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|★★☆☆☆|5天前
插件开发框架