利用合成数据改善计算机视觉性能

Neural Pocket 如何将降低成本,并将计算机视觉训练的速度提高 95%

Neural Pocket:Unity Computer Vision 案例分析

对计算机视觉模型进行训练以达到生产级质量水平并非易事,一直以来都需要团队收集并细心标注真实数据,这是一个相当费时费力的过程。Neural Pocket 利用通过 Unity Computer Vision 生成的合成数据集来克服执行计算机视觉任务时面临的这些挑战。

  • 挑战

    借助强大的标注功能快速生成大量数据,以进行计算机视觉模型训练

  • 产品

    Unity Pro、Unity Computer Vision Perception 软件包

  • 团队成员

    11 名(1 名模拟工程师,10 名 AI 工程师)

  • 所在地

    日本东京

更快、更好、更实惠的计算机视觉训练

Neural Pocket 总部位于东京,为日本和其他地区的大型公司及政府实体提供端到端的智慧城市 AI 解决方案。通过利用 Unity 实时 3D 开发平台和 Unity Computer Vision Perception 软件包,其团队可以更快、更实惠、更有效地训练计算机视觉模型。

结果

  • 计算机视觉模型训练的周期时长缩短了 95%(平均来看,现在为 1 周,之前则长达 6 个月)
  • 数据收集、标注和训练的成本降低了 95%
  • 改进了计算机视觉模型性能
  • 提高能力,可承接多个项目并推动收入增长
信息图

节省时间和成本的结果

收集和标注真实数据以及计算机视觉模型训练具有迭代性质等挑战可能既昂贵又费时。对 Neural Pocket 来说,基于真实数据训练模型通常需要进行大量迭代,往往多达 30 个训练周期。 

每个周期都需要采集真实数据(例如视频、照片和/或无人机捕获)、标注(即由一组标注人员手动标记)、训练以及评估,每个周期平均时长大约为一周。如果项目周期达到 30 个,则成本可能会高达 150,000 美元,执行期可能长达六个月,才能部署可用于生产的模型。

利用 Unity 和 Unity Computer Vision Perception 软件包,Neural Pocket 团队大大降低了训练计算机视觉模型所需的迭代次数和相关成本,同时提高了模型整体性能。该团队使用 Unity 工具来生成合成图像,这些图像会被自动添加标记和注释,以基于真实和模拟数据进行迭代计算机视觉模型训练。

如果使用由 Unity Computer Vision Perception 软件包创建的合成数据,只基于真实数据进行一个周期的训练,那么只需要一个多星期的时间,就可以创建一个性能更高的模型,实际上平均节省了大约 95% 的时间和费用成本。

让我们探讨一下该团队如何以不同方式使用 Unity Computer Vision Perception 软件包,来执行两个与安全相关的项目。

项目 1:目标对象为武器的检测

在这个项目中,Neural Pocket 的一位合作伙伴希望为其一间办公室营造更加安全的环境。它与 Neural Pocket 合作,为其智能安全摄像系统开发了一个计算机视觉模型,以便有效检测危险物品。 

为了收集用于计算机视觉训练的真实数据,Neural Pocket 拍摄了一段视频,内容是参与人员携带刀具、球棒和枪支等武器,以检测程度从易到难的一系列拍摄角度进行。随后,Neural Pocket 根据视频创建了大约 1,000 张静态图像,并通过内部标注团队手动标记每张图像来识别武器。

将这些数据用于其初始训练周期后,刀具的检出率为 27%,球棒和枪支的检出率为 80%。

制胜组合:真实数据和合成数据

为了提高性能,Neural Pocket 转而使用 Unity Computer Vision Perception 软件包,以生成用于计算机视觉训练和验证的大规模数据集。

“Unity Computer Vision Perception 软件包支持有序的流程和结构,可以在任何检测项目中反复使用,”Neural Pocket 模拟部主管 Romain Angénieux 说道。“借助一组可自定义的组件,例如场景、随机产生器、标记、标签和智能摄像机,我们就能通过其 UI 以非常直接灵活的方式设置随机化。”

