在 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 w/ Qualcomm 支持的设备,从智能手机到云边缘以及介于两者之间的一切
使用 ONNX w/ Qualcomm 支持的设备,从智能手机到云边缘以及介于两者之间的一切
在 Qualcomm 的设备范围内使用 ONNX 交换格式有助于支持其所有设备上的模型。高通在支持不同设备和不同型号时面临着具有挑战性的架构,但 ONNX 有助于实现跨垂直、强大设备和地域的可扩展性。高通与微软合作创建了一个 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 运行时,以及如何计算在单个图像上运行推理会话所需的时间。演讲者指出,该过程可能漫长而复杂,但对于在边缘设备上部署和测试神经网络的能力来说是值得的。
使用各种 MobileNet ONNX 模型在 Raspberry Pi 上进行图像分类
使用各种 MobileNet ONNX 模型在 Raspberry Pi 上进行图像分类
使用 3 种模式的 MobileNet V1 ONNX 模型在 ONNX 运行时在 Raspberry Pi 4 上执行图像分类。
分类在 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 上执行图像分类:
具有优化的 ONNX 运行时的 Raspberry Pi 4 对象检测(2020 年末)
具有优化的 ONNX 运行时的 Raspberry Pi 4 对象检测(2020 年末)
硬件:树莓派 4B
操作系统:树莓派操作系统(32 位)
软件:带有自定义执行提供程序的 ONNX Runtime 1.4.0(CPU 加速)
楷模:
http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_0.75_depth_300x300_coco14_sync_2018_07_03.tar.gz
http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz|
https://github.com/onnx/models/blob/main/vision/object_detection_segmentation/tiny-yolov3/model/tiny-yolov3-11.onnx
在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3
在 Raspberry Pi 4 上运行的 ONNX Runtime 上的 Tiny-YOLOv3
ONNX Runtime 上的 Tiny-YOLOv3 在没有硬件加速的情况下在 Raspberry Pi 4 上运行。