ARTICLE DETAIL

资讯详情

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

5 行代码跑通 SCRFD 人脸检测:InsightFace 实时检测算法选型与部署指南

5 行代码跑通 SCRFD 人脸检测:InsightFace 实时检测算法选型与部署指南 5 行代码跑通 SCRFD 人脸检测InsightFace 实时检测算法选型与部署指南【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 的 SCRFD 是一款兼顾速度与精度的人脸检测算法能在手机 CPU 上 3.6 毫秒内框出人脸并定位 5 个关键点常用于考勤登录、支付刷脸等实时场景。它能帮你解决什么实时刷脸登录手机或嵌入式设备端 3~5ms 完成人脸框检测满足支付、门禁的交互延迟要求多尺度监控同一画面里既有近景大脸也有远景小脸SCRFD 用多尺度锚框逐层覆盖减少漏检人脸对齐_KPS版本直接输出双眼、鼻尖、双嘴角 5 个关键点供后续 ArcFace 特征提取使用属性初筛流水线检测框直接喂给年龄、性别、口罩、活体等下游模块一个前端统一接口工作原理一次讲清多尺度基础锚框。传统检测器在每个特征图位置只放一组固定大小的锚框遇到 20 像素小脸或 400 像素大脸都会力不从心。SCRFD 把步长 8/16/32 配成 16、64、256 三档基础尺寸让不同层特征各管各的尺度段具体参数在 detection/scrfd/configs/scrfd/scrfd_2.5g.py 中可查。轻量特征金字塔。主干只取 24/48/48/80 四组通道经 PAFPN 融合后统一压到 24 通道再送检测头参数量比同精度 ResNet 方案少一半以上——这是 500M 版本能在手机上跑的基础。自适应正样本选择ATSS。训练时不再用固定 IoU 阈值硬切正负样本而是按每个位置的特征统计量自动挑出 top-9 个最可靠样本小脸的正样本不再被大框挤掉Hard 子集精度因此显著提升。5 个 SCRFD 规格怎么选所有精度在 WIDER Face 验证集VGA 分辨率上测得推理耗时为单线程 CPUAMD Ryzen 9 3950X规格参数量 (M)FLOPsHard mAP推理 (ms)选型建议500M0.570.51G68.53.6手机端 / 资源极度受限能接受中等精度2.5G0.672.53G77.94.2多数场景首选精度与速度平衡10G3.869.98G83.14.9服务器 GPU 或大核 CPU需要高召回34G9.8034.13G85.311.7离线批量评测对延迟不敏感需要关键点输出时选对应_KPS版本Hard mAP 只降 0.5 左右耗时多 0.1ms几乎无感。5 行代码跑通 SCRFD 推理from detection.scrfd.tools.scrfd import SCRFD # ONNX Runtime 推理封装 import cv2 det SCRFD(model_filescrfd_2.5g.onnx) det.prepare(ctx_id-1) # -1 CPUGPU 改 0 img cv2.imread(test.jpg) bboxes, _, kpss det.detect(img, thresh0.5, input_size(640, 640)) print(f检测到 {len(bboxes)} 张人脸)第一行加载 ONNX 权重并初始化推理会话prepare指定 CPU 或 GPU 执行器detect内部完成归一化、前向推理和 NMS返回每个检测框的坐标、置信度以及KPS 版本5 个关键点完整逻辑见 detection/scrfd/tools/scrfd.py。服务器、手机、边缘设备三种部署取舍服务器端GPU 多路并发多路视频流走 ONNX Runtime CUDA 或 TensorRT FP16 引擎单卡 T4 可支撑 16 路 1080p 10G 模型FLOPs 随规格线性增长先按摄像头数量反推单帧预算再定规格。移动终端手机 CPU 单线程优先 500M 版本配 ncnn 或 MNN 做 INT8 量化单线程 3.6ms要关键点就换_KPS版多 0.1ms 基本无感。边缘设备Jetson / RK3588 交叉编译Jetson 走 TensorRT INT8 路径需少量校准数据RK3588 等 ARM 平台用 InspireFace C SDK 的交叉编译脚本cpp-package/inspireface/command/直接出 aarch64 包省掉手写部署。精度偏低、小脸漏检4 个高频问题Q为什么实测精度比 README 表里低表里 mAP 是 VGA640×480固定输入测的。如果你喂了更小的input_size比如 320×240小脸分辨率不够Hard 子集会掉 10 个点以上。Q远处小脸检测不到怎么办把input_size提到 (1280, 1280)或换 10G/34G 版本500M 的第三层特征图分辨率只有 15×19物理上盖不住 16px 以下的脸。Q_KPS和不带_KPS的模型怎么选下游要做人脸对齐或 ArcFace 特征提取就选_KPS多一个关键点回归头Hard mAP 只降 0.5 左右纯画框检测用非 KPS 版即可。Q输入尺寸一定得是 640×640 吗不是。scrfd2onnx.py导出的默认模型支持动态输入prepare里传什么就用什么但宽高比尽量接近原图否则拉伸会损失精度。检测之后接什么识别、ONNX 导出与服务化接 ArcFace 做识别SCRFD 输出的框和关键点直接喂给 examples/face_recognition/insightface_app.py 里的FaceAnalysis检测 识别一条流水线跑通转 ONNX 部署训练完的 mmdet 权重用tools/scrfd2onnx.py一键导出默认动态 shape也可--shape 640 640固定后过 onnx-simplifier 再喂 TensorRT看完整基准与论文detection/scrfd/README.md 里有 WIDER Face 全量对比和 5 个预训练模型下载ICLR 2022 论文解释了 ATSS 和两步网络搜索的细节跑通检测只是起点InsightFace Server 把 SCRFD 检测、ArcFace 识别、人脸库管理封成一套带 Dashboard 的本地服务拿来验证多模态串流的端到端效果最省事。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表