前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2021GTC】NVIDIA Tao工具包即将发布的新功能(剧透篇)

【2021GTC】NVIDIA Tao工具包即将发布的新功能(剧透篇)

作者头像
GPUS Lady
发布2021-11-23 16:20:10
4750
发布2021-11-23 16:20:10
举报
文章被收录于专栏:GPUS开发者GPUS开发者

让我们看看Tao工具包即将更新的功能。

最新版本将在本月晚些时候发布。到目前为止,我们一直专注于将 AI 应用于图像,这在识别物体方面很有用,但除此之外并没有告诉您任何其他信息。要真正提取情报,您需要查看上下文来查看时间信息,而不是关注连续帧中的单帧查看,这提供了时间元素。

这可以帮助您了解除了检测一个人或一个物体之外,它还可以帮助您了解这个人在做什么。行动识别适用于许多行业。对于智能医院,检测和识别动作可以帮助了解患者是否需要医疗护理;在工厂车间,这可以帮助监控任务或工厂工人;从自主零售店中,行动识别可以帮助了解购物者拿起一件物品是将其放入购物车还是将其放回货架。

用例的激增无处不在。

我们很高兴地宣布在最新的 Tao Toolkits 中支持动作识别,可能会增加一个 2 d 和 3 d 卷积网络以及一个光流模型。2 d 和端口 3 的模型架构类似,在 2 d 模型中,您将帧数或 d 与通道数 orsi 参数相乘,通道维度现在将是我们采样的帧数的 bc 倍。对于 3D 模型,我们为现有的高度、宽度和通道尺寸添加了一个新尺寸。这个新维度代表时间信息。两个卷积网络的输出进入一个全连接层,然后是一个 softmax 层以对动作进行分类。但最好的部分是所有这些复杂性都由 TAO 工具包处理,您作为用户指定要使用的模型或架构。我们还将发布一个五类模型样本来识别常见的动作,如步行、跑步、跌倒等。我们的二维和三维模型在五类模型样本上都提供了良好的准确性。2D 模型针对推理进行了优化,其精度与 3D 模型相当。

现在我们简短演示一下使用 Tao 工具包训练和部署动作识别模型的所有步骤。

第一步:安装Tao工具包

第二步:下载数据用于训练

我们将使用 HMDB51 数据集,该数据集已标记了 51 个动作的数据,但我们演示的例子将仅使用三个。

第三步,从 NGC 下载预训练模型,为本演示提供了 2d 和 3D 模型,我们将使用 3D 动作识别模型。

第四步:定制类别。

我们可以修改训练的类别,保留所有参数不变,但您可以尝试其他训练冲突,例如学习率、错误大小、时期等

第五步:让我们训练我们的自定义模型。

这是一个简单的训练命令,您指定一个您正在修改上一步的文件,指定输出目录,然后运行该命令。这可能需要几个小时,具体取决于 gpu,我们训练 50 个 epoch,在我们的 gpu 上大约需要两个小时。

第六步:使用 TAO评估命令来评估模型的准确性。

第七步:用样本视频进行测试

第八步:部署模型

可以用Deepstream进行部署:

总结:

上面演示了训练一个三类动作识别模型来识别简单的运动,是多么简单。我只需要更改类标签,无需编码, 无需学习 pytorch 深度学习框架,你只需要下载笔记本,下载模型,带上你的数据集训练和部署,就是这样。我不是技术专家,我只用了几个小时就能训练网络,事实上,我把这个演示放在一起比创建自定义动作识别模型花费的时间更长。我没有展示您可以自定义的所有内容以帮助您获得最佳模型。如果模型参数发生冲突,您可以根据准确率和性能 kpi 在 2 d 或 3 d 模型之间进行选择。您还可以指定要使用的backbones。您可以选择任何基于驻留的特征提取器。

