大型数据集的自动语义分割
科学家和工程师利用领域特定的功能/工具,支持从标记地面真相,处理来自各种来源/格式的数据,开发模型并最终部署这些模型的整个工作流程。万博1manbetx用户可以在基于gpu的云基础设施上优化部署,在使用大数据集的同时构建加速训练和推理管道。这些环境经过优化,工程师可以轻松地开发此类功能,然后使用云上基于spark的集群针对大型数据集进行扩展。
阿温德·霍格拉哈拉——阿温德,你在吗?
是共享的吗?唷。
没关系。
我想在这里补上时间,但我在这里要谈谈大型数据集语义分割过程的自动化。在这次特别的演讲中,我将主要关注三件事。
第一个是大局观——什么是语义分割?它有什么用,并快速演示了这些系统的结果。然后,讨论如何构建我们的系统的架构,不仅处理您的提取、转换和加载—您的ETL。你的训练和推理是一系列的管道,允许你处理更大的数据集。演讲的第三部分是讨论设计的考虑因素——我们在组合这种系统的过程中学到了什么,讨论了构建这种系统的成熟度模型,并讨论了一些围绕它的基础设施,然后总结。
首先,随着人类向更安全的交通方式发展,你可能在新闻中听说过自动驾驶或自动驾驶汽车。这些自动驾驶汽车内部的功能可以分为三组。第一个是感知,汽车知道它在哪里,它在做什么,能够定位自己,能够通过各种各样的传感器——摄像头、雷达、激光雷达——你可以安装在汽车上的大量传感器来感知世界。然后通过一定的计划过程来决定要做什么,然后向控制系统指示需要采取的行动。
在今天的演讲中,我们将只关注感知堆栈,并进一步关注相机馈送,或视频或图像处理方面。在此基础上,专注于一种特殊的图像处理,即语义分割。语义分割是对图像或视频中的每个像素进行分类,使您能够简化处理,从而能够找出相机所看到的不同类别的对象。
你这样做的原因是它使验证本地化模块更容易。你可以产生更高质量的感知堆栈让汽车知道自己的确切位置。我们希望在更大的数据集上实现自动化,因为你可以通过这些管道推送的数据量越大,你得到的模型就越好,设计迭代就越快。在这个特殊的例子中,一个非常标准的数据集的视频被分为骑自行车的人、行人、道路和天空。
尽管如此,人们这么做的原因是——这里引用了一篇有趣的研究论文中的一段话,它谈到了你需要大量的数据来推动这些系统,以证明结果的可靠性。他们谈论的是数百万英里的数据,数千亿英里的数据,用一个“b”。有大量的数据和工作要做。
这就是这个问题特别具有挑战性的地方。在这个特殊的情况下,作为一个问题陈述,我们如何加速语义分割模型的发展——从原型到生产;扩展工作流、能力和工程流程,使之能够自动化,并更快地转向设计迭代?
作为这方面的逆风或挑战,我们希望建立系统和软件工程过程来快速获得想法——原型和产品。这是一个发展非常迅速的研究领域。每年都有新车型。我会给你们看一下它的样子。对安全关键系统中使用的模块进行验证和验证,并能够为数据科学家提供自助分析,以便他能够真正利用云,处理更大的数据集,写更少的东西,做更多的事情。
因此,我将快速演示一个典型迭代周期的结果。在这个特殊情况下,这是一个视频。这是在马德里街头拍摄的。在你的右边是著名的皇家马德里足球俱乐部,他们的主场。
我选这个视频是因为它有很多特点。我一个同事车上的前置摄像头拍下了一段视频。当您在此基础上进行设计迭代时,第一次迭代将使用完全没有训练数据的预训练模型。你可以看到它试图分割图像。这实际上是2015年的VGG-16模型。
做得不太好。如果这是我的车看到的,我会觉得很不舒服。但是当您开始通过ETL管道进行处理时,确保您正在校正镜头校正、调整以及颜色和对比度,您可以开始看到这些迭代在自动语义分割方面变得越来越好。
在这种情况下,你会看到它能很好地捡起树。现在,事情变得更好了。它能以更高的分辨率看到道路和树木。显然,每一次设计迭代都会变得更好。所以我们在这里要做的是建立一个系统,在这个系统中,你可以转动曲柄,产生一个新的设计迭代,运行你的大数据集,验证它,测量精度。
作为第四次迭代,我们切换到更现代的模型DeepLabv3。你可以看到我现在能更好地抓住摩托车手了。路上仍然很嘈杂,但这里的理念是,所有这些都是在没有再培训的情况下完成的,完全免提,以一种自动化的方式。
当我做了对比度校正,现在我们开始看起来像更好的视频。它能识别交通标志。我们能够逐渐提高它的质量。
作为一个快照,如果我切换到一个系统,在这个系统中,你不仅增强了你的训练数据,而且还添加了3D模拟数据,你会得到上面的语义分割结果——有噪声的图像,在这里,在上面——不断改进直到你做了很好的语义分割。你能看到道路、天空、树木和行人。你的车能够更好地看到这个世界,因为它能够在没有摄像头的情况下这样做。
简而言之,这个演讲的主题是,语义分割,它的技术非常深入。可以粗略地说一下技术,然后是系统,以及如何扩展它。在这个特殊情况下,您可以看到一个非常标准的数据集的结果——道路、天空、树木、建筑物、其他车辆和行人被正确分类。
因此,我想在这里留下几张幻灯片来说明,这不是一个科学实验。还有一些行业,比如通用汽车和The MathWorks的白皮书讨论了如何重建这些场景,以及如何将其与真实录制的视频进行比较,将所有这些与数据结合,并将其扩展到云上的更大数据。
这里的另一个用例是卡特彼勒,他们比较不同的算法来选择它们,并将其一直保存到他们的设备上。这是从代码生成开始的。其中一些系统可以扩展到更大的云数据集。
这就把我们带到了一个系统——一个系统的架构——关于如何做到这一点。现在,这张图片是我们在AWS上建立的一个系统,用来做这种工作。那里很忙。我试着化简一下。
在高层次上,你有几个构建模块。首先,一个开发环境——基于桌面的和基于云的——连接到基于云的存储,允许您摄取大量的数据。ETL管道——提取、转换和加载管道——当数据进入时,你可以丰富数据,能够运行这些入口引擎,并能够将其连接到其他系统;监控——让你能够看到你的模型是如何运作的,评估准确性,评估性能。
最后,其中一些部分实际上是昂贵的。因此,为了能够运行一个训练——我将谈论一些基于云的系统的基准测试——确保你可以进入云变得很重要,在那里你可以使用更大的硬件,更多的数据和更快的网络,并摄取记录数据,不只是记录,而是合成数据,模拟数据,以补充你的训练集,在课程缺失的地方。
所以简化这个,简化这张图,你可以把它分解成几个管道。第一个管道是摄取数据,在存储数据时充实数据。第二点是,当你训练你的数据时,加大训练的力度,建立更好的模型。
这是一个你希望能够进入的领域——如果有一件事是不变的,那就是这些模式正在迅速发展。研究界正在提供更新的模型。有一件事我们可以肯定,那就是技术的发展非常迅速。所以你希望能够跟上敏捷性。
第三是能够将应用程序作为服务提供,你可以将其连接到存储,然后在监控性能的同时摄取更大的数据集。作为一个软件堆栈,我们所做的是在AWS上构建系统,使用一套技术来编排、重建和保护数据——这是软件堆栈的一个快速快照。
再深入一点,我们可以将这三个管道中的每一个都分解到本地实验中,或者如何构建这些模型。你可以为GPU执行优化它们。而且,使用更高级别的api,可以让你写的更少,做的更多。所以语言抽象,比如imageDataAugumenter或trainNetwork,允许你用数据来补充你的训练数据,这些数据已经被增强以获得更好的准确性。所有这些都在跟踪你的实验,通过不同的参数,超参数设置,跟踪你的算法做得如何,所以应用程序实际上会帮助你选择模型,评估你正在构建的东西的质量。
当您这样做时,就有可能打破这种情况——打破需求,并利用云上更大的实例。将基础设施定义为代码允许您对这些结果进行版本化和再现,当然还可以利用最新的硬件驱动程序和工具包,因为它们可以在基于云的数据中心上使用。
有一些api用于命令和控制这些系统。所以这是一种非常自然的语法,你可以定义你想要什么样的机器,并根据你的需求进行扩展。这也允许你把你的资本支出,并将其返回到运营费用,而不是购买大型,昂贵的本地机器,并能够出租一台机器来进行这种培训工作。一旦执行,您就有能力存储训练模型,以便您可以获取它并在入口管道上操作它。
在这种特殊情况下,我想分享一些基准。在本例中,当我们在NVIDIA Quadro上本地拾取基于vgg -16的网络时,您可以看到表现良好的性能跟踪。训练时间不断减少,直到我们达到一种基于网络结构的渐近线。
因此,当你的批处理大小超过32个时,你的GPU内存就开始达到极限,性能就会下降。因此,为了最理想的训练,为了最可接受的训练,调整这些超参数将允许你把它从本地实例带到云上,在那里你处理单个GPU实例,然后向上扩展。我能找到的最昂贵的本地设置几乎是我起点的2倍。当我把它从云中释放出来时,我的速度几乎是原来的三倍,在泰坦上完成五个小时的训练任务只需要一个半小时多一点。这就成为了一种增加计算规模的方式。
一旦你的模型可用,把它插入到入口管道中,你就可以构建有向无环图——能够解析有向无环图的处理,这样你对训练模型的任何改变,你的训练数据,对ETL代码的任何改变,所有这些都可以构建。你想要能够自动地转动曲柄来产生一个新的迭代。这些可以部署为云服务。我们在GitHub.com上为您提供参考模板,以便您能够快速将其与您的系统相吻合。
这个管道元数据,定义一次,可以以完全自动化的方式编排。给你看几个基准测试,帧吞吐量的性能是线性提高的。我们能够扩大更多的机器,更多的cpu。此时,我们有大约350个cpu已经完全饱和。这同样适用于GPU——选择正确的实例类型,我们将能够最优地使用这些资源。最后,将其更改为运营成本,您就能够构建它并根据需要使用它。
第三条管道是处理大数据集有很大的价值,可以在数据进入时丰富数据。因为每一个物联网问题都是大数据问题的伪装。您希望能够在较小的数据集上进行丰富和尽可能多的操作,以防止以后在非常大的处理过程中出现非常大的瓶颈。作为ETL,当我提到代码时,你们在这里看到的是整个代码。你几乎完成了整个代码。你做了很多工作,写得少了,做得多了。在这个特殊的例子中,在ETL管道中,像镜头覆盖或校正,对比度和颜色,还有一大堆图像处理任务碰巧能够以一种你可以很好地缩放的形式摄取数据。
因此,在这种特殊情况下,在生产服务器上将其公开为基于http的服务,使您能够利用不同的工程格式——用于处理此问题的高级工具箱,并将其公开为运行于数据附近的全天候365服务,并在GPU硬件上加速。所以把它们放在一起,这些不同的管道以构建图的形式连接在一起,其中任何增量,或对存储的版本元数据的更改,通过查看版本元数据的训练数据,对代码的更改,对模型的更改。所有这些都可以构建为一个DAG,然后自动触发,或者通过CI/CD管道连接到性能数据。
在这一点上,这个语义分割系统,就是它背后的基础设施堆栈。我们来谈谈建造这个的设计考虑。对于语义分割,利用云存储允许您吸收更大的数据集,并在资本支出和运营支出方面扩大计算。这些自我服务的分析,有反模式,有研究和工程角色分离。通过让它自我服务,你实际上允许你的数据科学家和研究人员能够更有效地工作,而不需要建造这些象牙塔,并且能够通过自我服务他们对更多计算的需求来解决单个问题。
出于准确性的考虑,在我们的数据集中,你会注意到某些类,我们只有很少的符号实例。这体现在分割的质量上。你总是可以补充的。这就是模拟的作用。
所以在我们记录的数据集中,我们可能没有足够的某一类。但是生成场景变得非常容易,能够创建合成数据,能够创建合成场景,这给了你完美的语义分割,你可以用它来增强你的训练数据集。
最后一部分是这个特殊的空间。社区发展得如此之快,以至于互操作非常重要。因此,能够谈论ONNX,能够与ONNX标准进行交流,并利用迁移学习,以便您可以从各种不同的技术中吸收最新的模型结构,最新的模型架构,并将它们导入/导出到行业中常见的标准。能够连接到自动模拟器。能够大规模地构建这些系统,使它们与生态系统的其他部分互操作是非常重要的。
最后一英里是能够将其应用到图形处理器、cpu和嵌入式微控制器上。进入飞行器的最后一英里,这是另一个摩擦的来源。试着这样做——试着把曲柄转得更快总是有帮助的。这本身就是一个话题。
所以一直放大,建立一个这样的系统,它能自动进行语义分割,我们可以从成熟度的角度来讨论。从本地实验开始,自动化部分训练,一直到模型部署,能够衡量您的性能,能够自动发布具有完全可跟踪性的新模型,并管理环境,直到支持MLOps的系统,这允许您进行机器学习,但能够以自动化的方式进行,重新触发训练,并保持其可跟踪和可治理的方式。万博1manbetx
这里有一些框架。我只是留下了一个这样的成熟度模型的参考。但还有其他的。成熟度模型的需求允许人们在组织中评估他们的软件过程,以了解他们如何在实际开发和部署时以连续的方式实际构建这些系统。
最后一部分是当研究人员在本地测试他的实验时,在某个时候集中它将允许你与更大的团队合作。这是可行的。作为云上的安全,我们确实使用了最佳实践——访问控制列表的权限,以及像IAM这样的云服务,以确保正确的人可以访问正确的数据集和正确的服务。
总而言之,构建这些系统——构建它——将允许你开启自动语义分割,在云上扩展它,无论是在计算方面,还是在存储方面。提供一个流畅的工作流程可以减少摩擦,让你能够转动曲柄,产生新的训练有素的深度学习模型。在云上执行此操作允许您启用自助分析。这些技术,尽管这个特殊的案例与自动驾驶汽车有关,但同样适用于其他领域,比如医学地球探索等等。
作为关键的收获,建立在经过验证的安全兼容和devops就绪的开发工具之上,以减少摩擦,因为您使用的是经过实战考验的策略。利用同类最佳模拟可以提高输出质量。这将加快ADAS开发的上市时间。并且使用特定于领域的工具将允许该领域的从业者写的更少,做的更多。所以减少做这个的努力。轻松快速地构建它。
在此,我想以虚拟展厅作为结束。请随时来访,与我们的团队见面,或者提出你的问题,届时我将进行问答。我好像有点听不清问答环节的声音问题。但我会尽力的。
你好,Arvind。
是的。我现在能听见你说话了。
好的。这太棒了。所以我很高兴我们解决了这些技术问题。我们成功地得到了你的演讲。这让我松了一口气。让我担心了好一阵子。
(笑)这让我们俩都。
好的。我看得出你开始慌了。但是你有——
没有恐慌。
——这种非常平静、非常舒缓的声音。所以很高兴能在你给我们演讲的时候听你的演讲。太棒了。谢谢你!
是的。非常感谢。
我想我们希望你能给我们更多关于实际应用的信息,也许是驾驶之外的,以及未来会如何发展。
正确的。事实证明,能够在自动驾驶场景中发现行人,与能够在核磁共振扫描中发现癌细胞,或能够在医学成像中发现令人感兴趣的特征没有太大区别。因此,像这样的深度学习系统被越来越多地用于帮助医生获得更好的医疗结果。
在制造领域,我们看到人们正在努力改善他们的制造流程,以便能够进行预测性维护,能够根据设备的视觉反馈进行维护,摄像机指向他们的装配线。有各种各样的技术。但这是一个完全不同的行业。
这些技术也适用于地质勘探,人们正在分析非常大的地理信息数据集,以发现自然资源,探索自然资源的储量。所以在不同的行业中有很多这样的用例。如果你与我们联系,我们会很高兴为你介绍这些领域的专家。
好吧,希望我们的很多观众都能通过平台上的网络部分做到这一点。我再问你一个问题,阿温德。让我们想象一下,你明年回到Big Things——Big Things '21。你觉得到时候你能告诉我们什么?你希望你能告诉我们事情是如何发展的?
是的。有一个非常令人兴奋的研究分支——比如网络架构搜索,能够找到并发现正确的架构,使你的问题正确折叠。能够进行域转换,本质上是将模拟结果映射到记录的数据,并以一种语义上准确的方式映射,这基本上可以让你达到十亿英里。驾驶一支舰队行驶10亿英里需要400年的时间,但这就是模拟的原因。
有很多研究。这些模式发展非常迅速。通过我给你们看的视频,我们从2017年、2018年、2019年的模型开始。事实上,我们离这个问题的边缘越来越近了。如果你真的回来看《大事西班牙》,我们想给你看最新的版本。
那太好了。阿温德,你给我们看了一些非常详细的幻灯片。有很多信息需要吸收。我当然没有时间把它们全部拆开。我们有机会看一下这些幻灯片吗?我们能下载或者在其他地方看吗?
绝对的。我们会尽量让它易于访问。我会和组织者合作,确保我们给他们一份可以打印的幻灯片。你可能没有视频,但其他东西都在。这是——
太棒了。
——录音会议。
所以我非常感谢你,阿温德,抽出时间。我很高兴我们解决了这些技术问题。希望我们明年还能再见。
好的。非常感谢。我为技术问题道歉。和——
一点也不
——很高兴能向大家介绍。
好的。非常感谢你,阿温德。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。