InsightFace Model Zoo 全解析:从 Python 模型包到识别、检测、对齐与属性模型选型指南

发布时间:2026/9/11 12:01:48

InsightFace Model Zoo 全解析:从 Python 模型包到识别、检测、对齐与属性模型选型指南 InsightFace Model Zoo 全解析从 Python 模型包到识别、检测、对齐与属性模型选型指南【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInsightFace 是目前业界广泛使用的 2D/3D 人脸分析开源项目其核心资产之一就是庞大的Model Zoo模型仓库。本文以仓库中 model_zoo/README.md 为主体结合python-package下的真实加载与推理源码系统梳理 InsightFace 公开的 Python 模型包、人脸识别 / 检测 / 对齐 / 属性模型的配置、精度指标与选型依据。读完本文你将掌握如何安装并加载buffalo_l等模型包理解RetinaFace、SCRFD、ArcFace等模型在仓库中的组织方式与精度基准含义并能够结合自身算力与业务需求快速选择最合适的模型组合。注意根据仓库声明所有模型仅限非商业研究目的使用ALL models are available for non-commercial research purposes only.。文中所有精度数字均来自 model_zoo/README.md 的原始表格未做任何改动或推算。1. Model Zoo 在 InsightFace 中的定位Model Zoo 是整个 InsightFace 项目模型供给层的索引与目录。它覆盖了四条主任务线人脸识别Face Recognition以 ArcFace 为代表提供从 MobileFaceNet 到 ResNet-100 等不同骨干与多种训练集的 ONNX 模型人脸检测Face DetectionRetinaFace 与 SCRFD 系列覆盖从 500M FLOPs 到 34G FLOPs 的不同计算档位人脸对齐Face Alignment2D 106 点坐标回归、3D 68 点以及稠密对齐人脸属性Face Attribute性别与年龄GenderAge等。文档同时强调Model Zoo 中几乎所有的 ONNX 模型都可以被 Python 库直接调用almost all ONNX models in our model_zoo can be called by python library这意味着同一份 ONNX 资产既可用于独立推理也可被组装进FaceAnalysis这样的端到端管线。2. Python Package 模型包开箱即用的端到端方案2.1 安装与基础用法Model Zoo 文档给出的 Python 包使用方式非常简洁pip install -U insightfacemodel_pack_name buffalo_l app FaceAnalysis(namemodel_pack_name)FaceAnalysis是 python-package/insightface/app/face_analysis.py 中定义的端到端人脸分析入口它会在初始化时扫描模型包目录下全部*.onnx文件通过 model_zoo.py 中的ModelRouter自动识别每个模型的类型检测 / 识别 / 对齐 / 属性并组装成一套完整管线def __init__(self, nameDEFAULT_MP_NAME, root~/.insightface, allowed_modulesNone, **kwargs): self.model_dir ensure_available(models, name, rootroot) onnx_files glob.glob(osp.join(self.model_dir, *.onnx)) onnx_files sorted(onnx_files) for onnx_file in onnx_files: model model_zoo.get_model(onnx_file, **kwargs) ...2.2 五个官方模型包加粗名称表示最新版本中的默认模型包默认值可在 python-package/insightface/utils/constant.py 中看到DEFAULT_MP_NAME buffalo_l。各模型包的具体构成如下NameDetection ModelRecognition ModelAlignmentAttributesModel-Sizeantelopev2RetinaFace-10GFResNet100Glint360K2d106 3d68GenderAge407MBbuffalo_lRetinaFace-10GFResNet50WebFace600K2d106 3d68GenderAge326MBbuffalo_mRetinaFace-2.5GFResNet50WebFace600K2d106 3d68GenderAge313MBbuffalo_sRetinaFace-500MFMBFWebFace600K2d106 3d68GenderAge159MBbuffalo_scRetinaFace-500MFMBFWebFace600K--16MB可以看到buffalo_l是默认且能力最均衡的选择检测、识别ResNet50WebFace600K、2D/3D 对齐、性别年龄一应俱全buffalo_s面向轻量场景把检测降到 500MF、识别换成 MobileFaceNetMBFbuffalo_sc是裁剪版只保留检测与识别无对齐、无属性体积压缩到 16MB适合资源受限的嵌入式场景。2.3 Python 模型包的识别精度Model Zoo 文档给出了两个包在MR-ALLMasked Recognition戴口罩识别与多个人种子集、以及经典基准上的精度NameMR-ALLAfricanCaucasianSouth AsianEast AsianLFWCFP-FPAgeDB-30IJB-C(E4)buffalo_l91.2590.2994.7093.1674.9699.8399.3398.2397.25buffalo_s71.8769.4580.4573.3951.0399.7098.0096.5895.02文档同时给出两条重要注记buffalo_m与buffalo_l精度一致差异仅在检测模型档位与体积buffalo_sc与buffalo_s精度一致同为 MBFWebFace600K RetinaFace-500MF 组合仅裁剪了对齐与属性模块。2.4 源码级补充模型如何被识别与加载为什么一个目录下丢进几个 ONNX 文件FaceAnalysis就能自动知道谁是检测器、谁是识别器关键在于 model_zoo.py 中的ModelRouter.get_model()它通过输入张量形状和输出个数做路由输出个数 ≥ 5 → 判定为SCRFD检测器输入尺寸 192×192 →Landmark2D 106 点对齐输入尺寸 96×96 →Attribute性别年龄等属性输入为双输入且 128×128 →INSwapper换脸输入为正方形且边长 ≥112、能被 16 整除 →ArcFaceONNX识别。而get_model(name)本身支持两种形态传入目录名如buffalo_l时在~/.insightface/models下查找最新 ONNX 文件直接传入.onnx文件路径时按文件加载。默认推理提供者为[CUDAExecutionProvider, CPUExecutionProvider]CPU 环境可显式指定providers[CPUExecutionProvider]参考 examples/face_recognition/insightface_app.py。3. 人脸识别模型Face Recognition3.1 术语定义文档为后续所有表格给出了统一定义读懂这些缩写是正确理解精度表的前提MFNMobileFaceNetMS1MV2MS1M-ArcFace训练集MS1MV3MS1M-RetinaFace训练集MS1M_MegaFaceMS1MV2 MegaFace_train 的组合训练集_pfc使用 Partial FC分布式大规模分类头sample-ratio0.1MegaFaceMegaFace 识别测试gallery1e6IJBCIJBC 1:1 测试FAR ≤ 1e-4BDrive百度网盘BaiduDriveGDrive谷歌网盘GoogleDrive。未特别说明时默认训练损失为基于 margin 的 softmaxmargin-based softmax。3.2 MXNet 与 PaddlePaddle 模型BackboneDatasetMethodLFWCFP-FPAgeDB-30MegaFaceLinkR100 (mxnet)MS1MV2ArcFace99.7798.2798.2898.47BDrive / GDriveMFN (mxnet)MS1MV1ArcFace99.5088.9495.91-BDrive / GDriveMFN (paddle)MS1MV2ArcFace99.4593.4396.13-pretrained / inference modeliResNet50 (paddle)MS1MV2ArcFace99.7397.4397.88-pretrained / inference model各模型的百度网盘 / 谷歌网盘 / Paddle 官方下载地址详见 model_zoo/README.md 原文表格。3.3 不同深度 IResNet × 训练数据集这一组 ONNX 模型展示了骨干深度与训练数据规模共同决定精度的规律精度均为 MR-ALL 及四大人种子集BackboneDatasetMR-ALLAfricanCaucasianSouth AsianEast AsianR100Casia42.73539.66653.93347.80721.572R100MS1MV280.72579.11787.17685.50155.807R18MS1MV368.32662.61375.12570.21343.859R34MS1MV377.36571.64483.29180.08453.712R50MS1MV380.53375.48886.11584.30557.352R100MS1MV384.31281.08389.04088.08262.193R18Glint360K72.07468.23080.57575.85247.831R34Glint360K83.01579.90788.62086.81560.604R50Glint360K87.07785.27291.61790.54166.813R100Glint360K90.65989.48894.28593.43472.528对比同骨干R100在三代数据集上的 MR-ALLCasia 42.7 → MS1MV2 80.7 → 未列入此表但可参见下节的 Glint360K 90.7训练集规模的提升收益显著。同数据集Glint360K下从 R18 到 R100MR-ALL 从 72.1 提升到 90.7。3.4 IResNet-50 固定骨干 × 13 组训练数据集将骨干固定为 IResNet-50逐一对比训练数据集的影响同时给出经典基准 LFW / CFP-FP / AgeDB-30 / IJB-C(E4)DatasetMR-ALLAfricanCaucasianSouth AsianEast AsianLFWCFP-FPAgeDB-30IJB-C(E4)CISIA36.79442.55055.82549.61819.61199.45095.21494.90087.220CISIA_pfc37.10738.93453.82348.67419.92799.36795.42994.60084.970VGG238.57835.25954.30444.08124.09599.55097.41095.08091.220VGG2_pfc40.67336.76760.18049.03924.25599.68398.52995.40092.490GlintAsia62.66349.53164.82957.98461.74399.58393.18695.40091.500GlintAsia_pfc63.14950.36665.22757.93661.82099.65093.02995.23391.140MS1MV277.69674.59684.12682.04151.10599.83398.08398.08396.140MS1MV2_pfc77.73874.72884.88382.79852.50799.78398.07198.01796.080MS1M_MegaFace78.37274.13882.25177.22360.20399.75097.55797.40095.350MS1M_MegaFace_pfc78.77373.69082.94778.79357.56699.80097.87097.73395.400MS1MV382.52277.17287.02886.00660.62599.80098.52998.26796.580MS1MV3_pfc81.68378.12687.28685.54258.92599.80098.44398.16796.430Glint360k86.78984.74991.41490.08866.16899.81799.14398.45097.130Glint360k_pfc87.07785.27291.61690.54166.81399.81799.14398.45097.020WebFace600K90.56689.35594.17792.35873.85299.80099.20098.10097.120WebFace600K_pfc89.95189.30194.01692.38173.00799.81799.14398.11797.010Average69.24765.90877.12172.81952.01499.70697.37496.96293.925Average_pfc69.51965.89877.49773.21351.85399.71597.45796.96593.818这份表是数据决定上限最直观的证据同样是 IResNet-50WebFace600K 的 MR-ALL90.566比 CISIA36.794高出近 54 个百分点。而_pfcPartial FC, sample-ratio0.1版本在绝大多数指标上与全量 FC 持平甚至略优例如 Glint360k_pfc 的 MR-ALL 87.077 与 Glint360k 的 86.789说明在大规模训练集上 Partial FC 能以更低显存开销获得无损精度——这与仓库中 recognition/partial_fc 目录的定位一致。3.5 MobileFaceNet 模型DatasetMR-ALLAfricanCaucasianSouth AsianEast AsianLFWCFP-FPAgeDB-30IJB-C(E4)WebFace600K71.86569.44980.45473.39451.02699.7098.0096.5895.02MobileFaceNet 的工程指标FLOPS 约 450M模型体积约 13MB。这正是在buffalo_s/buffalo_sc中作为识别骨干的模型适合移动端与边缘设备。3.6 源码级补充ArcFaceONNX 如何做推理python-package/insightface/model_zoo/arcface_onnx.py 中的ArcFaceONNX类体现了几个关键实现细节输入预处理自适配通过检查 ONNX 图前 8 个节点是否包含Sub/Mul类节点自动判断模型来自 MXNetinput_mean0.0, input_std1.0还是 PyTorch/其他框架input_mean127.5, input_std127.5无需人工指定归一化参数对齐裁剪get()使用face_align.norm_crop依据检测到的 5 个关键点做标准化裁剪再提取 embedding相似度计算compute_sim()用余弦相似度np.dot(feat1, feat2) / (norm(feat1) * norm(feat2))比较两个人脸向量CPU 回退prepare(ctx_id-1)时将 provider 切换为纯 CPU。4. 人脸检测模型Face Detection4.1 RetinaFace文档说明RetinaFace 的 mAP 采用多尺度测试multi-scale testing评估m025表示 MobileNet-0.25 骨干。ImplementationEasy-SetMedium-SetHard-SetLinkRetinaFace-R5096.595.690.4BDrive / GDriveRetinaFace-m025 (yangfly)--82.5BDrive / GDriveBlazeFace-FPN-SSH (paddle)91.989.881.7%pretrained / inference model其中 BlazeFace-FPN-SSH 的 Paddle 实现同样由官方提供详见 detection/blazeface_paddleWIDER FACE 的 Hard-Set 达 81.7%。4.2 SCRFD文档说明SCRFD 的 mAP 采用单尺度测试single scale testing输入为 VGA640×480分辨率。关键定义2.5G表示当输入为 VGA 分辨率时模型开销约 2.5G FLOPs即模型名中的 G 是 VGA 输入下的 FLOPs 量级_KPS表示该模型可额外输出 5 个人脸关键点。NameEasyMediumHardFLOPsParams(M)Infer(ms)Link(pth)SCRFD_500M90.5788.1268.51500M0.573.6GDriveSCRFD_1G92.3890.5774.801G0.644.1GDriveSCRFD_2.5G93.7892.1677.872.5G0.674.2GDriveSCRFD_10G95.1693.8783.0510G3.864.9GDriveSCRFD_34G96.0694.9285.2934G9.8011.7GDriveSCRFD_500M_KPS90.9788.4469.49500M0.573.6GDriveSCRFD_2.5G_KPS93.8092.0277.132.5G0.824.3GDriveSCRFD_10G_KPS95.4094.0182.8010G4.235.0GDrive从 500M 到 34GWIDER FACE Easy-Set 从 90.57 提升到 96.06Hard-Set 从 68.51 提升到 85.29而 500M 档位的推理时间仅 3.6ms非常适合实时边缘部署。SCRFD 的完整训练配置可在 detection/scrfd/configs/scrfd 中找到如scrfd_500m.py、scrfd_2.5g.py、scrfd_10g.py等。4.3 源码级补充检测器如何被实例化python-package/insightface/model_zoo/scrfd.py 中SCRFD类的实现细节与 Model Zoo 表格一一对应按输出数量区分能力输出 6 个张量为无关键点版本输出更多如 15 个时启用关键点分支——这正是_KPS模型在运行时的判别依据默认阈值nms_thresh 0.4、det_thresh 0.5并缓存 anchor 中心center_cache加速推理动态输入尺寸当 ONNX 输入形状含字符串维度动态时默认使用DEFAULT_DET_SIZES [(128, 128), (640, 640)]两档尺寸bbox/kps 解码distance2bbox与distance2kps将网络输出的距离预测解码为边界框与关键点坐标。retinaface.py 中的RetinaFace类结构与 SCRFD 基本一致同样以taskname detection注册进模型管线。5. 人脸对齐模型Face Alignment5.1 2D 与 3D 对齐模型ImplementationPointsBackboneParams(M)Link(onnx)Coordinate-regression106MobileNet-0.51.2GDrive-68ResNet-5034.2GDrive2D 对齐坐标回归法Coordinate-regression输出 106 个 2D 关键点骨干 MobileNet-0.5仅 1.2M 参数对应buffalo_l等模型包中的2d106模块3D 对齐输出 68 个 3D 关键点骨干 ResNet-5034.2M 参数对应模型包中的3d68模块文档还列出了Dense Face Alignment稠密人脸对齐章节编号 2.3但当前表格未给出公开模型条目。5.2 源码级补充Landmark 如何区分 2D/3Dpython-package/insightface/model_zoo/landmark.py 中Landmark类的关键逻辑按输出张量形状判别当输出维度为 3309 68×3 姿态相关输出时判定为 3D 68 点模型lmk_dim3, lmk_num68并加载meanshape_68.pkl均值形状、启用姿态pose输出否则按output_shape[1] // 2推导 2D 关键点数量如 106 点任务名自动注册taskname landmark_%dd_%d % (lmk_dim, lmk_num)因此模型包中会同时出现landmark_2d_106与landmark_3d_68两个任务裁剪策略以检测框中心为基准、max(w, h) * 1.5为尺度进行仿射变换裁剪再送入网络。6. 人脸属性模型Face Attribute6.1 GenderAgeTraining-SetBackboneParams(M)Link(onnx)CelebAMobileNet-0.250.3GDrive性别年龄模型使用 CelebA 训练、MobileNet-0.25 骨干仅 0.3M 参数是模型包中体积最小的模块之一。文档还列出了Expression表情章节编号 4.2但当前表格未给出公开模型条目。6.2 源码级补充Attribute 任务名推导python-package/insightface/model_zoo/attribute.py 中Attribute类根据输出维度自动命名任务输出维度为 3 时注册为genderage性别年龄否则注册为attribute_NN 为属性数。推理时以检测框中心裁剪人脸后送入 96×96 输入输出结果由 face_analysis.py 中的draw_on()直接渲染为性别,年龄文本。7. 精度基准速查MR-ALL 与经典 Benchmark理解 Model Zoo 表格中的指标口径有助于横向对比MR-ALL 及其人种子集African / Caucasian / South Asian / East Asian戴口罩识别Masked Recognition场景下的整体与分人种精度是衡量真实世界鲁棒性的重要指标也是本文多数表格的主指标LFW / CFP-FP / AgeDB-30经典的人脸验证基准其中 CFP-FP 侧重正面-侧面Frontal-Profile跨姿态验证AgeDB-30 侧重跨年龄验证IJB-C(E4)IJB-C 1:1 验证FAR ≤ 1e-4 条件下的精度MegaFacegallery 达 1e6 规模的识别测试考验大规模底库下的检索能力。从整体数据看同骨干下WebFace600K 与 Glint360K 是当前精度最高的一档训练集R50WebFace600K 的 MR-ALL 90.566R100Glint360K 90.659这也是buffalo_l默认采用 ResNet50WebFace600K 的原因。8. 实战选型建议结合 Model Zoo 文档与仓库源码给出以下选型路径默认首选buffalo_l326MB 的体积换来检测RetinaFace-10GF 识别ResNet50WebFace600KMR-ALL 91.25 2D/3D 对齐 性别年龄的完整能力且是 constant.py 中定义的默认包追求轻量buffalo_s159MB或仅需检测/识别的buffalo_sc16MB识别精度与buffalo_l的差距主要体现在 MR-ALL71.87 vs 91.25与 East Asian 子集上极致精度可改用 antelopev2ResNet100Glint360K407MB单独加载单个 ONNX使用insightface.model_zoo.get_model(xxx.onnx, downloadTrue, download_zipTrue)即可自动下载到本地模型目录参考 examples/in_swapper/inswapper_main.py 与 examples/person_detection/scrfd_person.py边缘实时检测在 SCRFD 系列中优先考虑SCRFD_2.5GHard-Set 77.87、4.2ms或SCRFD_500M3.6ms模型目录结构所有模型默认落在~/.insightface/models/pack_name/下由 model_zoo.py 的root~/.insightface与 download.py 的校验下载逻辑共同决定可通过root参数自定义位置。结语InsightFace Model Zoo 的价值在于用一份统一目录覆盖检测、识别、对齐、属性四大任务并提供从 500M FLOPs 到 34G FLOPs、从 13MB 到 407MB 的完整算力-精度谱系。无论你是用FaceAnalysis(namebuffalo_l)快速搭建端到端人脸分析服务还是单独下载SCRFD_2.5G、ArcFaceGlint360K等 ONNX 模型嵌入自有推理管线都可以从 model_zoo/README.md 的模型清单出发再对照 python-package/insightface/model_zoo 目录下的各任务实现确认加载与预处理细节从而做出既贴合精度目标、又匹配算力约束的模型选型决策。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/11 12:01:48

