[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ZZUTK--Face-Aging-CAAE":3,"tool-ZZUTK--Face-Aging-CAAE":61},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":24,"last_commit_at":59,"category_tags":60,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[27,13,15,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":76,"languages":77,"stars":82,"forks":83,"last_commit_at":84,"license":75,"difficulty_score":85,"env_os":86,"env_gpu":87,"env_ram":86,"env_deps":88,"category_tags":94,"github_topics":75,"view_count":24,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":95,"updated_at":96,"faqs":97,"releases":128},10063,"ZZUTK\u002FFace-Aging-CAAE","Face-Aging-CAAE","Age Progression\u002FRegression by Conditional Adversarial Autoencoder","Face-Aging-CAAE 是一款基于深度学习的开源项目，专注于实现人脸图像的年龄模拟，既能让人脸“变老”（年龄增长），也能让人脸“变年轻”（年龄回归）。它主要解决了传统方法难以在保持人物身份特征不变的前提下，自然、连续地调整面部年龄特征的难题。\n\n该工具的核心技术亮点在于采用了“条件对抗自编码器”（CAAE）架构。与简单的图像滤镜不同，它能将人脸分解为身份特征和年龄特征两个潜在向量，通过独立控制年龄向量，在生成不同年龄段人脸时，有效保留原始人物的五官细节和神态，避免产生违和感。项目基于 TensorFlow 构建，提供了完整的训练与测试流程，并支持在 UTKFace 等公开数据集上进行自定义训练。\n\nFace-Aging-CAAE 非常适合人工智能研究人员、计算机视觉开发者以及数字媒体设计师使用。研究人员可借此深入探索生成对抗网络在属性编辑领域的应用；开发者能基于其代码框架进行二次开发或集成到现有系统中；设计师则可利用其生成的逼真效果辅助影视特效制作或创意构思。虽然普通用户也可尝试运行，但鉴于其依赖 Python 环境和命令行操作，更建议具备一定编程基础的技术爱好者体验。","# Age Progression\u002FRegression by Conditional Adversarial Autoencoder (CAAE)\n\nTensorFlow implementation of the algorithm in the paper [Age Progression\u002FRegression by Conditional Adversarial Autoencoder](http:\u002F\u002Fweb.eecs.utk.edu\u002F~zzhang61\u002Fdocs\u002Fpapers\u002F2017_CVPR_Age.pdf).\n\nThanks to the [Pytorch implementation](https:\u002F\u002Fgithub.com\u002Fmattans\u002FAgeProgression\u002Ftree\u002Fv1.0.0) by Mattan Serry, Hila Balahsan, and Dor Alt. \n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_8d2e7f2bc38f.png\" width=\"500\">\n\u003C\u002Fp>\n\n\n## Pre-requisites\n* Python 2.7x\n* Scipy 1.0.0\n* ~~TensorFlow (r0.12)~~\n    * ~~Please note that you will get errors if running with TensorFlow r1.0 because the definition of input arguments of some functions have changed, *e.g.*, `tf.concat` and `tf.nn.sigmoid_cross_entropy_with_logits`.~~ \n    \n* The code is updated to run with Tensorflow 1.7.0, and an initial model is provided to better initialize the network. The old version is backed up to the folder `old_version`. \n\n## Datasets\n* FGNET\n* [MORPH](https:\u002F\u002Febill.uncw.edu\u002FC20231_ustores\u002Fweb\u002Fproduct_detail.jsp?PRODUCTID=8)\n* [CACD](http:\u002F\u002Fbcsiriuschen.github.io\u002FCARC\u002F)\n* UTKFace (Access from the [Github link](https:\u002F\u002Fsusanqq.github.io\u002FUTKFace\u002F) or the [Wiki link](http:\u002F\u002Faicip.eecs.utk.edu\u002Fwiki\u002FUTKFace))\n\n## Prepare the training dataset\nYou may use any dataset with labels of age and gender. In this demo, we use the UTKFace dataset. It is better to use [aligned and cropped faces](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0BxYys69jI14kYVM3aVhKS1VhRUk\u002Fview?usp=sharing). Please save and unzip `UTKFace.tar.gz` to the folder `data`. \n\n## Training\n```\n$ python main.py\n```\n\nThe training process has been tested on NVIDIA TITAN X (12GB). The training time for 50 epochs on UTKFace (23,708 images in the size of 128x128x3) is about two and a half hours.\n\nDuring training, a new folder named `save` will be created, including four sub-folders: `summary`, `samples`, `test`, and `checkpoint`.\n\n* `samples` saves the reconstructed faces at each epoch.\n* `test` saves the testing results at each epoch (generated faces at different ages based on input faces).\n* `checkpoint` saves the model.\n* `summary` saves the batch-wise losses and intermediate outputs. To visualize the summary, \n```\n$ cd save\u002Fsummary\n$ tensorboard --logdir .\n```\n\nAfter training, you can check the folders `samples` and `test` to visualize the reconstruction and testing performance, respectively. The following shows the reconstruction (left) and testing (right) results. The first row in the reconstruction results (left) are testing samples that yield the testing results (right) in the age ascending order from top to bottom.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_6f5bf768178a.png\" width=\"400\">  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_9526d906c83e.png\" width=\"400\">\n\u003C\u002Fp>\n\nThe reconstruction loss vs. epoch is shown below, which was passed through a low-pass filter for visualization purpose. The original record is saved in folder `summary`.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_bca2132e0ca2.jpg\" width=\"600\">\n\u003C\u002Fp>\n\n## Custom Training\n```\n$ python main.py\n    --dataset\t\tdefault 'UTKFace'. Please put your own dataset in .\u002Fdata\n    --savedir\t\tdefault 'save'. Please use a meaningful name, e.g., save_init_model.\n    --epoch\t\tdefault 50.\n    --use_trained_model\tdefault True. If use a trained model, savedir specifies the model name. \n    --use_init_model\tdefault True. If load the trained model failed, use the init model save in .\u002Finit_model \n```\n\n## Testing\n```\n$ python main.py --is_train False --testdir your_image_dir --savedir save\n```\n**Note**: `savedir` specifies the model name saved in the training. By default, the trained model is saved in the folder save (i.e., the model name).\nThen, it is supposed to print out the following message.\n\n```\n  \tBuilding graph ...\n\n\tTesting Mode\n\n\tLoading pre-trained model ...\n\tSUCCESS ^_^\n\n\tDone! Results are saved as save\u002Ftest\u002Ftest_as_xxx.png\n```\n\nSpecifically, the testing faces will be processed twice, being considered as male and female, respectively. Therefore, the saved files are named `test_as_male.png` and `test_as_female.png`, respectively. To achieve better results, it is necessary to train on a large and diverse dataset.\n\n## A demo of training process\n\nThe first row shows the input faces of different ages, and the other rows show the improvement of the output faces at every other epoch. From top to bottom, the output faces are in the age ascending order. \n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_ff401d8773cb.gif\" width=\"800\">\n\u003C\u002Fp>\n\n## Files\n* [`FaceAging.py`](FaceAging.py) is a class that builds and initializes the model, and implements training and testing related stuff\n* [`ops.py`](ops.py) consists of functions called `FaceAging.py` to implement options of convolution, deconvolution, fully connection, leaky ReLU, load and save images.   \n* [`main.py`](main.py) demonstrates `FaceAging.py`.\n    \n## Citation\n[Zhifei Zhang](http:\u002F\u002Fweb.eecs.utk.edu\u002F~zzhang61\u002F), [Yang Song](http:\u002F\u002Fweb.eecs.utk.edu\u002F~ysong18\u002F), and [Hairong Qi](https:\u002F\u002Fwww.eecs.utk.edu\u002Fpeople\u002Ffaculty\u002Fhqi\u002F). \"Age Progression\u002FRegression by Conditional Adversarial Autoencoder.\" *IEEE Conference on Computer Vision and Pattern Recognition (CVPR)*, 2017.\n```\n@inproceedings{zhang2017age,\n  title={Age Progression\u002FRegression by Conditional Adversarial Autoencoder},\n  author={Zhang, Zhifei and Song, Yang and Qi, Hairong},\n  booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n  year={2017}\n}\n```\n[Spotlight presentation](https:\u002F\u002Fyoutu.be\u002F425rPG580dQ)\n","# 基于条件对抗自编码器的年龄增长\u002F退化\n\n这是论文《基于条件对抗自编码器的年龄增长\u002F退化》中算法的 TensorFlow 实现，论文链接：[Age Progression\u002FRegression by Conditional Adversarial Autoencoder](http:\u002F\u002Fweb.eecs.utk.edu\u002F~zzhang61\u002Fdocs\u002Fpapers\u002F2017_CVPR_Age.pdf)。\n\n特别感谢 Mattan Serry、Hila Balahsan 和 Dor Alt 提供的 [PyTorch 实现](https:\u002F\u002Fgithub.com\u002Fmattans\u002FAgeProgression\u002Ftree\u002Fv1.0.0)。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_8d2e7f2bc38f.png\" width=\"500\">\n\u003C\u002Fp>\n\n\n## 系统要求\n* Python 2.7.x\n* Scipy 1.0.0\n* ~~TensorFlow (r0.12)~~\n    * ~~请注意，使用 TensorFlow r1.0 运行时会出现错误，因为某些函数的参数定义发生了变化，例如 `tf.concat` 和 `tf.nn.sigmoid_cross_entropy_with_logits`。~~ \n    \n* 代码现已更新至 TensorFlow 1.7.0，并提供了一个初始模型以更好地初始化网络。旧版本已备份至 `old_version` 文件夹。\n\n## 数据集\n* FGNET\n* [MORPH](https:\u002F\u002Febill.uncw.edu\u002FC20231_ustores\u002Fweb\u002Fproduct_detail.jsp?PRODUCTID=8)\n* [CACD](http:\u002F\u002Fbcsiriuschen.github.io\u002FCARC\u002F)\n* UTKFace（可通过 [Github 链接](https:\u002F\u002Fsusanqq.github.io\u002FUTKFace\u002F) 或 [Wiki 链接](http:\u002F\u002Faicip.eecs.utk.edu\u002Fwiki\u002FUTKFace) 获取）\n\n## 准备训练数据集\n您可以使用任何包含年龄和性别标签的数据集。本示例中我们使用 UTKFace 数据集。建议使用 [对齐并裁剪过的人脸图像](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F0BxYys69jI14kYVM3aVhKS1VhRUk\u002Fview?usp=sharing)。请将 `UTKFace.tar.gz` 解压并保存到 `data` 文件夹中。\n\n## 训练\n```\n$ python main.py\n```\n\n训练过程已在 NVIDIA TITAN X (12GB) 上测试完成。在 UTKFace 数据集上（23,708 张 128x128x3 的图像）进行 50 个 epoch 的训练大约需要两个半小时。\n\n训练过程中会生成一个名为 `save` 的新文件夹，其中包含四个子文件夹：`summary`、`samples`、`test` 和 `checkpoint`。\n\n* `samples` 文件夹保存每个 epoch 的重建人脸。\n* `test` 文件夹保存每个 epoch 的测试结果（根据输入人脸生成的不同年龄段人脸）。\n* `checkpoint` 文件夹保存模型。\n* `summary` 文件夹保存批次级别的损失及中间输出。要可视化 summary 内容，可以运行：\n```\n$ cd save\u002Fsummary\n$ tensorboard --logdir .\n```\n\n训练完成后，您可以查看 `samples` 和 `test` 文件夹，分别观察重建和测试效果。下图展示了重建结果（左）和测试结果（右）。重建结果（左）的第一行是测试样本，对应的测试结果（右）按年龄由小到大排列。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_6f5bf768178a.png\" width=\"400\">  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_9526d906c83e.png\" width=\"400\">\n\u003C\u002Fp>\n\n下图显示了重建损失随 epoch 的变化趋势，为便于可视化已通过低通滤波处理。原始记录保存在 `summary` 文件夹中。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_bca2132e0ca2.jpg\" width=\"600\">\n\u003C\u002Fp>\n\n## 自定义训练\n```\n$ python main.py\n    --dataset\t默认值为 'UTKFace'。请将您的数据集放入 .\u002Fdata 目录。\n    --savedir\t默认值为 'save'。建议使用有意义的名称，例如 save_init_model。\n    --epoch\t默认值为 50。\n    --use_trained_model\t默认值为 True。如果使用预训练模型，savedir 应指定模型名称。\n    --use_init_model\t默认值为 True。若加载预训练模型失败，则使用 .\u002Finit_model 中的初始模型。\n```\n\n## 测试\n```\n$ python main.py --is_train False --testdir your_image_dir --savedir save\n```\n**注意**：`savedir` 指定的是训练时保存的模型名称。默认情况下，训练好的模型会保存在 `save` 文件夹中（即模型名称）。\n\n随后程序应输出以下信息：\n\n```\n  \t构建图...\n\n\t测试模式\n\n\t加载预训练模型...\n\t成功 ^_^\n\n\t完成！结果已保存为 save\u002Ftest\u002Ftest_as_xxx.png\n```\n\n具体来说，测试图像会被分别视为男性和女性进行两次处理，因此保存的文件名分别为 `test_as_male.png` 和 `test_as_female.png`。为了获得更好的效果，有必要使用大规模且多样化的数据集进行训练。\n\n## 训练过程演示\n\n第一行显示不同年龄段的输入人脸，其余行展示了每隔一个 epoch 输出人脸的改进情况。从上到下，输出人脸的年龄依次递增。\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_readme_ff401d8773cb.gif\" width=\"800\">\n\u003C\u002Fp>\n\n## 文件说明\n* [`FaceAging.py`](FaceAging.py) 是一个类，用于构建和初始化模型，并实现训练和测试相关功能。\n* [`ops.py`](ops.py) 包含被 `FaceAging.py` 调用的函数，用于实现卷积、反卷积、全连接、Leaky ReLU 以及图像的加载和保存等功能。\n* [`main.py`](main.py) 用于演示 `FaceAging.py` 的使用。\n\n## 引用\n[Zhifei Zhang](http:\u002F\u002Fweb.eecs.utk.edu\u002F~zzhang61\u002F)、[Yang Song](http:\u002F\u002Fweb.eecs.utk.edu\u002F~ysong18\u002F) 和 [Hairong Qi](https:\u002F\u002Fwww.eecs.utk.edu\u002Fpeople\u002Ffaculty\u002Fhqi\u002F)。“基于条件对抗自编码器的年龄增长\u002F退化”。*IEEE 计算机视觉与模式识别会议 (CVPR)*，2017 年。\n```\n@inproceedings{zhang2017age,\n  title={Age Progression\u002FRegression by Conditional Adversarial Autoencoder},\n  author={Zhang, Zhifei and Song, Yang and Qi, Hairong},\n  booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n  year={2017}\n}\n```\n[Spotlight 演示视频](https:\u002F\u002Fyoutu.be\u002F425rPG580dQ)","# Face-Aging-CAAE 快速上手指南\n\nFace-Aging-CAAE 是一个基于条件对抗自编码器（CAAE）的深度学习模型，用于实现人脸图像的年龄增长（老化）或年龄回归（年轻化）。本项目基于 TensorFlow 实现，支持通过输入人脸生成不同年龄段的模拟图像。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux 或 macOS (Windows 需配置相应 TensorFlow 环境)\n*   **Python**: 2.7.x\n*   **GPU**: 推荐 NVIDIA GPU (如 TITAN X)，显存建议 12GB 以上以加速训练\n*   **核心依赖**:\n    *   `TensorFlow`: 版本需为 **1.7.0** (注意：旧版 r0.12 已不再推荐，r1.0 会因函数定义变更报错)\n    *   `Scipy`: 版本 1.0.0\n\n> **提示**: 国内用户安装 TensorFlow 时可尝试使用清华或阿里镜像源加速：\n> `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple tensorflow==1.7.0 scipy==1.0.0`\n\n## 安装步骤\n\n1.  **克隆代码库**\n    ```bash\n    git clone \u003Crepository_url>\n    cd Face-Aging-CAAE\n    ```\n\n2.  **安装 Python 依赖**\n    确保已安装上述指定版本的 TensorFlow 和 Scipy。\n\n3.  **准备数据集**\n    本项目默认使用 **UTKFace** 数据集进行演示。\n    *   下载对齐并裁剪过的人脸数据集 (`UTKFace.tar.gz`)。\n    *   将解压后的文件夹重命名为 `UTKFace` 并放入项目根目录下的 `data` 文件夹中。\n    *   最终路径结构应为：`.\u002Fdata\u002FUTKFace\u002F...`\n\n    > 其他支持的数据集包括 FGNET, MORPH, CACD，只需调整数据加载逻辑即可。\n\n## 基本使用\n\n### 1. 训练模型\n\n运行以下命令开始训练。默认使用 UTKFace 数据集，训练 50 个 epoch。\n\n```bash\npython main.py\n```\n\n**训练说明：**\n*   训练过程中会自动创建 `save` 文件夹，包含以下子目录：\n    *   `samples`: 保存每个 epoch 的重建人脸。\n    *   `test`: 保存每个 epoch 基于输入人脸生成的不同年龄测试图。\n    *   `checkpoint`: 保存模型权重。\n    *   `summary`: 保存损失值和中间输出，可使用 TensorBoard 可视化：\n        ```bash\n        cd save\u002Fsummary\n        tensorboard --logdir .\n        ```\n*   在 NVIDIA TITAN X (12GB) 上，使用 23,708 张 128x128 图片训练 50 个 epoch 约需 2.5 小时。\n\n### 2. 测试\u002F推理 (年龄变换)\n\n训练完成后（或使用预训练模型），对指定目录下的人脸图片进行年龄变换测试：\n\n```bash\npython main.py --is_train False --testdir your_image_dir --savedir save\n```\n\n**参数说明：**\n*   `--testdir`: 存放待测试人脸图片的文件夹路径。\n*   `--savedir`: 指定训练好的模型名称（默认为 `save`）。\n\n**输出结果：**\n程序会将输入图片分别作为男性和女性处理两次，生成两个结果文件：\n*   `save\u002Ftest\u002Ftest_as_male.png`\n*   `save\u002Ftest\u002Ftest_as_female.png`\n\n图片中将展示从年轻到年老（或反之）的连续年龄变化序列。\n\n### 3. 自定义训练参数\n\n如需使用自定义数据集或调整训练策略，可参考以下常用参数：\n\n```bash\npython main.py \\\n    --dataset \"YourDatasetName\" \\\n    --savedir \"save_my_model\" \\\n    --epoch 100 \\\n    --use_trained_model False \\\n    --use_init_model True\n```\n\n*   `--dataset`: 数据集名称，需将对应数据放入 `.\u002Fdata` 目录。\n*   `--savedir`: 模型保存目录名。\n*   `--epoch`: 训练轮数，默认 50。\n*   `--use_init_model`: 若加载预训练模型失败，是否使用初始化的模型 (`.\u002Finit_model`) 继续训练。","某刑侦技术团队正在协助警方处理一起跨度长达二十年的失踪人口案件，需要依据受害者儿童时期的照片推测其成年后的样貌以进行身份比对。\n\n### 没有 Face-Aging-CAAE 时\n- **依赖人工手绘，主观性强**：只能依靠模拟画像师凭经验手工绘制，不同画师对骨骼发育和皮肤老化的理解差异大，导致结果缺乏一致性。\n- **迭代周期漫长，效率低下**：调整年龄特征（如从 10 岁推演至 30 岁）需要重新起稿，单次修改耗时数小时，难以快速响应侦查节奏。\n- **缺乏性别维度验证**：难以在同一张底图上快速生成不同性别假设下的老化效果，容易遗漏关键线索。\n- **细节纹理失真**：人工绘制难以精准还原毛孔、皱纹等微观皮肤纹理，生成的图像往往“像漫画”而缺乏真实照片的质感，影响人脸识别系统的匹配率。\n\n### 使用 Face-Aging-CAAE 后\n- **算法驱动生成，客观可控**：利用条件对抗自编码器（CAAE）自动学习面部老化规律，基于同一张输入图即可生成连续、平滑的年龄演变序列，消除人为偏差。\n- **秒级实时推演，高效灵活**：只需运行测试脚本并设定目标年龄参数，几分钟内即可批量输出多年龄段的高清预测图，大幅缩短线索排查时间。\n- **双性别并行推测**：工具自动将输入人脸分别作为男性和女性处理，一次性输出两套老化方案，为侦查提供更全面的假设视角。\n- **高保真纹理重建**：生成的图像不仅轮廓准确，更保留了真实的皮肤质感和光影细节，显著提升了与现有成人数据库进行自动化人脸比对的通过率。\n\nFace-Aging-CAAE 将模糊的想象转化为可量化的视觉证据，用深度学习技术打破了时间壁垒，让跨年代的身份识别变得精准而高效。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FZZUTK_Face-Aging-CAAE_9526d906.png","ZZUTK","Jeff Cheung","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FZZUTK_3fc41676.jpg",null,"https:\u002F\u002Fgithub.com\u002FZZUTK",[78],{"name":79,"color":80,"percentage":81},"Python","#3572A5",100,656,233,"2026-03-24T09:18:04",4,"未说明","需要 NVIDIA GPU，测试环境为 TITAN X (12GB 显存)",{"notes":89,"python":90,"dependencies":91},"代码已更新以支持 TensorFlow 1.7.0（旧版本 r0.12 或 r1.0 会报错）。训练和测试建议使用经过对齐和裁剪的人脸数据集（如 UTKFace）。测试时会对输入图像分别按男性和女性性别进行处理，生成两张结果图。首次运行需准备初始模型文件（.\u002Finit_model）或使用预训练模型。","2.7.x",[92,93],"TensorFlow==1.7.0","Scipy==1.0.0",[15],"2026-03-27T02:49:30.150509","2026-04-20T16:46:40.419389",[98,103,108,113,118,123],{"id":99,"question_zh":100,"answer_zh":101,"source_url":102},45215,"遇到 'AttributeError: module 'tensorflow' has no attribute 'AUTO_REUSE'' 错误如何解决？","这是因为 TensorFlow 版本更新导致的属性变更。请将代码中的 `tf.AUTO_REUSE` 替换为 `tf.compat.v1.AUTO_REUSE`。注意：部分用户反馈在 2019 年末的某些新版本中此方法可能仍需配合其他兼容性设置使用。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F35",{"id":104,"question_zh":105,"answer_zh":106,"source_url":107},45216,"运行时报错 'ValueError: invalid literal for int()...' 且路径包含反斜杠怎么办？","该问题通常出现在 Windows 系统上，原因是代码中使用正斜杠 '\u002F' 分割文件路径，而 Windows 使用反斜杠 '\\'。请找到报错行（通常在解析文件名提取年龄标签处），将 `split('\u002F')` 修改为 `split('\\\\')`（注意在字符串中反斜杠需要转义），即可解决路径解析错误。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F5",{"id":109,"question_zh":110,"answer_zh":111,"source_url":112},45217,"训练结果不理想，生成的人脸丢失身份特征或效果模糊如何调整？","建议分步调试：1. 首先暂时移除判别器（Discriminator）的影响，将 FaceAging.py 第 203 行附近的判别器损失权重参数（如 0.0001）全部设为 0，此时模型退化为自编码器，应能生成稳定但较模糊的人脸；2. 确认自编码器工作正常后，再逐渐增加 G_img_loss 的权重以恢复纹理细节；3. 检查是否先训练了 eg_loss，再逐步引入 gan_loss。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F3",{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},45218,"遇到 'TypeError: Expected int32, got list containing Tensors...' 错误怎么处理？","该错误通常发生在 `tf.concat` 操作中，原因是 TensorFlow 版本差异导致参数顺序或类型要求变化。在旧版代码中 `tf.concat(1, [x, label])` 的写法可能不再适用。建议检查 `ops.py` 中的 `concat_label` 函数，确保维度参数类型正确，或参考作者提供的修复版仓库（如 Age-Progression-Regression-by-CAAE）获取适配新版本的代码。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F1",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},45219,"报错 'ValueError: Variable ... does not exist, or was not created with tf.get_variable()' 是什么原因？","这是由变量作用域复用（variable reuse）泄漏引起的。请检查代码中调用复用变量的地方，确保它们被包裹在正确的 `tf.variable_scope` 上下文中。参考 TensorFlow 官方相关议题，需要在调用 `reuse_variables()` 之前正确定义 variable_scope，并检查是否需要在 VarScope 中设置 `reuse=None` 或适当的复用标志。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F2",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},45220,"测试模式下生成的图像效果很差或无法复现论文结果怎么办？","测试结果不佳可能是因为使用了未收敛的模型权重或测试脚本配置不当。1. 确认是否使用了训练好的最佳权重文件（checkpoint）；2. 检查测试图片格式是否与 UTKFace 数据集一致；3. 如果是首次使用，可能需要根据作者建议重写部分测试函数以适应新的数据加载逻辑；4. 确保测试时文件夹结构正确（例如将 FG 文件夹放入 data 目录）。","https:\u002F\u002Fgithub.com\u002FZZUTK\u002FFace-Aging-CAAE\u002Fissues\u002F17",[]]