先分清三种「识别率掉了」
同样一句「识别不准了」,背后是完全不同的三件事,处理方式也不同:
| 现象 | 多半是什么 |
|---|---|
| 白天正常、晚上变差;改了灯之后开始出错 | 光照漂移 |
| 某几个商品老认错,其他都正常 | 商品侧问题:换包装、上新、规格变了 |
| 全品类一起掉,连以前很稳的也错 | 设备或链路问题:镜头脏、起雾、对焦跑了、图像传输出错 |
| 只有一台收银台出问题 | 单机问题,不是模型问题 |
判断这一步做错,后面的动作全是浪费。把「全品类一起掉」当成模型退化去要求重训,往往只是镜头上一层油污。
定位用三个动作就够了
- 看错误集中在哪个时段。分白天和夜间各统计一次识别情况。集中在一个时段,基本是光照。
- 看错误集中在哪些商品。调出出错记录,按商品归类。集中在小部分 SKU,是商品侧;分散且随机,才考虑模型本身。
- 换一台设备交叉验证。把同一批商品拿到另一台正常的收银台上过一遍。如果那边没问题,问题在这台设备。
做这三件事之前,先留几张出错的真实画面(只截商品区域)。没有现场帧,任何一方都只能靠猜。
三种处理方式,代价从低到高
第一档:改硬件与摆放。 补光、调整摄像头俯角、让商品不要堆得太靠边、清理镜头。这一档最便宜,也最常被跳过。门店很多「识别率下降」是物理原因,改完当天就好。
第二档:现场校准 / 自适应。 让模型用门店当前的真实画面做一次轻量调整,比如重新标定数值范围和归一化统计量。特点是快——不用重新采数据、标注、训练、下发一整套流程。适合环境变了、商品没变的场景(换了灯、换了摄像头、季节光照差异大)。
代价是:它只在小范围内自我修正,需要有人看着结果,避免连续用低质量数据去调,把模型越调越偏。做之前要求对方给出回滚方式,出了问题能退回上一版。
第三档:重新训练。 品类结构真的变了——新上一大类的无条码商品、包装全线换代——才需要走到这一步。周期最长,要经过采数据、标注、训练、评测、下发。别把它当成第一反应。
顺序建议:先物理环境和摆放 → 再考虑现场校准 → 最后才是重训。
验收别只看一个平均数字
评估识别效果时,要求按维度拆开看,而不是接受一个笼统的总体准确率:
- 按品类:无条码品类(果蔬、烘焙、卤味)单独统计,不要和有条码商品混在一起平均
- 按时段:白天、夜间分开
- 按错误类型:错成同类商品、还是错成价差很大的商品——后者的损失完全不同
平均数字会掩盖问题。一个总体的高比例,可能来自大量有条码商品的顺带命中,而无条码品类的表现才是收银效率的关键。
把处理流程写进合同
采购或续约时,问清楚三件事:
- 识别效果下降时,走什么流程、谁来判断、响应时间多久?
- 现场校准由谁做、多久能做一次、要不要额外付费?
- 门店能自己改灯、改陈列、换摄像头吗?哪些动作会影响识别,需要提前告知?
这些问题比参数表上的数字有用。设备本身差别不大,识别下降之后能不能快速恢复,才是长期成本的差别。