学习ONNX交易 - 页 9

 

使用 ONNX w/ Qualcomm 支持的设备,从智能手机到云边缘以及介于两者之间的一切



使用 ONNX w/ Qualcomm 支持的设备,从智能手机到云边缘以及介于两者之间的一切

在 Qualcomm 的设备范围内使用 ONNX 交换格式有助于支持其所有设备上的模型。高通在支持不同设备和不同型号时面临着具有挑战性的架构,但 ONNX 有助于实现跨垂直、强大设备和地域的可扩展性。高通与微软合作创建了一个 ONNX 运行时执行器提供程序,允许 ONNX 模型在高通支持的设备上运行,包括那些运行 Windows 的设备。统一的软件堆栈包括一个名为 AI 引擎的库,它可以将 ONNX 模型动态路由到不同的加速器以获得最佳性能,并提供额外的工具,例如用于优化模型的分析器、编译器和分析器。

  • 00:00:00 在本节中,Qualcomm 的演讲者谈到了他们如何使用 ONNX 来支持他们的各种设备,从微型耳塞到笔记本电脑、安全摄像头甚至汽车设备。他们提到 ONNX 的交换格式允许他们以模型为目标并在他们支持的所有设备上使用它。他们还讨论了他们必须处理的具有挑战性的架构,以支持不同的设备以及不同的模型、实现和功能要求。例如,他们谈到使用 Apple 的深度传感器技术在手机上进行身份验证,以及他们现在如何将相同的技术集成到安全相机和汽车中。

  • 00:05:00 在本节中,演讲者讨论了当今行业在 AI 领域面临的可扩展性挑战。他解释了高通如何应对挑战以及使用 ONNX 作为交换格式以实现可扩展性的好处。通过将算法从 CPU 转移到 AI 加速器,可以轻松扩展设备。多核架构使系统能够实现更高的性能,这有助于处理实时视频流。此外,交换格式节省了大量时间,因为无需处理其他框架。最后,演讲者解释说,ONNX 有助于跨垂直、小型和强大的设备以及地域进行扩展。

  • 00:10:00 在本节中,演讲者讨论了 Qualcomm 如何与 Microsoft 合作为其 AI 加速器创建 ONNX 运行时执行器提供程序。这使得 ONNX 模型可以在各种高通设备上运行,包括移动和汽车设备,以及运行 Windows 的设备。高通开发了一个统一的软件堆栈,支持多种操作系统,包括一个称为AI引擎的统一软件库,可以动态地将ONNX模型路由到不同的加速器以获得最佳性能。他们还提供一系列附加工具供客户使用,例如分析器、编译器和分析器,用于为他们的特定设备构建和优化模型。
 

树莓派上的 ONNX 运行时物联网部署



树莓派上的 ONNX 运行时物联网部署

在这段名为“树莓派上的 ONNX 运行时物联网部署”的视频中,演示者演示了如何使用针对设备优化的 Mobilenet 模型在树莓派上为计算机视觉模型部署 ONNX 运行时。该视频涵盖了使用 VNC 查看器连接到 Raspberry Pi、配置它以及使用 OpenCV 和 Python 运行相机测试的过程。演示者捕获图像,运行推理,并打印出前五个预测类别,这些类别正确识别图像中的钢笔。总体而言,该视频为在 Raspberry Pi 上为计算机视觉应用程序部署 ONNX 运行时提供了有用的指南。

 

如何在树莓派上安装 ONNX Runtime



如何在树莓派上安装 ONNX Runtime