电子病历控件源码解析:嵌入式文档引擎与医疗合规实现

简介:这是一套面向医疗信息化开发者的电子病历文档编辑控件源码,适用于医院HIS系统、EMR系统集成场景,帮助开发者快速实现病历模板设计、图文混排、结构化录入等核心功能。资源包含663个文件,主体为163个C#源文件(.cs&…

2026/9/11 11:56:48

大模型训练GPU云配置指南:从显存到RDMA网络全解析

“大模型训练的 GPU 云怎么配”,这个问题我几乎每周都会看到一次。问的人从创业团队的技术负责人到学校实验室的博士生都有,答案却很少能一句话讲清楚。过去几年我给好几个团队做过 GPU 云环境的选型和落地,踩过的坑比顺利走通的路还多。这次…

2026/9/11 11:56:47

微信小程序原创音乐管理系统开发实战与优化

1. 项目背景与核心价值原创音乐人正面临着一个关键痛点:传统音乐发布平台门槛高、流程复杂,而独立开发完整音乐管理系统又需要高昂的技术成本。这个基于微信小程序的原创音乐管理系统恰好填补了这个市场空白。我在实际开发中发现,微信小程序天…

2026/9/11 12:51:54

AIGC检测系统下的学术论文四维降重技术解析

1. 项目背景与核心痛点解析2023年学术圈最震撼的事件莫过于知网正式上线AIGC检测系统,这套系统与传统的文字重复率检测形成双重绞杀。我在高校任教的朋友透露,去年毕业季某985高校使用该系统初检,38%的论文被标记"AIGC高风险"&…

2026/9/11 12:51:54

AI Agent基础设施搭建实战:模型网关、向量库与MCP选型指南

做AI Agent这件事,我踩过最大的坑不是模型不会说话,而是地基没打好就急着盖楼。最近我们在LCODER实战系列里推进“问数项目智能体搭建”,目标很直接:让业务同学用大白话问一句“上个月华东区销售额同比变化怎么样”,Ag…

2026/9/11 12:51:54

视频技能增强系统:Skill RAG 实战指南

1. 项目概述:这不是一个“调API”的玩具,而是一套可落地的视频技能增强系统最近在 GitHub 上刷到一个叫deepseek-v4-flash-vision的开源项目,标题里带“flash”,不是营销话术——它真把多模态视频理解的推理延迟压到了工程可用级别…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码