Neural Pocket 从 Unity Asset Store 和其他市场获取 3D 武器模型,并轻松将其集成到 Unity 计算机视觉工具中进行自定义对象检测。该团队在捕获的帧之间对模拟的各个方面进行了随机化处理,例如渲染手持武器的图像时,只将武器单独渲染。

Unity Computer Vision 提供了可扩展的解决方案,可以创建数千甚至数百万张合成图像。Neural Pocket 生成了 5,100 个模拟帧,是真实帧数量的五倍。在结合真实和合成数据对模型进行训练之后,结果达到了生产级质量水平:刀具的检出率从 27% 提升到了 87%,而球棒和枪支的检出率则从 80% 提升到了理想的 100%。 

“我们感到很惊喜,可以获得开箱即用的出色成果,”技术孵化团队高级专家兼负责人 Alex Daniels 说道。“凭借能够轻松快速地更改参数以生成新的改进数据集,并且无需依赖真实数据的收集,我们大大简化了数据集创建过程。”

项目 2:智能手机的对象检测

在另一个项目中,Neural Pocket 的一位合作伙伴想要训练 AI 来检测使用智能手机拍照的人员,以便更好地保护信用卡号等机密信息。

将 Unity Computer Vision Perception 软件包直接用于危险对象检测项目时,团队利用了该软件包的可扩展性和开源代码库来执行这个更为复杂的项目。 

Angénieux 表示:“使用 Perception 软件包的默认配置足以提高计算机视觉的性能,但可以在现有工具的基础上构建更多功能,以覆盖尽可能大的领域。”

该团队创建了一系列自定义随机化设置,以克服与识别智能手机相关的以下技术挑战:

  • 范围广泛的模型 – 设计了一种逻辑方法,将各种基本组件(如徽标、摄像头)组合在一起,以生成具有市场代表性手机的逼真 3D 模型。
  • 无限可能的手机壳设计 – 执行纹理映射,以便任何 Google Images API 图像都能映射到手机壳。
  • 用不同的方式握持并由手指部分覆盖 – 创建了具有不同姿势和皮肤变化的模块化人手。
  • 许多目标对象可能会被误认为是智能手机 – 创建未标注过的陷阱对象:具有与智能手机相似的形状和样式但不应被检测到的对象,因此引入了“并非每个手持的矩形对象就一定是手机”这一概念,从而减少了误报。

通过模拟进一步提升性能

Neural Pocket 捕获了 20,540 个真实图像,生成了 27,478 个合成图像。只使用真实数据时,检出率为 89.8%;使用真实和模拟数据集后,这一比率提高到了 92.9%。

Daniels 表示:“虽然这看起来只提高了一点,但因为手机检测是在一系列视频帧上进行的,静态图像上 3% 的提高可以在整体上显著提高手机的检出率。”

后续建议

在 Unity 的帮助下,Neural Pocket 团队大幅提高了生产量,现在可以自由承接更多工作并扩大了收入潜力。Neural Pocket 将继续把 Unity 计算机视觉工具应用于各种项目;阅读此博客文章,查看更多示例。 

今后,Neural Pocket 计划减少对真实数据的依赖,并将合成数据作为训练数据的比例大幅提升至 90%。团队对 Unity 计算机视觉功能充满信心,这是推动这一转变的关键因素。

Angénieux 表示:“随着以用户需求为中心积极进行开发,我们希望 Unity Computer Vision Perception 软件包能够不断改进,我们可以利用其承接感知任务并开始创建感知项目。”

Romain Angénieux, Head of Simulation, Neural Pocket

“在 Unity 计算机视觉工具的帮助下,让我们可以更快、更经济高效地工作。因此,我们仅花费少量时间和成本,就能完成训练和部署计算机视觉模型。”

Romain Angénieux, Head of Simulation, Neural Pocket
Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

“Unity Computer Vision 提供的数据变化不断增加,收集真实数据的必要性也随之降低。此外,计算机视觉模型的性能也得到了改善,提供了更高质量的产品。”

Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

开始使用 Unity Computer Vision

查看我们的产品/服务,了解我们的专家团队如何帮助您生成满足计算机视觉模型需求的合成数据。

我们使用 Cookie 来确保为您提供网站的最佳体验。有关更多信息,请访问我们的 Cookie 政策页面

明白了