“识别不了”是用户反馈里最常见、也最含糊的一句话。它可能是画面里根本没有骨架,可能是骨架出现了但一抖一抖,也可能是骨架很稳但分析结果迟迟不出来。这三种情况的病因几乎不重叠:第一种多半出在画面和权限,第二种多半出在光线和遮挡,第三种更可能是手机性能。把它们混成一句“不能用”,排查就会变成东试一下西试一下,越试越乱。

这篇文章给出的是一套从便宜到昂贵的排查顺序,每一层都写清楚症状、可能原因、怎么验证、怎么处理。方法不依赖某个机型,也不需要你懂算法。

先分清楚:你遇到的是哪一种“识别不了”

动手之前,先用十秒钟给症状归类,能省下后面大半的时间。可以问自己三个问题:屏幕上有没有出现任何骨架线或关键点?如果有,它们是稳定地贴着身体,还是不停跳动、错位、甚至跑到别的东西上?动作做完之后,结果是即时出现,还是要等很久、或者干脆不出?

“完全没有画面”指向权限和摄像头占用,“有画面没骨架”指向入镜与光线,“骨架飘”指向遮挡和运动模糊,“骨架稳但结果慢”指向设备性能。不确定就按顺序走一遍,前面的检查都很快。

排查的总原则:先排除最便宜的原因

动作识别是一条链:摄像头取得画面,画面进入模型,模型输出关键点,关键点再被拼成动作序列,最后才是分析和反馈。链上任何一环出问题,用户看到的都是“识别不了”,但每一环的修复成本差别很大。改一下站位只要十秒钟,换个光线要一分钟,清理缓存要几分钟,重装应用要更久,换手机则是另一个量级。因此顺序应该是:先查免费的、可逆的,再查有成本的;先查自己这一侧的条件,最后才怀疑软件本身。

第一关:权限和画面有没有真的进来

先确认最基础的两件事:应用有没有摄像头权限,画面是不是实时的。权限被拒绝的表现是黑屏或者只有一句提示,处理办法是进入系统设置,把相机权限改成“仅使用期间允许”,然后把应用彻底划掉再重开。如果你对权限的几种选项不熟悉,前一篇《第一次下载od体育App,摄像头权限应该怎么设置?》讲的就是这些,不再重复。

权限没问题但画面是黑的或者卡住,就要想想别的应用是不是占着摄像头,比如视频通话、扫码、另一个录像软件。验证的方法很简单:换成手机自带相机,看能不能正常出图。系统相机能用而应用不能用,问题在应用与系统的交互;系统相机也不行,那是硬件或系统层面的事。

第二关:人在画面里,但画面“不够用”

很多人以为“我就站在画面里”,模型就应该能看到,但对关键点模型来说,能看到的是“完整、清晰的身体”。常见的三种不够用,几乎覆盖了这一关的所有情形。

第一种是没有全身入镜。头顶或脚尖被裁掉,模型只能猜那些关节,应用要么不输出,要么输出飘忽的结果。验证方法:让手机放远一些,直到你在整个动作过程中,头到脚始终留有余量。深蹲下去时头会降低,双臂上举时手会升高,所以要预留的是“动作幅度的全范围”,而不是站直时的样子。第二种是距离太近或手机太低,出现明显的透视畸变。第三种是角度不对,正对镜头做本来适合侧面拍的动作,膝关节屈伸这样的矢状面运动就几乎看不出来。

处理办法是按动作重新摆机位。深蹲、跑步、投篮各自适合什么高度和角度,《od体育App如何用手机摄像头完成一次动作分析?从机位到光线的实用指南》分动作写了一套清单,问题出在机位的话,按那篇调整比自己摸索省事。

第三关:光线和背景,逆光是头号杀手

手机的自动曝光会以画面的平均亮度为依据。窗户在你身后、灯在你身后,都会让人体变成一团暗影,此时肉眼看得清,摄像头却已经丢失了大量细节,关节位置变得模糊,骨架就会一会儿有一会儿无。反过来,太阳直射在脸上和身体前侧,同样会造成过曝和硬阴影。

验证方法很直观:暂停,在应用画面里看自己的轮廓能否一眼辨出四肢,还是一团黑。处理上,尽量让主光源在手机一侧或斜前方,避免背光;夜间室内选择均匀的顶灯,而不是只有一盏台灯从侧面打亮半边身体。

背景是另一半问题。人和背景的颜色太接近,比如穿深色衣服站在深色柜子前,模型区分身体边缘会更吃力;背景里有挂衣架、人形立牌、镜子里的倒影,都可能被误认为第二个人。衣着方面,过于宽松的衣服会遮住膝盖和髋部的轮廓,使得下肢关键点位置靠推断。最省事的处理是换一面干净的背景,并穿贴身一些的衣服,再做一次测试。

第四关:动作太快,画面糊了、断了

静态站立时识别正常,一做快动作就丢,多半和帧率、曝光时间有关。普通视频常见的帧率是30帧每秒,也就是每帧间隔约三十三毫秒;快速挥臂、蹬伸的过程中,肢体在一帧之内可以移动相当长的距离,如果快门时间偏长,就会拉出运动模糊,关节位置变成一道拖影,关键点自然不准。60帧每秒的画面更清晰,但对手机的处理能力要求也更高。

