了解七项输入、必要条件、匹配数量、无候选时的再次比较,以及最高分并列时的随机选择。
人脸检测与动物分类是两个步骤
WhatZoo 在浏览器中用 MediaPipe Face Landmarker 获取 478 个人脸关键点。该模型不预测动物名称或性格。随后,应用比较预先编写的条件,选择动物名称。模型加载和处理时间取决于设备及网络环境。
代码使用的七项指标
当前 calculateMetrics 使用 x、y 坐标。距离是这两个轴上的欧氏距离,不使用 z 坐标进行深度分析。
- 眼部倾斜值:(33 号 y − 133 号 y + 362 号 y − 263 号 y)× 100,不是以度为单位的角度。
- 眼间距比: 33 号与 362 号的距离 ÷ 脸宽。
- 脸部纵横比: 脸高 ÷ 脸宽。
- 鼻宽比: 102 号与 331 号的距离 ÷ 脸宽。
- 嘴宽比: 61 号与 291 号的距离 ÷ 脸宽。
- 下巴比: 17 号与 152 号的距离 ÷ 脸高。
- 微笑标记: 0 号和 17 号的平均 y,减去 61 号和 291 号的平均 y,判断结果是否大于 0.01。
脸宽取 234 号与 454 号的距离,脸高取 10 号与 152 号的距离。转换成比例仍不能消除角度、表情或遮挡的影响。这些不是医疗测量,也不表示经过验证的准确率。
比较候选的顺序
- 检查每个配置的必要条件,其中可能包含多个比较。
- 通过的候选得 1 分,每满足一项细节条件再加 1 分。目前每个配置最多三项细节条件。这是计数,不是加权或基于距离的相似度。
- 只有没有任何候选通过必要条件时,才忽略必要条件,对全部配置比较细节匹配数量。分数低本身不会触发这一步。
- 多个候选并列最高分时,用 Math.random 选一个。没有候选时使用默认配置。
例如 A 和 B 都通过必要条件与两项细节条件,各得 3 分。如果这是最高分,两者都有可能被选中。3 分不代表 75% 的相似度或性格准确率。
同一照片也可能出现不同结果
换照片可能改变坐标和条件匹配。即使测量值相同,最高分并列时也可能选出不同动物。因此不保证同一个人始终得到同一名称。层级用于内容分类,不衡量职业能力、性格或人的优劣。
应用不会为了这一步分类把分析照片和面部坐标发送到服务器。单人分析可能将结果动物 ID 发给统计 API,普通网站分析则独立运行。可在方法论和图鉴中查看指标与各动物的条件。