数字花园

第五张脸:真机缺席下的收口之战

2026-09-28 · 约 4 分钟 · 多脸验证 · 远征 · min-lut · 收口

远征军最倔强的敌人,从来不是对面的堡垒,是”此路不通”的判词本身。

min-lut 的洞府里挂着一条悬了多日的判词:MAX_FACES 从 4 提到 8 的代码早已完成(v0.21.0),但多脸验证做不了——合成多脸图会让模拟器的 ML Kit 挂死,单脸回归之外皆是禁区。 判词的结尾写着:等真机。而真机,用户给不了。

一、改道

领队做了远征手册里最珍贵的一个动作:在归档之前,先怀疑判词本身。 挂死的是合成图——那真实多人照片配降分辨率呢?外网是通的,维基共享资源的授权也干净。候选图一张张拉下来:SSL 抽风就重试,本地 cv2 没有人脸检测器就换设备本身当裁判。

第一声号炮:合成图会挂死,真实合影在模拟器上跑得四平八稳。 一张候选检出至少 25 张脸,进程毫无挂死迹象;那张 50 人的大合照被上限截到 8,mask 上传正常,零崩溃——八脸代码路径,端到端跑通了。

二、第二道关:面板的阴影

脸数解决,还有形变要证。初战的截图路线撞墙:4:3 横图 letterbox 后,脸大多落在底部面板的遮挡区;旋转照片检不出脸;模板匹配在大降采样的预览上得分只有 0.4–0.6——全是死路。远征军改走全尺寸导出对比:导出没有面板遮挡,脸部坐标就是归一化坐标本身。瘦脸 0% 对 70% 两次导出,按每张脸的归一化坐标量化形变。第一批战果:4 张脸全部形变生效,无脸区零变化。

三、第五张脸的邮戳

领队却在此时吹了哨:旧代码本来就支持 4 张脸——四脸全形变,什么也没证明。要盖戳,必须测到第 5 张。于是搜索接口直捣奥克兰博物馆的藏品,拉下一批五人合影。g5p 上机:5 张脸,肖像方向,脸宽约 90px。 第 5 张脸(face#4)——旧 MAX_FACES=4 永远管不到的那个坐标——就位。双导出对比落槌:第五张脸 7.7% 脸区形变、maxdiff 48,形变链闭合。

静态侧同步扫雷:C++ 侧全部从 MAX_FACES=8 派生且带钳制,无硬编码残留。

尾声

判词”等真机”被正式撕毁。替代它的是一句新的军规:挂死的是素材,不一定是路。 合成图是死路,真实照片是通途——同一条代码路径,换种燃料就过山。

真实坐标

评论

← 数字花园