笔者从工作实践出发,以智能货柜为例,梳理了CV领域识别错误的3类场景,并对这些“错误”给出了自己的建议。与大家分享。
一、图像识别任务简介
先简单说明下图像识别四大任务:分类、定位、检测、分割。
图像分类:任务的输出是判断输入图像所属分类。形象说明:给一张有人的图片,模型判断图片类型是“人”or“鸟”。
目标定位:在图像里面目标较少或固定,任务的输出是把在图像里的目标找出来标注具体位置。形象说明:给一张有人的图片,模型把人框出来。
目标检测:在图像里面目标较多且不固定,任务的输出是把在图像里的目标找出来标注具体位置,难度比目标定位更大。形象说明:给一张有很多人的图片,模型把所有人都框出来。
语义分割:基于目标检测的基础下,更精准的标注出图像里的目标。形象说明:给一张有很多人的图片,模型把所有人按轮廓框出来。
二、识别错误场景
以下介绍的图像识别错误场景主要围绕目标检测和目标分类任务,在识别“商品”这个领域下,识别错误场景一般分为以下三类:
漏识别:应检测目标没有被检测到;
识别多:不应检测目标被检测到并且进行了分类。
发生原因:
阳光直射,图片曝光,导致漏识别,或者其他类似的环境问题,导致拍摄效果质量差,图片失去了正常准度;
商品相互遮挡,被遮挡的商品没有了特征,无法识别;
解决方案:
贴防光膜,挡阳光,但是会造成视觉体验差,几乎看不到商品。其他类似环境问题也可以通过“物理”手段解决;
增加光照(异常)场景下的图片训练数据(给模型针对具体错误场景更好的泛化能力),拿更多真实环境的图片作为训练数据;利用数据增强,调整图片亮度模拟光照作为训练数据;
利用IOU(检测目标面积的交并比)和一些图像相似度对比算法(余弦对比、像素点对比等),在漏识别的情况下通过后处理逻辑重新将漏检测的目标“硬生生”识别出来。(本质上,模型依旧是识别不准确,但是实际效果是ok的)
但是加后处理逻辑算法是有潜在成本的,首先会让团队精力没放在模型真正的准确度上,一直专注完善逻辑;
其次就算怎么加逻辑,也有没办法覆盖到的场景,最后就是逻辑越来越复杂,反而会导致整体识别体验效果变差。
发生原因:
两个商品很相似(人眼也分不清楚到底哪个是A哪个是B),经常相互识别;
解决方案:
不断调参,优化模型,补充训练数据,增加训练数据质量;
减少/拒绝相似商品同时出现在同一场景下。(培训大客户,委婉的解释“最好不要”。可以强势一点的时候就“暂时不支持这样操作”);
通过产品逻辑处理,例如“模板”式识别:在该环境,识别出A和B,都默认当成A。(超级悖论,逻辑>AI);
物理式区分相似商品,如直接将A更换包装(只要能落地商业,成本<收益,管他是什么手段)。
发生原因:
一个商品认成了两个(如头尾长一样),或者背景和商品很像。在模型没有优化之前,这是很常见的问题;
从模型角度:过拟合,某些不在识别范围内的物体也识别成了商品。
解决方案:
把一些容易识别成商品的物体当作负样本训练;
不断调参,优化模型,补充训练数据,增加训练数据质量。
三、万能方案
把大概率出错的内容交给系统/人工修正处理,再把内容输出到用户。例如用户完成购物,产生一笔订单超过了500元,但是在对应场景一般不可能出现超过100元的订单,这种情况先把订单交给人工检查一遍没问题了,再去扣款通知用户。
通过产品逻辑和功能去规范用户行为,规范交互流程,把“极度容易出错/现阶段无法支持”的行为排除掉。
四、经验总结
(1)单个模型的内容label越多,即便同个模型在训练测试时得出的指标(准确率)无太大差异,但因为有大量的相近label交错,实际场景下的稳定性很差,label数量与运营稳定性是非线性关系。
在AI技术只能照顾到90%的场景的时候,剩下的10%场景可以增加“二重防护”甚至“三重防护”:例如增加重力感应、RFID感应的手段兼顾辅助,去完善产品体验。最终呈现出来的体验效果是ok的,是符合用户预期的,当然同时会增加一些成本。
(2)tob的AI产品,有时候会放弃c端用户体验,优先考虑b端商家(大部分情况下有一方得到利益,另外一方利益必定受损)。
例如智能货柜:识别错误情况多了以后,对于货柜运营商家来说承受的货损和运营成本就会增加,商家就会怀疑技术能力甚至撤离货柜布点和取消合作。
不仅如此,也会造成顾客认为机器经常乱扣钱,导致其不会回归购物场景。
(3)一定要折衷的话,前期会偏向“宁愿扣款错误,后续退款给用户,也不让商家承受损失”。
毕竟c端用户只要在一定时间内能及时退款,或者是不及时扣款,是可以通过售后流程去把控的,但是商家(特别是小商家)对货损十分敏感。
(4)AIPM要想办法通过某些渠道提前控制使用者对产品的预期。
2B的AI产品要在培训时点明现阶段支持什么,不支持什么,哪些场景靠AI是不靠谱的。不然客户购买了产品回去心理落差很大。又要有技巧的通过一些话术使得客户有期待。在商务会议场景下,又要适当的“放大”产品能力。
2C的AI产品通过前端交互引导、品牌认知广告一些方式,引导用户的对产品技术和体验的心智发展。