解决方案:34页PPT全解CVPOS自助收银及商品识别算法工程落地方法
优采云 发布时间: 2022-12-01 03:33解决方案:34页PPT全解CVPOS自助收银及商品识别算法工程落地方法
出品 | 智物公开课
讲师 | 刘思伟 织点人工智能研究室主任
指导:
6月1日晚,智点智能AI研究室负责人刘思伟在智物公开课上对AI零售合集第二讲进行了现场讲解。
本次讲座,刘思伟先生首先分析了AI+零售的现有业态,然后针对结算和收银场景下商品识别的难点,从模型选择、数据选择和标注、前端和云端等方面进行了分析部署、模型改进等方面,都进行了深入的讲解。
本文为本次专场主题演讲的图文整理:
文本:
大家好,我是广州沃店智能AI研究室刘思伟,负责零售场景相关AI产品落地。今天分享的主题是《商品识别算法在收银结算场景中的应用与实现》,主要分为以下四个部分:
1、人工智能+零售
2. CVPOS自助收银机应用及商品识别难点
3.商品识别算法落地的一般方法
4. 商品识别算法项目实现步骤及应用实践
人工智能+零售
首先,AI+零售被定义为以人工智能为核心技术,为零售行业降本增效,提升用户体验。也就是说,人工智能在传统行业是为了提高效率、降低成本、整合资源、提升体验。但在实践中,我们发现AI的能力并没有我们想象的那么好,所以在实施的过程中,更需要脚踏实地把握成本节约的关键指标。
近几年开始接触AI+零售这个概念,大概是从2016年或者17年的无人店开始的。确实风靡一时,但最终还是主要在自助结算方向,人脸支付、智能营销和门店管理。开发。形态越来越稳固。看到大家在风口面前静下心来,回归务实和理性,这是行业健康发展非常乐见的局面。为什么无人店坚持不下去,还是现在越来越少了?原因之一可能是人的诚信;另外就是管理和维护成本还是比较高,但是体验上没有达到非常极致的效果,大家就不再考虑这方面了。
目前的AI+零售业态有哪些?我们总结了 4 种主要的产品格式。一是自助结算,二是无感购物,三是新支付,四是智能营销。
自助结算是为了节省收银环节的成本。考虑到整个零售银行,结算是所有消费行为的末端,也是最容易想到、最容易控制的场景,所以大家愿意在这方面进行研发。自助收银机产品主要是自助收银台,包括RFID和可视化的,还有一些扫码设备、购物车和冰箱。实践证明,这些设备越简单易用,节约成本的效果就越显着。
二是无感购物,拿走即走,是最接近无人商店的产品。他没有固定的结算流程。提货后,出门完成自动结算。大概经历了两代,第一代是RFID模式,第二代是完全基于视觉的模式。RFID相对简单,易于实施。只要给产品加上特定的标签,出门时通过感应完成对产品的检测,从而生成订单。RFID实际上完成了一个成本转移,将末端结算的成本转移到中间,对商品成本进行标签管理。视觉方案确实解决了成本转移的问题,但是它的成本比较高,而且需要的计算能力,传感器的精度,而且规模非常大,也不是真正的无人驾驶,需要按照一定的规则运行,所以真正实现无人驾驶降落还需要很长时间,涉及到成本、技术、客户习惯等问题。为什么要继续坚持做这样的产品?这或许就是人类对未来生活方式的期待和信念。
三是支付。自扫码支付诞生以来,我们携带*敏*感*词*的机会就大大减少了。这方面确实改变了我们的生活。下一步肯定会朝着无感支付的方向发展。它的第一阶段是刷脸支付。2017年,借助微信免密支付,率先推出刷脸支付+手势识别模式,实现零触摸支付。付款方式。随着人们对支付安全的信心越来越强,刷脸支付必将成为未来的流行趋势。
四是智慧营销。通过一些会员身份识别的方法,可以对会员进行准确的推荐,为商家提供合适的营销策略。门店可以利用配置的传感器系统,比如刷脸支付的人脸识别机,对会员进行身份识别,然后通过室内监控*敏*感*词*进行客流统计,获取一些购买行为,进行大数据处理。为门店提供供应链管理、门店运营、营销推荐等服务,让门店运营更加省时省力。
这四种产品模式都是为了提高效率,这并不违背刚才提到的人工智能是为了节省成本。下面从收银环节介绍人工智能的应用。
CVPOS自助收银机应用及商品识别难点
我们所说的自助收银机设备叫做CVPOS,从名字就可以看出它是一款带有视觉技术的POS机。首先,让我们从它的基本要求开始。作为自助服务设备,其基本功能是无需其他人员参与,自行操作、输出订单、完成结算。这是产品的顶层需求。说到一些需求,相比扫码支付如何提升体验?可一次识别多个,解决扫码无法解决的非标产品问题。根据这两个层次的需求,商品的模型就是尝试用*敏*感*词*把收银台上的所有商品都拍下来,用视觉模型来识别。当然也可以使用其他传感器,但视觉是最准确的。如果你了解这个行业,你可能会用重力传感器来识别,但它的极限会高很多。
CVPOS在实际场景中会面临哪些困难?在这个领域,我们使用深度学习模型进行目标检测。在深度学习中,作为一种有监督的算法,数据的一致性非常重要,环境会对模型的输入数据产生一定的影响。我们必须保持训练数据和测试数据的分布一致。这个要求不需要太苛刻,环境尽量保持一致。不要在光线太强或太弱的环境中,或者在一些极端的情况下。环境因素交给模型自己学习和适应。
" />
那为什么不把环境封闭起来,做一些隔离呢?这样一来,产品就会过于复杂,完全违背了产品设计的初衷,因为更开放的环境会更容易让客户接受产品。因此,客户体验是第二重要的因素。除了让客户感觉舒服,与客户体验相关的另一个因素是产品是否简单易学,如何结算,如何展示产品。堵塞。当然,最极致的体验是可以随意摆放,而且这款产品还能被识别。但是在视觉上,遮挡并不能完全解决。所以后续产品的设计都是尽量减少遮挡的概率。
三是维护成本。在进行任何优化之前,成本是相当高的。首先,产品的外观可能非常相似,相似的外观对视力来说是一个非常高的风险因素。另外,零售行业的更新迭代速度非常快,我们运维和模型训练的速度要跟上他们的运营效率,才能保证这个设备的正常使用。如果这三个方面中的任何一个都没有做好,客户就可能无法付款,导致后面排队的人很多。这样效果很差,导致客户对产品的认可度和再利用的可能性降低。
上图是在申请过程中发现的一些问题。从顺时针开始,第一个,我们有使用塑料袋的习惯,但是从视觉上看,这个塑料袋其实给物体带来了很多噪音,甚至改变了物体的*敏*感*词*绕这些方面的改进和升级。
产品识别算法实现的一般方法
在介绍经验教训之前,先介绍一下算法的大致实现方法。
现在有很多优秀的开源算法,如何让它们真正帮助到你的行业,成为产品的一部分,需要一个方法论。上图是通过实践总结出来的一些经验。首先,必须明确任务的目标。是CV任务还是NLP任务?这个比较明显,我们是一个CV任务,但更重要的是,它的输出是absolute decision还是recommended decision,一目了然。绝对决策要求其准确率是零容忍的,其准确率肯定会影响最终产品的性能,而推荐决策只需要给一个分数供用户参考并自行决策即可。
很明显,CVPOS不是推荐的决策,对准确率要求非常高。因此,在选择模型算法的第二步中,首先需要根据精度要求选择算法,然后结合其他资源选择算法是使用目标检测还是分割。分类,还是多种组合,使用哪条骨干网,选择哪条网络架构,这些选择都需要根据站点的需要来决定。
第三步是数据准备。在数据集的开头可以使用公共数据集,这有助于选择合适的候选解决方案。随着业务场景的成熟,不断引入业务数据,形成数据闭环,有助于快速提升模型的准确性。
贴标,应该选择人工贴标、全自动贴标还是*敏*感*词*贴标?显然,*敏*感*词*贴标最适合实际工程应用。最后是一些数据生成的问题,因为我一直认为获取更多的数据是不可能的,总是希望模拟更多的数据分布来拟合模型。但就模拟方式的效果而言,这种数据增强不如业务数据闭环显着。
数据选择和数据集准备完成后,就是训练和调优步骤方面。使用什么样的网络?是否有任何预训练模型?什么是优化策略?是使用开源框架进行训练,还是自己搭建训练平台。因为后期真正接近产品的时候,其实是需要固化一些参数的。这时候就需要开发一个相对自动化的平台工具来进行模型训练和输出,不需要更多的参数调整,减少人工参与。对于预训练模型,可以根据产品的具体形态来选择训练模型。比如像烘焙,它的外观非常相似。
通过调参和训练,回归真实场景的业务数据循环,不断优化模型。当其性能满足一定要求时,您可以选择在线部署。具体部署看具体需求,可以选择部署在云端,也可以选择部署在前端。最后,一定要关心应用上线后,在运行过程中寻找更多真实的问题,然后将新的需求反馈到整个模型开发过程中,更好地迭代模型。
上图展示了前端部署需要的一些工具和模型。至于框架,基本都是一些成熟的框架,他们的公开资源会比较多,方便大家做实验研究。对于模型,我们以目标检测为例。会有一些带有anchor boxes的模型和没有anchor boxes的模型。应根据实际场景做出决定。因为这是一个前端部署,所以我们尝试使用一些小的主干,并使用一些模型压缩技术。在前端部署方面,有类似TFLite和Ncnn的前端架构。现在主要选择国内大厂的开源架构,因为他们对国内经常用的芯片有一些定制化处理,
上图是云部署的列表。框架是一致的,因为要充分利用模型的性能,应该较少考虑模型的小型化。可以使用一些更深、更广、更准确的网络,也不是没有优化。,因为云端部署使用的GPU大多是Nvidia的GPU,可以用TensoeRT进行优化,一般情况下可以达到三倍左右的性能增益。API的部署可能会使用一些框架自带的Serving功能,或者自己开发一些API接口。
上图是backbone在分类模型下的性能对比。一开始可以根据这张表选择性价比更高的机型进行候选实验。从上图我们可以看出ResNet50的范围是性价比最高的,所以可以考虑在这个区域附近选择一些backbone。
接下来是目标检测的模型选择。验证了Anchor-Free和Anchor的一步或两步模型。在自建数据集上进行测试。发现在backbone上性能会低一点。YOLOv3 性价比比较高。是否使用YOLOv3取决于当前的真实环境和验证实验。
商品识别算法工程实现步骤及应用实践
- 需求分析
下面介绍一下实施商品标识的经验。首先介绍一下它的基本要求。一是自助设备,自行完成下单和结算;二是对准确性要求高,结算不能错;第三,要便于客户学习和使用。根据这三个基本需求,我们确定产品的型号,即通过*敏*感*词*拍摄所有需要识别的产品,使用CV进行检测,完成账单的生成和结算。
根据场景的要求,需要考虑它的结构和外观是否能够完全辅助我们的算法。第一点是收银台的区域设计,这关系到整个商品的大小和一次性检验商品的容量。根据我们所服务的便利店和餐饮模式,平均每人每笔订单的商品数量约为4件。结账台的尺寸按此标准设计,约五六件商品,摆放时有足够的空间过程,使它们不会挤在一起,从而减少物品被挡住的可能性。对于我们的应用场景来说,大小已经很合适了。面积越大,一次识别的东西就越多。根据购物习惯,
第二点是*敏*感*词*的选择,因为*敏*感*词*的位置是固定的,我们建议选择定焦*敏*感*词*,因为变焦*敏*感*词*很难固定环境,影响数据的稳定性。另外,尽量使用一些宽动态模组来消除强光的影响。下一个选择是使用 2D 或 3D 相机。3D有距离信息。对于不在同一平面上的物体,它的分割效果还可以,但不能完全解决遮挡问题。如果完全遮挡,3D也是做不到的。考虑到综合成本,我最终选择了2D相机。
第三点是怎么布置相机?首先,多个*敏*感*词*可以提高遮挡情况下的准确率,但是通过融合两个*敏*感*词*的结果来看,提升效果并不大,因为系统不知道应该更信任哪个*敏*感*词*。这里使用了一个集成算法的思想,但是这个思想最好用在异构算法或者异构数据信号上,也就是这些算法或者信号具有完全不同的能力,所以效果会更加明显。所以,让我们先用相机进行设计。
" />
对于角度问题,如果产品的特点集中在顶部,可以直接采用垂直向下的角度,在这个角度下,遮挡的可能性基本消除。但在便利店场景中,需要识别很多瓶状产品,其特征集中在侧面,所以竖立时必须保持一定的角度。根据我们的经验,使用70-80度的角度,既能看到侧面,又不会增加太多的前后遮挡。
– 型号要求
接下来,我们将进入模型选择的问题。选择模型首先要制定客观指标,一般使用常规的mAP、召回率、准确率,客观评价待测模型,有助于快速筛选出候选模型。模型选择 这里有四个要点:
第一,预训练模型能不能做。如果能做到,就没有必要做多余的训练。其他业务或者场景可以参考,但是在CVPOS上显然不行。我们需要更多的业务数据;二是传统方法不容忽视;第三,是使用多个模型的组合还是端到端的模型;第四,模型是否易于训练和部署。
第二点到第四点其实就是在做选择,我们是要选择端到端的模型还是多种方法结合的模型。End-to-end在研究领域比较流行,但是在工程中,end-to-end 端到端并不顺畅,因为它的耦合性太强,考虑的功能会更多,所以有点难训练。但是工程上追求的是灵活性,所以很多时候问题需要分开处理。例如,整个目标检测模型可以分为两个模型:检测和分类。由于工程问题,它可能只出现在其中一个模型上。我们在优化改进的时候,只需要关心那个模型。这样可以大大简化一些后续的维护工作。因此,我们的模型是采用双模型的方式,
– 数据要求
对于数据需求,可以先选择公开数据集或在线数据进行模型训练和对比,判断模型的可行性。了解产品的具体场景后,返回自己的业务数据迭代自己的模型,形成自制的数据集。自制数据集的另一种方法是自己生成组合数据集,但在实践中,这两种方法都是有效的,但数据闭环的方法是短期内提高准确率最有效的方法。对于数据增强,部分是基于自己的猜测,因此不能完全模拟真实数据的分布,效率不如闭环数据高。第四点是贴标成本,分三种,手动,全自动,*敏*感*词*。手动和全自动显然是不行的。如果是全自动的,就证明你的模型是正确的,不需要重新训练。
选择半监督标注方式作为折衷,使用更好的预训练模型进行预标注,然后手动修正置信度较低的标注。数据标注成本的另一个考虑是它直接影响最终模型的选择。既然现在选择了目标检测,为什么不选择分割任务呢?因为分割标签很难命中,而目标检测只需要一帧,所以优先考虑目标检测的模型。在选择框标签的时候又发现了一个问题,因为同一张图片上可能会出现多个类别,所以标注起来很麻烦。因此,双模型方法可以很好地解决这个问题。贴标签的时候只需要注意盒子的位置,不需要选择是哪个类别。
下面介绍一下我们的经历。一开始,我们选择经验性能较好的模型,然后在公开数据中加入一些实验室数据。实验室数据的生成如上图所示。左边两张图是旷视科技在2019年发布的一个产品数据集——RPC,我们的采集方式与之类似。我们也利用各种相机的角度来拍摄产品,然后通过旋转的转盘记录各个角度的信息。,最后通过语义分割或者实例分割,取出他的mask mask后,再对乘积进行组合。
右图是2017年做的组合,虽然没有RPC的阴影效果,但是对最后的训练效果差不多。最根本的问题是真实的场景。通过数据训练,在实验室跑的性能很高,但是在野外下降30%很正常,证明训练和测试的数据分布不一致。
– 着陆困难
着陆困难有3个。一是远离基准;二是产品种类繁多,不同商家之间的利用率很低,难以标记;第三,维修频率很高,需要有相当高的及时性。这对上述三个要求做了一些改进。
- 提升
首先当然是数据闭环的问题。我们对环境做了一定的要求,限制了场景,开发了结果的采集工具和错误检查工具,让现场的数据能够快速的返回到模型的基础训练集,并及时更新. 学习。在数据采集方面,直接放弃了实验室环境,直接开放给店员采集,使用现场数据。在采集过程中,对于同一种商品,可以通过不同的角度和方位,按照一定的规律进行采集。如果有多个店铺有相同的新需求,可以将采集任务分配给每个店铺,每个店铺的平均采集任务会降低到一个比较低的水平,而且基本上没有额外的费用。对于标注,使用半监督检测和标注,使用更好的预训练模型进行预标注,通过人工筛选调整置信度低的样本。
二是多模式结合。上图中有两个模型,一个是检测模型,一个是分类模型。除了解耦,让标注更简单,管理数据模型更简单,还能解决目标检测。在样本不平衡的状态下,我们只需要维护一组专门用来拟合检测模型的训练数据,其他的平衡问题交给分类模型处理。
另一个问题是样品需要时间管理。假设同一年有三个时期,它的面貌是不同的。这时候就需要对商品进行时间管理。时间管理用于平衡样本,不同的时间可以添加不同的时间。比如最近的数据会多一些,长期的数据会少一些,从而生成适合更长时间的训练集。
三是建立商品预训练模型。可以根据不同的类型建立不同的预训练模型,可以加快微调速度。二是困难样本的反馈训练。这是一个闭环的微调过程,及时将这些错误的样本回收到训练集中。通过这种微调的方式,将这部分看不见的数据拟合过去。最后,应该开发一个管理工具来管理培训任务、分类任务和调度资源。
– 地面上的其他东西
第一点是部署,从云端开始,慢慢变成前端,因为前端可以节省成本;第二点是模型的压缩,可以使用一些成熟的框架,比如flying paddles,来进行模型的压缩,可以发现在精度没有下降的情况下,收益是非常可观的;第三点是检测和分类模型的优化。在检测方面,发现部分Anchor-Free效果优于Faster-RCNN,因此尝试使用部分Anchor-Free模型验证自己的数据集。在分类方面,他们主要使用损失函数来增加分类之间的间隔。可以参考一些人脸识别相关的loss,可以增加类间距离;
我们有两个更实用的建议。首先,您可以建议一个位置。虽然不高级,但一次性识别的成功率应该会大大提高。第二,不是培养客户,而是培训店员使用这个产品,尤其是烘焙、餐饮等非标产品,店员不需要手工录入信息。从这个层面来说,确实可以提高最终结算效率。
关于产品的鲁棒性,由于一些客观原因,识别率达不到100%,所以必须提供一些辅助工具来保证模型的更新速度,包括采集、标注、训练、验证部署等。管理,让我们通过工具来发现错误。另外,回收机制也有问题。第一种恢复机制是机器上的恢复。可以采用一些验证的方式,比如加一个重力感应器来验证识别结果,或者使用多个*敏*感*词*的融合来投票等,当置信度低的时候,可以提示客户重新定位。另外就是要有一个快速人工干预的管理机制,不至于让失败的客户用不上。所以收银机不仅仅是一个产品或者算法,
- 总结
总结主要分为以下几点:首先,降本这个大目标不变,所有的产品设计都必须围绕总成本不变的目标,然后我们根据这个目标和一些资源需求来选择合适的模型. Section 3 到第五点,算法维护产生了一些新的功能需求,即在产品设计中必须保留数据闭环机制,以及相应的开发效率工具、错误检查工具、快速训练迭代必须提供等等,另外,产品必须要有自我验证和自我恢复的机制,不管是机器自己完成,还是人工干预,这个都必须收录
在我们整个运行模型中,以保证有序运行整个产品。
教程:怎么自己做系统U盘SEO
新站纳入全站
" />
所有搜索优化都从关键字研究开始。您必须了解当前的搜索环境和关键字。这不仅在任何营销策略的开始都非常重要,而且还需要偶尔重新评估。这些数字总是在变化,您希望使它们保持最新状态。使用百度 关键词 规划师,从您的行业和位置开始。然后,该工具将为您提供范围广泛的搜索词、它们的搜索频率以及这些词的竞争情况(基于有多少企业根据这些搜索词购买广告。)您将希望找到尽可能多的相关搜索尽可能为您的企业提供竞争低但搜索量高的关键字。确定这些术语后,将它们逐字记录下来。您确定的关键字的任何细微变化都会影响您的优化。在您所有的努力中使用这些关键字来优化您的网站。
SEO工具效果
" />
对于很多做SEO优化的站长来说,上线的时候基本上都会在SEO圈问这样一个问题:为什么一个多月了还没有被收录到网站中?其实导致网站被收录的因素有很多,其中网站路径也是相对的