调整和改进我们的模型以减少训练时间。一种方法是确保我们的模型能够充分利用整个 GPU。减少训练时间将降低您的总体训练成本。有几个因素会影响您的整体利用率,模型的大小。您拥有的参数越多,您将能够实现更高的利用率。批量大小,您在一次传递中为模型提供了多少并行数据。模型的分辨率。Laura 的模型可能不如大型模型进行优化。最后,您正在使用的 GPU。一组超参数对于 V100 GPU 可能是最佳的,但对于 8 个 v100 GPU 可能不是最佳的。因此,要获得最大的利用率将不得不尝试使用很少的超参数。这里有一些 GPU 利用率数字,一些仅适用于流行网络,但您也可以在 V100 或任何其他 GPU 上获得类似的数字。我们可以在大多数网络上实现70% 或更高的GPU使用率,其中一些我们接近成本的 90%。这意味着,如果您用Tao 做训练,将保证您以最有效的方式训练您的网络,您将能够在更短的时间内进行更多训练。

数据增强对于任何训练工作都非常重要,它允许您在数据中添加变化。这总是有助于泛化。很难同时支持离线和在线增强。当您有一个小数据集想要注入噪声变化以增加数据集的整体大小时,通常使用离线增强。例如,十幅图像数据集可以扩充为两百幅图像数据集。训练期间使用在线增强,整个数据集在每次通过网络时都是随机定向的。这确保了从一个epoch到另一个epoch都有一些数据变化,这将有助于模型泛化。

Tao工具包,支持三种主要的增强类型,模糊,特殊增强,颜色增强。对于特殊增强,Tao工具包支持图像旋转,垂直水平流动等等。对于色彩增强,Tao 工具包,支持亮度增强、巨大旋转、饱和度、图像平移、对比度调整。

我们在一个包含一百张图片和五百张图片的小数据集上进行了一些实验,在应用离线增强和在线增强时,我们用了一小百张图像数据集来看看我们可以提高多少准确度,对于一百张图像实验在没有任何增强的情况下,主要平均精度只能达到 36% 的 mMP,这基本上是无用的当我们开始从同一个 100 幅图像数据集中增强更多图像,开始看到精度显着提高。当您操作相同的一百张图像,20倍在线增强后,突然能够达到79%,这是我们原始百张图像状态的两倍多。这表明增强非常有益,尤其是当您的数据集有限时。在 500 张图像实验中,目标是将准确度提高 13%。

我们得到的最常见问题是,我可以为低光图像或不同相机类型训练 peopleNet 模型或任何其他预训练模型,或者使用 NVIDIA 预训练模型是否有好处。

我们所做的一个实验是我们在热红外数据集上微调或现有的 peopleNet 模型,这是来自使用红外频率的热像仪。来自热像仪的图像看起来类似于右上角的温度。这看起来与我们用来训练这个模型的 rgb 图像非常不同。同时,我们还使用来自 Tao 工具包中支持的现代架构之一的一些预训练权重来训练该数据集。它很快发现,与我们不使用 peopleNet 相比,peopleNet 的转换速度要快得多。大约 400 张图像能够获得 66% 的准确度测试数据集,而如果您在没有 peopleNet 的情况下使用,则不到 45%。即使我们添加了更多数据。peopleNet 学习的现有特征提供了更高的准确性。在 6000 张图像上,微调 peopleNet 模型的准确率比没有 peopleNet 时高 6%。这个实验证明了 peopleNet 或其他预训练模型,你可以用更少的数据更快地转换,更快的训练,你可以很容易地找到现有模型来学习不同的相机类型、不同的有利位置等。

您还可以找到两个现有模型来添加新类。假设您将建立检测人和面孔的模型,现在我们想用它来查看人是否戴头盔,想想工人安全用例。您想检测工人是否戴安全帽的地方,例如建筑工地或工厂。可以使用 Tao toolkit inference 进行检测头盔数据集下预先标记的人和面部类别。现在您可以将人物和面部注释添加到现有头盔数据集中,用户完成数据集以在 Tao 中训练您的新模型。由于模型之前从未见过此数据。一旦你这样做了,即使你的数据集有限,模型也会开始收敛到头盔类。我们仅用几千张图像就能够获得高达 80% 的头盔类准确率的实验,这个实验表明 Tao 工具包可以完全扩展用于自定义用例。

