前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零售端部署高精度AI计算机视觉应用程序的新方法

零售端部署高精度AI计算机视觉应用程序的新方法

作者头像
GPUS Lady
发布2022-02-10 11:50:55
8050
发布2022-02-10 11:50:55
举报
文章被收录于专栏:GPUS开发者GPUS开发者

本文整理自讲座:

大家好,我们来自kineticvision,kineticvision是英伟达的服务交付合作伙伴,我们使用数字孪生技术来解决产品开发和制造挑战,我们将分享一种在边缘部署高精度计算机视觉 AI 应用程序的创新方法。

这是本次讲座的大纲。

让我们谈谈零售供应链,它是您用来将产品交付给消费者的过程,它涵盖了从获取原材料、到制造产品,再到将产品交付给购物者手中的方方面面。了解价值链并定义每个流程将在每个步骤中提高效率和推动价值,今天的零售商正在投资数十亿美元来优化这一流程,首先确定关键差距和问题,然后应用技术来实现最佳结果。成功的供应链流程中一些最重要的参数是质量、准确性、安全性和吞吐量,通过改进技术和自动化可以对这些领域产生重大影响。

让我们缩小视野,看看收货和发货的过程。零售和物料处理面临的主要挑战之一是选择错误的货物托盘和错误的标签,这会导致错误的产品分类。这将导致物料处理过程中出现重大问题,并在整个过程中产生负面影响,在大多数情况下会导致客户满意度下降,因此零售商需要一种高效的方法来标记产品,并高效地检测和分类产品以解决这个问题。

总而言之,从物料搬运的角度来看,这里有一些问题,拣错托盘或产品,拣选损坏的包裹,这是配送中心内非常常见的问题,在处理大量 sku 时,分拣过程可能非常缓慢导致配送和履行中心效率低下。空间和不动产优化不佳以及与自动化相关的拥有成本和部署自动化分拣技术,在本演示文稿的背景下,我们将专注于视频分析解决方案。

既然我们对我们正在解决的问题有了一个想法,我想谈谈智能视频分析,在 80 年代后期,公司开始安装闭路电视摄像头来监控人们在他们的建筑物中的行为。对于零售店老板和其他物业经理来说,数据量很大,让人们不断观察和分析安全录像既不现实又低效,于是解决方案来自软件工程师和数据分析师,他们开发了我们所说的智能视频分析。

视频分析可以自动分析视频片段,检测和确定空间和时间事件的类型。利用人工智能,物业经理能够以比以往更高的效率精度监控和分析他们的监控片段。使用 IVA,公司可以确定特定客户如何浏览商店,以及他们需要花费多长时间。这类信息非常重要,因为您可以非常具体并确定商品和标志是否促使人们更快地移动,并在特定区域留住他们。您还可以首先识别特定模式来确定是否需要移动货架,使某些区域更易于被找到。然后通过分析这些模式和行为,零售商可以确定需要采取哪些行动,以降低成本和增加收入,这些信息对公司财务规划员工评估、营销工作和整体业务绩效至关重要。

我们可以将其扩展到整个供应链,特别是配送中心和执行设施,一旦您能够确定仓库的哪些区域产生的流量最多,您就可以努力优化通过仓库的产品配送以减少流量,让体验更高效。通过使用视频分析,您可以将某些产品转移到流量较低的其他区域,以更好地帮助您的员工管理该产品,并降低客户等待时间。产品检测和分类可以带来高效的存储和检索过程以及更好的货架库存对账。在物料搬运过程中,动作识别和活动识别可以帮助零售商和物料搬运公司设定高标准的运营,同时也为健康和安全实施积极的解决方案。

既然我们知道IVA的好处,让我们讨论一下构建高度准确的 IVA应用程序需要什么,人工神经网络和深度学习对于设计计算机视觉中最先进的算法非常强大,这些架构优于传统图像处理和机器学习方法。有趣的是,我们对这些方法为何以及何时起作用的理解仍然有限,设计高度准确的计算机视觉模型是一个迭代且直观的过程,包括选择模型、训练模型然后部署它。它结合了数据科学和数学,以及将卷积神经网络层组合在一起以形成模型的艺术,并最终设计了计算机视觉管道,多年来 nvidia 构建了强大的工具和 sdk 来帮助开发人员构建高效的人工智能应用程序并加速部署高效的计算机视觉 AI 模型,此外,nvidia 与开发人员的合作关系带来了创新的解决方案和产品。

deepstream 是一个流分析工具包,用于构建基于人工智能的应用程序,它将流数据作为来自 USB/csi 摄像机视频、文件或 rtsp 流的输入,并使用人工智能和计算机视觉从像素中生成洞察,以更好地了解环境。