验证方法:用同样的位置做一次慢动作,如果慢的时候识别稳定、快的时候丢失,就基本可以判定是速度问题;再检查光线,光线暗时手机会自动拉长曝光时间。处理办法是补光;如果应用提供选择帧率的设置,以应用内实际提供的选项为准,适当提高,同时注意发热;动作可以先用略慢的节奏确认识别正常,再逐步提速。要坦白的是:羽毛球扣杀的出手瞬间这类极快动作,本来就可能落在两帧之间,任何方案都无法凭空补出不存在的画面。

第五关:遮挡和“不止你一个人”

身体自己会遮住自己:侧面拍摄时,靠里的那条手臂和那条腿会被身体挡住,模型对这些看不见的关节,要么给低置信度,要么靠周围推断。器械也会遮挡:杠铃杆横在肩上、瑜伽垫卷在脚边、哑铃在手里遮住手腕,都可能让关键点不稳。

更容易被忽视的是画面里的其他人。假设一位跑者在健身房里,把手机架在跑步机侧面,想拍自己的跑姿。屏幕上骨架时而贴着他,时而突然跳到旁边那台跑步机上的另一个人身上,结果分析出来的步频忽高忽低。原因并不复杂:多人场景里,应用需要决定“哪个人是被分析的对象”,当两个人的距离靠近、画面里位置交叠时,身份可能被换掉,这在多人姿态估计里被称作ID切换,是公开研究里长期存在的难题。

验证的办法是清场:让画面里只有你一个人,看骨架是否稳定。处理办法是换一个时间或者位置,让被拍摄的人独占画面;实在做不到,也应该把手机摆得让别人处于画面边缘之外。篮球这类多人对抗的画面,遮挡与身份切换更严重,此时输出低置信度甚至不输出,是应该做的事,而不是缺陷。

第六关:设备性能、发热与降频

前面五关都通过了,骨架稳,但分析越来越慢、画面一卡一卡,问题就很可能出在设备本身。手机在跑关键点模型的同时,还要维持摄像头取景、渲染骨架、写入存储,几件事叠在一起,芯片持续高负载,温度上升之后系统会主动降低频率保护硬件,这就是发热降频。表现是:刚开始几分钟还行,训练到后面越来越卡,机身发烫。

验证方法:观察问题是不是和使用时长有关;把手机放在通风处冷却几分钟再试,如果恢复,基本就是散热问题;同时关掉其他后台应用、退出视频和游戏,再对比。处理上,取下厚手机壳,避免阳光暴晒,缩短单次拍摄时长,或改成拍完再分析而不是全程实时处理。旧手机究竟能不能跑、哪些因素决定速度,《旧手机能不能运行od体育AI动作分析?影响识别速度的真正因素是什么》专门做了拆解,设备偏旧的读者建议对照着看。

最后一层:软件版本、缓存,以及反馈时该带什么

只有在前面各关都排除之后,才值得怀疑软件本身。先看应用是否是最新版本;再考虑清理应用缓存,注意区分“清缓存”和“清数据”:前者通常只清临时文件,后者可能把本地训练记录一并清掉,操作前应先确认数据是否已经备份。重装是最后手段,重装前同样要确认记录已同步或导出。

如果仍然无法解决,向客服或者反馈入口提交信息时,光写“不能识别”几乎没有帮助。更有用的是这几条:手机型号和系统版本、应用版本、拍摄的动作和机位、光线情况、出现问题的时间点、问题是每次出现还是偶尔出现,以及是否在发热之后才发生。

一张速查表,以及一个完整的排查演示

症状 可能原因 怎么验证 怎么处理
黑屏、无画面 相机权限被拒;摄像头被其他应用占用 用系统相机试拍;查看权限设置 改权限并重开应用;关闭占用摄像头的应用
有画面、无骨架没有全身入镜;光线太暗或逆光 拉远手机看头脚是否留有余量;看轮廓是否清晰 调机位与距离;改善光线
骨架抖动、错位 背景杂乱、衣着宽松、部分遮挡 换干净背景再试;穿贴身衣物 换位置;避免器械与身体遮挡关键关节
快动作时丢失 运动模糊、帧率不足放慢动作对比;检查光线补光;适当提高帧率;分段测试
骨架跳到别人身上 多人入镜、ID切换 清场后重试 让画面只留一人;固定分析对象
越用越卡发热降频;后台占用 冷却后对比;关闭其他应用 缩短时长;拍完再分析;降低负载

再把顺序演示一遍。假设一位用户在客厅里用手机拍深蹲,屏幕上骨架时有时无。他先看权限,正常;用系统相机拍一张,画面也正常。接着发现自己只能被拍到膝盖以上,因为手机放在茶几上、离得太近,于是把手机拉远,头到脚都进了画面,骨架稳了不少,但下蹲到底时依然会丢。他回头看光线,发现落地窗在身后,人成了剪影。把身体转向一个方向、让窗光从侧面进来之后,骨架终于全程稳定。整个过程没有重装应用、没有清缓存,花的时间不到十分钟。

多数“识别不了”不是软件坏了,而是画面没有达到关键点模型能可靠工作的下限。排查到最后仍不行,就把前面列出的信息交给客服,反馈才有价值。还要记住:画面很差时任何识别都只能给出低可信的结果,遇到疼痛、不适或动作明显不对劲,应以身体感受和真人教练的判断为准,而不是等屏幕上的评分。