[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"solution-scenes-menu":3,"tech-detail-2579":4},true,{"id":5,"title":6,"content":7,"picUrl":8,"tagIds":9,"keyWords":10,"htmlDescribe":11,"htmlUrl":12,"gmtCreate":13,"gmtModified":13,"articleInfoId":14},"2579","畅联云平台丨04-人脸对齐与ArcFace识别","\u003Ch1 style=\"line-height:2\">人脸对齐与 ArcFace 识别：Umeyama、112×112 与余弦阈值\u003C\u002Fh1>\u003Cp style=\"line-height:2\">本文讲透一件事：检测到的五点如何变成标准脸，标准脸如何变成可比较的向量，向量如何用余弦相似度判定「是不是同一个人」。对齐核心是 Umeyama 相似变换与 kRef5 模板；识别权重为 w600k_r50.onnx；业务锁定门槛为主角锁定相似度阈值（0.32）。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">一、为何必须对齐\u003C\u002Fh1>\u003Cp style=\"line-height:2\">识别网络训练时几乎只见过摆正、缩放到固定大小（本项目 112×112）的脸。若把歪头、仰拍、任意裁切直接塞进网络：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">眼睛可能跑到图像下半部；\u003C\u002Fli>\u003Cli style=\"line-height:2\">尺度不一导致纹理频率变化；\u003C\u002Fli>\u003Cli style=\"line-height:2\">同一人在特征空间被几何扰动打散。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">对齐目标：用检测五点估计变换，把脸搬进训练分布的标准座位。\u003C\u002Fp>\u003Cp style=\"line-height:2\">可以把对齐理解成「证件照规范动作」自动化：眼睛水平、脸居中、尺度统一——不是为了好看，是为了让网络始终在熟悉的几何里工作。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二、 标准五点模板 kRef5\u003C\u002Fh1>\u003Cp style=\"line-height:2\">在 112×112 画布上：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">两眼约在高度 52，水平距约 35.2；\u003C\u002Fli>\u003Cli style=\"line-height:2\">鼻尖居中略下 (56, 72)；\u003C\u002Fli>\u003Cli style=\"line-height:2\">嘴角更靠下 (y≈92)，间距约 29.2（小于眼距）。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">这是 InsightFace  \u002F ArcFace 生态的常用模板。自定义五点却沿用别人的预训练权重，等于把脸摆进网络没见过的座位，分数会系统性异常。\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002Ff82edcbe-5cd6-42e0-a183-ee8ac3c30fc9.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：112×112 标准五点位置；检测点经相似变换贴合到这些锚点后，再送入 ArcFace。\u003C\u002Fspan>\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">三、Umeyama：估计 2D 相似变换\u003C\u002Fh1>\u003Cp style=\"line-height:2\">相似变换含：旋转 + 统一缩放 + 平移（不含非均匀拉伸）。相似变换估计如下：\u003C\u002Fp>\u003Cp style=\"line-height:2\">映射：\u003C\u002Fp>\u003Cp style=\"line-height:2\">[x’] [ a b tx ] [x]\u003C\u002Fp>\u003Cp style=\"line-height:2\">[y’] = [ -b a ty ] [y]\u003C\u002Fp>\u003Cp style=\"line-height:2\">[1 ] [ 0 0 1 ] [1]\u003C\u002Fp>\u003Cp style=\"line-height:2\">其中尺度 s = hypot(a,b)，旋转 θ = atan2(b,a)（按实现约定）。\u003C\u002Fp>\u003Cp style=\"line-height:2\">Umeyama 估计相似变换核心：\u003C\u002Fp>\u003Cpre>\u003Ccode>static cv::Mat estimate_sim_transform(const std::array&lt;cv::Point2f, 5&gt; &amp;src) {\n double sx = 0, sy = 0, dx = 0, dy = 0;\n for (int i = 0; i &lt; 5; i++) {\n sx += src[i].x; sy += src[i].y;\n dx += kRef5[i][0]; dy += kRef5[i][1];\n }\n sx \u002F= 5; sy \u002F= 5; dx \u002F= 5; dy \u002F= 5;\n\n double sxx = 0, syy = 0, sxy = 0, syx = 0, var_s = 0;\n for (int i = 0; i &lt; 5; i++) {\n double srcx = src[i].x - sx, srcy = src[i].y - sy;\n double dstx = kRef5[i][0] - dx, dsty = kRef5[i][1] - dy;\n sxx += srcx * dstx; syy += srcy * dsty;\n sxy += srcx * dsty; syx += srcy * dstx;\n var_s += srcx * srcx + srcy * srcy;\n }\n if (var_s &lt; 1e-8) return cv::Mat();\n double a = (sxx + syy) \u002F var_s;\n double b = (sxy - syx) \u002F var_s;\n double tx = dx - a * sx - b * sy;\n double ty = dy + b * sx - a * sy;\n return (cv::Mat_&lt;double&gt;(2, 3) &lt;&lt; a, b, tx, -b, a, ty);\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>为何不用自由仿射？\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F76df61ac-5083-4b05-9a39-2fc5197e15d0.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">ArcFace 预训练假设偏相似变换；乱升自由度会「对齐看起来贴点、特征却坏」。\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F80330cd7-81c0-4cab-b7de-d0cdad80d15c.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：检测五点（源）通过 Umeyama 相似变换贴到 kRef5（目标），再 warpAffine 得到 112×112。\u003C\u002Fspan>\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">四、warpAffine 出图\u003C\u002Fh1>\u003Cul>\u003Cli style=\"line-height:2\">输入是 整帧或足够大的图 + 全图坐标五点（不是只喂紧脸框）；矩阵会把五官搬进 112；\u003C\u002Fli>\u003Cli style=\"line-height:2\">双线性插值；\u003C\u002Fli>\u003Cli style=\"line-height:2\">常数边填充 默认黑边：姿态过大时边角可能黑——这是质量信号。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">对齐失败外观： 眼睛不水平、鼻子歪、半张脸黑边、两眼距在 112 图上极小。此类 图 绝不能静默送识别。\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>数值直觉\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">假设检测左眼 (200,180)、右眼 (260,182)，模板眼距 35.24、检测眼距 ≈60.03：\u003C\u002Fp>\u003Cp style=\"line-height:2\">粗尺度 s ≈ 35.24 \u002F 60.03 ≈ 0.587\u003C\u002Fp>\u003Cp style=\"line-height:2\">再叠加旋转（检测眼连线斜率约 2\u002F60）与平移，使眼落到 (38.3,51.7)、(73.5,51.5)。手算完整 Umeyama 较繁，但可用「对齐后把五点画回 112 图」验收：应几乎压在 kRef5 上。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">五、对齐质量门禁\u003C\u002Fh1>\u003Cp style=\"line-height:2\">建议显式检查：\u003C\u002Fp>\u003Col>\u003Cli style=\"line-height:2\">五点是否都有效、非 NaN；\u003C\u002Fli>\u003Cli style=\"line-height:2\">var_s &lt; 1e-8 导致 M 空；\u003C\u002Fli>\u003Cli style=\"line-height:2\">warp 后黑边占比是否过大；\u003C\u002Fli>\u003Cli style=\"line-height:2\">112 图上两眼距离是否过小（尺度崩了）；\u003C\u002Fli>\u003Cli style=\"line-height:2\">重投影误差：把 kps 乘 M 后与 kRef5 的平均距离。\u003C\u002Fli>\u003C\u002Fol>\u003Cp style=\"line-height:2\">门禁失败应返回明确错误，而不是输出一张扭曲图——后者产生「有相似度、其实是垃圾」的分数，最难排查。\u003C\u002Fp>\u003Cp style=\"line-height:2\">可视化三件套：原图+五点、112 对齐脸、（可选）模板点叠画。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">六、ArcFace：脸 → 向量\u003C\u002Fh1>\u003Cp style=\"line-height:2\">默认模型：\u003Cspan style=\"color:rgb(225, 60, 57)\">.\u002Fmodels\u002Fw600k_r50.onnx。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">ResNet50 骨干、WebFace600K 一类数据训出的 ArcFace 头；输出通常 512 维（以 ONNX 输出维为准）。流程：\u003C\u002Fp>\u003Col>\u003Cli style=\"line-height:2\">对齐得 112×112 BGR；\u003C\u002Fli>\u003Cli style=\"line-height:2\">按训练约定转 RGB、归一化、通道优先的张量排布；\u003C\u002Fli>\u003Cli style=\"line-height:2\">前向得 feat[D]；\u003C\u002Fli>\u003Cli style=\"line-height:2\">L2 归一化。\u003C\u002Fli>\u003C\u002Fol>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F302dfe9e-56ca-4a61-a27a-f464baf77cef.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：L2 归一化后，两向量点积即 cosθ；越接近 1 越像，业务用阈值 T 划分匹配。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>公式\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"color:rgb(225, 60, 57)\">sim \u003C\u002Fspan>= cosθ = (a·b) \u002F (|a||b|) = a·b （当 |a|=|b|=1）\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F7a3d4946-2ce2-4bcb-9fb5-36d99f7c3c7c.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">一边归一化、一边不归一化 会让阈值体系整体崩盘。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">七、业务阈值：0.32 不是魔法，但是契约\u003C\u002Fh1>\u003Cp style=\"line-height:2\">主角锁定相似度阈值（0.32）的用途包括：轨迹平均\u002F最大相似度是否够格参与主角锁定、过低则跳过跟拍等。含义：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">低于 0.32：默认不认为「够像底图」；\u003C\u002Fli>\u003Cli style=\"line-height:2\">达到\u002F超过：进入锁定候选逻辑（通常还要结合多帧、prominence 等，但本篇只讲相似度本身）。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>为何不能照搬论文数字？\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">学术测试集多为近正脸、高清；监控是俯拍、压缩、侧脸、口罩。同一模型在证件照域 0.4 很严，在监控域可能需要 0.32 才锁得住——或反过来。阈值必须在目标域用正负样本对扫出来。\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>ROC 思维\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">收集：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">正对：同一人不同帧 vs 底图；\u003C\u002Fli>\u003Cli style=\"line-height:2\">负对：路人 vs 底图。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">画分数分布，选误识率可接受的工作点。跟拍场景通常 更不能接受误识（路人锁成主角），故偏严，再用多帧聚合把拒识拉回来。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">八、底图质量决定上限\u003C\u002Fh1>\u003Cp style=\"line-height:2\">参考脸（thumb）同样：检测 → 对齐 → embedding。烂底图无人能救：\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F6cdfeea9-1136-4b1c-bb90-b8daae7bd815.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">入库门禁失败应拒绝注册。这是性价比最高的质量闸。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">九、 侧脸、口罩、墨镜\u003C\u002Fh1>\u003Cul>\u003Cli style=\"line-height:2\">大侧脸：可对齐但对齐后有效纹理少，sim 偏低 → 姿态过滤或等正脸；\u003C\u002Fli>\u003Cli style=\"line-height:2\">口罩：鼻嘴区域失效；非口罩模型分数下沉；\u003C\u002Fli>\u003Cli style=\"line-height:2\">墨镜：眼点不稳，对齐与识别双杀；\u003C\u002Fli>\u003Cli style=\"line-height:2\">逆光剪影：纹理近无，分数无意义。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">策略：轨迹保留历史最佳正脸特征；或要求锁定前至少一次高质量正脸。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十、轨迹级聚合 vs  单帧拍板\u003C\u002Fh1>\u003Cp style=\"line-height:2\">更稳的做法：\u003C\u002Fp>\u003Col>\u003Cli style=\"line-height:2\">每 track 维护最近 N 次有效 sim；\u003C\u002Fli>\u003Cli style=\"line-height:2\">用均值或中位数；\u003C\u002Fli>\u003Cli style=\"line-height:2\">连续 M 次超过 T 才锁定；\u003C\u002Fli>\u003Cli style=\"line-height:2\">锁定后提高变更门槛，避免路人偶发高分抢走。\u003C\u002Fli>\u003C\u002Fol>\u003Cp style=\"line-height:2\">示例：单帧 0.30 &lt; 0.32，但近 5 帧均值 0.35 且连续 3 帧 &gt;0.30 → 业务可锁。同一模型，决策策略不同，产品表现天差地别。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十一、1:1 与 1:N\u003C\u002Fh1>\u003Cp style=\"line-height:2\">本场景多为 1:1（现场脸 vs 用户底图）。扩到 1:N 时：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">比较次数↑，假阳性期望↑；\u003C\u002Fli>\u003Cli style=\"line-height:2\">需开集：最高分不够高则「陌生人」；\u003C\u002Fli>\u003Cli style=\"line-height:2\">1:1 的 0.32 不能直接当 1:N 阈值。\u003C\u002Fli>\u003C\u002Ful>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十二、归一化细节为何致命\u003C\u002Fh1>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F7335d3f1-803d-4f01-bed8-9cdc997c7c86.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">底图与现场必须走同一 embed 函数。几何对齐对了、数值规范化错了，一样认不出。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十三、 端到端分数旅程\u003C\u002Fh1>\u003Col>\u003Cli style=\"line-height:2\">SCRFD 给出全图五点；\u003C\u002Fli>\u003Cli style=\"line-height:2\">相似变换估计 + warpAffine → 112×112；\u003C\u002Fli>\u003Cli style=\"line-height:2\">w600k_r50.onnx 前向 → 512-d，L2 norm；\u003C\u002Fli>\u003Cli style=\"line-height:2\">与 thumb embedding 点积得 sim；\u003C\u002Fli>\u003Cli style=\"line-height:2\">与主角锁定相似度阈值（0.32）比较，并结合轨迹统计决定是否锁定。\u003C\u002Fli>\u003C\u002Fol>\u003Cp style=\"line-height:2\">任一步通道反了、未对齐、未归一化，都会表现为「所有人很低」或「所有人很高」。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十四、常见故障对照\u003C\u002Fh1>\u003Cp style=\"line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002Ffad462c8-d64e-4784-b8a6-41fb7522d463.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Ch1 style=\"line-height:2\">十五、相似变换残差与大姿态\u003C\u002Fh1>\u003Cp style=\"line-height:2\">当脸偏航很大，五点无法同时贴近平面模板，Umeyama 仍给出「最小二乘最好」的 M，但残差大，warp 后必扭曲。应用层应：\u003C\u002Fp>\u003Cp style=\"line-height:2\">mean_reproj_err = mean_i || M(src_i) - kRef5_i ||\u003C\u002Fp>\u003Cp style=\"line-height:2\">超过经验\u003Cspan style=\"color:rgb(225, 60, 57)\">像素阈\u003C\u002Fspan>（例如数个像素量级，需按实现标定）→ 本帧不参与锁定投票。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十六、安全与偏见（科普）\u003C\u002Fh1>\u003Cp style=\"line-height:2\">embedding 不是原图，仍属生物特征相关数据：控访问、控留存、与用户 ID 映射分离。不同肤色\u002F年龄误差可能不同，评估集应覆盖目标人群。误识业务代价通常高于拒识，阈值策略要反映这一点。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十七、实现检查清单\u003C\u002Fh1>\u003Col>\u003Cli style=\"line-height:2\">关键点顺序与 kRef5 一致；\u003C\u002Fli>\u003Cli style=\"line-height:2\">输出确为 112×112，颜色通道正确；\u003C\u002Fli>\u003Cli style=\"line-height:2\">特征 L2 后再点积；\u003C\u002Fli>\u003Cli style=\"line-height:2\">底图与现场同一套预处理；\u003C\u002Fli>\u003Cli style=\"line-height:2\">阈值来自目标域（本项目契约值 0.32 作起点\u002F默认）；\u003C\u002Fli>\u003Cli style=\"line-height:2\">对齐失败有错误路径，禁止 silent 黑图提特征；\u003C\u002Fli>\u003Cli style=\"line-height:2\">底图入库有质量门禁；\u003C\u002Fli>\u003Cli style=\"line-height:2\">线上尽量轨迹聚合。\u003C\u002Fli>\u003C\u002Fol>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十八、分数带日常解读（相对本域）\u003C\u002Fh1>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F1f09c1ee-7819-4ea1-9c6e-98aa60e771bb.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">切勿把他域论文阈值直接印刷到产品；换镜头与压缩，分布会移动。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十九、同一人分数为何波动\u003C\u002Fh1>\u003Cp style=\"line-height:2\">表情、转头、光照、压缩都会改纹理 。可怕的不是波动，而是用单点极值决策。看分布中心与高质量帧占比：只有偶发尖峰、多数很低 → 怀疑误匹配或门禁失效。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十、L2 归一化与数值坑\u003C\u002Fh1>\u003Cpre>\u003Ccode>void PersonFocusFaceRecogOrt::l2_normalize(std::vector&lt;float&gt; &amp;feat) {\n double norm = 0;\n for (float v : feat) norm += (double)v * v;\n norm = std::sqrt(norm);\n if (norm &gt; 1e-8) {\n for (float &amp;v : feat) v = (float)(v \u002F norm);\n }\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp style=\"line-height:2\">数值例子： 未归一化向量若范数约为 12，两向量夹角其实不大，但原始点积可能到几十；另一对范数都很小的噪声向量点积却接近 0。若不归一化就设阈值，等于拿「长度」和「角度」混在一起比，阈值无法跨样本迁移。\u003C\u002Fp>\u003Cp style=\"line-height:2\">若 \u003Cspan style=\"color:rgb(225, 60, 57)\">norm ≤ 1e-8\u003C\u002Fspan>（全零或崩坏输出），函数 不除，特征保持原样——后续点积无意义。应对：检测 embedding 范数，异常则丢弃本帧。\u003C\u002Fp>\u003Cp style=\"line-height:2\">特征比较 在双方已归一化前提下直接累加点积；没有在 compare 里再次归一化。因此必须保证 对齐脸嵌入 \u002F 人脸嵌入 出口已经 L2。若某条 GPU 捷径漏了 normalize，会出现「偶发分数爆炸」。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十一、 轨迹打分如何吃 0.32\u003C\u002Fh1>\u003Cp style=\"line-height:2\">锁定不只看单帧是否 ≥0.32，还会把轨迹统计折成综合分。核心逻辑（人物聚焦模块）：\u003C\u002Fp>\u003Cp style=\"line-height:2\">解读：\u003C\u002Fp>\u003Col>\u003Cli style=\"line-height:2\">硬门： avg 与 max_sim 同时低于 0.32 → 该轨没有资格；\u003C\u002Fli>\u003Cli style=\"line-height:2\">软合成： 更看重 max_sim（0.58），其次高分占比（0.30），均值权最小（0.12）——鼓励「曾经有过清晰正脸」；\u003C\u002Fli>\u003Cli style=\"line-height:2\">prominence： 人在画面中更大、更居中加分，避免角落路人偶发像而夺锁。\u003C\u002Fli>\u003C\u002Fol>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>手算例子\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">轨 A：\u003Cspan style=\"color:rgb(225, 60, 57)\">avg=0.28, max=0.41, hi_ratio=0.3, prom=0.6\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">硬门：max=0.41≥0.32 → 通过\u003C\u002Fp>\u003Cp style=\"line-height:2\">thumb_core = 0.120.28 + 0.580.41 + 0.300.3 = 0.0336+0.2378+0.09 = 0.3614\u003C\u002Fp>\u003Cp style=\"line-height:2\">score = 0.720.3614 + 0.28*0.6 ≈ 0.260 + 0.168 = 0.428\u003C\u002Fp>\u003Cp style=\"line-height:2\">轨 B：\u003Cspan style=\"color:rgb(225, 60, 57)\">avg=0.35, max=0.36, hi_ratio=0.8, prom=0.3\u003C\u002Fspan>（稳定但峰值一般、不太居中）\u003C\u002Fp>\u003Cp style=\"line-height:2\">thumb_core = 0.120.35 + 0.580.36 + 0.300.8 = 0.042+0.2088+0.24 = 0.4908\u003C\u002Fp>\u003Cp style=\"line-height:2\">score = 0.720.4908 + 0.28*0.3 ≈ 0.353 + 0.084 = 0.437\u003C\u002Fp>\u003Cp style=\"line-height:2\">两轨分数接近时，日志里的 \u003Cspan style=\"color:rgb(225, 60, 57)\">avg\u002Fmax\u002Fn\u002Fhi\u002Fprom\u002Fscore \u003C\u002Fspan>比单看一个 0.32 开关更有信息量。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十二、 ArcFace 损失直觉（公式级）\u003C\u002Fh1>\u003Cp style=\"line-height:2\">训练时类别权重与特征都落在超球面上，logits 用角度：\u003C\u002Fp>\u003Cp style=\"line-height:2\">cos(θ_y) → ArcFace: cos(θ_y + m)\u003C\u002Fp>\u003Cp style=\"line-height:2\">L = -log( e^s·cos(θ_y+m) \u002F (e^s·cos(θ_y+m) + Σ_j≠y e^s·cos(θ_j)) )\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">m：角度间隔，迫使同一类更聚、类间更开；\u003C\u002Fli>\u003Cli style=\"line-height:2\">s：尺度，放大梯度。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">推理时你只拿到特征，用余弦比。换模型必须重标定阈值：不同 m\u002Fs、不同数据训出的分数分布不可直接共用 0.32。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十三、 对齐失败的可复现实验\u003C\u002Fh1>\u003Cp style=\"line-height:2\">固定一张正脸图，故意搞坏五点：\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002Fe610f1eb-a99f-480f-b3b3-e9a2211943d0.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"line-height:2\">这能快速证明：识别问题优先查几何，再查模型。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十四、expand-pad 重试与相似度\u003C\u002Fh1>\u003Cp style=\"line-height:2\">现场比对偶发失败时，代码会对脸框做约 0.18 比例外扩再 embed（扩大上下文、减轻切下巴）。外扩过大可能引入邻人肩膀纹理，sim 漂移；过小则对齐黑边增多。与检测 ROI「不外扩」不同，这是 识别前对已检脸框 的补偿，两者不要混为一谈。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二十五、余弦与欧氏的换算\u003C\u002Fh1>\u003Cp style=\"line-height:2\">双方单位向量时：\u003C\u002Fp>\u003Cp style=\"line-height:2\">||a-b||² = 2 - 2·(a·b) = 2(1 - sim)\u003C\u002Fp>\u003Cp style=\"line-height:2\">故 \u003Cspan style=\"color:rgb(225, 60, 57)\">sim=0.32\u003C\u002Fspan> 对应欧氏距离：\u003C\u002Fp>\u003Cp style=\"line-height:2\">||a-b|| = sqrt(2(1-0.32)) = sqrt(1.36) ≈ 1.166\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"color:rgb(225, 60, 57)\">sim=0.50\u003C\u002Fspan> → \u003Cspan style=\"color:rgb(225, 60, 57)\">sqrt(1.0)=1.0；sim=0.80\u003C\u002Fspan> → \u003Cspan style=\"color:rgb(225, 60, 57)\">sqrt(0.4)≈0.632\u003C\u002Fspan>。用哪一种报数都行，但团队内部必须统一，并与主角锁定相似度阈值（0.32）的余弦语义一致。\u003C\u002Fp>","https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F08\u002F28\u002F47311195-f6f8-4f6c-bc99-1b320e3b7623.jpg","84,85","美畅，美畅物联，畅联，畅联云平台，视频监控云平台，云视频监控，视频云平台，视频开放平台，视频感知云，视频接入网关，AIoT综合接入网关，视频中台，物联网中台，视频上云网关，Ehome，I连锁行业，智慧交通，AI算法","原创技术分享丨美畅物联向工","https:\u002F\u002Fwww.24hlink.cn\u002Ftech\u002F2579","2026-08-28 11:55:15","865"]