xboot/libonnx

A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.

What it solves

Libonnx 提供了一种在资源受限且无法安装大型框架的嵌入式设备上运行 ONNX 模型推理的方法。它提供了一个轻量级、可移植的解决方案,可以直接集成到 C 项目中。

How it works

该库使用纯 C99 编写,允许开发者从文件或内存数组中加载 ONNX 模型。它使用基于上下文(context-based)的系统来管理模型、通过名称搜索输入和输出张量(tensors),并执行推理过程。它还通过解析器(resolver)系统支持硬件加速。

Who it’s for

需要在低功耗硬件上使用 ONNX 格式部署机器学习模型(such as MNIST or MobileNet)的嵌入式系统开发者。

Highlights

  • Pure C99: 高度可移植,可以直接将 .c 和 .h 文件放入现有项目中。
  • Hardware Acceleration: 通过解析器数组支持硬件加速。
  • Embedded Friendly: 专为具有小占用空间(small footprint)的嵌入式设备设计。
  • Modern ONNX Support: 基于 ONNX v1.17.0,支持 opset 24。