deepstream sdk 可以作为许多视频分析解决方案的基础层,例如了解智能城市中的交通和行人、医院中的健康和安全监控、零售中的自助结账和分析,deepstream 提供卓越的吞吐量,适用于各种基于对象检测、图像分类和即时分割的 AI 模型。

另一个重要的 sdk 是 TRT(tensorRT),它是一个用于优化训练的深度学习模型以实现高性能推理的 sdk。TRT包含一个用于训练的深度学习模型的深度学习推理优化器,以及一个用于执行的优化运行时。一旦你训练了你的深度学习网络任何特定框架,trt 都可以让您以更高的吞吐量和更低的延迟进行推理。这张幻灯片中重点介绍的 trt 实现的关键技术:层和张量融合、内核自动调优、多流执行、动态张量内存和精度校准。

除了 deepstream 以减少开发工作并提高吞吐量外,开发人员还可以使用来自迁移学习工具包 (tlt) 的高精度的预训练模型,并使用 deepstream 进行部署。

上表显示了 deepstream 为开发人员和企业构建的预训练模型,并提供广泛的 AI 模型,支持流行的对象检测和分割模型,例如最先进的 ssd、yolo、faster rcnn和 MaskRCNN,您还可以在 DeepStream 中灵活地集成 opencv 函数和库,用于快速原型设计到完整的生产级解决方案,并通过允许您选择推理路径来获得更大的灵活性,例如与 triton 推理服务器集成。

您可以在原生框架(例如 pytorch 和 tensorflow)中部署模型,或者使用 nvidia trt(TensorRT) 进行高吞吐量推理,并提供多 GPU、多流和批处理支持选项,以实现最佳性能。

你们大多数人可能都知道,在训练视觉模型时经常会遇到一些巨大的挑战,而且它通常与机器学习算法无关,考虑到你用来训练模型的数据可能是影响性能的主要因素。获得好的数据往往是一种负担,现实世界的数据获取起来既困难又昂贵,尤其是当人们必须进行捕获和标记时,手动创建的数据集往往受到物理世界的约束,它们自然是在规模、变化和复杂性方面受到限制,以控制成本和时间。

在不断从库存中添加和减少 sku 的零售空间中,需要针对这些变化不断更新数据。

从机器学习的角度来看,在物体检测和分类的背景下,在我们开始思考如何解决问题之前,我们需要找到数据,基本的 imagenet 数据集和其他现有数据集都无济于事。这是一个分类数据集,所以它有猫、狗之类的标签,但它没有边界框,手动标注现在是一个更难的问题,而不是仅仅点击正确的类标签,你必须对于每个对象画一个边界框 ,并且单个帧上可能有很多对象,大部分工作实际上是在正确获取数据上。

我对接下来的部分感到很兴奋,我们将向您展示开发人员如何结合不同的工具和 nvidia 提供的 sdk,以提出创新的解决方案来解决难题,并提高运营效率。

在我们的案例研究中,我们将专注于仓库输送系统,即将多个产品 sku 从库存存储转移到执行交付,有许多产品 sku 需要识别和分类以执行订单。也有可能有损坏的产品,在这个过程中需要拒绝,我们的模型将专注于产品识别。

为了应对本案例研究中的挑战,我们将介绍使用 ai vision 平台使用合成训练数据。

ai vision 使用数据科学家友好的界面来自动创建合成数据集,使用 rtx 和 physx 等 gpu 技术,工作流程很简单,生成合成训练数据,训练模型,在虚拟环境中测试模型,评估结果,并不断优化系统,随着模型的优化,在真实环境中部署。

那么使用这种方法有哪些优点呢?生成的数据避免了由于缺乏数据和标签而导致数据匮乏的问题,您还可以系统地创建许多角度、背景和照明变化和产品类型,数字孪生可用于虚拟测试各种材料处理条件以及生成可用于模型评估的测试数据,GPU 技术使实时照明和物理模拟成为可能,从而可以超速生成深度神经网络所需要的大型训练数据集 。

除了使用真实感环境来生成合成数据之外,许多其他训练技术正在浮出水面,进一步利用合成数据生成,例如使用非真实感环境的域随机化,由 nvidia 在 2018 年展示,这减少了资产负担,而不是需要在训练数据中呈现逼真的环境,我们将仅利用域随机数据来训练我们的模型,还使用合成训练数据开发了其他技术,通过对真实图像进行微调来提高性能,以及不断生成教师网络(teacher networks)提高模型性能,还有课程式学习(curriculum learning),允许更快的训练和更快的神经架构搜索。

合成数据的敏捷性令人惊叹,它已成为在快速加速的人工智能研究领域中发现新技术的工具。

