ARTICLE DETAIL

资讯详情

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

InsightFace:5 行代码检出人脸、比对是否同一人

InsightFace:5 行代码检出人脸、比对是否同一人 InsightFace5 行代码检出人脸、比对是否同一人【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是一个开源的 2D/3D 人脸分析项目把人脸检测、人脸识别、关键点对齐、属性分析打包成一个可安装的 Python 包不用自己训练模型就能在本地跑起人脸比对和人脸框提取。它适合什么活最常见的用法是身份核验手上有两张照片要判断是不是同一个人数据全程留在自己的机器上不管是相册整理还是照片查重都用得上。另一类活是批量出人脸框一张图里几十上百张脸需要自动把每张脸框出来并附带关键点供后续裁剪、打码或 3D 重建使用。InsightFace 把高精度的轻量检测器 SCRFD一种专门做人脸定位的网络、ArcFace 识别模型、106/68 点关键点标定和性别年龄属性打进 buffalo_l 这类模型包里调一次FaceAnalysis就能走完检测、对齐、识别、属性的整条链路。安装环境要求与两条命令仓库里的训练模块基于 PyTorch 1.6 和 MXNet 1.6~1.8但只跑 Demo 的话用不到这些。Python 库从 0.2 版本起改用 onnxruntime 做推理后端只用 CPU 就装onnxruntime要 GPU 得自己装onnxruntime-gpu。pip install -U insightface需要仓库源码示例图片、脚本时再克隆一份git clone https://gitcode.com/GitHub_Trending/in/insightface第一次人脸分析怎么跑仓库自带示例图 t1.jpg里面有 6 个人拿来直接验证。首次运行会自动把 buffalo_l 模型包约 326MB下载到~/.insightface/models/import cv2 from insightface.app import FaceAnalysis app FaceAnalysis(namebuffalo_l) app.prepare(ctx_id-1) faces app.get(cv2.imread(python-package/insightface/data/images/t1.jpg)) print(len(faces), faces[0].bbox, faces[0].embedding.shape)app.get返回一个 Face 对象列表每个对象里装着边界框、5/106 点关键点、性别年龄以及一个 512 维的 embedding——可以把它理解成这张脸的数字指纹。把结果再传回app.draw_on(img, faces)就能画出框、关键点和属性文字cv2.imwrite存盘即可。做 1:1 比对时分别取两张照片的face.embedding算余弦相似度再和阈值比较就能判断是否同一人。仓库示例 examples/face_recognition/insightface_app.py 默认阈值取 0.65并提醒按自己的业务场景调整一图多人时记得显式选定要比的那张脸示例取第一张检出的人脸。数据与选型检测器选哪个、模型包选哪个检测侧用的是 SCRFD下表是仓库公布的 WIDERFace 精度数据均在 VGA640×480分辨率单尺度测得出处见 detection/scrfd/README.md模型Easy (mAP)Medium (mAP)Hard (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识别侧默认的 buffalo_l 配 SCRFD-10GF 检测 ResNet50WebFace600KMR-ALL 得分 91.25、LFW 99.83、IJB-C(E4) 97.25轻量包 buffalo_sSCRFD-500MF MobileFaceNetMR-ALL 为 71.87够算力受限的场景用。结论很直接默认用 buffalo_l端侧或低配设备换 buffalo_s只要检测和识别、不要对齐和属性16MB 的 buffalo_sc 最小完整清单在 model_zoo/README.md。使用 InsightFace 的常见问题问画面角落的小脸总是漏检 答v1.0 起prepare()默认走 Auto 检测尺寸先用 128×128 和 640×640 两档分别检测、再统一 NMS 合并小脸和大脸都能覆盖。只有在追求速度时才改回固定 input_size。问装了 onnxruntimeGPU 却不生效 答onnxruntime本身只带 CPU 推理CUDA 要另装onnxruntime-gpu并在FaceAnalysis里指定providers[CUDAExecutionProvider]。问比对阈值 0.65 必须照抄吗 答不是那只是示例默认值。调低会多出误认调高会多出漏认稳妥的做法是攒一批业务里的真实坏例来回调。问能用于商用吗 答代码是 MIT 协议不限商用但附带的预训练模型buffalo 系列等仅限非商业研究使用商用需另行获取授权README.md 里写得很明确。问有没有不想写代码的入口 答1.0.1 起附带本地桌面应用 InsightFace Evaluation Studio支持 1:1 比对、1:N 检索和相册聚类数据和报告默认存在本地~/.insightface/gui不会自动上传详见 python-package/README.md。仓库里还能干什么人脸交换示例 inswapperexamples/in_swapper/ArcFace 识别训练PyTorch/MXNet/Paddle 多实现与 Partial FCrecognition/SCRFD 检测训练与 WIDERFace 评测detection/scrfd/容器化的 Web UI REST API可直接搭人脸搜索服务server/README.md从 buffalo_l 和 embedding 出发本地的人脸检测与比对就转起来了。之后想往深处走可以顺着 SCRFD 的训练代码或 3D 重建模块 reconstruction/ 继续拆InsightFace 基本能跟着你的项目一起长。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表