SCRFD-ArcFace
SCRFD-ArcFace 是一套集成了高效面部检测与高精度特征提取的深度学习方案。它将具备卓越尺度建模能力的 SCRFD 检测器与基于角余弦损失的 ArcFace 识别模型相结合,实现了从复杂场景抓拍到身份精准比对的全流程视觉感知。
- 核心特点:支持极速的面部定位与关键点回归,具备极强的特征辨识度与抗干扰能力,广泛应用于金融级身份验证、智慧安防、无感考勤以及大规模人脸检索等场景。
- 版本说明:本案例采用 SCRFD-ArcFace 集成架构。其中 SCRFD 凭借其对计算资源的优化分配,在不同算力平台上均能保持高效率的检测响应;ArcFace 则通过强化特征空间的类间差异,显著提升了识别的准确率。这套方案是目前计算机视觉领域在处理实时人脸识别任务时,兼顾算法鲁棒性与工业落地性能的标杆级平衡选择。
环境配置
需要提前配置好相关环境。
快速开始
下载模型文件
O6 / O6N
cd ai_model_hub_25_Q3/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface
wget -O arcface.cix https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/arcface.cix
wget -O scrfd.cix https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/scrfd.cix
模型测试
信息
运行前激活虚拟环境!
O6 / O6N
python3 inference_npu.py --det_model_path ./scrfd.cix --rec_model_path ./arcface.cix --faces-dir ./datasets/faces --image_path test_data
完整转换流程
下载模型文件
Linux PC
cd ai_model_hub_25_Q3/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model
wget -O det_10g.onnx https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model/det_10g.onnx
wget -O det_2_5g.onnx https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model/det_2_5g.onnx
wget -O det_500m.onnx https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model/det_500m.onnx
wget -O w600k_mbf.onnx https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model/w600k_mbf.onnx
wget -O w600k_r50.onnx https://www.modelscope.cn/models/cix/ai_model_hub_25_Q3/resolve/master/models/ComputeVision/Face_Recognition/onnx_scrfd_arcface/model/w600k_r50.onnx
项目结构
├── cfg
├── datasets
├── model
├── test_data
├── arcface.cix
├── arcface_npu.py
├── arcface_onnx.py
├── scrfd.cix
├── scrfd_npu.py
├── scrfd_onnx.py
├── inference_npu.py
├── inference_onnx.py
├── helpers.py
├── ReadMe.md
└── requirements.txt
进行模型量化和转换
转换 Scrfd 模型
Linux PC
cd ..
cixbuild cfg/onnx_scrfdbuild.cfg
转换 ArcFace 模型
Linux PC
cixbuild cfg/onnx_arcfacebuild.cfg
推送到板端
完成模型转换之后需要将 cix 模型文件推送到板端。
测试主机推理
运行推理脚本
Linux PC
python3 inference_onnx.py --det_onnx_path ./model/det_10g.onnx --rec_onnx_path ./model/w600k_r50.onnx --faces-dir ./datasets/faces --image_path test_data
模型推理结果


进行 NPU 部署
运行推理脚本
O6 / O6N
python3 inference_npu.py --det_model_path ./scrfd.cix --rec_model_path ./arcface.cix --faces-dir ./datasets/faces --image_path test_data
模型推理结果
O6 / O6N
$ python3 inference_npu.py --det_model_path ./scrfd.cix --rec_model_path ./arcface.cix --faces-dir ./datasets/faces --image_path test_data
npu: noe_init_context success
npu: noe_load_graph success
Input tensor count is 1.
Output tensor count is 9.
npu: noe_create_job success
npu: noe_init_context success
npu: noe_load_graph success
Input tensor count is 1.
Output tensor count is 1.
npu: noe_create_job success
./datasets/faces/Monica.png
./datasets/faces/Phoebe.png
./datasets/faces/Rachel.png
./datasets/faces/Chandler.png
./datasets/faces/Joey.png
./datasets/faces/Ross.png
npu: noe_clean_job success
npu: noe_unload_graph success
npu: noe_deinit_context success
npu: noe_clean_job success
npu: noe_unload_graph success
npu: noe_deinit_context success