数字孪生可以是一个强大的工具,其中一个非常有趣的是光线追踪技术,在 3D 计算机图形学中,光线追踪是一种渲染技术,用于通过在图像平面中将光的路径作为像素来追踪并模拟它与虚拟物体相遇的效果,所以我们今天真正能够做的是创建现实世界的高保真照片级版本,让我们不仅可以进行虚拟部署,还可以进行实时流程优化,生成大量合成数据进行测试和评价。

数字孪生平台允许不同的团队成员进行合作。在接下来的幻灯片中,我们将与您分享如何使用我们的多 GPU 实时仿真协作平台 nvidia omniverse 来创建数字孪生并解决传送带产品分拣问题。

合成数据可以通过许多不同的方式生成,任何可以模拟的环境,都可以用来生成合成数据,从简单的电子表格到完整的湍流 cfd 模拟,你也可以使用GANs 生成合成数据,重要的是是您的数据已经过对现实世界的响应进行验证,gpu 技术对这些模拟的速度和可扩展性有巨大的影响,最终允许实际生成大型合成训练数据集.

nvidia omniverse 是一个可用于构建和维护数字孪生的工具,omniverse 中的许多开发人员功能允许连接您的模拟数据源,例如 3d 模型、材料和控制逻辑,您可以构建自定义应用程序并扩展现有应用程序以使开发过程尽可能的高效.

ai vision提供了更高层次的接口,让非开发者可以从一个简单的ui快速运行数据实验,它有方便的工具来分析数据的可变性和导出到coco等常见的数据集格式,为我们的研究.我们将专注于将多个产品 sku 从库存存储转移到执行的仓库输送系统,有许多 sku 需要识别和分类以执行订单。

数字孪生解决方案可以代表仓库物料搬运过程的许多方面,包括对不同类型的设备进行建模。我最兴奋的点是可以对包括传送带摄像机和其他设备周围的物理参数在内的所有内容进行建模。

再加上计算能力,GPU 技术今天可以让我们对材料处理过程的每一步进行模拟。在传送带产品分拣问题的背景下,我能够模拟不同的照明条件,增加每帧上看到的产品数量,提高传送带的速度,当然是一个强大的解决方案,

在让我们转到合成数据生成器,使用合成图像训练深度学习网络进行对象检测是我们这里的主要主题。

为了处理现实世界数据中的可变性,该系统依赖于域随机化技术,其中模拟器的参数,如照明、杆对象、纹理以非现实的方式随机化,以迫使神经网络学习感兴趣对象的基本特征。

现在我们有了一个合成数据生成器,用于域随机数据和环境的数字孪生,我们有了开始训练模型的基本构建块,

你们中的大多数人可能熟悉这个训练过程,我们将使用合成训练数据作为我们的训练集,并在模型训练期间保留一个保留集以进行验证,我们还将从我们的数字孪生生成一个测试集,它代表真实世界输送系统,在每一代模型之后,我们可以在测试集上评估它的性能,看看我们的性能比上一代好还是差。

我们还可以将可能很难在真实传送系统上创建的条件合并到我们的数字孪生模型中,例如产品掉落,或无法预料的照明条件。这种方法的一大优点是您可以开始进行模型开发早在您的任何硬件设备投入使用之前,就可以抢先了解您的模型如何适应环境条件,您甚至可以影响您的产线设计,例如皮带对比照明和相机位置,以便为您的模型获得最佳性能的物理设置。

现在我们已经决定了我们要训练和评估模型的数据,让我们看看我们将用于这个端到端实现的工具,我们使用nvidia tlt 中启动预训练的对象检测模型,我们使用迁移学习来使用来自 AI 视觉的域随机训练数据来训练这些模型,我们还从在omniverse 中组装的数字孪生创建测试数据,训练后的模型被转换为用于在 nvidia jetson nx 上进行推理的 tensorrt 模型,然后使用 jetson 评估虚拟和真实产品视频源,最后用于重新部署模型,并在边缘管理我们的推理应用程序。我们使用正在为 jetson 平台开发的 nvidia fleet command。

没有提供一些指标就无法进行深度学习演示,我们的模型使用 10 000 张图像进行训练,我们使用了Faster R-CNN对象检测模型,使用 resnet18 特征提取器,我们在 8 v100 dgx 上训练这些模型并训练它们对于 15 个 epoch,我们的模型每一代的训练时间是每个模型 40 分钟.

到目前为止,我们向您展示了我们如何结合不同的工具和 sdk 来构建一个高效的工作流程,现在让我们谈谈核心思想,改变合成对象的姿势和尺度随机化策略可以改善平均程序的结果, 在反馈回路中采用这种由网络性能驱动的策略是一种简单而强大的方法, 在这里可以做很多事情, 包括尝试将合成数据与真实数据混合, 并让不同的策略并行运行.

