news 2026/4/18 16:07:20

[STM32H7] 【STM32H745I-DISCO 试用】STM32H745平台上的CIFAR数据集AI探索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[STM32H7] 【STM32H745I-DISCO 试用】STM32H745平台上的CIFAR数据集AI探索

一、数据集简介
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序包含剩余图像,但一些训练批次可能包含来自一个类别的图像比另一个更多。总体来说,五个训练集之和包含来自每个类的正好5000张图像。



二、环境设置

X-CUBE-AI是STM32Cube.AI生态系统的STM32Cube扩展包部分,能够自动转换预训练人工智能算法(包括神经网络和经典机器学习模型),并将生成的优化库集成到用用户项目中,以此来扩展STM32CubeMX功能。

RT-Thread AI Toolkit,简称RT-AK (RT-Thread AI 套件)RT-AK 是 RT-Thread 团队为 RT-Thread 实时操作系统所开发的 AI 套件,能够一键将 AI 模型部署到 RT-Thread 项目中,让用户可以 在统一的 API 之上进行业务代码开发,又能在目标平台上获极致优化的性能,从而更简单方便地开发端侧 AI 应用程序。
利用RT-AK工具,生成集成AI模型的项目工程。


复制
  1. #python aitools.py --project=D:\Project-master\stm32-cifar --model_name ./Models/cifar10.tflite --platform stm32 --ext_tools D:\Program Files (x86)\stm32ai-windows-7.3.0\windows --clear



具体转换信息如下:

复制
  1. model_name: cifar10
  2. input: input_1 [3072 items, 3.00 KiB, ai_u8, scale=0.003921568859368563, zero_point=0, (32, 32, 3)]
  3. inputs(total) : 3.00 KiB
  4. output: nl_21_fmt [10 items, 12 B, ai_u8, scale=0.00390625, zero_point=0, (1, 1, 10)]
  5. outputs(total) : 10 B
  6. params# : 85,834 items (88.45 KiB)
  7. weights(ro) : 90,568 B (88.45 KiB)
  8. activations(rw) : 67,456 B (65.88 KiB)
  9. ram(total) : 70,538 B (68.88 KiB) = 67,456 + 3,072 + 10

生成了2个文件:rt_ai_cifar10_model.c和rt_ai_cifar10_model.h。
三、业务实现
业务层面,主要包括初始化、输入图像、模型运行、结果输出几个阶段。

具体业务代码如下:
复制
  1. rt_ai_buffer_t *work_buffer = rt_malloc(RT_AI_CIFAR10_WORK_BUFFER_BYTES+RT_AI_CIFAR10_IN_TOTAL_SIZE_BYTES+RT_AI_CIFAR10_OUT_TOTAL_SIZE_BYTES);
  2. model = rt_ai_find(RT_AI_CIFAR10_MODEL_NAME);
  3. if(model == RT_AI_NULL){
  4. return-1;
  5. }
  6. result = rt_ai_init(model, work_buffer);
  7. if(result !=0){
  8. return-1;
  9. }
  10. rt_memcpy(model->input[0], input_data0, RT_AI_CIFAR10_IN_1_SIZE_BYTES);
  11. result = rt_ai_run(model, ai_run_complete, &ai_run_complete_flag);
  12. if(ai_run_complete_flag){
  13. uint8_t *out= (uint8_t *)rt_ai_output(model,0);
  14. intmax_index =0;
  15. for(inti =1; i <10; i++){
  16. if(out[i] >out[max_index]){
  17. max_index = i;
  18. }
  19. }
  20. rt_kprintf("cifar10 prediction: %s\n", cifar10_label[max_index]);
  21. }
  22. rt_free(work_buffer);



四、运行测试

系统启动后,LED已经闪烁起来。

用来识别的图片如下:

识别结果如下:

五、视频



---------------------
作者:NeXToNE
链接:https://bbs.21ic.com/icview-3454324-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 21:37:59

Comake Pi D2,轻量化端侧AI视觉开发神器

随着人工智能物联网&#xff08;AIoT&#xff09;的蓬勃发展&#xff0c;市场对低功耗、低成本、便携式的端侧AI解决方案要求愈发严格&#xff1a;既要强大算力支撑复杂任务&#xff0c;又要极致低功耗保障续航&#xff1b;既要小巧尺寸适配多元场景&#xff0c;又要低成本快速…

作者头像 李华
网站建设 2026/4/18 7:27:25

使用EasyExcel对某列做特定样式,样式失效

⭐简单说两句⭐ ✨ 少壮不努力&#xff0c;老大加班加到让你怀疑人生&#xff01;&#xff01;&#xff01; 作者&#xff1a;银氨溶液 CSDN个人主页&#xff1a;银氨溶液 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 场景浅尝 最近&…

作者头像 李华
网站建设 2026/4/18 8:39:22

基于51单片机的简易电子琴设计

基于51单片机的简易电子琴设计 一、设计背景与意义 电子琴作为普及性乐器&#xff0c;凭借音色丰富、操作便捷等优势&#xff0c;广泛应用于音乐教学与日常娱乐场景。传统电子琴多为独立设备&#xff0c;体积较大且成本较高&#xff0c;而基于单片机的简易电子琴具有体积小巧、…

作者头像 李华
网站建设 2026/4/17 23:47:09

C++精灵库二叉树四种遍历算法可视化遍历程序

C精灵库二叉树四种遍历算法可视化程序本程序实现了二叉树的四种遍历实现&#xff1a; 前序遍历&#xff1a;根→左→右 中序遍历&#xff1a;左→根→右 后序遍历&#xff1a;左→右→根 层序遍历&#xff08;BFS&#xff09;&#xff1a;按层级从左到右访问 这个程序非常生动…

作者头像 李华
网站建设 2026/4/15 6:29:27

基于eNSP的校园网络规划设计与仿真

友善提示 支持JAVA、Python、大数据专业、小程序、PHP、APP、ASP.NET、Node.js、Vue、数据分析、可视化、推荐系统等各类系统定做&#xff0c;您出题目&#xff0c;我们按需求定做。或者我们出相关的选题&#xff0c;并定做系统都支持… 博主简介 作者简介&#xff1a;Java领…

作者头像 李华
网站建设 2026/4/17 21:26:16

macOS Java 多版本环境配置完全指南

macOS Java 多版本环境配置完全指南 &#x1f4cb; 目录 问题背景解决方案概览详细配置步骤常见问题解决最佳实践建议 问题背景 在 macOS 上开发 Java 项目时&#xff0c;经常需要同时维护多个不同版本的 Java 环境。例如&#xff1a; 旧项目使用 JDK 8较新项目使用 JDK 1…

作者头像 李华