SCRFD 人脸检测为什么快 5 倍?轻量级人脸检测算法完整指南
SCRFD 人脸检测为什么快 5 倍轻量级人脸检测算法完整指南【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface8 路视频流每帧要定位几十张人脸检测模块的延迟立刻成为系统瓶颈。SCRFD 是 InsightFace 项目里的一款轻量级人脸检测算法0.67M 参数拿到约 93% 的 WIDERFace 精度单帧 VGA 输入 4ms 左右跑完。图注SCRFD 人脸检测的输出框、关键点可直接串联活体、属性等下游任务。 SCRFD 人脸检测算法选型对比为什么选小模型WIDERFaceVGA 输入上几条主流路线的取舍见下表方案Easy 精度VGA 延迟参数量适用场景RetinaFace (ResNet50)94.92%21.7ms29.5MGPU 算力充裕的离线处理RetinaFace (MobileNet0.25)87.78%7.9ms0.44M移动端精度偏低SCRFD-500M90.57%3.6ms0.57M嵌入式、高并发SCRFD-2.5G93.78%4.2ms0.67M实时视频流SCRFD-10G95.16%4.9ms3.86M对精度要求更高RetinaFace-R50 精度只高 1.14 个点延迟却是 SCRFD-2.5G 的 5 倍、参数量 44 倍。高并发和嵌入式场景的约束是延迟和内存不是那 1 个点这正是小模型的主场。⚡ SCRFD 人脸检测为什么快速度优势主要来自两处改动。锚框压到最少。传统单阶段检测器给每个特征网格固定 3~9 个锚框网络要为每个锚框做分类和回归一次推理产生上千个候选其中绝大多数是负样本。SCRFD 把每个网格压缩到 1~2 个锚框改由特征点直接预测框偏移锚框相关计算量降一个数量级也不再被预设锚框尺寸对不上真实人脸的问题拖累。颈部通道保持极小。SCRFD 用 PAFPN 结构把高层语义特征和下层细节特征打通但融合后只输出 24 通道远小于常见的 256。检测头的计算量由通道数主导通道数砍掉九成总 FLOPs 就压到 2.5G约为 RetinaFace-R5037.6G的七分之一。两者叠加解释了 SCRFD又小又快的原因不是把大模型压缩而是换了一条设计路线。 SCRFD 最小上手示例环境很轻Python 3.8 装insightface和onnxruntime即可模型首次运行自动下载。图注insightface 包自带的人群场景示例图6 张人脸同框适合做检测测试用例。import cv2, insightface app insightface.app.FaceAnalysis(allowed_modules[detection]) app.prepare(ctx_id-1, det_thresh0.5) # ctx_id: -1 为 CPU0 为 CUDA faces app.get(cv2.imread(photo.jpg))返回的每个 Face 对象包含bbox人脸框坐标kps5 点关键点det_score置信分数det_size默认走 (128,128) → (640,640) 的两级级联小图先过小编码、大图落到 640速度召回自动平衡。训练与评测源码在detection/scrfd/模块基于 mmdetection。 SCRFD 人脸检测性能对比下表为项目 README 给出的单帧实测数据WIDERFace VGA 标准硬件 / 输入SCRFD-500MSCRFD-2.5GSCRFD-10GGPU640×480 输入3.6ms4.2ms4.9msRyzen 9 3950X CPU 单线程640×48028.3ms——Ryzen 9 3950X CPU 单线程320×24011.4ms——两个数字值得注意CPU 单线程 640×480 约 28.3ms接近 35 FPS输入分辨率减半后 11.4ms翻到 87 FPS。GPU 上三种规模的延迟基本持平3.6 → 4.9ms精度差 4 个点按预算挑最大的即可。 人脸检测 ONNX 部署避坑清单图注模型准备、剪枝/量化/蒸馏到多后端推理部署的通用流程SCRFD 的 ONNX 部署遵循同一条路径。输入尺寸det_size是最大杠杆CPU 上 640×480 降到 320×240延迟从 28.3ms 降到 11.4ms代价是小人脸漏检置信阈值det_thresh默认 0.5误检多调到 0.7漏检多降到 0.3先调它再调别的推理后端CPU 用 CPUExecutionProvider 并把线程数设为核数GPU 换 CUDAExecutionProvider端侧转 OpenVINO 或 TensorRT 还能再快量化INT8 量化让模型体积和访存减半注意小人脸召回可能掉 0.5~1 个点上线前用自有数据回归验证NMS 阈值nms_thresh默认 0.4人群密集场景降到 0.3避免相邻人脸被过度合并收尾SCRFD 目前是高并发和嵌入式场景实时人脸检测的首选同一个 ONNX 文件可以从 PC 搬到端侧InsightFace 生态里的识别、活体、3D 重建模块检测跑通后可以直接串起来。把预训练 SCRFD-2.5G 拉下来接到你自己的视频流上试一遍这套阈值——4ms 的延迟真的够用。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考