[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-biubug6--Pytorch_Retinaface":3,"tool-biubug6--Pytorch_Retinaface":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":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":77,"owner_company":77,"owner_location":77,"owner_email":77,"owner_twitter":77,"owner_website":77,"owner_url":79,"languages":80,"stars":85,"forks":86,"last_commit_at":87,"license":88,"difficulty_score":10,"env_os":89,"env_gpu":90,"env_ram":91,"env_deps":92,"category_tags":98,"github_topics":77,"view_count":10,"oss_zip_url":77,"oss_zip_packed_at":77,"status":16,"created_at":99,"updated_at":100,"faqs":101,"releases":142},974,"biubug6\u002FPytorch_Retinaface","Pytorch_Retinaface","Retinaface get 80.99% in widerface hard val using mobilenet0.25.","Pytorch_Retinaface 是一个基于 PyTorch 框架实现的人脸检测开源项目，复现了论文 \"RetinaFace: Single-stage Dense Face Localisation in the Wild\" 中的算法。它能够在复杂场景下快速准确地检测人脸位置，并同时输出人脸的五个关键点坐标（眼睛、鼻子、嘴角）。\n\n这个项目主要解决了轻量级人脸检测的需求痛点。传统高精度人脸检测模型往往体积庞大、计算量大，难以在移动端或边缘设备上实时运行。Pytorch_Retinaface 提供了两种骨干网络选择：MobileNet0.25 版本仅 1.7MB 大小，在 WIDERFACE 困难测试集上达到 80.99% 的准确率；ResNet50 版本则追求更高精度，在相同测试集上可达 89.60%。这种灵活的架构设计让开发者能根据实际场景在速度和精度之间自由取舍。\n\n适合计算机视觉开发者、AI 算法工程师以及需要在产品中集成人脸检测功能的技术团队使用。项目提供了完整的训练代码、预训练模型和 TensorRT 部署支持，还配套有专门的 C++ 推理版本（Face-Detecto","Pytorch_Retinaface 是一个基于 PyTorch 框架实现的人脸检测开源项目，复现了论文 \"RetinaFace: Single-stage Dense Face Localisation in the Wild\" 中的算法。它能够在复杂场景下快速准确地检测人脸位置，并同时输出人脸的五个关键点坐标（眼睛、鼻子、嘴角）。\n\n这个项目主要解决了轻量级人脸检测的需求痛点。传统高精度人脸检测模型往往体积庞大、计算量大，难以在移动端或边缘设备上实时运行。Pytorch_Retinaface 提供了两种骨干网络选择：MobileNet0.25 版本仅 1.7MB 大小，在 WIDERFACE 困难测试集上达到 80.99% 的准确率；ResNet50 版本则追求更高精度，在相同测试集上可达 89.60%。这种灵活的架构设计让开发者能根据实际场景在速度和精度之间自由取舍。\n\n适合计算机视觉开发者、AI 算法工程师以及需要在产品中集成人脸检测功能的技术团队使用。项目提供了完整的训练代码、预训练模型和 TensorRT 部署支持，还配套有专门的 C++ 推理版本（Face-Detector-1MB-with-landmark），方便从研究到生产的全链路落地。对于希望快速搭建人脸相关应用（如美颜、身份验证、表情分析）的开发者来说，这是一个开箱即用且经过充分验证的可靠选择。","# RetinaFace in PyTorch\n\nA [PyTorch](https:\u002F\u002Fpytorch.org\u002F) implementation of [RetinaFace: Single-stage Dense Face Localisation in the Wild](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.00641). Model size only 1.7M, when Retinaface use mobilenet0.25 as backbone net. We also provide resnet50 as backbone net to get better result. The official code in Mxnet can be found [here](https:\u002F\u002Fgithub.com\u002Fdeepinsight\u002Finsightface\u002Ftree\u002Fmaster\u002FRetinaFace).\n\n## Mobile or Edge device deploy\nWe also provide a set of Face Detector for edge device in [here](https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FFace-Detector-1MB-with-landmark) from python training to C++ inference.\n\n## WiderFace Val Performance in single scale When using Resnet50 as backbone net.\n| Style | easy | medium | hard |\n|:-|:-:|:-:|:-:|\n| Pytorch (same parameter with Mxnet) | 94.82 % | 93.84% | 89.60% |\n| Pytorch (original image scale) | 95.48% | 94.04% | 84.43% |\n| Mxnet | 94.86% | 93.87% | 88.33% |\n| Mxnet(original image scale) | 94.97% | 93.89% | 82.27% |\n\n## WiderFace Val Performance in single scale When using Mobilenet0.25 as backbone net.\n| Style | easy | medium | hard |\n|:-|:-:|:-:|:-:|\n| Pytorch (same parameter with Mxnet) | 88.67% | 87.09% | 80.99% |\n| Pytorch (original image scale) | 90.70% | 88.16% | 73.82% |\n| Mxnet | 88.72% | 86.97% | 79.19% |\n| Mxnet(original image scale) | 89.58% | 87.11% | 69.12% |\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_5aaca0f0bc04.jpg\" width=\"640\"\\>\u003C\u002Fp>\n\n## FDDB Performance.\n| FDDB(pytorch) | performance |\n|:-|:-:|\n| Mobilenet0.25 | 98.64% |\n| Resnet50 | 99.22% |\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_56f0c050ec7b.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### Contents\n- [Installation](#installation)\n- [Training](#training)\n- [Evaluation](#evaluation)\n- [TensorRT](#tensorrt)\n- [References](#references)\n\n## Installation\n##### Clone and install\n1. git clone https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface.git\n\n2. Pytorch version 1.1.0+ and torchvision 0.3.0+ are needed.\n\n3. Codes are based on Python 3\n\n##### Data\n1. Download the [WIDERFACE](http:\u002F\u002Fshuoyang1213.me\u002FWIDERFACE\u002FWiderFace_Results.html) dataset.\n\n2. Download annotations (face bounding boxes & five facial landmarks) from [baidu cloud](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1Laby0EctfuJGgGMgRRgykA) or [dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F7j70r3eeepe4r2g\u002Fretinaface_gt_v1.1.zip?dl=0)\n\n3. Organise the dataset directory as follows:\n\n```Shell\n  .\u002Fdata\u002Fwiderface\u002F\n    train\u002F\n      images\u002F\n      label.txt\n    val\u002F\n      images\u002F\n      wider_val.txt\n```\nps: wider_val.txt only include val file names but not label information.\n\n##### Data1\nWe also provide the organized dataset we used as in the above directory structure.\n\nLink: from [google cloud](https:\u002F\u002Fdrive.google.com\u002Fopen?id=11UGV3nbVv1x9IC--_tK3Uxf7hA6rlbsS) or [baidu cloud](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1jIp9t30oYivrAvrgUgIoLQ) Password: ruck\n\n## Training\nWe provide restnet50 and mobilenet0.25 as backbone network to train model.\nWe trained Mobilenet0.25 on imagenet dataset and get 46.58%  in top 1. If you do not wish to train the model, we also provide trained model. Pretrain model  and trained model are put in [google cloud](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1oZRSG0ZegbVkVwUd8wUIQx8W7yfZ_ki1) and [baidu cloud](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12h97Fy1RYuqMMIV-RpzdPg) Password: fstq . The model could be put as follows:\n```Shell\n  .\u002Fweights\u002F\n      mobilenet0.25_Final.pth\n      mobilenetV1X0.25_pretrain.tar\n      Resnet50_Final.pth\n```\n1. Before training, you can check network configuration (e.g. batch_size, min_sizes and steps etc..) in ``data\u002Fconfig.py and train.py``.\n\n2. Train the model using WIDER FACE:\n  ```Shell\n  CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50 or\n  CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25\n  ```\n\n\n## Evaluation\n### Evaluation widerface val\n1. Generate txt file\n```Shell\npython test_widerface.py --trained_model weight_file --network mobile0.25 or resnet50\n```\n2. Evaluate txt results. Demo come from [Here](https:\u002F\u002Fgithub.com\u002Fwondervictor\u002FWiderFace-Evaluation)\n```Shell\ncd .\u002Fwiderface_evaluate\npython setup.py build_ext --inplace\npython evaluation.py\n```\n3. You can also use widerface official Matlab evaluate demo in [Here](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FWIDERFace\u002FWiderFace_Results.html)\n### Evaluation FDDB\n\n1. Download the images [FDDB](https:\u002F\u002Fdrive.google.com\u002Fopen?id=17t4WULUDgZgiSy5kpCax4aooyPaz3GQH) to:\n```Shell\n.\u002Fdata\u002FFDDB\u002Fimages\u002F\n```\n\n2. Evaluate the trained model using:\n```Shell\npython test_fddb.py --trained_model weight_file --network mobile0.25 or resnet50\n```\n\n3. Download [eval_tool](https:\u002F\u002Fbitbucket.org\u002Fmarcopede\u002Fface-eval) to evaluate the performance.\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_a8a766b52672.jpg\" width=\"640\"\\>\u003C\u002Fp>\n\n## TensorRT\n-[TensorRT](https:\u002F\u002Fgithub.com\u002Fwang-xinyu\u002Ftensorrtx\u002Ftree\u002Fmaster\u002Fretinaface)\n\n## References\n- [FaceBoxes](https:\u002F\u002Fgithub.com\u002Fzisianw\u002FFaceBoxes.PyTorch)\n- [Retinaface (mxnet)](https:\u002F\u002Fgithub.com\u002Fdeepinsight\u002Finsightface\u002Ftree\u002Fmaster\u002FRetinaFace)\n```\n@inproceedings{deng2019retinaface,\ntitle={RetinaFace: Single-stage Dense Face Localisation in the Wild},\nauthor={Deng, Jiankang and Guo, Jia and Yuxiang, Zhou and Jinke Yu and Irene Kotsia and Zafeiriou, Stefanos},\nbooktitle={arxiv},\nyear={2019}\n```\n","# PyTorch 版 RetinaFace\n\n[RetinaFace: Single-stage Dense Face Localisation in the Wild](https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.00641) 的 [PyTorch](https:\u002F\u002Fpytorch.org\u002F) 实现。当 RetinaFace 使用 mobilenet0.25 作为主干网络（backbone net）时，模型大小仅为 1.7M。我们也提供 resnet50 作为主干网络以获得更好的效果。官方 Mxnet 代码可在[此处](https:\u002F\u002Fgithub.com\u002Fdeepinsight\u002Finsightface\u002Ftree\u002Fmaster\u002FRetinaFace)找到。\n\n## 移动端或边缘设备部署\n我们还提供了一套适用于边缘设备的人脸检测器，详见[此处](https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FFace-Detector-1MB-with-landmark)，涵盖从 Python 训练到 C++ 推理的完整流程。\n\n## 使用 Resnet50 作为主干网络时的 WiderFace 验证集单尺度性能\n| 风格 | easy | medium | hard |\n|:-|:-:|:-:|:-:|\n| Pytorch (与 Mxnet 相同参数) | 94.82 % | 93.84% | 89.60% |\n| Pytorch (原始图像尺度) | 95.48% | 94.04% | 84.43% |\n| Mxnet | 94.86% | 93.87% | 88.33% |\n| Mxnet(原始图像尺度) | 94.97% | 93.89% | 82.27% |\n\n## 使用 Mobilenet0.25 作为主干网络时的 WiderFace 验证集单尺度性能\n| 风格 | easy | medium | hard |\n|:-|:-:|:-:|:-:|\n| Pytorch (与 Mxnet 相同参数) | 88.67% | 87.09% | 80.99% |\n| Pytorch (原始图像尺度) | 90.70% | 88.16% | 73.82% |\n| Mxnet | 88.72% | 86.97% | 79.19% |\n| Mxnet(原始图像尺度) | 89.58% | 87.11% | 69.12% |\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_5aaca0f0bc04.jpg\" width=\"640\"\\>\u003C\u002Fp>\n\n## FDDB 性能\n| FDDB(pytorch) | 性能 |\n|:-|:-:|\n| Mobilenet0.25 | 98.64% |\n| Resnet50 | 99.22% |\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_56f0c050ec7b.png\" width=\"640\"\\>\u003C\u002Fp>\n\n### 目录\n- [安装](#安装)\n- [训练](#训练)\n- [评估](#评估)\n- [TensorRT](#tensorrt)\n- [参考文献](#参考文献)\n\n## 安装\n##### 克隆与安装\n1. git clone https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface.git\n\n2. 需要 Pytorch 1.1.0+ 和 torchvision 0.3.0+。\n\n3. 代码基于 Python 3\n\n##### 数据\n1. 下载 [WIDERFACE](http:\u002F\u002Fshuoyang1213.me\u002FWIDERFACE\u002FWiderFace_Results.html) 数据集。\n\n2. 从[百度云](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1Laby0EctfuJGgGMgRRgykA)或[dropbox](https:\u002F\u002Fwww.dropbox.com\u002Fs\u002F7j70r3eeepe4r2g\u002Fretinaface_gt_v1.1.zip?dl=0)下载标注文件（人脸边界框 & 五个面部关键点）\n\n3. 按如下结构组织数据集目录：\n\n```Shell\n  .\u002Fdata\u002Fwiderface\u002F\n    train\u002F\n      images\u002F\n      label.txt\n    val\u002F\n      images\u002F\n      wider_val.txt\n```\n注：wider_val.txt 仅包含验证集文件名，不包含标注信息。\n\n##### 数据1\n我们还提供了按上述目录结构组织好的数据集。\n\n链接：[谷歌云盘](https:\u002F\u002Fdrive.google.com\u002Fopen?id=11UGV3nbVv1x9IC--_tK3Uxf7hA6rlbsS) 或 [百度云](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1jIp9t30oYivrAvrgUgIoLQ) 密码：ruck\n\n## 训练\n我们提供 resnet50 和 mobilenet0.25 作为主干网络来训练模型。\n我们在 imagenet 数据集上训练了 Mobilenet0.25，top 1 准确率达到 46.58%。如果您不希望训练模型，我们也提供了训练好的模型。预训练模型和训练好的模型已上传至[谷歌云盘](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1oZRSG0ZegbVkVwUd8wUIQx8W7yfZ_ki1)和[百度云](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12h97Fy1RYuqMMIV-RpzdPg) 密码：fstq。模型可按如下结构放置：\n```Shell\n  .\u002Fweights\u002F\n      mobilenet0.25_Final.pth\n      mobilenetV1X0.25_pretrain.tar\n      Resnet50_Final.pth\n```\n1. 训练前，您可以在 ``data\u002Fconfig.py`` 和 ``train.py`` 中检查网络配置（如 batch_size、min_sizes 和 steps 等）。\n\n2. 使用 WIDER FACE 训练模型：\n  ```Shell\n  CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50 或\n  CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25\n  ```\n\n\n## 评估\n### 评估 widerface 验证集\n1. 生成 txt 文件\n```Shell\npython test_widerface.py --trained_model weight_file --network mobile0.25 或 resnet50\n```\n2. 评估 txt 结果。Demo 来自[此处](https:\u002F\u002Fgithub.com\u002Fwondervictor\u002FWiderFace-Evaluation)\n```Shell\ncd .\u002Fwiderface_evaluate\npython setup.py build_ext --inplace\npython evaluation.py\n```\n3. 您也可以使用 widerface 官方 Matlab 评估 demo，见[此处](http:\u002F\u002Fmmlab.ie.cuhk.edu.hk\u002Fprojects\u002FWIDERFace\u002FWiderFace_Results.html)\n### 评估 FDDB\n\n1. 下载 [FDDB](https:\u002F\u002Fdrive.google.com\u002Fopen?id=17t4WULUDgZgiSy5kpCax4aooyPaz3GQH) 图像至：\n```Shell\n.\u002Fdata\u002FFDDB\u002Fimages\u002F\n```\n\n2. 使用以下命令评估训练好的模型：\n```Shell\npython test_fddb.py --trained_model weight_file --network mobile0.25 或 resnet50\n```\n\n3. 下载 [eval_tool](https:\u002F\u002Fbitbucket.org\u002Fmarcopede\u002Fface-eval) 来评估性能。\n\n\u003Cp align=\"center\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_readme_a8a766b52672.jpg\" width=\"640\"\\>\u003C\u002Fp>\n\n## TensorRT\n-[TensorRT](https:\u002F\u002Fgithub.com\u002Fwang-xinyu\u002Ftensorrtx\u002Ftree\u002Fmaster\u002Fretinaface)\n\n## 参考文献\n- [FaceBoxes](https:\u002F\u002Fgithub.com\u002Fzisianw\u002FFaceBoxes.PyTorch)\n- [Retinaface (mxnet)](https:\u002F\u002Fgithub.com\u002Fdeepinsight\u002Finsightface\u002Ftree\u002Fmaster\u002FRetinaFace)\n```\n@inproceedings{deng2019retinaface,\ntitle={RetinaFace: Single-stage Dense Face Localisation in the Wild},\nauthor={Deng, Jiankang and Guo, Jia and Yuxiang, Zhou and Jinke Yu and Irene Kotsia and Zafeiriou, Stefanos},\nbooktitle={arxiv},\nyear={2019}\n```","# Pytorch_Retinaface 快速上手指南\n\n## 环境准备\n\n| 项目 | 要求 |\n|:---|:---|\n| Python | 3.x |\n| PyTorch | 1.1.0+ |\n| torchvision | 0.3.0+ |\n| CUDA | 支持 GPU 训练\u002F推理（可选） |\n\n## 安装步骤\n\n### 1. 克隆仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface.git\ncd Pytorch_Retinaface\n```\n\n### 2. 安装依赖\n```bash\npip install torch>=1.1.0 torchvision>=0.3.0\n# 其他依赖（如需要）\npip install numpy opencv-python\n```\n\n### 3. 下载预训练模型（推荐）\n\n| 模型 | 大小 | 下载 |\n|:---|:---|:---|\n| MobileNet0.25 | 1.7M | [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1oZRSG0ZegbVkVwUd8wUIQx8W7yfZ_ki1) \u002F [百度网盘](https:\u002F\u002Fpan.baidu.com\u002Fs\u002F12h97Fy1RYuqMMIV-RpzdPg) 密码: fstq |\n| ResNet50 | 较大 | 同上 |\n\n创建权重目录并放入模型：\n```bash\nmkdir weights\n# 将下载的模型放入 .\u002Fweights\u002F 目录\n```\n\n## 基本使用\n\n### 快速检测单张图片\n\n```python\nimport torch\nimport cv2\nimport numpy as np\nfrom models.retinaface import RetinaFace\nfrom utils.box_utils import decode, decode_landm\nfrom utils.nms.py_cpu_nms import py_cpu_nms\nfrom data import cfg_mnet, cfg_re50\n\n# 配置\ncfg = cfg_mnet  # 或 cfg_re50 用于 ResNet50\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n\n# 加载模型\nnet = RetinaFace(cfg=cfg, phase='test')\nnet = load_model(net, '.\u002Fweights\u002Fmobilenet0.25_Final.pth', False)\nnet.eval()\nnet = net.to(device)\n\n# 图像预处理\nimg = cv2.imread('test.jpg')\nimg = cv2.resize(img, (640, 640))  # 根据需求调整\nimg = np.float32(img)\nimg -= (104, 117, 123)  # BGR mean\nimg = img.transpose(2, 0, 1)\nimg = torch.from_numpy(img).unsqueeze(0)\nimg = img.to(device)\n\n# 推理\nloc, conf, landms = net(img)\n\n# 解码结果（后处理）\n# ... 根据 decode\u002Fdecode_landm 处理输出\n```\n\n### 使用官方测试脚本\n\n**WIDERFACE 评估：**\n```bash\npython test_widerface.py \\\n    --trained_model .\u002Fweights\u002Fmobilenet0.25_Final.pth \\\n    --network mobile0.25\n```\n\n**FDDB 评估：**\n```bash\npython test_fddb.py \\\n    --trained_model .\u002Fweights\u002Fmobilenet0.25_Final.pth \\\n    --network mobile0.25\n```\n\n### 训练（可选）\n\n```bash\n# MobileNet0.25（轻量，适合边缘设备）\nCUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25\n\n# ResNet50（精度更高）\nCUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50\n```\n\n---\n\n> **提示**：如需部署到移动端\u002F边缘设备，可参考 [Face-Detector-1MB-with-landmark](https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FFace-Detector-1MB-with-landmark) 获取完整的 Python 训练到 C++ 推理方案。","某智能门锁厂商正在开发支持\"刷脸开锁\"的新一代产品，需要在低功耗芯片上实现实时人脸检测，同时保证各种光线和角度下的识别准确率。\n\n### 没有 Pytorch_Retinaface 时\n\n- **模型体积臃肿**：通用的 ResNet 人脸检测模型超过 100MB，无法嵌入到仅有 8MB Flash 存储的低成本门锁芯片中\n- **边缘端算力不足**：现有方案需要云端协同检测，开锁延迟高达 2-3 秒，用户体验差且存在隐私泄露风险\n- **复杂场景漏检严重**：逆光、侧脸、多人同框时，检测准确率骤降，经常出现\"识别不到人脸\"的客诉\n- **部署成本高昂**：为适配不同硬件平台，需要重复开发 C++ 推理代码，研发周期拉长 2 个月以上\n\n### 使用 Pytorch_Retinaface 后\n\n- **1.7MB 超轻量模型**：MobileNet0.25 骨干网络将模型压缩至 1.7MB，轻松装入资源受限的嵌入式设备，BOM 成本降低 40%\n- **端侧实时推理**：纯本地运行，检测延迟降至 50ms 以内，实现\"靠近即解锁\"的流畅体验，用户人脸数据不出设备\n- **WiderFace Hard 80.99% 精度**：在遮挡、模糊、小目标等困难场景下依然保持高检出率，夜间红外模式也能稳定工作\n- **一键迁移边缘设备**：官方提供从 Python 训练到 C++ 推理的完整工具链，2 周内即可完成跨平台部署，支持 TensorRT 加速\n\nPytorch_Retinaface 让高精度人脸检测真正\"瘦身\"到边缘端，是智能硬件厂商平衡性能与成本的理想选择。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbiubug6_Pytorch_Retinaface_5aaca0f0.jpg","biubug6",null,"https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbiubug6_a6bdf08f.jpg","https:\u002F\u002Fgithub.com\u002Fbiubug6",[81],{"name":82,"color":83,"percentage":84},"Python","#3572A5",100,2948,808,"2026-04-04T09:24:40","MIT","Linux, macOS, Windows","需要 NVIDIA GPU 用于训练（CUDA 支持），支持多卡训练 CUDA_VISIBLE_DEVICES=0,1,2,3；MobileNet0.25  backbone 模型仅 1.7M，适合边缘设备部署","未说明",{"notes":93,"python":94,"dependencies":95},"1. 提供两种 backbone：ResNet50（精度更高）和 MobileNet0.25（轻量级，适合移动端）；2. 支持 TensorRT 加速部署；3. 提供预训练模型，无需从头训练；4. 需要下载 WIDERFACE 数据集进行训练\u002F评估；5. 提供 C++ 推理版本供边缘设备使用","3.x",[96,97],"torch>=1.1.0","torchvision>=0.3.0",[14],"2026-03-27T02:49:30.150509","2026-04-06T05:35:44.240527",[102,107,112,117,122,127,132,137],{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},4318,"为什么 GPU 推理时间测量不准确，如何正确测量？","GPU 计算是异步的，直接使用 time.time() 测量会得到比实际短很多的结果（如显示 5ms 实际可能 300ms）。正确测量方法需要在计时前后添加同步操作：\n\n```python\ntorch.cuda.synchronize()\nt2 = time.time()\nloc, conf, landms = self.net(img)  # forward pass\ntorch.cuda.synchronize()\nt3 = time.time()\nprint('net forward time: {:.4f}'.format(t3 - t2))\n```","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F1",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},4319,"为什么无法复现论文中的 AP 精度，batch_size 对训练有什么影响？","batch_size 对学习率有重要影响，修改 batch_size 时必须相应调整学习率。原则是：batch_size 增大时学习率也应增大，反之亦然。例如原配置 batch_size=24，如果改为 4，需要按比例降低学习率。此外，使用 DistributedDataParallel 代替 DataParallel、混合精度训练（AMP）等技巧可以帮助达到甚至超过原论文精度（Easy 94.88%, Medium 93.94%, Hard 89.75%）。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F30",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},4320,"多分类问题中为什么所有正样本都被分到第 1 类？","这是多分类实现的常见问题，参考 Issue #26 的解决方案。需要检查 MultiBoxLoss 中的类别处理逻辑，确保 softmax 输出维度与类别数匹配。建议先优化网络学习率（lr）再尝试解决分类问题。对于需要添加多个类别的场景，需要在原有分类任务基础上修改类别数，但实现较为复杂，需要调整损失函数和标签处理逻辑。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F153",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},4321,"为什么代码使用 SSH 而不是论文中的 context module 和可变形卷积？","该实现为了简洁性和易用性选择了 SSH（Single Stage Headless）模块，而非原论文的 context module 和可变形卷积（Deformable Convolution）。但社区有用户通过以下配置实现了更好的结果：使用 PyTorch DistributedDataParallel 替代 DataParallel、混合精度训练（AMP）、batch_size=44、训练 100 个 epoch、学习率 5e-5，不使用可变形卷积也能达到 Easy 94.88%、Medium 93.94%、Hard 89.75% 的精度。如需 5 层 FPN 和可变形卷积的实现，需要自行修改或寻找社区贡献版本。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F81",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},4322,"训练结果不够好，需要调整哪些参数？threshold 和 batch_size 如何设置？","1. **Threshold 调整**：将检测阈值从默认 0.5 改为 0.4 可显著提升 Hard 样本表现（Hard AP 从 0.799 提升到 0.841）。\n\n2. **Batch size 与学习率**：batch_size 减小必须同步降低学习率。例如 8 卡 GPU 设置 batch_size=12（总 batch_size=96）。如果显存不足改为 batch_size=8，学习率需要按比例调整。\n\n3. **推荐配置**：使用多卡训练（如 8 卡），保持较大的总 batch_size，配合适当的学习率调度。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F115",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},4323,"PriorBox 计算耗时很长，如何优化？","PriorBox 可以通过预计算来优化：对每个分辨率预先计算好 anchor 框，避免每次前向传播时重复计算。具体方法是将不同输入尺寸对应的 prior box 提前生成并缓存。但需要注意，如果移除 PriorBox 后耗时没有变化，说明瓶颈可能不在 PriorBox，需要检查其他部分（如 NMS 或解码操作）的性能。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F74",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},4324,"为什么 classnum=2 而不是 1？wider_face.py 中标签为 -1 是什么意思？","1. **classnum=2**：虽然只有人脸一个类别，但需要包含背景类（background），所以是 2 类（背景 + 人脸）。\n\n2. **标签 -1 的含义**：WiderFace 数据集中，-1 表示该人脸是困难样本或模糊样本（如遮挡严重的人脸）。在 MultiBoxLoss 中，通过 `label > 0` 判断才计算 landmark loss，所以 -1 标签的人脸不会参与 landmark 回归训练，但仍参与分类训练（会被转为正样本）。代码中 `bkg_label` 实际未起作用，标签处理逻辑在 multibox_loss.py 第 80 行附近。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F28",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},4325,"为什么不同尺度输入的推理时间没有变化？","这是 GPU 异步计算导致的测量误差。GPU 上的 CUDA 核函数是异步执行的，time.time() 只记录 CPU 调度时间，而非实际 GPU 计算时间。即使输入从 256×256 变为 1920×1080，测量结果可能都显示约 14ms。正确测量方法必须使用 `torch.cuda.synchronize()` 强制同步，如 Issue #1 中的解决方案。此外，小尺寸输入的 GPU 利用率可能较低，实际耗时差异需要准确测量才能体现。","https:\u002F\u002Fgithub.com\u002Fbiubug6\u002FPytorch_Retinaface\u002Fissues\u002F23",[]]