ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

InsightFace 人脸检测与 1:1 比对实战:5 分钟跑通本地人脸分析

InsightFace 人脸检测与 1:1 比对实战:5 分钟跑通本地人脸分析 InsightFace 人脸检测与 1:1 比对实战5 分钟跑通本地人脸分析【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是一个开源的 2D/3D 人脸分析项目核心能力就两件事在图片里找到每张人脸的位置人脸检测以及判断两张照片里的人是不是同一个人人脸识别 1:1 比对。检测与识别都基于预训练模型不需要你自己训练官方 Python 库首次运行时还会自动下载模型数据全程留在本机、不出机器。下面从安装讲到第一次出结果再讲清楚哪些参数值得调、哪些坑要避开。InsightFace 到底是什么一个打包好的人脸分析工具箱InsightFace 把检测、识别、关键点对齐、属性分析四类模型打包成模型包一次FaceAnalysis调用就能跑完整条流程。各能力对应的模型如下能力包内模型作用人脸检测SCRFDICLR-2022 论文提出的高效检测器框出每张脸的位置人脸识别ArcFace 系列默认包用 ResNet50WebFace600K产出 512 维人脸向量对齐2D 106 点 / 3D 68 点关键点模型标出脸部关键点坐标属性性别年龄模型输出性别与年龄段四类全齐的包叫 buffalo_l是当前默认包另有更轻的 buffalo_s以及只含检测加识别的 buffalo_sc怎么选看下文问答。安装 InsightFace 并拿到第一次结果环境要求与最短脚本环境要求只有一条Python 3.x。唯一要注意的是推理后端——0.2 版本起换成了 onnxruntime只用 CPU 就装onnxruntime要跑 GPU 需自行安装onnxruntime-gpu调用时再指定 CUDA 后端。git clone https://gitcode.com/GitHub_Trending/in/insightface pip install -U insightface pip install onnxruntime然后是最短可运行脚本。首次执行会把约 326MB 的 buffalo_l 包自动下载到~/.insightface/models/import cv2 from insightface.app import FaceAnalysis app FaceAnalysis(namebuffalo_l) app.prepare(ctx_id-1) # -1 表示用 CPU faces app.get(cv2.imread(python-package/insightface/data/images/t1.jpg)) print(len(faces)) # 示例图里有 6 个人跑完打印出 6说明仓库自带的 t1.jpg 里六张脸全部被检出。读懂输出一个 Face 对象里都有什么app.get(img)返回的是 Face 对象列表每张脸一个。每个对象里装着四类信息。bbox是人脸外接框即这张脸在图里的哪个位置做人脸裁剪或打码就靠它。kps是关键点坐标默认包支持 2D 106 点和 3D 68 点可以理解为脸的骨架定位点点数越多后续做 3D 重建就越准。性别与年龄是属性模型的直接输出。最后是embedding一个 512 维浮点向量这是识别比对的核心作用像银行柜台的密语编号——同一人的两张照片会生成两个略有差别的编号而不同人的编号相距很远比对的就是这个距离。想把结果画出来把图与 faces 一起传给app.draw_on(img, faces)即可得到带框、关键点、属性文字的图再cv2.imwrite存盘。人脸 1:1 身份比对余弦相似度与阈值怎么调比对原理很直接两张照片分别过一遍app.get各取一个 embedding算余弦相似度——两个向量夹角的余弦值越接近 1 说明方向越一致——再和阈值比较。官方示例 examples/face_recognition/insightface_app.py 默认阈值取0.65并明确提示要按业务调整。调参逻辑不复杂想少误认把陌生人认成目标就调高阈值想少漏认同一人没认出来就调低。最稳的做法是攒一批业务里的真实坏例——该拒的、该过的各来一些来回调到两边都能接受。另外一图多人时你得自己决定比哪张脸示例的处理是直接取第一张检出的人脸。人脸检测精度与速度实测怎么选档位检测侧全部是 SCRFD一种高精度轻量级检测器。下表为官方公布的 WIDERFace 单尺度 mAP在 VGA640×480分辨率下测得出处 detection/scrfd/README.md模型Easy mAPMedium mAPHard mAP参数量 (M)推理耗时 (ms)SCRFD-0.5GF90.5788.1268.510.573.6SCRFD-2.5GF93.7892.1677.870.674.2SCRFD-10GF95.1693.8783.053.864.9SCRFD-34GF96.0694.9285.299.8011.7取舍一目了然0.5GF 到 34GF 在 Hard 档拉开 16 分以上耗时约 3 倍。识别侧默认的 buffalo_lSCRFD-10GF ResNet50在 MR-ALL 上 91.25、LFW 99.83、IJB-C(E4) 97.25轻量包 buffalo_sSCRFD-500MF MobileFaceNetMR-ALL 为 71.87算力受限的场景选它不亏。常见问题模型包怎么选、GPU 怎么开问buffalo_l、buffalo_s、buffalo_sc 到底选哪个答追求精度用默认的 buffalo_l端侧或低配设备选 buffalo_s159MB只要检测和识别、不要对齐与属性16MB 的 buffalo_sc 最小。完整参数对照见 model_zoo/README.md 问图片里的小脸总是漏检怎么办答v1.0 起prepare()默认是 Auto 模式会先按 128×128 和 640×640 两档尺寸各跑一遍检测再统一 NMS合并重叠框的去重步骤出结果大小脸都能覆盖追求速度时才改成固定 input_size。问怎么启用 GPU 加速答onnxruntime只含 CPU 推理。跑 CUDA 要先装onnxruntime-gpu在FaceAnalysis里传providers[CUDAExecutionProvider]并把prepare的ctx_id从 -1 改成 0。问模型下载失败或太慢答也可以手动下载 zip 包解压到~/.insightface/models/后再运行程序效果等同。问可以商用吗答代码本身是 MIT 协议学术商用均可但附带的预训练模型含 buffalo 系列仅限非商业研究商用需另行获取授权README.md 里写得很清楚。继续深入官方文档与仓库模块索引想从跑通 Demo走向改出效果按模块索引往下走Python 库安装、模型包列表、调用自定义 ONNX 模型python-package/README.mdSCRFD 检测训练代码与 WIDERFace 数据准备detection/scrfd/ArcFace 识别的多框架训练实现PyTorch/MXNet/Paddle与 Partial FCrecognition/人脸交换示例inswapper与 3D 重建、视线估计等进阶方向reconstruction/装好包、调一次FaceAnalysis、读一下 embedding本地检测加比对的链路就全通了。接下来是抠训练代码还是碰 3D 重建取决于你的项目想长到哪一步。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表