news 2026/9/9 18:07:14

InsightFace 人脸检测与识别上手指南:3 步装好,一图 6 张脸全框出,本地比对手把手跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
InsightFace 人脸检测与识别上手指南:3 步装好,一图 6 张脸全框出,本地比对手把手跑通

InsightFace 人脸检测与识别上手指南:3 步装好,一图 6 张脸全框出,本地比对手把手跑通

【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface

InsightFace 是开源社区做 2D/3D 人脸分析的标杆工具箱:人脸检测与人脸识别一次调用出结果,顺带把关键点、性别年龄属性一并给到。它最擅长两类活儿——判断两张照片是否同一人(数据全程留在本机不上传),以及把一张大图里几十上百张脸自动框出、交给下游做裁剪或打码。下文用官方 Python 库,几分钟搭出一个本地比对 Demo,预训练权重自动下载,无需自己训练模型。

能力总览:检测、识别、对齐、属性一次调用

  • 人脸检测:SCRFD 系列(0.5GF~34GF 多档),框出人脸并给 5 点 / 106 点关键点;
  • 人脸识别:ArcFace 系列,输出 512 维 embedding;
  • 对齐与属性:106/68 点标定,性别、年龄;
  • 以上能力打包成buffalo_l等模型包,调一次FaceAnalysis全流程跑完。

安装与首次运行:两条命令加七行脚本

环境要求:Python 3.x 起步;仓库里的训练代码对应 PyTorch 1.6+ 或 MXNet 1.6~1.8。Python 库 0.2 之后推理后端换成 onnxruntime,CPU 场景装 onnxruntime 本体即可,GPU 需手动装 onnxruntime-gpu。

git clone https://gitcode.com/GitHub_Trending/in/insightface pip install -U insightface

再跑一段 7 行最小脚本,用的是仓库自带示例图 t1.jpg:

import cv2 from insightface.app import FaceAnalysis app = FaceAnalysis(name='buffalo_l') app.prepare(ctx_id=-1) # -1 表示用 CPU img = cv2.imread('python-package/insightface/data/images/t1.jpg') faces = app.get(img) print(len(faces), faces[0].embedding.shape)

第一次运行时,库会自动拉取 buffalo_l 全套权重(约 326MB),缓存在~/.insightface/models/下,之后再跑就是本地加载。返回值是一个人脸对象列表,每个对象带边界框、5 点或 106 点关键点、性别年龄,外加一段 512 维的 embedding——相当于给每张脸发一个"脸部身份证号",两张照片的号越接近,越可能是同一个人。

两个最常用的用法:批量框脸与 1:1 比对

批量框脸并绘制app.get(img)返回图里全部人脸对象,继续传给app.draw_on(img, faces),框线、关键点、属性文字即刻画好,cv2.imwrite存盘即可。示例图 t1.jpg 里正好 6 张脸,仓库里的 inswapper 交换 Demo 也拿它当输入,直接断言len(faces)==6

1:1 同一人比对:两张图各取face.embedding,算一次余弦相似度,和阈值比大小即可定夺。仓库示例 examples/face_recognition/insightface_app.py 里默认阈值0.65:取低了容易误认、取高了容易漏认,请按自己的业务场景回测。一图多人时记得自己挑要比的那张脸,示例代码取的是第一张检出的人脸。

官方性能基准数据:SCRFD 检测指标与识别得分

下表是仓库公布的 SCRFD 各档检测数据,mAP 均在 640×480 的 VGA 档单尺度下测得:

检测模型Easy (mAP)Medium (mAP)Hard (mAP)参数量 (M)推理耗时 (ms)
SCRFD-0.5GF90.5788.1268.510.573.6
SCRFD-2.5GF93.7892.1677.870.674.2
SCRFD-10GF95.1693.8783.053.864.9
SCRFD-34GF96.0694.9285.299.8011.7

识别侧,默认包buffalo_l(配 SCRFD-10GF 检测 + ResNet50@WebFace600K 识别)在 MR-ALL 拿 91.25,LFW 99.83,IJB-C(E4)97.25;轻量包buffalo_s(SCRFD-500MF + MobileFaceNet)MR-ALL 只有 71.87,留给算力吃紧的设备。数据出处:detection/scrfd/README.md 与 model_zoo/README.md。

🎯 模型包怎么选:buffalo_l / buffalo_s / buffalo_sc

场景推荐模型包说明
精度优先(默认)buffalo_l326MB,检测+识别+对齐+属性全开
端侧 / 低配设备buffalo_s159MB,识别走 MobileFaceNet
只要检测 + 识别buffalo_sc16MB 最小,无对齐与属性