在这里,我们展示了我们架构的基本数据流 我们使用 AI Vision 配置从 AI Vision 生成合成训练数据集,然后使用这些数据集使用 nvidia tlt 训练对象检测和分类模型,然后将训练好的模型部署在边缘使用 deepstream sdk.我们还有一种方法来反向传播模型损失,以进一步推动合成数据的优化并重新训练和改进模型.

通过创建不同的 tlt 实例来扩展概念,并行运行,基于每个网络的性能,我们只保留高性能网络,合成数据生成器与不同的网络合作,目标是选择最好的,一旦选择网络我们可以测试合成数据和真实数据.

使用这个框架,我们可以快速生成许多数据集并训练许多模型,这使我们能够创建在现实生活中难以或不可能探索的边缘案例和场景,并适当地平衡我们的分类,并避免出现偏差的情况。我们还可以从这些模型中优化我们的数据集以获得最佳模型性能和训练时间,我们可以找到我们最好的性能,并评估和部署这些最终模型。

现在,我们已经训练了几个模型,并在每次迭代中更新了合成数据,我们在左侧有一个性能良好的模型,该模型正在jetson xavier nx上运行推理,使用来自数字孪生的视频,右侧包含一个 DeepStream 视频,来自我们的八通道测试传送带,即使只进行了两代合成训练,数字孪生和现实测试之间的推理结果也非常好.

到目前为止,我们谈到了训练网络以提高准确性,我和 KineticVision 所做的工作中最重要的元素之一是我们如何大规模部署我们的准确模型,以及我们如何有效和安全地管理我们的应用程序。

fleet command 是解决方案,用于在边缘管理和扩展 AI 的混合云平台。

Nvidia fleet command 是在云中运行的集中控制系统,使用一键式配置,fleet command 与 nvidia 边缘计算设备配对。一旦配对,fleet command 可以在几分钟内安全地部署管理和扩展整个基础设施的 AI 应用程序。

让我们谈谈我们学到了什么以及接下来要做什么。因此使用数字孪生比传统方法有很多好处,尽管数字孪生可能不适用于所有情况,但它们是使用物理数据开发系统的成本的十分之一 。在传统方法中,训练数据和人工智能模型迭代是使用物理系统完成的,这需要实际系统基础设施的物理孪生,或者生产中断,它需要物理测试样本,以及每个库存项目的大量摄影,库存摄影必须手动注释,并且新产品和产品变化很难适应。这一切都导致人工智能系统可能针对单一使用环境进行了过度训练,并且不可扩展。在数字孪生方法中,训练数据人工智能模型测试和优化都在数字孪生中完成,训练数据是使用自动化创建的合成数据管道以及新产品和产品变化很容易适应,这导致了一个通用和可扩展的人工智能系统。

也有技术优势,合成生成器提供几乎无限的数据生成能力,更容易在数据中生成统计变化,您还可以针对特定情况进行研究或纠正,您可以解决偏见和类别不平衡,并且您具有生成现实中难以研究的案例的能力,例如单个包装或不同的照明条件 数据对模型性能的影响最大,不是架构,不是调优,也不是硬件,合成数据生成对模型性能的影响最可控,合成数据具有高度可扩展性,这种虚拟资产的可扩展性仅受您的计算资源限制。

我还想谈谈我们未来的工作,我们将专注于可访问性、自动化和规模,我们希望与 tlt 进行更紧密的集成以实现无代码实现,您可以在其中按下按钮,生成数据设置,然后一个机器学习模型从另一边弹出来。我们还希望进行更紧密的云实施,以便满足峰值规模需求,或降低人们评估平台的摩擦,我们还将使用 azure ml 等自动化工具进行数据参数搜索,然后继续优化算法以消除传统上由机器学习工程师执行的数据集和特征工程。

我们很想开始与作业调度系统集成,这样我们就可以跨多个 GPU 和多个节点管理作业,例如 lsf或者 slurm,我们还想推动持续的数据集优化。随着环境的变化,我们正在最大限度地提高机器学习训练效率,这将利用 nvidia egx 和fleet command,从边缘读取数据,将其带回并继续训练模型,然后将这些模型重新部署到现场,我们想要开始做的一些实验正在扩展这个框架。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
边缘可用区
腾讯云边缘可用区(TencentCloud Edge Zone,TEZ)是腾讯云的本地扩展,适用于解决计算、存储和服务可用性问题。腾讯云边缘可用区可为您带来云的诸多优势,例如弹性、可扩展性和安全性。借助腾讯云边缘可用区,您可以在靠近最终用户的地理位置运行对延迟敏感的应用程序,基本消除延迟问题。腾讯云边缘可用区提供与中心节点一致的体验,助力业务下沉,具备更低延时、更广覆盖、更少成本等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档