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 格式在低功耗硬體上部署機器學習模型(例如 MNIST 或 MobileNet)的嵌入式系統開發人員。

Highlights

  • Pure C99: 高度可移植,可以直接將 .c 和 .h 檔案放入現有專案中。
  • Hardware Acceleration: 透過解析器陣列支援硬體加速。
  • Embedded Friendly: 專為具有小佔用空間(small footprint)的嵌入式設備設計。
  • Modern ONNX Support: 基於 ONNX v1.17.0,支援 opset 24。