ARTICLE DETAIL

资讯详情

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

InsightFace 本地人脸检测与身份比对:从 5 分钟 Demo 到调优与自建服务的完整路径

InsightFace 本地人脸检测与身份比对:从 5 分钟 Demo 到调优与自建服务的完整路径 InsightFace 本地人脸检测与身份比对从 5 分钟 Demo 到调优与自建服务的完整路径【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是开源的 2D/3D 人脸分析工具箱覆盖人脸检测、1:1 身份比对、关键点对齐与性别年龄属性。不用训练模型、不用上传云端装好官方 Python 包后预训练模型自动下载几分钟就能回答这两张照片是不是同一个人。下文按最小 Demo → 效果数据 → 调优 → 进阶排布可以按需跳读。先说清楚它替你做了什么从一个具体任务倒推最直观判断两张照片是不是同一个人。这件事需要三件事——找出人脸检测器 SCRFD 负责输出人脸框和关键点、提取可比对的指纹识别模型输出一串数字向量同一人的照片指纹相近不同人相远、把脸转正对齐关键点标定是识别精度的前提。InsightFace 把检测、识别、对齐、属性四条链路打包进 buffalo 系列模型包一次FaceAnalysis调用全部跑完你只写取图、调模型的代码。5 分钟跑通装包、下模型、读指纹环境要求Python 3.x推理后端从 0.2 版本起是 onnxruntime——只用 CPU 装onnxruntime即可要 GPU 另装onnxruntime-gpu。下面的脚本在装好insightface和opencv后直接运行预期输出检测张数、512 维指纹维度以及每张脸的性别年龄pip install -U insightfaceimport cv2 from insightface.app import FaceAnalysis app FaceAnalysis(namebuffalo_l, providers[CPUExecutionProvider]) app.prepare(ctx_id-1) # -1 表示 CPU首次运行自动下载模型包 img cv2.imread(python-package/insightface/data/images/t1.jpg) faces app.get(img) print(检测到, len(faces), 张脸) for f in faces: print(512 维指纹, f.embedding.shape, 性别/年龄, f.sex, f.age)首次运行会把默认的buffalo_l包约 326MB下载到~/.insightface/models/。返回的Face对象里常用的字段bbox人脸框、kps5 点关键点、embedding512 维识别指纹、gender/age性别年龄。指纹怎么用比对、绘制与换脸1:1 身份比对。分别取两张照片的face.embedding算余弦相似度与阈值比较即可下结论。官方示例 examples/face_recognition/insightface_app.py 默认阈值取0.65示例代码注明请按业务场景自行调整一张图里有多张脸时示例直接取第一张检出的人脸——多图场景建议先按bbox位置自己选定要比的那张。检测可视化。app.draw_on(img, faces)会在图上画出人脸框、关键点和性别年龄文字配合cv2.imwrite存盘即可交付上图就是示例常用的t1.jpg里面共有 6 张人脸。一行换脸。仓库还内置了 128×128 分辨率的人脸交换insightface.model_zoo.get_model(inswapper_128.onnx, downloadTrue, download_zipTrue)拿到 swap 模型后对图中每张脸调用swapper.get(res, face, source_face, paste_backTrue)做身份迁移。官方示例 examples/in_swapper/inswapper_main.py 用上面的 t1 图并断言len(faces)6注意该 swap 模型只接受 buffalo_l 的 arcface 指纹。效果数据多准、多快数字出自哪检测模型 SCRFD 系列mAP 在VGA640×480单尺度测试出处 detection/scrfd/README.md 与 model_zoo/README.md模型Easy (mAP)Medium (mAP)Hard (mAP)参数量 (M)推理耗时 (ms)SCRFD-500M90.5788.1268.510.573.6SCRFD-2.5GF93.7892.1677.870.674.2SCRFD-10GF95.1693.8783.053.864.9SCRFD-34GF96.0694.9285.299.8011.7识别侧按模型包看出处同上两份 README 的 accuracy 表模型包组成大小MR-ALLLFWCFP-FPAgeDB-30IJB-C(E4)buffalo_l默认SCRFD-10GF ResNet50WebFace600K326MB91.2599.8399.3398.2397.25buffalo_sSCRFD-500MF MobileFaceNet159MB71.8799.7098.0096.5895.02规律很清晰识别精度与算力预算大致成正比——buffalo_l 全面领先buffalo_s 在 LFW 这类基准上差距不大但 MR-ALL 掉到 71.87适合端侧。参数与坑四条判断依据加一条 License模型包按场景选默认buffalo_l精度最高端侧或低配设备用buffalo_s只要检测识别、不要对齐和属性时16MB的buffalo_sc最小。五个包的完整对比见 python-package/README.md。小脸容易漏检v1.0 起prepare()的 Auto 检测尺寸默认用 128×128 和 640×640 两档检测再统一 NMS 合并小脸召回明显更好只有追求极致速度时才改回固定input_sizepython-package/README.md 的 1.0 变更日志。GPU 后端别装错onnxruntime只含 CPU 推理。要跑 CUDA 需手动安装onnxruntime-gpu并传providers[CUDAExecutionProvider]、ctx_id设为对应 GPU 序号。阈值 0.65 不是标准答案调低会增加误认调高会增加漏认。用业务里的真实坏例被误认/被漏认的样本对来回调才有依据。License 边界代码是MIT商用不受限但附带的预训练模型buffalo 系列等仅限非商业研究商用需另行获取授权——README.md 的 License 一节写得很明确。下一步去哪 model_zoo/README.md全部预训练模型清单与精度表想自建或替换模型先看这里。python-package/模型包列表、调用自定义 ONNX 模型、桌面 GUI 的安装与使用说明。detection/scrfd/SCRFD 检测的训练与 WIDERFace 评测代码适合要调自己的检测器的人。recognition/ArcFace 的 PyTorch/MXNet/Paddle 多实现与 Partial FC适合训练自己的识别模型。examples/in_swapper/换脸示例一行代码做身份迁移。reconstruction/3D 重建、视线估计等进阶方向。server/自带 Web UI REST API 的人脸搜索服务单容器即可自建。收个尾整条链路其实就三步装包、FaceAnalysis加载模型、读embedding。剩下的都是按预算做选择——buffalo_l 还是 buffalo_s、Auto 尺寸还是固定尺寸、阈值落在哪里。Demo 跑通后顺着 examples/face_recognition/insightface_app.py 换成你自己的两张照片就是最快的下一步 ✨【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表