你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【Wio Lite AI视觉开发套件】+cube.ai与食物识别

[复制链接]
奇迹 发布时间:2022-10-31 11:43
在经历完各种准备工作后,现在终于来到了正主。直接部署Tensorflow Lite Micro那一套玩意确实没啥问题,但是太麻烦,要添加一大堆文件,还得用它家训练生成模型,然后转换,麻烦的很,在ST平台,怎么能不提到用ST自家工具去部署模型,方便快捷,简单实用。
拿出之前准备的工程,选取ai开发需要支持的软件包cue-ai,在software packs点select components
微信截图_20221029165303.png



在X-CUBE-AI行下core勾选,点OK完成
微信截图_20221029165346.png


回到引脚配置页面,最下方就是上面导入的CUBE-AI工具包
微信截图_20221029171555.png



点击+添加,这里要根据自己使用的模型,以及模型特点选择,如下图选择的是原始模型
微信截图_20221029171744.png

这里选择的是量化后的模型(量化可以减少模型的要求,但是精度会下降),点击分析
微信截图_20221029172202.png

分析中
微信截图_20221029171816.png

分析完成会显示是否可以部署到设备上,以及资源使用情况。
微信截图_20221029172246.png

回到工程,有个小bug(使用的STM32CubeMX版本为6.6.1,X-CUBE-AI版本为7.2.0),下图的几个文件路径老是生成错



QQ截图20221031110850.png

右键文件打开设置,修改一下路径就行


QQ截图20221031110911.png

头文件路径也有一样的问题
QQ截图20221031111258.png

初始化模型
  1. ai_handle ai_init(void)
  2. {
  3.   network_handle = AI_HANDLE_NULL;

  4.   /* Creating the network */
  5.   ai_network_create(&network_handle, AI_NETWORK_DATA_CONFIG);

  6.   /* Initialize param structure for the activation and weight buffers */
  7.   const ai_network_params params = AI_NETWORK_PARAMS_INIT(
  8.     AI_NETWORK_DATA_WEIGHTS(ai_network_data_weights_get()),
  9.     AI_NETWORK_DATA_ACTIVATIONS(activations)
  10.   );

  11.   /* Initializing the network */
  12.   ai_network_init(network_handle, ¶ms);
  13.   
  14.   /*Retrieve network descriptor*/
  15.   ai_network_get_info(network_handle, &desc_report);
  16.   
  17.   /*Copy descriptor info*/
  18.   ai_input[0]= desc_report.inputs[0];
  19.   ai_output[0]= desc_report.outputs[0];
  20.   
  21.   return desc_report.inputs->data;
  22. }
复制代码

运行模型
  1. void ai_run(void* input, void* output)
  2. {
  3.   ai_i32 nbatch;
  4.   
  5.   ai_input[0].data = AI_HANDLE_PTR(input);
  6.   ai_output[0].data = AI_HANDLE_PTR(output);
  7.   
  8.   nbatch = ai_network_run(network_handle, &ai_input[0], &ai_output[0]);
  9.   
  10.   if (nbatch != 1) {
  11.         while(1);
  12.   }
  13. }
复制代码

图像接收处理,这个模型要求输入224*224的RGB888的图像,把数据转换一下。
  1. void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
  2. {
  3.     uint8_t person_flag;
  4.     int i,j;
  5.     for(i=0; i<224; i++)
  6.         {
  7.         for(j=0; j<224; j++)
  8.         {
  9.             uint16_t bg_color = ((uint16_t *)_OV2640->frame->buffer)[i*320 + j];
  10.             network_input[3*i*224 + 3*j + 0] = ((bg_color>>11)&0xff)<<3;
  11.             network_input[3*i*224 + 3*j + 1] = ((bg_color>>5)&0x3f)<<2;
  12.             network_input[3*i*224 + 3*j + 2] = (bg_color&0x1f)<<2;
  13.         }
  14.         }
  15.     ai_run(network_input, network_output);

  16.     LCD_Draw_Image(0, 0, 320, 240, (uint16_t *)_OV2640->frame->buffer);
  17.     LCD_Draw_String(0, 0, 320, 240, 32, output_labels[network_max()]);
  18.    
  19.     OV2640_DMA_Config(_OV2640->frame->buffer, (_OV2640->frame->length)/4);
  20.    
  21. }
复制代码


运行效果(一共能识别18种食物,这里选了几个看看)



IMG_20221031_113022.jpg
可乐
IMG_20221031_102903.jpg

甜甜圈
IMG_20221031_103256.jpg

汉堡包
IMG_20221031_103432.jpg

薯条
IMG_20221031_103710.jpg


小结:STM32Cube.AI工具真的太香了,这里仅仅演示了模型的部署,其实可以快速验证AI模型在目标板上的运行情况,只用串口连接,直接把输入发送到单片机,然后运行完后把结果返回来,全部都集成到了一起,快速验证模型运行情况。很是方便(本文未涉及,有需要的可以在X-CUBE-AI行下勾选时,application里面选择validation,回到配置界面后设置通信接口即可)
Wio Lite AI视觉开发套件确实是开发AI的很好的选择之一,板子虽小五脏俱全,拿来做单片机视觉绰绰有余,但是不得不吐槽的一点是资料支持太差了,原理图,代码全都藏起来,前期调驱动花了很长的时间,后来管管给了一个例程后好转了一些(但是已经晚了。。。),Ai在单片机上应用已经有很多厂商都推出类似的解决方案了,ST这一个环境很优秀,就是如果相关的培训跟资料再多一点就好了。
收藏 评论5 发布时间:2022-10-31 11:43

举报

5个回答
wj20180813stm32 回答时间:2022-11-16 10:02:15
很好
萨法 回答时间:2024-11-24 21:35:02

up有没有原理图资料~

求求了

奇迹 回答时间:2024-11-25 10:35:50

萨法 发表于 2024-11-24 21:35
up有没有原理图资料~</p>
<p>求求了

[md]好久之前做的了,资料都忘了放哪里了。。。你可以在网上找找,或者找卖家要

黄涛12345 回答时间:2024-12-9 20:55:34

奇迹 发表于 2024-11-25 10:35
好久之前做的了,资料都忘了放哪里了。。。你可以在网上找找,或者找卖家要
...

up 有更详细一点的建文件工程的教程吗? 还有模型怎么弄上去, 求解

奇迹 回答时间:2024-12-10 18:48:00

黄涛12345 发表于 2024-12-9 20:55
up 有更详细一点的建文件工程的教程吗? 还有模型怎么弄上去, 求解
...

按这个文章操作就行

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版