3.5 主流开源模型与选型地图


3.5 主流开源模型与选型地图

本节摘要:原理讲完,回到现实:市面上能直接搜到、能跑起来的主流入脸模型有哪些,各擅胜场还是各有软肋?本节把检测器(MTCNN、RetinaFace)与识别器(InsightFace 的 ArcFace 系列、FaceNet 等)的分工和取舍讲清楚,给出一个从"场景"到"选型"的判断路径,让你面对真实项目时不用从零扫盲。

看图说话:先别挑最强,先挑对表

仓库里宣传的"人脸识别方案",实际是一台检测+一台识别+阈值装配的流水线。你要是跳过选型、直接抄别人工程里的 YAML,风险全在后面:检测器或识别器挑错,整条链的精度、速度、算力全走样。选型不是挑一个"最强"的模型,而是挑一套"和你的场景对表"的组合。先立个结论:主流做法是"检测用 RetinaFace 类、识别用 InsightFace 的 ArcFace 类",后面再谈它为什么、何时例外。

一个容易踩的误区:把"检测器"和"识别器"混为一谈。前者只负责把脸抠出来、给关键点,后者才把标准脸编码成向量。两者是两套分工不同的网络,各自有独立的选型维度,别指望一个模型面面俱到。

检测器:把脸揪出来

检测器只管出框和关键点,识不识别、识谁它都不管。开源里两个常客:

  • MTCNN:三阶段级联,轻、快、老牌,胜在资源占用少、门槛零;小脸与遮挡处理略逊。
  • RetinaFace:单阶段改进,检测精度高、关键点定位准,抗小脸和遮挡更强,代价是重一点,近年来几乎是新项目的默认起点。

选检测器看两件事:一是你的主流画面里脸有多小、有没有遮挡;二是你愿意为检测扔多少算力。门禁这种正脸大脸、硬件局促,MTCNN 够用;监控这种小脸乱窜,RetinaFace 更稳。

识别器:把人认出来

识别器把标准脸编码成向量。开源里 InsightFace 系列几乎成了实际标准:它把 ArcFace 损失和一批训练好的主干(ResNet、MobileFaceNet 等)打包成可直接加载的权重,覆盖高精度到低算力多种体量。FaceNet 同样是里程碑,但开源权重与配套不如 InsightFace 顺手。手机、门禁这些低算力场景,则有 MobileFaceNet 这类轻量主干——它的取舍很直接:牺牲一点精度换回来的算力和内存,恰好满足嵌入式。

一个常见的问法:"检测用 MTCNN、识别用 ResNet,能直接拼吗?"答案是可以,但你要自己做对齐口径统一——检测器出的关键点坐标、识别器期望的标准网格必须对得上,否则等于检测很好、识别白搭。InsightFace 这类把"检测+对齐+识别"打包的生态,就是为了少踩这一类接口对接的雷。

从场景出发的选择矩阵

选型:一张从场景出发的选择矩阵

这张矩阵把三类典型场景摊开:闸机门禁要"快而稳"、视频监控要"抗小脸与遮挡"、手机嵌入式要"极致轻量化"。同一行纵览,你会发现检测器与识别器常常是一对搭档——选型时别拆开追热度,要按场景一起下决定。

一张备忘表

环节 组件 特点 适合场景
检测 MTCNN 轻快、关键点齐全 手机/嵌入式
检测 RetinaFace 准、抗小脸 监控/门禁
识别 MobileFaceNet 极致轻量 嵌入式/解锁
识别 ResNet-50 等 深主干、准 数据足的安防
引擎 InsightFace 常用训练/推理框架 多数新项目的基线

工程实践要点

  • 优先踩着成熟组合起步(RetinaFace 检测+InsightFace/ArcFace 识别),有基线再谈换件,别从零攒——你很难把别人调了几年的坑重走一遍。
  • 换识别主干一次只动一处,用相同的评测口径(同库、同阈值)做对照,避免不同方案混比之时又顺手调了一堆别的参数,导致结论失焦。
  • 凡是"要认人"终归落到同一句:检测出框、识别出向量、比对过阈值。模型再多,"分工"始终是这一句,选型只是在对表谁会做得更好。
  • 别不跑评测就照抄网上参数。同库不同阈值、口径一换,模型表现就蒙上一层雾,务必用你自己的数据做验收——尤其要在"你的群体分布"上测,别人的 99% 代表不了你的场景。

一句话直觉:检测器和识别器是"分工的搭档",选型是配对的学问,而不是单挑某个明星模型的玄学。

先会看成绩单,再谈选型

选模型前,先学会读它贴出来的成绩单,否则很容易被"刷榜数字"带走。几个判断要点:一看它报的是什么库、什么口径——LFW 已经被刷到 99% 以上、几乎筛不出差距,要看 MegaFace、IJB、以及它是否配了"在什么对齐、什么阈值下测"的说明;二看它是否给了 FRR/FAR 曲线,而只给一个准确率的,多半在藏;三看它是在理想库还是贴近真实场景的库上测的,贴近生产条件的数字更值得参考。记住:公开榜好看最多说明"客观上不差",你的数据分布和它的数据分布是两码事,最终一定要上你自己的验收集。

检测与识别的"搭档"怎么配对

选型最容易被忽略的,是检测器和识别器这对搭档要一起挑、看它们的接口能不能咬合。常见三对组合:手机/嵌入式——轻量检测(MTCNN)配轻量识别(MobileFaceNet),把算力和内存压到最小;门禁/闸机——需求快而稳,RetinaFace 检测配 ResNet 一档的 ArcFace 编码;监控/布警——要抗小脸和遮挡,检测换更重的 RetinaFace、识别保留高精度主干,必要时再叠一个行人重识别做补位。配对的核心是把"检测输出的人脸框+关键点"直接喂给识别期望的对齐模板,接口对不上,精度再好的两顶帽子也拼不成一句话。

换件之前的排查顺序

当你对基线不满意、想换识别主干或检测器时,先按顺序排掉更廉价的问题,避免白换:第一步看数据——光照、姿态、遮挡有没有在训练里铺匀;第二步看对齐口径——训练与线上模板是否一致;第三步看损失与度量——是否按同一口径(余弦)训练和比对;第四步看阈值——是否对着自己的 FRR/FAR 代价定过。前三步通常都比换模型更影响最终分数。只有把这些都排除干净,才轮到"换个更强的主干"这种升级动作——否则你可能在数据的坑上反复换件,却始终差那么几个百分点。

到这里,原理和模型都交代完了。可一只模型要真跑起来服务业务,后面还有硬件、框架、数据、训练、部署一字排开——第 4 章见。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U