该视频提供了有关如何在 Raspberry Pi 上安装 ONNX Runtime 的详细指南。在Raspberry Pi上下载并安装Raspbian Stretch后,用户需要安装Docker和QMU用户静态包,创建build目录并运行命令获取ONNX Runtime wheel包,可以通过pip安装。该视频还解释了如何使用在 MNIST 数据集上训练的深度神经网络测试 ONNX 运行时,以及如何计算在单个图像上运行推理会话所需的时间。演讲者指出,该过程可能漫长而复杂,但对于在边缘设备上部署和测试神经网络的能力来说是值得的。

  • 00:00:00 Raspberry Pi 已发布操作系统,您可以从此处下载 Raspberry Pi OS(以前称为 Raspbian)Stretch。在 Raspberry Pi 上下载并安装 Docker 后,下一步是转到 ONNX Runtime Github 存储库并找到适用于 ARM32v7 平台的 Dockerfile。不同的平台有不同的 Dockerfile,但 ARM32v7 是 Raspberry Pi 所需要的。找到正确的 Dockerfile 后,您可以按照提供的说明在 Raspberry Pi 上安装 ONNX Runtime。这可能是一个漫长而复杂的过程,但为了能够在边缘设备上部署和测试神经网络,这是非常值得的。

  • 00:05:00 在本节中,演讲者解释了如何在 Raspberry Pi 上安装 ONNX Runtime。首先,用户需要下载 Raspbian Stretch 文件和 Raspberry Pi imager 以使 SD 卡可启动。在 Raspberry Pi 上安装 Raspbian Stretch 后,用户需要安装 Docker 和 QMU 用户静态包。创建build目录后,用户需要将更新后的Dockerfile保存在build目录下,运行命令获取ONNX Runtime wheel包。用pip安装wheel文件并测试后,就可以导入了,ONNX就可以在树莓派上使用Python 3 3.8版本了。

  • 00:10:00 在本节中,演讲者解释了如何在 Raspberry Pi 上使用 ONNX 运行时来测试已在特定数据集上训练的模型。演讲者已经训练了一个可以使用 MNIST 数据集进行数字分类的深度神经网络,并提供了代码和模型的链接。导入必要的库后,演讲者创建一个脚本,使用 ONNX Runtime 运行推理会话。演讲者遇到分段错误,经过研究,了解了 ONNX Runtime 可以进行的三个级别的图形优化并禁用它们,成功运行脚本并获得预测输出。

  • 00:15:00 在本节中,演讲者解释了他们如何计算 Raspberry Pi 在单个图像上运行推理会话所需的时间。他们引入了一个单独的脚本,使用时间库来计算生成输出和在 ONNX 运行时内运行模型所花费的时间,大约需要 0.06 秒,演讲者指出这对于简单模型和小图像尺寸来说非常有用。他们鼓励观众在他们的 Raspberry Pi 上安装 ONNX 运行时,并提出任何问题或疑虑。
 

使用各种 MobileNet ONNX 模型在 Raspberry Pi 上进行图像分类


使用各种 MobileNet ONNX 模型在 Raspberry Pi 上进行图像分类

使用 3 种模式的 MobileNet V1 ONNX 模型在 ONNX 运行时在 Raspberry Pi 4 上执行图像分类。

  1. 深度 1.00 & 224x224
  2. 深度 0.50 和 160x160
  3. 深度 0.25 & 128x128

分类在 7 毫秒内完成,具体取决于使用的模型。

 

在树莓派 4 上运行的 ONNX 运行时上的 SSDLite Mobilenet V2


在树莓派 4 上运行的 ONNX 运行时上的 SSDLite Mobilenet V2

ONNX Runtime 上的 SSDLite Mobilenet V2 在没有硬件加速的情况下在 Raspberry Pi 4 上运行。

 

在 Raspberry Pi 4 上运行的 ONNX 运行时上的 SSDLite Mobilenet V1 0.75 深度



在 Raspberry Pi 4 上运行的 ONNX 运行时上的 SSDLite Mobilenet V1 0.75 深度

SSDLite Mobilenet V1 0.75 深度在 ONNX Runtime 上运行在没有硬件加速的 Raspberry Pi 4 上。

 

在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3



在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3

ONNX Runtime 上的 Tiny-YOLOv3 在没有硬件加速的情况下在 Raspberry Pi 4 上运行。

 

具有优化的 ONNX 运行时的 Raspberry Pi 4 分类和对象检测



具有优化的 ONNX 运行时的 Raspberry Pi 4 分类和对象检测

在 ONNX 运行时在 Raspberry Pi 4 上执行图像分类:

  1. 使用 MobileNet V3 进行分类;
  2. 使用 SSDLite MobileNet V2 进行检测。
 

具有优化的 ONNX 运行时的 Raspberry Pi 4 对象检测(2020 年末)



具有优化的 ONNX 运行时的 Raspberry Pi 4 对象检测(2020 年末)

硬件:树莓派 4B
操作系统:树莓派操作系统(32 位)
软件:带有自定义执行提供程序的 ONNX Runtime 1.4.0(CPU 加速)
楷模:

 

在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3


在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3

ONNX Runtime 上的 Tiny-YOLOv3 在没有硬件加速的情况下在 Raspberry Pi 4 上运行。

原因: