这是一篇可以直接使用的文章。下方是完整的表情实验室,点击打开摄像头或选择照片开始。
使用说明 ↓先点击绿色按钮打开摄像头,并允许访问。模型就绪后会自动检测;也可以单独暂停检测、关闭摄像头。
图像只在你的浏览器内处理,不上传。首次加载网页和模型需要联网。
刚刚的表情
表情的变化,会留在这里。仅保留本次页面最近 8 条结果,刷新后清空。
放松一点,自然就好。
保持面部清晰、避免逆光。画面只保留一张脸。模糊、过暗或多人时,会提醒你调整。
让模型学习你的表情
自己标注、在本机训练,再用新拍的样本比较是否更准。只有通过验证,你才可以启用个人分类器。
展开本机训练与验证
- 采集训练样本:使用精细识别,选择你实际做出的表情,再点击采集。七类各至少 10 条;建议分几次拍摄,包含不同光线、正面和左右歪头约 15–35°。开心、生气、厌恶建议各采 30 条以上,避免只采同一表情强度。
- 训练分类层:在本机学习 256 维表情特征与标签的对应关系。训练时厌恶类别的损失权重提高到其他类别的 1.75 倍,在样本数量平衡的基础上重点学习厌恶;仍需中性和生气作对照。保留原视觉网络,只训练小型分类层;不是从零训练大模型。
- 另采样本验证:训练结束后,每类另采至少 5 条。建议隔一段时间重新拍摄,不能复用训练照片或拆分同一视频的相邻帧。用于其他人时,也需另留未参与训练的人。
- 比较后启用:仅当宏平均 F1 提高至少 2 个百分点、准确率不降低且单类召回率下降不超过 20 个百分点,同时开心、生气、厌恶的精确率和召回率均不下降,已采集歪头样本的准确率不下降时,允许启用。这个小样本门槛只用于探索,不是统计显著性证明。
标签描述可见的表情样式,并不证明内心情绪。无法判断或混合表情不要强行采样。最低样本数只用于试验,不保证训练会变好。
第 1 步 · 采集训练样本
打开摄像头并开始检测,或分析照片,再选择标签、点击采集。不会自动收集样本。
训练与推理均不联网。只在你点击采集时保留表情特征和标签,不保存原照片;刷新会清空,请按需导出。特征文件也请妥善保管。导入模型后需重新验证再启用。
模型设置浏览器本地 · 面部对齐
当前灵敏度:最高分类分数至少 45%,领先第二名至少 8 个百分点。中性分数 ×0.70,厌恶分数 ×1.25,再统一归一化。这是手动决策偏好,会更容易报出表情,也可能增加误报;镜像分歧与画面质量检查仍保留。
默认精细识别:同帧分析、按双眼连线旋正歪头、原图与镜像特征融合并检查分歧、照片最高保留 1280 像素长边且不再二次 JPEG 压缩。视频约 160 毫秒短时平滑会带来少量响应延迟。目标默认每秒 10 次,实际速度看设备;可选快速模式(关闭旋正与镜像复核)。歪头支持范围约 ±50°,大幅侧脸、低头与仰头不保证识别;没有检测到人脸时会尝试 ±30° 旋转搜寻,耗时会增加。画面质量阈值与不确定阈值是经验设置,尚未做概率校准。
把这个小实验,分享出去。
分享的是网页链接,不会附带你的照片或训练数据。
结果卡只包含当前分类与分数,不含人脸照片。你可以自行附在 X 帖子中。
使用前,了解这几件事。
从 X 打开,摄像头无法使用?
点击 X 内置浏览器的菜单,选择在 Safari 或 Chrome 中打开;不同手机的菜单名称可能不同。也可以复制本页链接,粘贴到系统浏览器。允许网页及系统的相机权限,确认摄像头没有被其他应用占用。你随时可以改用照片识别。
每秒能检测几次?
默认目标 10 次/秒,可选择 2、5、10、15、30 次。实际速度由设备决定,以页面“实测”为准。首次模型加载后,分析在本机进行。长时间使用时可降低频率,或点击暂停检测。
歪头也能识别吗?
精细模式先测量双眼连线的倾斜角度,将人脸旋正再分类;画面会显示歪头角度。默认目标每秒 10 次,以实测速度为准。建议从左右 15–35° 开始,大幅侧脸、遮挡或倾斜超过约 50° 时会提示调整。原图与镜像结果分歧时不会强行给出确定标签。精度是否提高,仍需用另拍的标注样本验证。
它能读懂我的心情吗?
它将可见的面部样式分为中性、开心、悲伤、生气、害怕、厌恶和惊讶,不能确定你的真实内心感受。分数不等于准确率;不清楚的画面会提示不确定。
照片、样本和模型存在哪里?
照片和视频在浏览器内存中处理,不上传到识别服务器。本页结果与训练样本刷新后清空;只有你主动导出时才生成本机文件。导出的特征和标签也请妥善保管。本应用没有分析统计或广告脚本;网站托管服务可能处理正常访问日志。
可以离线使用吗?
网页版首次加载需要联网。你也可以下载完整离线 HTML,在兼容的电脑浏览器中打开。移动系统或文件预览器可能限制本地文件摄像头,手机优先使用本网页。
模型和开源许可
采用 face-api.js 0.22.2 的 Tiny Face Detector、Tiny Landmarks 与 Face Expression 模型。个人训练只更新最后的分类层,不能保证精度提高。
查看 MIT 许可证