[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-xboot--libonnx":3,"tool-xboot--libonnx":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",148568,2,"2026-04-09T23:34:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":93,"forks":94,"last_commit_at":95,"license":96,"difficulty_score":97,"env_os":98,"env_gpu":99,"env_ram":100,"env_deps":101,"category_tags":108,"github_topics":111,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":127,"updated_at":128,"faqs":129,"releases":165},5594,"xboot\u002Flibonnx","libonnx","A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.","libonnx 是一款专为嵌入式设备打造的轻量级 ONNX 推理引擎。它采用纯 C99 语言编写，无需复杂的外部依赖，旨在解决在资源受限的硬件上运行深度学习模型时面临的体积过大、移植困难及性能不足等痛点。\n\n这款工具非常适合嵌入式系统开发者、物联网工程师以及需要在边缘端部署 AI 算法的研究人员使用。其核心优势在于极致的便携性与高效性：开发者只需将源代码文件放入项目中即可编译使用，大幅降低了集成门槛。同时，libonnx 原生支持硬件加速接口，允许用户通过传入特定的解析器来调用底层硬件算力，从而显著提升推理速度。\n\n从手写数字识别到移动端图像分类（如 MobileNet、ShuffleNet），libonnx 已成功验证了对多种主流模型的支持。无论是进行跨平台交叉编译，还是在裸机环境中运行，它都能提供稳定可靠的推理服务，是让 AI 模型在小型设备上“跑起来”的理想选择。","\n\n***\n# Libonnx\nA lightweight, portable pure `C99` `onnx` `inference engine` for embedded devices with hardware acceleration support.\n\n## Getting Started\nThe library's .c and .h files can be dropped into a project and compiled along with it. Before use, should be allocated `struct onnx_context_t *` and you can pass an array of `struct resolver_t *` for hardware acceleration.\n\nThe filename is path to the format of `onnx` model.\n\n```c\nstruct onnx_context_t * ctx = onnx_context_alloc_from_file(filename, NULL, 0);\n```\n\nThen, you can get input and output tensor using `onnx_tensor_search` function.\n\n```c\nstruct onnx_tensor_t * input = onnx_tensor_search(ctx, \"input-tensor-name\");\nstruct onnx_tensor_t * output = onnx_tensor_search(ctx, \"output-tensor-name\");\n```\n\nWhen the input tensor has been setting, you can run inference engine using `onnx_run` function and the result will putting into the output tensor.\n\n```c\nonnx_run(ctx);\n```\n\nFinally, you must free `struct onnx_context_t *` using `onnx_context_free` function.\n\n```c\nonnx_context_free(ctx);\n```\n\n## Compilation Instructions\n\nJust type `make` at the root directory, you will see a static library and some binary of [examples](examples) and [tests](tests) for usage.\n\n```shell\ncd libonnx\nmake\n```\n\nTo compile the `mnist` example, you will have to install SDL2 and SDL2 GFX. On systems like Ubuntu run\n```shell\n    apt-get install libsdl2-dev libsdl2-gfx-dev\n```\nto install the required Simple DirectMedia Layer libraries to run the GUI.\n\n#### Cross compilation example (for `arm64`)\n\nRun `make CROSS_COMPILE=path\u002Fto\u002Ftoolchains\u002Faarch64-linux-gnu-` at the root directory to compile all libraries, tests and examples for the platform.\n\nChange `CROSS_COMPILE` to point the toolchains that you plan to use.\n\n\n#### How to run examples\n\nAfter compiling all the files, you can run an example by using:\n\n```shell\ncd libonnx\u002Fexamples\u002Fhello\u002Foutput\n.\u002Fhello\n```\n\n## Screenshots\n* [Mnist handwritten digit prediction](examples\u002Fmnist)\n![Mnist handwritten digit prediction](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxboot_libonnx_readme_a996cd9d411b.gif)\n\n## Running tests\n\nTo run tests, for example on those in the `tests\u002Fmodel` folder use:\n\n```shell\ncd libonnx\u002Ftests\u002Foutput\n.\u002Ftests ..\u002Fmodel\n```\n\nHere is the output:\n```shell\n[mnist_8](test_data_set_0)                                                              [OKAY]\n[mnist_8](test_data_set_1)                                                              [OKAY]\n[mnist_8](test_data_set_2)                                                              [OKAY]\n[mobilenet_v2_7](test_data_set_0)                                                       [OKAY]\n[mobilenet_v2_7](test_data_set_1)                                                       [OKAY]\n[mobilenet_v2_7](test_data_set_2)                                                       [OKAY]\n[shufflenet_v1_9](test_data_set_0)                                                      [OKAY]\n[shufflenet_v1_9](test_data_set_1)                                                      [OKAY]\n[shufflenet_v1_9](test_data_set_2)                                                      [OKAY]\n[squeezenet_v11_7](test_data_set_0)                                                     [OKAY]\n[squeezenet_v11_7](test_data_set_1)                                                     [OKAY]\n[squeezenet_v11_7](test_data_set_2)                                                     [OKAY]\n[super_resolution_10](test_data_set_0)                                                  [OKAY]\n[tinyyolo_v2_8](test_data_set_0)                                                        [OKAY]\n[tinyyolo_v2_8](test_data_set_1)                                                        [OKAY]\n[tinyyolo_v2_8](test_data_set_2)                                                        [OKAY]\n```\n\nNote that running the test on the other folders may not succeed. Some operators have not been implemented, look bat the notes section for more info.\n\n## Notes\n\n- This library based on the onnx version [v1.17.0](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Ftree\u002Fv1.19.0) with the newest `opset 24` support. [The supported operator table](documents\u002Fthe-supported-operator-table.md) in the [documents](documents) directory.\n- Checkout the `tools` folder for help with ONNX model files.\n- You can use `xxd -i \u003Cfilename.onnx>` (on Linux) to convert your onnx model into a `unsigned char array` and then use the function `onnx_context_alloc` to use it. This is how the models are loaded in the examples - `hello` and `mnist`.\n\n## Links\n\n* [The chinese discussion posts](https:\u002F\u002Fwhycan.com\u002Ft_5440.html)\n* [The onnx documentation](https:\u002F\u002Fonnx.ai\u002Fonnx\u002Foperators)\n* [The onnx operators documentation](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md)\n* [The tutorials for creating ONNX models](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftutorials)\n* [The pre-trained onnx models](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fmodels)\n\n## License\n\nThis library is free software; you can redistribute it and or modify it under the terms of the MIT license. See [MIT License](LICENSE) for details.\n\n","***\n\n# Libonnx\n一个轻量级、可移植的纯 `C99` `ONNX` 推理引擎，适用于支持硬件加速的嵌入式设备。\n\n## 快速入门\n将库中的 `.c` 和 `.h` 文件直接放入项目中，并与项目一起编译即可。在使用前，需要分配一个 `struct onnx_context_t *`，并且可以传入一个 `struct resolver_t *` 数组以实现硬件加速。\n\n`filename` 是 ONNX 模型文件的路径。\n\n```c\nstruct onnx_context_t * ctx = onnx_context_alloc_from_file(filename, NULL, 0);\n```\n\n然后，可以使用 `onnx_tensor_search` 函数获取输入和输出张量。\n\n```c\nstruct onnx_tensor_t * input = onnx_tensor_search(ctx, \"input-tensor-name\");\nstruct onnx_tensor_t * output = onnx_tensor_search(ctx, \"output-tensor-name\");\n```\n\n设置好输入张量后，可以使用 `onnx_run` 函数运行推理引擎，结果会存储到输出张量中。\n\n```c\nonnx_run(ctx);\n```\n\n最后，必须使用 `onnx_context_free` 函数释放 `struct onnx_context_t *`。\n\n```c\nonnx_context_free(ctx);\n```\n\n## 编译说明\n\n只需在根目录下输入 `make`，即可生成静态库以及一些用于演示和测试的二进制文件。\n\n```shell\ncd libonnx\nmake\n```\n\n要编译 `mnist` 示例，需要安装 SDL2 和 SDL2 GFX。在 Ubuntu 等系统上，运行以下命令来安装所需的 Simple DirectMedia Layer 库，以便运行 GUI：\n\n```shell\n    apt-get install libsdl2-dev libsdl2-gfx-dev\n```\n\n#### 交叉编译示例（针对 `arm64`）\n在根目录下运行 `make CROSS_COMPILE=path\u002Fto\u002Ftoolchains\u002Faarch64-linux-gnu-`，即可为指定平台编译所有库、测试和示例。\n\n请将 `CROSS_COMPILE` 替换为你计划使用的工具链路径。\n\n#### 如何运行示例\n编译完成后，可以通过以下命令运行示例：\n\n```shell\ncd libonnx\u002Fexamples\u002Fhello\u002Foutput\n.\u002Fhello\n```\n\n## 截图\n* [MNIST 手写数字预测](examples\u002Fmnist)\n![MNIST 手写数字预测](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxboot_libonnx_readme_a996cd9d411b.gif)\n\n## 运行测试\n要运行测试，例如 `tests\u002Fmodel` 文件夹中的测试，可以使用以下命令：\n\n```shell\ncd libonnx\u002Ftests\u002Foutput\n.\u002Ftests ..\u002Fmodel\n```\n\n以下是输出结果：\n\n```shell\n[mnist_8](test_data_set_0)                                                              [OKAY]\n[mnist_8](test_data_set_1)                                                              [OKAY]\n[mnist_8](test_data_set_2)                                                              [OKAY]\n[mobilenet_v2_7](test_data_set_0)                                                       [OKAY]\n[mobilenet_v2_7](test_data_set_1)                                                       [OKAY]\n[mobilenet_v2_7](test_data_set_2)                                                       [OKAY]\n[shufflenet_v1_9](test_data_set_0)                                                      [OKAY]\n[shufflenet_v1_9](test_data_set_1)                                                      [OKAY]\n[shufflenet_v1_9](test_data_set_2)                                                      [OKAY]\n[squeezenet_v11_7](test_data_set_0)                                                     [OKAY]\n[squeezenet_v11_7](test_data_set_1)                                                     [OKAY]\n[squeezenet_v11_7](test_data_set_2)                                                     [OKAY]\n[super_resolution_10](test_data_set_0)                                                  [OKAY]\n[tinyyolo_v2_8](test_data_set_0)                                                        [OKAY]\n[tinyyolo_v2_8](test_data_set_1)                                                        [OKAY]\n[tinyyolo_v2_8](test_data_set_2)                                                        [OKAY]\n```\n\n请注意，在其他文件夹中运行测试可能无法成功。部分算子尚未实现，更多信息请参阅注释部分。\n\n## 注释\n\n- 本库基于 ONNX 版本 [v1.17.0](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Ftree\u002Fv1.19.0)，并支持最新的 `opset 24`。支持的算子表位于 [documents](documents) 目录下的 [the-supported-operator-table.md] 文件中。\n- 可以查看 `tools` 文件夹，获取有关 ONNX 模型文件的帮助。\n- 在 Linux 上，可以使用 `xxd -i \u003Cfilename.onnx>` 将 ONNX 模型转换为 `unsigned char 数组`，然后使用 `onnx_context_alloc` 函数加载模型。示例中的 `hello` 和 `mnist` 就是这样加载模型的。\n\n## 链接\n\n* [中文讨论帖](https:\u002F\u002Fwhycan.com\u002Ft_5440.html)\n* [ONNX 官方文档](https:\u002F\u002Fonnx.ai\u002Fonnx\u002Foperators)\n* [ONNX 算子文档](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fonnx\u002Fblob\u002Fmain\u002Fdocs\u002FOperators.md)\n* [创建 ONNX 模型的教程](https:\u002F\u002Fgithub.com\u002Fonnx\u002Ftutorials)\n* [预训练的 ONNX 模型](https:\u002F\u002Fgithub.com\u002Fonnx\u002Fmodels)\n\n## 许可证\n\n本库为自由软件，可在 MIT 许可证条款下重新分发或修改。详细信息请参阅 [MIT License](LICENSE)。","# Libonnx 快速上手指南\n\nLibonnx 是一个轻量级、可移植的纯 C99 ONNX 推理引擎，专为嵌入式设备设计，并支持硬件加速。\n\n## 环境准备\n\n### 系统要求\n- 支持标准 C99 编译器的任意平台（Linux, macOS, Windows, 嵌入式系统等）\n- 构建工具：`make`, `gcc`\u002F`clang`\n\n### 前置依赖\n若需编译并运行示例程序（如 MNIST 手写数字识别），需安装 SDL2 图形库：\n\n**Ubuntu\u002FDebian:**\n```shell\napt-get install libsdl2-dev libsdl2-gfx-dev\n```\n\n**其他发行版:**\n请使用对应的包管理器安装 `libsdl2-dev` 和 `libsdl2-gfx-dev`。\n\n> **提示**：若仅需将库集成到自己的项目中用于推理，无需安装上述图形库依赖。\n\n## 安装步骤\n\nLibonnx 无需复杂的安装过程，只需克隆源码并编译即可。\n\n1. **克隆仓库并进入目录**\n   ```shell\n   git clone https:\u002F\u002Fgithub.com\u002Flibonnx\u002Flibonnx.git\n   cd libonnx\n   ```\n\n2. **编译库与示例**\n   在根目录下执行 `make`，将生成静态库文件以及示例和测试程序的可执行文件。\n   ```shell\n   make\n   ```\n\n3. **交叉编译（可选）**\n   针对嵌入式平台（如 ARM64），指定交叉编译工具链前缀：\n   ```shell\n   make CROSS_COMPILE=path\u002Fto\u002Ftoolchains\u002Faarch64-linux-gnu-\n   ```\n   *请将 `path\u002Fto\u002Ftoolchains\u002Faarch64-linux-gnu-` 替换为你实际的工具链路径。*\n\n## 基本使用\n\nLibonnx 的设计哲学是“即插即用”。你可以直接将 `.c` 和 `.h` 源文件复制到你的工程中进行编译。\n\n### 1. 代码集成示例\n\n以下是最小化的 C 语言调用流程：\n\n```c\n#include \"onnx.h\"\n\n\u002F\u002F 1. 从文件加载 ONNX 模型并分配上下文\n\u002F\u002F filename: .onnx 模型文件路径\n\u002F\u002F resolvers: 硬件加速解析器数组（若无特殊加速需求可传 NULL）\nstruct onnx_context_t * ctx = onnx_context_alloc_from_file(\"model.onnx\", NULL, 0);\n\nif (ctx) {\n    \u002F\u002F 2. 获取输入和输出张量\n    struct onnx_tensor_t * input = onnx_tensor_search(ctx, \"input-tensor-name\");\n    struct onnx_tensor_t * output = onnx_tensor_search(ctx, \"output-tensor-name\");\n\n    if (input && output) {\n        \u002F\u002F 3. 填充输入数据到 input->data ...\n        \n        \u002F\u002F 4. 执行推理\n        onnx_run(ctx);\n        \n        \u002F\u002F 5. 从 output->data 读取结果\n    }\n\n    \u002F\u002F 6. 释放资源\n    onnx_context_free(ctx);\n}\n```\n\n### 2. 运行内置示例\n\n编译完成后，可直接运行官方提供的示例来验证环境：\n\n**运行 Hello World 示例：**\n```shell\ncd libonnx\u002Fexamples\u002Fhello\u002Foutput\n.\u002Fhello\n```\n\n**运行 MNIST 手写数字识别示例：**\n```shell\ncd libonnx\u002Fexamples\u002Fmnist\u002Foutput\n.\u002Fmnist\n```\n\n### 3. 运行测试套件\n\n验证算子支持情况，确保模型兼容性：\n\n```shell\ncd libonnx\u002Ftests\u002Foutput\n.\u002Ftests ..\u002Fmodel\n```\n\n预期输出应显示各测试用例状态为 `[OKAY]`。\n\n> **注意**：Libonnx 基于 ONNX v1.17.0 (opset 24)。部分算子可能尚未实现，详细支持的算子列表请参阅项目文档中的 `the-supported-operator-table.md`。","某嵌入式团队正在为一款低功耗工业摄像头开发实时缺陷检测功能，需要在资源受限的 ARM 芯片上运行深度学习模型。\n\n### 没有 libonnx 时\n- **依赖沉重**：传统推理框架（如 ONNX Runtime）体积庞大，难以裁剪，导致固件超出存储限制且启动缓慢。\n- **移植困难**：缺乏纯 C99 支持，在交叉编译到特定 ARM64 架构时需处理复杂的 C++ 依赖和运行时环境，调试周期长达数周。\n- **硬件加速受阻**：难以将自定义的 NPU 或 DSP 加速器无缝接入现有推理流程，导致模型只能跑在低效的 CPU 上，无法满足实时性要求。\n- **内存不可控**：框架自动管理内存机制不透明，在极端嵌入式环境下容易引发内存碎片或溢出，系统稳定性差。\n\n### 使用 libonnx 后\n- **极致轻量**：仅需将几个 C 源文件拖入工程即可编译，生成的静态库极小，完美适配微控制器存储限制，启动速度提升十倍。\n- **原生便携**：基于纯 C99 标准，利用 `CROSS_COMPILE` 工具链可一键完成 ARM64 交叉编译，无需配置复杂环境，半天即可完成移植。\n- **灵活加速**：通过传入 `resolver_t` 数组接口，轻松挂载自研硬件加速后端，使 TinyYolo 等模型在边缘端实现流畅的实时推理。\n- **内存自主**：提供 `onnx_context_alloc` 和 `free` 等手动内存管理接口，开发者可精确控制生命周期，确保系统在长期运行中稳定可靠。\n\nlibonnx 让高性能 AI 推理真正摆脱了重型框架的束缚，成为资源受限嵌入式设备落地的关键基石。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fxboot_libonnx_f401dd5a.png","xboot","xboot.org","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fxboot_0860e58a.png","",null,"8192542@qq.com","http:\u002F\u002Fxboot.org","https:\u002F\u002Fgithub.com\u002Fxboot",[81,85,89],{"name":82,"color":83,"percentage":84},"C","#555555",99.1,{"name":86,"color":87,"percentage":88},"Python","#3572A5",0.7,{"name":90,"color":91,"percentage":92},"Makefile","#427819",0.2,648,116,"2026-04-02T07:08:43","MIT",4,"Linux, macOS, Windows","非必需。支持通过 resolver_t 接口接入硬件加速，但 README 未指定特定 GPU 型号或 CUDA 版本要求（核心为纯 C99 实现）。","未说明（定位为嵌入式设备，内存占用取决于模型大小）",{"notes":102,"python":103,"dependencies":104},"该库是纯 C99 编写的轻量级推理引擎，专为嵌入式设备设计。无需 Python 环境，可直接将 .c 和 .h 文件加入项目编译。支持交叉编译（如 arm64 架构）。若运行 mnist 示例需安装 SDL2 相关图形库。模型可加载自文件或转换为 unsigned char 数组嵌入代码。基于 ONNX v1.17.0 标准，支持 opset 24。","不需要",[105,106,107],"C99 编译器","libsdl2-dev (仅 mnist 示例需要)","libsdl2-gfx-dev (仅 mnist 示例需要)",[16,109,13,35,15,110,14,52],"其他","音频",[112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],"onnx","inference","c","embedded","baremetal","library","deep-learning","embedded-systems","portable","lightweight","dedeep-neural-networks","neural-network","machine-learning","hardware-acceleration","ai","2026-03-27T02:49:30.150509","2026-04-10T18:51:52.473427",[130,135,140,145,150,155,160],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},25371,"如何在嵌入式系统中运行 libonnx？需要多少内存？","对于小型嵌入式系统，您可以尝试使用更小的模型（如 MNIST）。关于内存分配，建议编写自定义的 malloc 函数，并确保 onnx_tensor_t 的数据按 8 字节对齐。如果只有 2MB 内存，可能需要测试最小模型或优化内存使用。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F5",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},25372,"为什么加载某些 TensorFlow 转换的 ONNX 模型时会崩溃？","这通常是因为模型中包含了 libonnx 尚未支持的算子（Operator）。您可以查看官方文档中的“支持算子表”（the-supported-operator-table.md）来确认哪些算子未被支持。如果模型包含如 `Loop` 等不支持的控制流算子，可能会导致加载失败。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F12",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},25373,"libonnx 是否支持动态形状输入或 CUDA 推理？","关于动态形状，可以通过使用 `onnx_tensor_apply` 函数来修改输入张量的形状来实现一定程度的动态性。目前库主要面向 CPU 推理，原生不支持 CUDA，如需 GPU 加速可能需要自行扩展后端或使用其他推理引擎。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F14",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},25374,"如何将 .onnx 模型文件转换为 C 语言中的 unsigned char 数组？","可以使用 `xxd` 工具将二进制 ONNX 文件转换为 C 代码格式。具体命令为：`xxd -i model.onnx`。该命令会输出一个包含模型数据的静态常量数组，可直接复制到代码中使用，如 hello world 示例所示。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F17",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},25375,"在 macOS 上编译时出现 'malloc.h' 文件未找到的错误怎么办？","macOS 系统默认不包含 `\u003Cmalloc.h>` 头文件。解决方法是直接从源代码中移除对该头文件的引用。如果代码中使用了 `memalign` 函数且编译失败，可以将其替换为标准的 `malloc` 函数，因为 macOS 的 malloc 通常已满足对齐要求。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F7",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},25376,"为什么运行 libonnx 的测试用例时全部显示失败（FAIL）？","这通常是由于测试命令的参数路径指定不正确导致的。请确保按照正确的用法运行测试：`tests \u003CDIRECTORY>`。例如，运行 `.\u002Ftests\u002Ftests .\u002Ftests\u002Fmodel` 而不是使用 shell 通配符错误的方式。正确指定目录后，mnist、mobilenet 等模型的测试应显示 [OKAY]。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F16",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},25377,"在极简环境下部署时，是否可以移除 math.h 等标准头文件？","虽然 `onnxconf.h` 中包含了 `\u003Cmath.h>`，但如果您仔细检查代码发现并未实际调用复杂的数学库函数，在某些极简环境下可以尝试移除该引用。不过需注意，部分算子可能隐式依赖数学函数，移除前需充分测试验证，或者自行实现所需的简单数学功能。","https:\u002F\u002Fgithub.com\u002Fxboot\u002Flibonnx\u002Fissues\u002F15",[]]