[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-davidsandberg--facenet":3,"tool-davidsandberg--facenet":61},[4,18,26,36,44,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":10,"last_commit_at":24,"category_tags":25,"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":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",153609,2,"2026-04-13T11:34:59",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"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",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":76,"owner_website":76,"owner_url":79,"languages":80,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":96,"env_deps":97,"category_tags":111,"github_topics":112,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":119,"updated_at":120,"faqs":121,"releases":150},7142,"davidsandberg\u002Ffacenet","facenet","Face recognition using Tensorflow","FaceNet 是一个基于 TensorFlow 开源框架实现的人脸识别系统，其核心目标是将人脸图像映射为紧凑的向量表示（嵌入），从而高效地完成人脸验证与聚类任务。它主要解决了传统人脸识别在复杂场景下准确率不足的问题，通过引入“三元组损失”（Triplet Loss）函数，确保同一人的不同照片在向量空间中距离更近，而不同人的照片距离更远，显著提升了识别精度。\n\n该项目复现了论文《FaceNet: A Unified Embedding for Face Recognition and Clustering》中的经典算法，并融合了牛津大学视觉几何组的研究成果。其技术亮点在于提供了多种预训练模型（如基于 Inception ResNet v1 架构），在权威的 LFW 测试集上准确率高达 99.65%。此外，FaceNet 集成了 MTCNN 进行高精度人脸检测与对齐，有效克服了部分遮挡或轮廓模糊带来的识别困难。\n\nFaceNet 非常适合人工智能开发者、科研人员以及需要构建自定义人脸识别应用的技术团队使用。用户不仅可以利用现成的预训练模型快速部署功能，还能基于 CASIA-WebFace","FaceNet 是一个基于 TensorFlow 开源框架实现的人脸识别系统，其核心目标是将人脸图像映射为紧凑的向量表示（嵌入），从而高效地完成人脸验证与聚类任务。它主要解决了传统人脸识别在复杂场景下准确率不足的问题，通过引入“三元组损失”（Triplet Loss）函数，确保同一人的不同照片在向量空间中距离更近，而不同人的照片距离更远，显著提升了识别精度。\n\n该项目复现了论文《FaceNet: A Unified Embedding for Face Recognition and Clustering》中的经典算法，并融合了牛津大学视觉几何组的研究成果。其技术亮点在于提供了多种预训练模型（如基于 Inception ResNet v1 架构），在权威的 LFW 测试集上准确率高达 99.65%。此外，FaceNet 集成了 MTCNN 进行高精度人脸检测与对齐，有效克服了部分遮挡或轮廓模糊带来的识别困难。\n\nFaceNet 非常适合人工智能开发者、科研人员以及需要构建自定义人脸识别应用的技术团队使用。用户不仅可以利用现成的预训练模型快速部署功能，还能基于 CASIA-WebFace 或 VGGFace2 等数据集，按照官方提供的流程训练专属的分类器。对于希望深入理解深度学习在生物特征识别领域应用的学者而言，这也是一个极具参考价值的开源范例。","# Face Recognition using Tensorflow [![Build Status][travis-image]][travis]\n\n[travis-image]: http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet.svg?branch=master\n[travis]: http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet\n\nThis is a TensorFlow implementation of the face recognizer described in the paper\n[\"FaceNet: A Unified Embedding for Face Recognition and Clustering\"](http:\u002F\u002Farxiv.org\u002Fabs\u002F1503.03832). The project also uses ideas from the paper [\"Deep Face Recognition\"](http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fpublications\u002F2015\u002FParkhi15\u002Fparkhi15.pdf) from the [Visual Geometry Group](http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002F) at Oxford.\n\n## Compatibility\nThe code is tested using Tensorflow r1.7 under Ubuntu 14.04 with Python 2.7 and Python 3.5. The test cases can be found [here](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Ftest) and the results can be found [here](http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet).\n\n## News\n| Date     | Update |\n|----------|--------|\n| 2018-04-10 | Added new models trained on Casia-WebFace and VGGFace2 (see below). Note that the models uses fixed image standardization (see [wiki](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FTraining-using-the-VGGFace2-dataset)). |\n| 2018-03-31 | Added a new, more flexible input pipeline as well as a bunch of minor updates. |\n| 2017-05-13 | Removed a bunch of older non-slim models. Moved the last bottleneck layer into the respective models. Corrected normalization of Center Loss. |\n| 2017-05-06 | Added code to [train a classifier on your own images](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FTrain-a-classifier-on-own-images). Renamed facenet_train.py to train_tripletloss.py and facenet_train_classifier.py to train_softmax.py. |\n| 2017-03-02 | Added pretrained models that generate 128-dimensional embeddings.|\n| 2017-02-22 | Updated to Tensorflow r1.0. Added Continuous Integration using Travis-CI.|\n| 2017-02-03 | Added models where only trainable variables has been stored in the checkpoint. These are therefore significantly smaller. |\n| 2017-01-27 | Added a model trained on a subset of the MS-Celeb-1M dataset. The LFW accuracy of this model is around 0.994. |\n| 2017&#8209;01&#8209;02 | Updated to run with Tensorflow r0.12. Not sure if it runs with older versions of Tensorflow though.   |\n\n## Pre-trained models\n| Model name      | LFW accuracy | Training dataset | Architecture |\n|-----------------|--------------|------------------|-------------|\n| [20180408-102900](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1R77HmFADxe87GmoLwzfgMu_HY0IhcyBz) | 0.9905        | CASIA-WebFace    | [Inception ResNet v1](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodels\u002Finception_resnet_v1.py) |\n| [20180402-114759](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-) | 0.9965        | VGGFace2      | [Inception ResNet v1](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodels\u002Finception_resnet_v1.py) |\n\nNOTE: If you use any of the models, please do not forget to give proper credit to those providing the training dataset as well.\n\n## Inspiration\nThe code is heavily inspired by the [OpenFace](https:\u002F\u002Fgithub.com\u002Fcmusatyalab\u002Fopenface) implementation.\n\n## Training data\nThe [CASIA-WebFace](http:\u002F\u002Fwww.cbsr.ia.ac.cn\u002Fenglish\u002FCASIA-WebFace-Database.html) dataset has been used for training. This training set consists of total of 453 453 images over 10 575 identities after face detection. Some performance improvement has been seen if the dataset has been filtered before training. Some more information about how this was done will come later.\nThe best performing model has been trained on the [VGGFace2](https:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fdata\u002Fvgg_face2\u002F) dataset consisting of ~3.3M faces and ~9000 classes.\n\n## Pre-processing\n\n### Face alignment using MTCNN\nOne problem with the above approach seems to be that the Dlib face detector misses some of the hard examples (partial occlusion, silhouettes, etc). This makes the training set too \"easy\" which causes the model to perform worse on other benchmarks.\nTo solve this, other face landmark detectors has been tested. One face landmark detector that has proven to work very well in this setting is the\n[Multi-task CNN](https:\u002F\u002Fkpzhang93.github.io\u002FMTCNN_face_detection_alignment\u002Findex.html). A Matlab\u002FCaffe implementation can be found [here](https:\u002F\u002Fgithub.com\u002Fkpzhang93\u002FMTCNN_face_detection_alignment) and this has been used for face alignment with very good results. A Python\u002FTensorflow implementation of MTCNN can be found [here](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Fsrc\u002Falign). This implementation does not give identical results to the Matlab\u002FCaffe implementation but the performance is very similar.\n\n## Running training\nCurrently, the best results are achieved by training the model using softmax loss. Details on how to train a model using softmax loss on the CASIA-WebFace dataset can be found on the page [Classifier training of Inception-ResNet-v1](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FClassifier-training-of-inception-resnet-v1) and .\n\n## Pre-trained models\n### Inception-ResNet-v1 model\nA couple of pretrained models are provided. They are trained using softmax loss with the Inception-Resnet-v1 model. The datasets has been aligned using [MTCNN](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Fsrc\u002Falign).\n\n## Performance\nThe accuracy on LFW for the model [20180402-114759](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-) is 0.99650+-0.00252. A description of how to run the test can be found on the page [Validate on LFW](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FValidate-on-lfw). Note that the input images to the model need to be standardized using fixed image standardization (use the option `--use_fixed_image_standardization` when running e.g. `validate_on_lfw.py`).\n","# 使用 TensorFlow 的人脸识别 [![构建状态][travis-image]][travis]\n\n[travis-image]: http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet.svg?branch=master\n[travis]: http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet\n\n这是对论文《FaceNet: 用于人脸识别和聚类的统一嵌入》中描述的人脸识别器的 TensorFlow 实现（http:\u002F\u002Farxiv.org\u002Fabs\u002F1503.03832）。该项目还借鉴了牛津大学视觉几何组（http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002F）发表的论文《深度人脸识别》（http:\u002F\u002Fwww.robots.ox.ac.uk\u002F~vgg\u002Fpublications\u002F2015\u002FParkhi15\u002Fparkhi15.pdf）中的思想。\n\n## 兼容性\n代码已在 Ubuntu 14.04 系统上使用 TensorFlow r1.7、Python 2.7 和 Python 3.5 进行测试。测试用例可在此处找到：https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Ftest，测试结果可在 Travis CI 上查看：http:\u002F\u002Ftravis-ci.org\u002Fdavidsandberg\u002Ffacenet。\n\n## 最新动态\n| 日期     | 更新内容 |\n|----------|----------|\n| 2018-04-10 | 新增在 Casia-WebFace 和 VGGFace2 数据集上训练的新模型（见下文）。请注意，这些模型使用固定的图像标准化方法（参见 wiki：https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FTraining-using-the-VGGFace2-dataset）。 |\n| 2018-03-31 | 添加了一个更灵活的新输入管道，并进行了一系列小更新。 |\n| 2017-05-13 | 移除了许多较旧的非 Slim 模型，将最后一个瓶颈层整合到相应模型中，并修正了 Center Loss 的归一化问题。 |\n| 2017-05-06 | 增加了用于[基于用户自有图像训练分类器]的代码（参见 wiki：https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FTrain-a-classifier-on-own-images）。将 facenet_train.py 重命名为 train_tripletloss.py，facenet_train_classifier.py 重命名为 train_softmax.py。 |\n| 2017-03-02 | 新增了生成 128 维嵌入的预训练模型。|\n| 2017-02-22 | 更新至 TensorFlow r1.0，并引入了 Travis-CI 持续集成。|\n| 2017-02-03 | 新增了仅保存可训练变量的检查点模型，因此文件大小显著减小。|\n| 2017-01-27 | 新增了一个在 MS-Celeb-1M 数据集子集上训练的模型，其 LFW 准确率为约 0.994。|\n| 2017-01-02 | 更新至 TensorFlow r0.12 运行。不过不确定是否能在更早版本的 TensorFlow 上运行。   |\n\n## 预训练模型\n| 模型名称      | LFW 准确率 | 训练数据集 | 架构 |\n|-----------------|--------------|------------------|-------------|\n| [20180408-102900](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1R77HmFADxe87GmoLwzfgMu_HY0IhcyBz) | 0.9905        | CASIA-WebFace    | [Inception ResNet v1](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodels\u002Finception_resnet_v1.py) |\n| [20180402-114759](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-) | 0.9965        | VGGFace2      | [Inception ResNet v1](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fblob\u002Fmaster\u002Fsrc\u002Fmodels\u002Finception_resnet_v1.py) |\n\n注意：如果您使用任何模型，请务必向提供训练数据集的机构或个人致以适当的感谢。\n\n## 灵感来源\n该代码深受 OpenFace（https:\u002F\u002Fgithub.com\u002Fcmusatyalab\u002Fopenface）实现的启发。\n\n## 训练数据\n训练过程中使用了 CASIA-WebFace 数据集（http:\u002F\u002Fwww.cbsr.ia.ac.cn\u002Fenglish\u002FCASIA-WebFace-Database.html）。该数据集包含经过人脸检测后的 10,575 个身份共计 453,453 张图像。在训练前对数据集进行过滤后，性能有所提升。关于具体操作方法将在后续说明中介绍。\n表现最佳的模型是在 VGGFace2 数据集上训练的，该数据集包含约 330 万张人脸和 9,000 多个类别。\n\n## 预处理\n\n### 使用 MTCNN 进行人脸对齐\n上述方法的一个问题在于，Dlib 人脸检测器会漏检一些困难样本（部分遮挡、剪影等），这使得训练集过于简单，从而导致模型在其他基准测试上的表现较差。\n为了解决这一问题，我们尝试了其他人脸关键点检测器。其中，在这种场景下表现非常出色的检测器是 [多任务 CNN](https:\u002F\u002Fkpzhang93.github.io\u002FMTCNN_face_detection_alignment\u002Findex.html)。其 Matlab\u002FCaffe 实现可在 https:\u002F\u002Fgithub.com\u002Fkpzhang93\u002FMTCNN_face_detection_alignment 找到，并已成功用于人脸对齐，效果良好。此外，MTCNN 的 Python\u002FTensorFlow 实现也可在 https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Fsrc\u002Falign 找到。虽然该实现与 Matlab\u002FCaffe 版本的结果不完全一致，但性能非常接近。\n\n## 模型训练\n目前，使用 softmax 损失函数训练模型的效果最佳。有关如何在 CASIA-WebFace 数据集上使用 softmax 损失训练 Inception-ResNet-v1 模型的详细步骤，请参阅页面“Inception-ResNet-v1 的分类器训练”（https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FClassifier-training-of-inception-resnet-v1）。\n\n## 预训练模型\n### Inception-ResNet-v1 模型\n提供了几款预训练模型，它们均采用 Inception-ResNet-v1 架构，并使用 softmax 损失函数进行训练。这些模型所使用的数据集均已通过 [MTCNN](https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Ftree\u002Fmaster\u002Fsrc\u002Falign) 进行人脸对齐。\n\n## 性能\n模型 [20180402-114759](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-) 在 LFW 数据集上的准确率为 0.99650 ± 0.00252。运行测试的具体说明请参阅页面“在 LFW 上验证”（https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fwiki\u002FValidate-on-lfw）。请注意，输入模型的图像需要使用固定图像标准化方法进行预处理（例如，在运行 validate_on_lfw.py 时，请使用 --use_fixed_image_standardization 选项）。","# FaceNet 快速上手指南\n\nFaceNet 是一个基于 TensorFlow 的人脸识别系统，能够生成高质量的人脸嵌入向量（Embedding），用于人脸验证和聚类。本项目复现了论文《FaceNet: A Unified Embedding for Face Recognition and Clustering》中的核心算法。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Ubuntu 14.04 或更高版本（推荐 Linux 环境）\n*   **Python 版本**: Python 2.7 或 Python 3.5+\n*   **深度学习框架**: TensorFlow r1.7 (代码主要在此版本测试通过，高版本可能需要调整)\n*   **依赖库**:\n    *   `scipy`\n    *   `numpy`\n    *   `Pillow` (PIL)\n    *   `requests`\n    *   `opencv-python` (可选，用于部分图像处理)\n\n> **提示**：国内用户建议使用清华源或阿里源加速 pip 包安装。\n\n## 安装步骤\n\n### 1. 克隆项目代码\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet.git\ncd facenet\n```\n\n### 2. 安装 Python 依赖\n```bash\npip install -r requirements.txt\n# 如果 requirements.txt 不存在，可手动安装核心依赖：\n# pip install scipy numpy pillow requests opencv-python\n```\n\n### 3. 下载预训练模型\n项目提供了在 CASIA-WebFace 和 VGGFace2 数据集上训练的预训练模型。以下是性能最佳的 VGGFace2 模型（LFW 准确率 0.9965）：\n\n*   **模型名称**: 20180402-114759\n*   **架构**: Inception ResNet v1\n*   **下载地址**: [Google Drive Link](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1EXPBSXwTaqrSC0OhUdXNmKSh9qJUQ55-)\n\n下载后，将模型文件（`.pb` 或 checkpoint 文件）放置在项目目录下的 `models\u002F` 文件夹中。\n\n> **注意**：如果使用国内网络无法访问 Google Drive，请自行寻找国内镜像站点的备份资源。\n\n## 基本使用\n\nFaceNet 的核心功能是将人脸图像转换为 128 维的特征向量。以下是最简单的使用流程：对齐人脸并生成嵌入向量。\n\n### 1. 人脸对齐与特征提取\n使用提供的脚本对原始图片进行 MTCNN 人脸检测与对齐，并输出特征向量。\n\n```bash\npython src\u002Falign\u002Falign_dataset_mtcnn.py \\\n  ~\u002Fdatasets\u002Fraw_images \\\n  ~\u002Fdatasets\u002Faligned_images \\\n  --image_size 160 \\\n  --margin 32\n```\n*   `~\u002Fdatasets\u002Fraw_images`: 存放原始未处理人脸图片的文件夹。\n*   `~\u002Fdatasets\u002Faligned_images`: 输出对齐后图片的目标文件夹。\n*   `--image_size 160`: 输入模型的标准图像尺寸。\n*   `--margin 32`: 人脸框周围的边距。\n\n### 2. 生成嵌入向量 (Embeddings)\n使用预训练模型将对齐后的图像转换为特征向量。\n\n```bash\npython src\u002Ffacenet.py \\\n  ~\u002Fdatasets\u002Faligned_images \\\n  embeddings.npy \\\n  --model models\u002F20180402-114759\u002F20180402-114759.pb \\\n  --image_size 160 \\\n  --batch_size 100 \\\n  --use_fixed_image_standardization\n```\n*   `embeddings.npy`: 输出的特征向量文件路径。\n*   `--model`: 指向下载的预训练模型文件路径。\n*   `--use_fixed_image_standardization`: **关键参数**，必须添加此项以匹配预训练模型的标准化方式，否则准确率会大幅下降。\n\n### 3. 验证模型性能 (可选)\n如果您下载了 LFW (Labeled Faces in the Wild) 数据集，可以运行以下命令验证模型准确率：\n\n```bash\npython src\u002Fvalidate_on_lfw.py \\\n  ~\u002Fdatasets\u002Flfw \\\n  models\u002F20180402-114759\u002F20180402-114759.pb \\\n  --use_fixed_image_standardization \\\n  --distance_metric 1\n```\n\n生成的 `embeddings.npy` 文件可直接用于计算欧氏距离或余弦相似度，从而实现人脸识别或人脸聚类功能。","某大型园区安保团队正试图升级其访客管理系统，希望实现员工和注册访客的无感快速通行。\n\n### 没有 facenet 时\n- **身份核验效率低下**：保安必须人工比对证件照与现场人员，高峰期导致入口严重拥堵，单人通行耗时超过 15 秒。\n- **误识率居高不下**：传统算法难以应对光照变化或部分遮挡（如戴口罩），频繁出现将陌生人误判为员工的安全漏洞。\n- **维护成本高昂**：每次新增人员都需要重新采集大量不同角度照片并手动调整阈值，系统迭代极其繁琐。\n- **无法进行历史追溯**：缺乏统一的特征向量存储，难以在海量监控视频中以图搜图，快速定位特定人员的行动轨迹。\n\n### 使用 facenet 后\n- **毫秒级无感通行**：facenet 将人脸映射为 128 维特征向量，通过计算欧氏距离即可在毫秒内完成高精度匹配，通行时间缩短至 2 秒以内。\n- **鲁棒性显著增强**：基于 Inception ResNet 架构训练的模型能有效识别侧脸、暗光及遮挡情况下的人脸，LFW 数据集准确率高达 99.65%，大幅降低误放风险。\n- **扩展部署极简**：只需录入一张清晰照片即可生成特征入库，支持动态添加新类别而无需重新训练整个分类器，极大降低了运维门槛。\n- **高效轨迹追踪**：利用生成的固定维度嵌入向量，安保人员可迅速在数据库中检索目标人物，瞬间完成跨摄像头的行为轨迹分析。\n\nfacenet 通过将复杂的人脸图像转化为标准化的数学向量，从根本上解决了传统安防系统在精度、速度与扩展性上的核心瓶颈。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fdavidsandberg_facenet_3fec83a9.png","davidsandberg","David Sandberg","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fdavidsandberg_852e0570.jpg",null,"Stockholm, Sweden","david.o.sandberg@gmail.com","https:\u002F\u002Fgithub.com\u002Fdavidsandberg",[81,85],{"name":82,"color":83,"percentage":84},"Python","#3572A5",92.8,{"name":86,"color":87,"percentage":88},"MATLAB","#e16737",7.2,14320,4791,"2026-04-13T06:19:31","MIT",4,"Linux (Ubuntu 14.04)","未说明 (基于 TensorFlow 实现，通常建议 NVIDIA GPU，但 README 未明确型号或显存要求)","未说明",{"notes":98,"python":99,"dependencies":102},"该项目代码已在 Ubuntu 14.04 上使用 TensorFlow r1.7 测试通过。预处理步骤依赖 MTCNN 进行人脸对齐（项目内含 Python\u002FTensorFlow 实现）。提供的预训练模型（如 Inception-ResNet-v1）在运行时需要使用固定的图像标准化选项（--use_fixed_image_standardization）。注意：README 中提到的测试环境较旧（Python 2.7\u002F3.5, TF 1.7），在现代环境中运行可能需要调整依赖版本。",[100,101],"2.7","3.5",[103,104,105,106,107,108,109,110],"tensorflow==1.7","scipy","scikit-learn","opencv-python","matplotlib","Pillow","requests","psutil",[14,15],[113,114,64,115,116,117,118],"face-recognition","tensorflow","deep-learning","computer-vision","face-detection","mtcnn","2026-03-27T02:49:30.150509","2026-04-13T22:45:49.780534",[122,127,132,137,142,146],{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},32086,"如何在 C++ 或其他非 Python 环境中使用预训练模型时避免输出 NaN 值？","在 C++ 中调用模型时，如果将 phase_train 节点设为 false 导致输出全为 NaN，通常是因为缺少输入预处理步骤。Inception 系列的图要求输入矩阵的值必须归一化到 [-1, 1] 区间。你需要在将图像输入模型前执行 prewhiten() 操作（即减去均值并除以标准差），而不仅仅是缩放像素值。此外，phase_train 节点控制批归一化（BatchNorm）的行为：训练时为 true，推理时应为 false，但前提是输入数据必须经过正确的白化处理。","https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fissues\u002F357",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},32087,"使用 Triplet Loss 训练时模型不收敛或效果很差怎么办？","Triplet Loss 训练不收敛的一个常见原因是数据集质量不高。建议采用“清洗数据集”的策略：首先进行试运行，训练模型直到准确率达到 50-70%；然后分析误差，移除误差最大的前 10-20% 的图像（通常是标注错误或质量差的样本）；最后使用清洗后的数据重新训练。这种方法在 Microsoft 1M 等大规模数据集上已被验证有效。","https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fissues\u002F124",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},32088,"训练过程中出现 'FIFOQueue is closed and has insufficient elements' 错误如何解决？","该错误通常表示数据读取队列已空，无法提供足够的批次数据。常见原因包括：1. 数据集路径配置错误，导致程序找不到图片文件；2. 图片格式与代码中的解码函数不匹配（例如代码默认解码 PNG，但实际是 JPG）。解决方法是将代码中的 `tf.image.decode_png` 改为 `tf.image.decode_image` 以自动识别格式，并仔细检查 `--data_dir` 路径下是否包含符合预期结构的子文件夹和图片文件。","https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fissues\u002F338",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},32089,"如何验证预训练模型在 LFW 数据集上的性能？","验证步骤如下：1. 克隆 facenet 仓库并进入 src 目录；2. 下载预训练的 .pb 模型文件（如 facenet_213250_20170620.pb）；3. 设置环境变量以增大 protobuf 加载限制：`export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python`；4. 运行验证脚本：`python validate_on_lfw.py \u003Clfw_dataset_path> \u003Cmodel_path> --lfw_pairs=..\u002Fdata\u002Fpairs.txt --lfw_batch_size=100 --lfw_file_ext=jpg --image_size=160`。高性能模型在 LFW 上的准确率通常可达 0.995 以上。","https:\u002F\u002Fgithub.com\u002Fdavidsandberg\u002Ffacenet\u002Fissues\u002F339",{"id":143,"question_zh":144,"answer_zh":145,"source_url":141},32090,"为什么用 MS-Celeb-1M 训练的模型要在 LFW 数据集上验证？它们的特征向量兼容吗？","这是人脸识别领域的标准做法。MS-Celeb-1M 是一个大规模的训练数据集，用于让模型学习通用的人脸特征表示；而 LFW (Labeled Faces in the Wild) 是一个标准的基准测试数据集，用于评估模型的泛化能力和准确性。只要模型输出的嵌入向量（Embedding）维度一致（例如都是 128d 或 1792d），无论训练数据来自哪里，都可以直接在 LFW 上进行验证和对比。",{"id":147,"question_zh":148,"answer_zh":149,"source_url":131},32091,"在使用 Triplet Loss 训练 VGG 等数据集时程序崩溃，可能是什么原因？","程序在保存检查点时崩溃可能与显存不足或参数配置不当有关。建议检查以下配置：确保 `--people_per_batch` 和 `--images_per_person` 的乘积不超过显存限制；尝试降低学习率（如 0.01 可能过高，可尝试更小值）；确认 `--learning_rate_schedule_file` 路径正确且文件格式无误。此外，确保在训练前已按照项目文档对数据集进行了必要的对齐和裁剪预处理。",[]]