[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-fengju514--Face-Pose-Net":3,"tool-fengju514--Face-Pose-Net":64},[4,17,26,40,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,2,"2026-04-03T11:11:01",[13,14,15],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":23,"last_commit_at":32,"category_tags":33,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,34,35,36,15,37,38,13,39],"数据工具","视频","插件","其他","语言模型","音频",{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":10,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,38,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[38,14,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":23,"last_commit_at":62,"category_tags":63,"status":16},2471,"tesseract","tesseract-ocr\u002Ftesseract","Tesseract 是一款历史悠久且备受推崇的开源光学字符识别（OCR）引擎，最初由惠普实验室开发，后由 Google 维护，目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据，有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题，是数字化归档和信息自动化的重要基础工具。\n\n在技术层面，Tesseract 展现了强大的适应能力。从版本 4 开始，它引入了基于长短期记忆网络（LSTM）的神经网络 OCR 引擎，显著提升了行识别的准确率；同时，为了兼顾旧有需求，它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码，开箱即用即可识别超过 100 种语言，并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面，它灵活支持纯文本、hOCR、PDF、TSV 等多种格式，方便后续数据处理。\n\nTesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库（libtesseract），不包含图形用户界面（GUI），因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中",73286,"2026-04-03T01:56:45",[13,14],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":78,"owner_website":78,"owner_url":82,"languages":83,"stars":88,"forks":89,"last_commit_at":90,"license":78,"difficulty_score":91,"env_os":92,"env_gpu":93,"env_ram":94,"env_deps":95,"category_tags":102,"github_topics":103,"view_count":23,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":109,"updated_at":110,"faqs":111,"releases":149},2304,"fengju514\u002FFace-Pose-Net","Face-Pose-Net","Estimate 3D face pose (6DoF) or 11 parameters of 3x4 projection matrix by a Convolutional Neural Network","Face-Pose-Net 是一款基于深度卷积神经网络的开源工具，专为从单张无约束图像中鲁棒地估算人脸 3D 姿态（6 自由度）或投影矩阵参数而设计。它主要解决了传统人脸对齐方法在极端条件下的失效难题，例如大角度侧脸、面部遮挡或低分辨率场景。在这些复杂情况下，常规的关键点检测往往难以奏效，而 Face-Pose-Net 无需依赖人脸关键点检测器，即可直接输出精确的姿态数据，并支持生成多视角渲染图像以辅助数据增强。\n\n该工具特别适合计算机视觉领域的研究人员和开发者使用，尤其是那些从事人脸识别、3D 重建或需要高质量训练数据合成的团队。其核心技术亮点在于采用了“无关键点”（Landmark-Free）的对齐策略，并提供了两种灵活的预测模式：既可以直接输出包含缩放、俯仰、偏航等信息的 6DoF 头部姿态，也能预测 3x4 投影矩阵的 11 个参数，且两者支持相互转换。此外，项目最新升级版已将主干网络替换为 ResNet-101，进一步提升了在复杂环境下的预测精度与稳定性，为构建端到端的人脸分析流水线提供了坚实基础。","# Face-Pose-Net\n\n![Teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_965a2842d19b.jpg)\n\u003Csub>**Extreme face alignment examples:** Faces rendered to a 45 degrees yaw angle (aligned to half profile) using our FacePoseNet. Images were taken from the IJB-A collection and represent extreme viewing conditions, including near profile views, occlusions, and low resolution. Such conditions are often too hard for existing face landmark detection methods to handle yet easily aligned with our FacePoseNet.\u003C\u002Fsub>\n\u003Cbr\u002F>\n\u003Cbr\u002F>\nThis page contains DCNN model and python code to robustly estimate 6 degrees of freedom, 3D face pose from an unconstrained image, without the use of face landmark detectors. The method is described in the paper:\n\n_F.-J. Chang, A. Tran, T. Hassner, I. Masi, R. Nevatia, G. Medioni, \"[FacePoseNet: Making a Case for Landmark-Free Face Alignment](https:\u002F\u002Farxiv.org\u002Fabs\u002F1708.07517)\", in 7th IEEE International Workshop on Analysis and Modeling of Faces and Gestures, ICCV Workshops, 2017_ [1].\n\nThis release bundles up our **FacePoseNet** (FPN) with the **Face Renderer** from Masi _et al._ [2,5], which is available separately from [this project page](https:\u002F\u002Fgithub.com\u002Fiacopomasi\u002Fface_specific_augm).\n\nThe result is an end-to-end pipeline that seamlessly estimates facial pose and produces multiple rendered views to be used for face alignment and data augmentation.\n\n![Teaser](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_1778480e482b.png)\n\n## Updates (Modified and New features, 12\u002F20\u002F2018)\n* FPN structure is changed to ResNet-101 for better pose prediction [fpn-resnet101](.\u002FResNet\u002FThreeDMM_shape.py)\n* **Two versions of FPNs (under the assumption of weak perspective transformation) are added**: \n* (1) **Predict 6DoF head pose** (scale, pitch, yaw, roll, translation_x, translation_y):  [main_predict_6DoF.py](.\u002Fmain_predict_6DoF.py)\n* (2) **Predict 11 parameters of the 3x4 projection matrix**:  [main_predict_ProjMat.py](.\u002Fmain_predict_ProjMat.py)\n* The codes to convert 6DoF head pose to 3x4 projection matrix is [here](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Ffb733f358d9f633f6525a41f3a7a0a99e5c71647\u002Fmain_predict_6DoF.py#L263-L268) \n* The codes to convert 11 parameters \u002F 3x4 projection matrix to 6DoF head pose is [here](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_ProjMat.py#L306-L308)\n* The corresponding 3D shape and landmarks can be obtained by predicted 6DoF head pose [3D shape from 6DoF](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_6DoF.py#L271-L297) or by predicted 11 parameters [3D shape from 11 parameters](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_ProjMat.py#L272-L297)\n* Download new FPN models: Please put all model files [here](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Flr9u4my1qrhmgik\u002FAADQVUIHSJIUXqUAj1AoZMIGa?dl=0) in the folder `models`\n* Download BFM models: Please put BFM shape and expression files [here](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fru7ierl9516a9az\u002FAABTP9hJj3dJnapicFFgHmOna?dl=0) in the folder `BFM`\n* Run new FPN to predict 6DoF head pose:\n```bash\n$ python main_predict_6DoF.py \u003Cgpu_id> \u003Cinput-list-path>\n```\n* Run new FPN to predict 11DoF parameters of the projection matrix:\n```bash\n$ python main_predict_ProjMat.py \u003Cgpu_id> \u003Cinput-list-path>\n```\nWe provide a sample input list available [here](.\u002Finput_list.txt).\n```bash\n\u003CFILE_NAME, FACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>\n```\nwhere `\u003CFACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>` is the x,y coordinates of the upper-left point, the width, and the height of the tight face bounding box, either obtained manually, by the face detector or by the landmark detector. The predicted 6DoF and 11DoF results would be saved in [output_6DoF folder](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_6DoF.py#L232-L236) and [output_ProjMat folder](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_ProjMat.py#L235-L239) respectively. The output 3D shapes and landmarks by 6DoF and 11DoF are saved in [output_6DoF folder](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_6DoF.py#L301) and in [output_ProjMat folder](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_ProjMat.py#L301) respectively. You can visualize the 3D shapes and landmarks via Matlab.\n\n\n* The same renderer can be used. Instead of feeding into the 6DoF pose, you need to feed into the predicted landmarks either from 6DoF head pose or from 3x4 projection matrix. Please see an example in demo.py of [this project page](https:\u002F\u002Fgithub.com\u002Fiacopomasi\u002Fface_specific_augm)\n\n## Features\n* **6DoF 3D Head Pose estimation** + **3D rendered facial views**.\n* Does not use **fragile** landmark detectors\n* Robustness on images landmark detectors struggle with (low rez., occluded, etc.)\n* Extremely fast pose estimation\n* Both CPU and GPU supported\n* Provides better face recognition through better face alignment than alignment using state of the art landmark detectors [1]\n\n## Dependencies\n\n* [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002F)\n* [OpenCV Python Wrapper](http:\u002F\u002Fopencv.org\u002F)\n* [Numpy](http:\u002F\u002Fwww.numpy.org\u002F)\n* [Python2.7](https:\u002F\u002Fwww.python.org\u002Fdownload\u002Freleases\u002F2.7\u002F)\n\nThe code has been tested on Linux only. On Linux you can rely on the default version of python, installing all the packages needed from the package manager or on Anaconda Python and install required packages through `conda`. \n\n**Note:** no landmarks are used in our method, although you can still project the landmarks on the input image using the estimated pose. See the paper for further details. \n\n## Usage\n\n* **Important:** In order to download **both** FPN code and the renderer use `git clone --recursive`\n* **Important:** Please download the learned models from https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fr38psbq55y2yj4f\u002Ffpn_new_model.tar.gz?dl=0   and make sure that the FPN models are stored in the folder `fpn_new_model`.\n\n### Run it\n\nThe alignment and rendering can be used from the command line in the following, different ways.\n\nTo run it directly on a list of images (software will run FPN to estimate the pose and then render novel views based on the estimated pose):\n\n```bash\n$ python main_fpn.py \u003Cinput-list-path>\n```\n\nWe provide a sample input list available [here](input.csv).\n```bash\n\u003CID, FILE, FACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>\n```\nwhere `\u003CFACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>` is the face bounding box information, either obtained manually or by the face detector. \n\n## Sample Results\nPlease see the input images [here](images) and rendered outputs [here](output_render).\n\n### input: ### \n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_2fe1ec051450.jpg)\n### rendering: ### \n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_22af241ca09a.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_f422555b9779.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_9b339b524ddf.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_166f7566ed9e.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_f6b3b191aef3.jpg)\n\n\n\n## Current Limitations\nFPN is currently trained with a single 3D generic shape, without accounting for facial expressions. Addressing these is planned as future work.\n\n## Citation\n\nPlease cite our paper with the following bibtex if you use our face renderer:\n\n``` latex\n@inproceedings{chang17fpn,\n      title={{F}ace{P}ose{N}et: Making a Case for Landmark-Free Face Alignment},\n      booktitle = {7th IEEE International Workshop on Analysis and Modeling of Faces and Gestures, ICCV Workshops},\n      author={\n      Feng-ju Chang\n      and Anh Tran \n      and Tal Hassner \n      and Iacopo Masi \n      and Ram Nevatia\n      and G\\'{e}rard Medioni},\n      year={2017},\n    }\n```\n\n## References\n[1] F.-J. Chang, A. Tran, T. Hassner, I. Masi, R. Nevatia, G. Medioni, \"[FacePoseNet: Making a Case for Landmark-Free Face Alignment](https:\u002F\u002Farxiv.org\u002Fabs\u002F1708.07517)\", in 7th IEEE International Workshop on Analysis and Modeling of Faces and Gestures, ICCV Workshops, 2017\n\n[2] I. Masi\\*, A. Tran\\*, T. Hassner\\*, J. Leksut, G. Medioni, \"Do We Really Need to Collect Million of Faces for Effective Face Recognition? \", ECCV 2016, \n    \\* denotes equal authorship\n\n[3] I. Masi, S. Rawls, G. Medioni, P. Natarajan \"Pose-Aware Face Recognition in the Wild\", CVPR 2016\n\n[4] T. Hassner, S. Harel, E. Paz and R. Enbar \"Effective Face Frontalization in Unconstrained Images\", CVPR 2015\n\n[5] I. Masi, T. Hassner, A. Tran, and G. Medioni, \"Rapid Synthesis of Massive Face Sets for Improved Face Recognition\", FG 2017\n\n## Changelog\n- August 2017, First Release \n\n## Disclaimer\n\n_The SOFTWARE PACKAGE provided in this page is provided \"as is\", without any guarantee made as to its suitability or fitness for any particular use. It may contain bugs, so use of this tool is at your own risk. We take no responsibility for any damage of any sort that may unintentionally be caused through its use._\n\n## Contacts\n\nIf you have any questions, drop an email to _fengjuch@usc.edu_, _anhttran@usc.edu_, _iacopo.masi@usc.edu_ or _hassner@isi.edu_ or leave a message below with GitHub (log-in is needed).\n","# 面部姿态网络\n\n![预告图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_965a2842d19b.jpg)\n\u003Csub>**极端人脸对齐示例：** 使用我们的FacePoseNet将人脸渲染为45度偏航角（对齐至半侧脸）。这些图像来自IJB-A数据集，展示了极端的视角条件，包括近似侧脸、遮挡以及低分辨率等。这类情况通常超出了现有面部关键点检测方法的处理能力，但我们的FacePoseNet却能轻松应对并实现精确对齐。\u003C\u002Fsub>\n\u003Cbr\u002F>\n\u003Cbr\u002F>\n本页面包含深度卷积神经网络模型及Python代码，用于从无约束图像中鲁棒地估计6自由度的3D人脸姿态，且无需使用面部关键点检测器。该方法在论文中有所介绍：\n\n_张福俊、Tran A.、Hassner T.、Masi I.、Nevatia R.、Medioni G.，《FacePoseNet：为无关键点人脸对齐正名》(https:\u002F\u002Farxiv.org\u002Fabs\u002F1708.07517)，第七届IEEE人脸与手势分析与建模研讨会，ICCV工作坊，2017年_[1]。\n\n本次发布将我们的**FacePoseNet**（FPN）与Masi等人[2,5]的**人脸渲染器**整合在一起，后者可单独从[该项目页面](https:\u002F\u002Fgithub.com\u002Fiacopomasi\u002Fface_specific_augm)获取。最终形成一个端到端的流程，能够无缝估计面部姿态，并生成多种渲染视图，用于人脸对齐和数据增强。\n\n![预告图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_1778480e482b.png)\n\n## 更新内容（修改与新增功能，2018年12月20日）\n* FPN结构改为ResNet-101，以提升姿态预测性能 [fpn-resnet101](.\u002FResNet\u002FThreeDMM_shape.py)\n* **新增两种基于弱透视变换假设的FPN版本**：\n  * (1) **预测6DoF头部姿态**（尺度、俯仰角、偏航角、翻滚角、平移x、平移y）：[main_predict_6DoF.py](.\u002Fmain_predict_6DoF.py)\n  * (2) **预测3×4投影矩阵的11个参数**：[main_predict_ProjMat.py](.\u002Fmain_predict_ProjMat.py)\n* 将6DoF头部姿态转换为3×4投影矩阵的代码见[此处](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Ffb733f358d9f633f6525a41f3a7a0a99e5c71647\u002Fmain_predict_6DoF.py#L263-L268)  \n* 将11个参数\u002F3×4投影矩阵转换为6DoF头部姿态的代码见[此处](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_ProjMat.py#L306-L308)  \n* 对应的3D形状和关键点可通过预测的6DoF头部姿态获得[由6DoF推导的3D形状](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_6DoF.py#L271-L297)，或通过预测的11个参数获得[由11个参数推导的3D形状](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002F92bd65fa056d17065890e186ca2f2b376a5ab135\u002Fmain_predict_ProjMat.py#L272-L297)  \n* 下载新的FPN模型：请将所有模型文件[放在此处](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Flr9u4my1qrhmgik\u002FAADQVUIHSJIUXqUAj1AoZMIGa?dl=0)并放入`models`文件夹内  \n* 下载BFM模型：请将BFM形状和表情文件[放在此处](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fru7ierl9516a9az\u002FAABTP9hJj3dJnapicFFgHmOna?dl=0)并放入`BFM`文件夹内  \n* 运行新FPN预测6DoF头部姿态：\n```bash\n$ python main_predict_6DoF.py \u003Cgpu_id> \u003Cinput-list-path>\n```\n* 运行新FPN预测投影矩阵的11DoF参数：\n```bash\n$ python main_predict_ProjMat.py \u003Cgpu_id> \u003Cinput-list-path>\n```\n我们提供了一个示例输入列表，可在[此处](.\u002Finput_list.txt)找到。\n```bash\n\u003CFILE_NAME, FACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>\n```\n其中`\u003CFACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>`是紧致人脸边界框的左上角坐标、宽度和高度，可由人工标注、人脸检测器或关键点检测器获取。预测得到的6DoF和11DoF结果将分别保存在[output_6DoF文件夹](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_6DoF.py#L232-L236)和[output_ProjMat文件夹](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_ProjMat.py#L235-L239)中。而由6DoF和11DoF推导出的3D形状和关键点则分别保存在[output_6DoF文件夹](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_6DoF.py#L301)和[output_ProjMat文件夹](https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fa7923b764f92892021297fd046065c22a41dc519\u002Fmain_predict_ProjMat.py#L301)中。您可以通过Matlab可视化这些3D形状和关键点。\n\n\n* 同样的渲染器也可以使用。不过这次不是输入6DoF姿态，而是输入由6DoF头部姿态或3×4投影矩阵推导出的关键点。具体示例请参阅[该项目页面](https:\u002F\u002Fgithub.com\u002Fiacopomasi\u002Fface_specific_augm)中的demo.py。\n\n## 特性\n* **6DoF 3D头部姿态估计** + **3D渲染的人脸视图**。\n* 不依赖**易失效**的关键点检测器\n* 对于关键点检测器难以处理的图像（低分辨率、遮挡等）具有很强的鲁棒性\n* 极速姿态估计\n* 支持CPU和GPU\n* 通过更优的人脸对齐方式，提升人脸识别性能，优于当前最先进的关键点检测方法[1]\n\n## 依赖项\n\n* [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002F)\n* [OpenCV Python封装库](http:\u002F\u002Fopencv.org\u002F)\n* [NumPy](http:\u002F\u002Fwww.numpy.org\u002F)\n* [Python 2.7](https:\u002F\u002Fwww.python.org\u002Fdownload\u002Freleases\u002F2.7\u002F)\n\n该代码目前仅在Linux系统上进行了测试。在Linux环境下，您可以使用默认的Python版本，通过包管理器安装所需的所有软件包，或者使用Anaconda Python，并通过`conda`安装所需的依赖项。\n\n**注意：** 我们的算法并未使用任何关键点，尽管您仍可根据估计的姿态将关键点投影回输入图像。更多细节请参阅论文。\n\n## 使用方法\n\n* **重要提示：** 若要同时下载FPN代码和渲染器，请使用`git clone --recursive`\n* **重要提示：** 请从https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fr38psbq55y2yj4f\u002Ffpn_new_model.tar.gz?dl=0下载训练好的模型，并确保FPN模型存储在`fpn_new_model`文件夹中。\n\n### 运行步骤\n\n对齐和渲染可以通过命令行以以下不同方式进行操作。\n\n直接对一组图像运行（软件将先运行FPN估计姿态，再根据估计姿态渲染新视图）：\n\n```bash\n$ python main_fpn.py \u003Cinput-list-path>\n```\n\n我们提供了一个示例输入列表，可在[此处](input.csv)找到。\n```bash\n\u003CID, FILE, FACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>\n```\n其中`\u003CFACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>`是人脸边界框信息，可由人工标注或人脸检测器获取。\n\n## 示例结果\n请查看输入图像[此处](images)和渲染输出[此处](output_render)。\n\n### 输入： ###\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_2fe1ec051450.jpg)\n\n### 渲染结果： ###\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_22af241ca09a.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_f422555b9779.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_9b339b524ddf.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_166f7566ed9e.jpg)\n![sbj10](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_readme_f6b3b191aef3.jpg)\n\n\n\n## 当前局限性\nFPN 目前是使用单一的 3D 通用形状进行训练的，尚未考虑面部表情。这些问题计划作为未来的工作来解决。\n\n## 引用\n如果您使用我们的面部渲染器，请使用以下 BibTeX 格式引用我们的论文：\n\n``` latex\n@inproceedings{chang17fpn,\n      title={{F}ace{P}ose{N}et: Making a Case for Landmark-Free Face Alignment},\n      booktitle = {7th IEEE International Workshop on Analysis and Modeling of Faces and Gestures, ICCV Workshops},\n      author={\n      Feng-ju Chang\n      and Anh Tran \n      and Tal Hassner \n      and Iacopo Masi \n      and Ram Nevatia\n      and G\\'{e}rard Medioni},\n      year={2017},\n    }\n```\n\n## 参考文献\n[1] F.-J. Chang, A. Tran, T. Hassner, I. Masi, R. Nevatia, G. Medioni, “[FacePoseNet: 为无关键点人脸对齐正名](https:\u002F\u002Farxiv.org\u002Fabs\u002F1708.07517)”, 载于第七届 IEEE 国际人脸与手势分析与建模研讨会，ICCV 工作坊，2017 年\n\n[2] I. Masi\\*, A. Tran\\*, T. Hassner\\*, J. Leksut, G. Medioni, “我们真的需要收集百万张人脸数据才能实现高效的人脸识别吗？”，ECCV 2016，\n    \\* 表示共同第一作者\n\n[3] I. Masi, S. Rawls, G. Medioni, P. Natarajan，“野外环境下的姿态感知人脸识别”，CVPR 2016\n\n[4] T. Hassner, S. Harel, E. Paz 和 R. Enbar，“非约束条件下图像中有效的正面化处理”，CVPR 2015\n\n[5] I. Masi, T. Hassner, A. Tran 和 G. Medioni，“快速合成大规模人脸数据集以提升人脸识别性能”，FG 2017\n\n## 更改记录\n- 2017年8月，首次发布\n\n## 免责声明\n\n本页面提供的软件包按“原样”提供，不对其适用于任何特定用途做出任何保证。该软件可能包含错误，因此使用本工具的风险由您自行承担。对于因使用本工具而可能无意造成的任何损害，我们概不负责。\n\n## 联系方式\n\n如有任何问题，请发送邮件至 _fengjuch@usc.edu_、_anhttran@usc.edu_、_iacopo.masi@usc.edu_ 或 _hassner@isi.edu_，或在下方通过 GitHub 留言（需登录）。","# Face-Pose-Net 快速上手指南\n\nFace-Pose-Net (FPN) 是一个无需人脸关键点检测器即可鲁棒估计 6 自由度（6DoF）3D 人脸姿态的深度学习模型。它特别适用于处理低分辨率、遮挡或大角度侧脸等极端情况，并能生成用于数据增强的人脸渲染视图。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (代码仅在 Linux 上经过测试)\n*   **Python 版本**: Python 2.7\n*   **核心依赖**:\n    *   [TensorFlow](https:\u002F\u002Fwww.tensorflow.org\u002F)\n    *   [OpenCV Python Wrapper](http:\u002F\u002Fopencv.org\u002F)\n    *   [Numpy](http:\u002F\u002Fwww.numpy.org\u002F)\n\n**安装建议**：\n推荐使用 Anaconda 管理环境，或通过系统包管理器安装上述依赖。国内用户可使用清华源或阿里源加速 Python 包安装：\n```bash\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple tensorflow opencv-python numpy\n```\n\n## 安装步骤\n\n### 1. 克隆代码库\n由于项目包含子模块（人脸渲染器 Face Renderer），必须使用 `--recursive` 参数克隆：\n```bash\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net.git\ncd Face-Pose-Net\n```\n\n### 2. 下载预训练模型\n项目需要两组模型文件，请下载并放置到指定目录：\n\n*   **FPN 模型**: 下载 [fpn_new_model.tar.gz](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002Fr38psbq55y2yj4f\u002Ffpn_new_model.tar.gz?dl=0)，解压后将内容放入 `fpn_new_model` 文件夹。\n*   **BFM 模型 (3D 形状与表情)**: 下载 [BFM 文件](https:\u002F\u002Fwww.dropbox.com\u002Fsh\u002Fru7ierl9516a9az\u002FAABTP9hJj3dJnapicFFgHmOna?dl=0)，将文件放入 `BFM` 文件夹。\n\n*(注：如果 Dropbox 访问缓慢，请尝试使用代理或寻找国内镜像资源)*\n\n## 基本使用\n\n### 1. 准备输入列表\n创建一个文本文件（例如 `input_list.txt`），每行定义一张图片及其人脸边界框信息。格式如下：\n```text\n\u003CFILE_NAME, FACE_X, FACE_y, FACE_WIDTH, FACE_HEIGHT>\n```\n*   `FILE_NAME`: 图片路径\n*   `FACE_X`, `FACE_y`: 人脸检测框左上角坐标\n*   `FACE_WIDTH`, `FACE_HEIGHT`: 人脸检测框的宽和高\n\n> **注意**：人脸检测框可以通过手动标注、通用人脸检测器或关键点检测器获得。FPN 本身不进行人脸检测，只负责姿态估计。\n\n### 2. 运行姿态估计\n根据需求选择以下两种模式之一运行：\n\n**模式 A：预测 6DoF 头部姿态 (推荐)**\n输出包含缩放、俯仰 (pitch)、偏航 (yaw)、翻滚 (roll) 及平移量。\n```bash\npython main_predict_6DoF.py \u003Cgpu_id> \u003Cinput-list-path>\n```\n*示例*: `python main_predict_6DoF.py 0 input_list.txt`\n\n**模式 B：预测投影矩阵参数 (11 参数)**\n输出 3x4 投影矩阵的 11 个参数。\n```bash\npython main_predict_ProjMat.py \u003Cgpu_id> \u003Cinput-list-path>\n```\n\n### 3. 查看结果\n*   **姿态数据**: 预测的 6DoF 或 11 参数结果将分别保存在 `output_6DoF` 或 `output_ProjMat` 文件夹中。\n*   **3D 形状与关键点**: 对应的 3D 形状和投影关键点也会保存至上述文件夹，可通过 Matlab 进行可视化。\n*   **人脸渲染**: 若需生成多角度的人脸渲染图（如正面化或数据增强），需结合 `face_specific_augm` 子模块中的渲染器，将预测出的关键点或姿态作为输入传入（参考 `demo.py`）。","某安防团队正在构建一套全天候人脸门禁系统，需处理监控摄像头中大量侧脸、遮挡及低分辨率的抓拍图像。\n\n### 没有 Face-Pose-Net 时\n- **极端角度失效**：传统关键点检测算法在人脸偏转超过 45 度（半侧面）或接近正侧面时，无法定位五官，导致系统直接丢弃这些有效样本。\n- **流程依赖繁琐**：必须串联“人脸检测 - 关键点定位 - 姿态估算”多个独立模块，任一环节出错（如眼部被口罩遮挡）都会导致后续姿态计算崩溃。\n- **数据增强困难**：由于缺乏精准的 3D 姿态参数（6DoF），难以生成高质量的多视角合成数据来训练鲁棒性更强的识别模型。\n- **低分辩率表现差**：在远距离监控画面中，模糊的人脸特征让基于局部特征点的传统方法误差极大，无法满足实际对齐需求。\n\n### 使用 Face-Pose-Net 后\n- **无惧极端视角**：Face-Pose-Net 基于卷积神经网络直接回归 3D 姿态，即使在大角度侧脸、部分遮挡或低分辨率条件下，仍能精准输出 6 自由度姿态信息。\n- **端到端高效推理**：摒弃了对人脸关键点检测器的依赖，直接从裁剪后的人脸框输入即可一步到位估算姿态，大幅降低了系统延迟和级联错误率。\n- **自动化数据增强**：利用预测出的精确投影矩阵，可结合内置渲染器自动生成多角度的人脸渲染图，显著提升了识别模型在复杂视角下的泛化能力。\n- **鲁棒性显著提升**：即使在光照不均或画质模糊的监控场景中，依然能稳定获取可靠的 3x4 投影矩阵参数，确保人脸对齐流程不中断。\n\nFace-Pose-Net 通过“去关键点化”的直接估算策略，彻底解决了复杂场景下人脸姿态感知难的问题，为高鲁棒性视觉系统提供了核心支撑。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffengju514_Face-Pose-Net_1778480e.png","fengju514","Feng-Ju Chang","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffengju514_00a92411.png",null,"University of Southern California","United States","fengjuch@usc.edu","https:\u002F\u002Fgithub.com\u002Ffengju514",[84],{"name":85,"color":86,"percentage":87},"Python","#3572A5",100,509,107,"2026-03-19T00:48:09",4,"Linux","支持 GPU（运行脚本需指定 gpu_id），但未说明具体型号、显存大小或 CUDA 版本要求；同时也支持 CPU 运行","未说明",{"notes":96,"python":97,"dependencies":98},"代码仅在 Linux 上经过测试。建议使用 git clone --recursive 克隆项目以包含渲染器子模块。运行前需手动下载 FPN 模型文件和 BFM 形状\u002F表情文件并放入指定文件夹。输入图像需要提供人脸边界框坐标（x, y, width, height）。该项目不使用人脸关键点检测器，而是直接估计 6DoF 头部姿态或投影矩阵。","2.7",[99,100,101],"TensorFlow","OpenCV Python Wrapper","Numpy",[14],[104,105,106,107,108],"face-alignment","face-recognition","landmark-detectors","face","pose-estimation","2026-03-27T02:49:30.150509","2026-04-06T05:37:58.379946",[112,117,122,127,132,137,141,145],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},10565,"如何获取姿态估计结果中的 Pitch（俯仰）、Roll（翻滚）和 Yaw（偏航）角度值？","代码输出的 6 个数值分别代表旋转（Pitch, Yaw, Roll）和平移（X, Y, Z 轴）。具体的姿态预测结果保存在 `.\u002Foutput_pose.lmdb` 文件中（参考 `main_fpn.py` 第 25 行）。这些结果随后会被传递给 `render_fpn.py`（第 50 行）用于渲染。需要注意的是，预测的 Yaw 值取决于训练数据的 Yaw 范围，因此预测值与视觉上的角度可能存在差异。","https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fissues\u002F16",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},10566,"运行代码时提示\"Can't find renderer\"或忘记执行\"git clone --recursive\"怎么办？","这是因为未正确下载人脸渲染器子模块。请使用命令 `git clone --recursive https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net.git` 重新克隆项目，以确保同时下载 Face Pose Net 主代码和 face renderer 渲染器。如果已经克隆但未包含子模块，可以尝试在目录内运行 `git submodule update --init --recursive`。","https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fissues\u002F12",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},10567,"输入图像的人脸边界框坐标（FACE_X, FACE_Y, WIDTH, HEIGHT）具体指什么？","FACE_X 和 FACE_Y 指的是人脸边界框（矩形）的左上角点坐标（top-left point），而 FACE_WIDTH 和 FACE_HEIGHT 分别是该边界框的宽度和高度。确保输入的坐标格式与代码要求一致，通常不需要将图像强制缩放至 227x227，但需保证坐标对应原始图像尺寸。","https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fissues\u002F28",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},10568,"该项目声称是\"无标记点（landmark-free）\"的，那训练数据是如何生成的？","\"Landmark-free\"指的是该方法在推理阶段不需要提取人脸关键点。但在训练阶段，论文中提到使用了现有的人脸关键点检测器在 VGG 数据集上运行以生成姿态标签。训练实际使用的是这些生成的姿态标签数据，而非直接使用原始的 260 万张图像进行端到端的关键点训练。","https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fissues\u002F20",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},10569,"如何使用自己的数据训练模型以适配不同的偏航角（Yaw）范围？","预测的 Yaw 值依赖于训练数据的 Yaw 范围。如果使用作者提供的预训练权重，可以使用它们作为初始化参数，然后在您自己的数据集上对网络进行微调（Fine-tune）。前提是您使用的模型结构必须与原作者的模型结构保持一致。","https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fissues\u002F11",{"id":138,"question_zh":139,"answer_zh":140,"source_url":116},10570,"运行 main_fpn.py 时没有输出具体的数值数组，只显示了文件名，如何解决？","这通常是因为输出被重定向到了 LMDB 文件中而不是直接打印到控制台。姿态结果默认存储在 `.\u002Foutput_pose.lmdb` 文件中。如果您需要查看具体的 6 自由度数值（如 `[8.27e-02, ...]`），需要读取该 LMDB 文件，或者检查代码中是否注释了打印语句。此外，确保输入 CSV 文件格式正确，包含了图像路径和对应的边界框坐标。",{"id":142,"question_zh":143,"answer_zh":144,"source_url":121},10571,"如何启用 GPU 支持以加速运行？","可以通过修改 `get_Rts.py` 文件来启用 GPU 支持。具体请参考代码库中的这一行：https:\u002F\u002Fgithub.com\u002Ffengju514\u002FFace-Pose-Net\u002Fblob\u002Fff312cd901deeb7d35d2ee16fd72f9ffd6f011f1\u002Fget_Rts.py#L116，按照其中的配置开启 GPU 选项通常比较容易实现。",{"id":146,"question_zh":147,"answer_zh":148,"source_url":126},10572,"运行脚本时出现\"IndexError: list index out of range\"错误是什么原因？","这个错误通常发生在 `main_fpn.py` 的第 23 行，原因是运行脚本时没有在命令行提供必要的输入参数。该脚本期望通过 `sys.argv[1]` 获取输入文件路径（例如 input.csv）。请确保使用正确的命令格式运行，例如：`python main_fpn.py input.csv`，其中 `input.csv` 是包含图像路径和人脸检测信息的文件。",[]]