开工前必看的 4 件事

  1. 小脸怕漏检?prepare()默认按 128×128、640×640 双档输入分别检测,再统一走 NMS 合并去重;只有极致追速度时才把 input_size 写死。
  2. GPU 别装错后端:onnxruntime 本体只带 CPU 推理;要跑 CUDA,需另装 onnxruntime-gpu,并给FaceAnalysis的 providers 参数填CUDAExecutionProvider
  3. 阈值不是万能的0.65只是示例默认值,建议拿业务里的真实坏例反复回测再定。
  4. License 边界心里有数:代码走 MIT 协议,但 buffalo 系列预训练权重仅限非商业研究,商用必须另行授权,README.md 中交代得很清楚。

进阶入口:从训练代码到自建人脸搜索服务

  • python-package/README.md:Python 库安装细节、模型包清单与自定义 ONNX 调用方式。
  • examples/face_recognition/insightface_app.py:1:1 比对完整样例,含阈值处理与多人图兜底逻辑。
  • detection/scrfd/:SCRFD 训练与 WIDERFace 评测代码。
  • recognition/:ArcFace 的 PyTorch / MXNet / Paddle 多套实现与 Partial FC。
  • examples/in_swapper/:inswapper 人脸交换入口。
  • reconstruction/:3D 人脸重建、视线估计等进阶方向。
  • model_zoo/README.md:全部模型包与识别指标总表。
  • server/README.md:容器化 Web UI + REST API 的自建人脸搜索服务。

从装包、调一次 FaceAnalysis 到读 embedding,检测、识别、对齐、属性这条链路一个 pip 包就装齐了。下一步不妨沿 SCRFD 训练代码或 3D 重建模块继续深挖,它会跟着你的项目一起长大 ✨

【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 18:07:13

三菱PLC与MCGS组态触摸屏的广场喷泉控制系统设计与实现

干过广场喷泉项目的人应该都有体会——这活儿看着简单,真正做起来全是细节。水泵怎么起停、水型怎么变化、现场操作怎么方便、半夜无人值守时怎么自动跑,哪一个环节没想清楚,调试阶段就得返工加班。我从接触三菱PLC和MCGS组态触摸屏这套组合到…

作者头像 李华
网站建设 2026/9/9 18:06:22

隐私计算技术全解析:主流路线对比与工程选型指南

刚接触隐私计算的人,十有八九会把“隐私计算技术有哪些”当成一个纯列举问题,最好能直接甩出来一张清单,照着选就行。但真钻进去之后会发现,这个清单远没有想象中那么整齐:有的技术解决的是“数据不出域也能参与计算”…

作者头像 李华
网站建设 2026/9/9 18:06:14

测试准入准出标准怎么定?从缺陷管理到发布门槛的落地指南

这篇内容想解决什么问题先说明一下,"测试准入准出标准规范"这个名字一听就是偏传统软件测试方向的东西,但别急着划走。我做质量保障和测试管理已经快十年,见过太多团队其实不是不会测,而是不知道怎么定义"什么时候…

作者头像 李华
网站建设 2026/9/9 18:05:14

KCF抗遮挡改进:状态机与模板冻结的C++实战

简介:核化相关滤波(KCF)目标跟踪的C实现往往以学术代码为主,而这份资源额外融入了抗遮挡的‘记忆性’优化,面向计算机视觉领域的开发者与研究者。压缩包共87个文件、5.82MB,包含Visual Studio工程文件&…

作者头像 李华
网站建设 2026/9/9 18:05:03

AI重拓扑插件实战指南:从参数设置到批量管线集成

直接说结论:AI重拓扑插件,解决的是3D建模里最让人烦躁的布线整理问题。建模阶段你用雕刻笔刷爽快地把高模糊出来了,接下来要做UV、做动画、做贴图烘焙,却发现模型面数爆炸、布线混乱,手动重新拓扑一个小零件都像在做针…

作者头像 李华
网站建设 2026/9/9 18:04:53

VTK 8.2升级9.5 Windows实战:编译配置与API迁移避坑指南

VTK版本升级这件事,在Windows上往往比在Linux上更容易让人怀疑人生。我这次是从8.2升到9.5,跨度不算小,中间断断续续折腾了将近两周,编译报错、运行时崩溃、渲染黑屏全遇到过一遍。如果你正准备把手头的老项目从低版本VTK迁到9.5&…

作者头像 李华