ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

5 分钟跑通 InsightFace 本地人脸检测:选型与调参指南

5 分钟跑通 InsightFace 本地人脸检测:选型与调参指南 5 分钟跑通 InsightFace 本地人脸检测选型与调参指南【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是开源 2D/3D 人脸分析工具箱它的 Python 库把检测、对齐、属性、识别四个环节合并成一次调用输入一张图本地人脸检测与 512 维身份向量一并产出全程离线不需要向任何云端发请求。它适合什么样的场景离线身份核验、相册去重数据合规要求图片不离开本机时InsightFace 的推理完全跑在本地 onnxruntime 上不起服务、不走网络比对结果只依赖两条 embedding 的余弦距离部署形态比自建服务轻量得多。端侧或低配机器的批量预处理最小的 buffalo_sc 模型包仅 16MB配套的 SCRFD-0.5GF 在 VGA 分辨率下单张推理约 3.6msVGA 单尺度口径适合在裁剪、打码、聚类之前先把框和关键点批量打出来。如何从 0 到第一次跑通本地人脸检测环境要求一行Python 3.xPython 库 0.2 起用 onnxruntime 作推理后端。git clone https://gitcode.com/GitHub_Trending/in/insightface pip install -U insightface首次运行FaceAnalysis时会自动拉取 buffalo_l 模型包约 326MB到~/.insightface/models/之后直接读缓存离线环境可提前手工下载 zip 解压到同一目录。最小脚本如下用的就是仓库里的示例图import cv2 import numpy as np from insightface.app import FaceAnalysis from insightface.data import get_image as ins_get_image app FaceAnalysis(namebuffalo_l, providers[CPUExecutionProvider]) app.prepare(ctx_id-1) # -1 表示 CPU0 表示 GPU img ins_get_image(t1) # 仓库自带示例图含 6 张人脸 faces app.get(img) # 返回 Face 对象列表 for f in faces: print(f.sex, f.age, f.embedding.shape) # 性别、年龄、512 维向量faces里每个Face带bbox四角坐标、kps5 点关键点、det_score以及识别用的embedding。仓库里 人脸交换示例 对同一张图断言len(faces)6可用来验证你的环境装对了。核心 API 拆解一次调用拿到什么app.get(img)输入是 BGR 格式 ndarray输出Face列表。关键参数在prepare里det_thresh默认 0.5控制检测置信度下限若只要框不要属性和识别用FaceAnalysis(allowed_modules[detection])跳过其余子模型能省掉对应的加载和计算。face.embedding512 维向量做过归一化后直接np.dot两个向量就是余弦相似度。仓库的 1:1 比对示例 就是把两张图的向量内积和 0.65 比较得出是否同一人。多人图里app.get会返回全部脸比对前必须自己选定目标脸示例的取法是第一张。app.prepare(ctx_id, det_size)ctx_id决定 CPU/GPUdet_size不传时走 Auto先以 128×128 和 640×640 两档尺寸各跑一遍 SCRFD 再做统一 NMS实现见 face_analysis.py 的DEFAULT_DET_SIZES。官方数据怎么选检测规格与模型包SCRFD 各规格在 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模型包层面尺寸与识别精度出处 model_zoo/README.md默认的 buffalo_l 为 326MB识别模型 ResNet50WebFace600KMR-ALL 91.25、LFW 99.83buffalo_s 159MBMR-ALL 71.87buffalo_sc 16MB精度同 buffalo_s 但去掉对齐与属性。结论日常直接 buffalo_l带宽或 CPU 受限换 buffalo_s只要检测加识别、不要框外的东西就 buffalo_sc。参数建议与常见坑 模型许可预训练模型buffalo 系列含自动下载的那份仅限非商业研究代码本身才是 MIT商用需按 README 中列出的邮箱单独申请授权。GPU 后端pip install -U insightface装到的 onnxruntime 默认只有 CPU 推理要跑 CUDA 需另装onnxruntime-gpu并在构造FaceAnalysis时传providers[CUDAExecutionProvider]见 python-package/README.md。小脸漏检别把det_size写成固定单值保持 Auto 的 128640 双尺度小目标主要靠 128 档召回。比对阈值0.65 只是示例默认值调低换误认上升、调高换漏认上升拿业务里真实的坏例对去标定别拍脑袋。多人图app.get返回所有检出的脸做 1:1 前按bbox位置或det_score选脸否则结果依赖检出顺序。仓库里的延伸入口Python 库文档安装、模型包清单、自定义 ONNX 调用模型列表识别、检测、对齐各模型精度与规模SCRFD 训练与评测WIDERFace 数据准备、NAS 搜索流程1:1 比对示例embedding 余弦相似度完整写法自托管搜索服务容器化 Web UI REST API Python 客户端先把上一节的脚本跑通确认 t1 检出 6 张脸、性别年龄与 512 维输出都正常之后再按业务走向打开detection/scrfd/调检测器或打开server/把它变成可注册、可检索的服务。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表