yolo模型提供图像识别、人物追踪等技术。且可用于手机端,做到实时识别的能力。
优势:
- 识别速度快
- 有框选圈,可以知道物品在图片上的位置
缺点:
- 识别的物品无唯一标识,缺少空间能力
- 有不低错误率,影响使用场景
正因为识别速度快,可以应用到手机端,拍摄视频时实时识别,这样应用级的想象空间就巨大。但识别准确率不高,且如果是用于视频识别,那帧的不稳定性会大大影响到其识别准确率。且存在另一个问题就是,缺少空间能力,即只能识别有没有,不能识别到同物品个数。
这就是端上应用层面不普及的很大因素。所以,使用场景是最大的困难,接入使用训练都不是问题。
比较建议的使用场景:yolo的框选能力+后端大模型识别,猜测支付宝旗下的灵光,就是该实现方式。做到AI实时扫描生成识别的能力。 即,yolo负责选帧,大模型负责识别。在yolo识别到有物品并进行框选,其置信度达到某一值后,认为可信,且选出最优,发送给后端进行大模型识别。
接入:
苹果最好直接使用coreML,原生能力带有GPU优化,兼容性好。 如果需要双端通用能力,可以直接阿里团队的MNN。将yolo模型.pt格式转为.mnn或.onnx,即可应用。但相较于苹果的coreML,性能上还差很远,其格式为.mlmodel。
筛选:
视频60/30帧居多,也就是1秒可以处理60张图片,但如果把这么多都传给服务器必定造成巨大压力。最好是以选图的方式进行传输,如,选出某段时间内,同物品置信度最高的。
调优:
如何让识别速度得到提升呢,第一可以将精度从INT16降为INT8,第二,可以减小输入的尺寸,如640减小为320.第三,也是最好的方式,直接用coreML,其速度能达到10ms完成识别。
核心逻辑:
yolo先将图像划分为SxS的网格,每个网格预测边界框。提取图像特征,并预测一组类别概率。在训练时,通过计算位置误差(IOU)和分类误差来不断修正权重。在推理时,剔除掉重叠度高且置信度低的框,只保留最准确的那一个。