数据采集和标记是非常重要。就是对您拥有的数据进行标记,以及使用合成数据平台和游戏引擎生成新数据。合成数据可以帮助填补数据收集的空白,而标记既困难又昂贵。很高兴地宣布我们与几家领先的数据标记和合成数据生成公司建立了合作伙伴关系。您可以使用合作伙伴的平台生成启用您的数据,然后直接集成到 Taotoolkit 中。我们的许多合作伙伴都发布了博客,介绍了将他们平台中的数据集成到 Tao 工具包中的步骤。

与您分享我们的一些合作伙伴,使用我们的工具包成功创建 AI 产品的成功案例,涵盖了制造解决方案、农业解决方案、零售解决方案的合作伙伴等等。

我们的合作伙伴Boston Server&Storage 能够使用Tao工具包,在检查用例中检测未识别的焊接缺陷。他们能够使用我们的工具包加速 AI 开发并获得非常高精度的模型。

Recycleye AI 初创公司正在构建基于自动化的管理解决方案。他们建立了一个模型来检测快速移动的传送带上的物体。一种工具可以帮助他们加快开发速度。

Arugga, 一家正在改变农业的机器人,它在植物行之间的轨道上行驶,捕捉每朵花的图像,然后运行他们的人工智能算法,立即确定花朵是否准备好接受授粉。他们能够将我们的工具包集成到解决方案中,以提高作物产量。

最后,Drishtic AI 在零售领域做了出色的工作。他们正在使用人工智能来检测人的危险并使用该信息,它能够为每个人分配唯一的标识符,而无需进行任何面部分析。Tao工具包帮助他们将开发时间从几天缩短到几个月.

我们大多数合作伙伴的共同点是,通过Tao工具包已经让他们能够加快速度并减少开发时间。他们不必处理构建 AI 的复杂性,他们可以利用来自 Tao 的预训练模型来构建自定义解决方案。

AI 是一个非常迭代的过程,从数据准备开始到训练,再到部署,然后一旦部署,使用来自现场的数据不断改进 AI,Tao 工具包加速了这个过程中可能耗时且艰巨的训练部分, 总结一下 为什么我们的 Tao 工具包绝对应该成为您 AI 旅程的一部分:首先简化 Jupiter notebook 使其上手变得超级简单,您无需成为 AI 专家,正如您在动作识别演示中看到的,您不需要学习一个复杂的 AI 框架,简单地修改一下模型架构就可以开始。其次,预训练模型提供了一个很好的起点来训练您自己的自定义 AI,提供最少的微调,根据您的相机的有利位置自定义您的模型。最后,我们已经优化了我们的模型,特别是用于推理,如果您使用 Tao,您将能够应用量化、修剪以获得性能最佳的推理和部署模型,所以您还在等什么,获取从今天开始使用我们的工具包,开始加速您的 AI 开发。

Q&A

问:如果我想将 YoloV4 的自定义版本与 TAO 一起使用……有可能吗?抱歉第一次在这里学习TAO

答:目前我们不允许用户自带自定义版本的模型。这是我们Roadmap上的内容。您必须将 YOLOV4 的 TAO 优化版本与 TAO Toolkit 一起使用。

问:我能在Jetson上部署TAO么?

答:所有 TAO 模型都可以部署在任何 NVIDIA GPU 上,从 NVIDIA Jetson 一直到我们的大型数据中心 GPU,如 A100。

问:根据您的经验,就组织在每个阶段(数据准备、训练和推理)中通常花费的百分比而言,典型时间是多少?

答:工作流的每个阶段都非常复杂。如果您从 AI 应用程序的最终目标考虑,您希望能够在推理时以高精度完成任务。因此,您拥有的数据越多,模型的准确性就越高。这意味着您需要大量数据进行训练。我们已经看到,许多组织在收集数据和标记数据方面都遇到了麻烦。例如。如果您有一张包含人、汽车和其他物体的图片,并且您想训练一个可以检测人的模型,则必须在每张图片中标记这些物体。我们在这个领域有几个合作伙伴可以提供帮助:developer.nvidia.com/tao-toolkit 使用相关模型大大减少了训练时间。从头开始训练模型需要几个月的时间,因此预先训练的模型消除了这种需求。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Q&A
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档