【英飞凌 Edgi Talk评测】10. DeepCraft Deploy Vision —— AI 视觉目标检测
本文分享在 Edgi-Talk M55 应用核 上运行 DeepCraft Deploy Vision 的完整流程。该工程在 USB 摄像头实时显示的基础上,集成了 DEEPCRAFT/TFLM 模型推理,实现对摄像头画面的实时目标检测,并将检测框与标签叠加显示到 MIPI LCD 屏幕上。
本文对应的官方示例工程为 Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision,运行在 M55 应用核上。M55 由 M33 非安全核启动,且 M33 与 M55 工程必须使用相同版本的 BSP 包,否则会导致屏幕无法正常显示。
[url=][/url]一、功能简介
特性说明
USB Host 模式通过 Type-C 接口连接 USB 摄像头
UVC 协议支持自动枚举 UVC 摄像头,识别格式和分辨率
AI 目标检测基于 DEEPCRAFT/TFLM 的实时视觉推理
检测框叠加在 LCD 上实时绘制目标检测框与类别标签
实时显示摄像头画面 + 检测结果实时渲染到 512×800 MIPI LCD
模型可替换支持自定义模型替换,导出接口保持一致即可[url=][/url]1.1 与 USB UVC 工程的关联
工程功能AI 推理
Edgi_Talk_M55_USB_UVC摄像头实时显示无
Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision摄像头实时显示 + 目标检测有
[url=][/url]1.2 测试摄像头
- 模型输入尺寸固定:AI 模型通常训练时即固定了输入分辨率(如 320×240 或更小)
- 推理性能要求:较低分辨率可以减少推理计算量,保证实时性
- YUYV 格式兼容性:未压缩格式解码开销小,适合配合 AI 推理的实时性要求
注意:AI 模式下推荐分辨率固定为 320×240 YUYV,更高的分辨率会导致推理帧率显著下降。
[url=][/url]二、硬件准备[url=][/url]2.1 硬件连接

[url=][/url]2.2 启动依赖与 BSP 版本一致性(关键!)
⚠️ M33 工程与 M55 工程必须使用相同版本的 BSP 包!
测试场景M33 工程 BSP 版本M55 工程 BSP 版本结果
场景11.3.01.3.0 (USB_UVC)✅ 正常显示
场景21.3.01.3.1 (DEEPCRAFT)❌ 屏幕不显示
场景31.3.11.3.1 (USB_UVC_New)✅ 正常显示
场景41.3.11.3.1 (DEEPCRAFT)✅ 正常显示
- 首先编译并烧录 M33 工程(基于与 M55 相同版本的 BSP)
- 在 M33 工程中开启 CM55 Core:
RT-Thread Settings --> 硬件 --> select SOC Multi Core Mode --> Enable CM55 Core

- 然后编译并烧录 M55 工程(Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision)
[url=][/url]三、工程结构与移植分析[url=][/url]3.1 工程结构
文件说明
applications/main.c主程序入口,初始化 USB Host 和 LED 指示
applications/uvc_ai_app.cAI 应用逻辑:推理触发、结果处理、显示叠加
libraries/Common/board/ports/usb/usbh_uvc_app.cUVC 应用层:帧缓冲管理、FPS 监控、MSH 命令
libraries/Common/board/ports/usb/usbh_uvc_stream.cUVC 流处理:数据包接收、帧组装
libraries/Common/board/ports/usb/usbh_uvc_display.cUVC 显示层:YUYV/MJPEG 解码、LCD 渲染
libraries/Common/deepcraft_ai/model/model.c / model.hAI 模型文件(权重、偏置等)
libraries/Common/deepcraft_ai/src/uvc_ai.cAI 核心处理:图像预处理、模型推理、后处理
libraries/components/CherryUSB-1.6.0/CherryUSB Host 协议栈[url=][/url]3.2 主程序(main.c)#include <rtthread.h>#include <rtdevice.h>#include <board.h>#include "usbh_core.h"#define LED_PIN_G GET_PIN(16, 6)int main(void){ rt_kprintf("Hello RT-Thread\r\n"); rt_kprintf("It's cortex-m55\r\n"); /* USB host initialize */ usbh_initialize(0, USBHS_BASE, NULL); rt_pin_mode(LED_PIN_G, PIN_MODE_OUTPUT); while (1) { rt_pin_write(LED_PIN_G, PIN_LOW); rt_thread_mdelay(500); rt_pin_write(LED_PIN_G, PIN_HIGH); rt_thread_mdelay(500); } return 0;}
- 打印启动日志,标识当前运行在 Cortex-M55 核上
- 调用 usbh_initialize() 初始化 USB Host 控制器
- 配置绿色 LED(P16_6)为输出,1Hz 闪烁指示系统运行
[url=][/url]3.3 AI 应用层(uvc_ai_app.c / uvc_ai.c)
摄像头帧缓冲 (YUYV 320x240) → 图像预处理(缩放、归一化、格式转换) → 输入到 AI 模型 → DEEPCRAFT/TFLM 推理 → 后处理(NMS、置信度过滤) → 获取检测框坐标 (x, y, w, h) 和类别 → 叠加绘制到 LCD 帧缓冲 → GFXSS 硬件刷新显示
/* 模型初始化 */int IMAI_init(void);/* 模型推理 */int IMAI_compute(const void *input, void *output);/* 模型释放 */int IMAI_finalize(void);
[url=][/url]3.4 与原始 ModusToolbox 示例的差异方面ModusToolbox 原版RT-Thread 版本
OS/工程体系ModusToolbox 工程RT-Thread 工程组织与配置
运行控制程序自动启动MSH 命令控制 UVC 流启动/停止
USB 应用层Infineon USB 栈CherryUSB Host + 自定义应用层
AI 应用层原生实现适配 RT-Thread 线程/定时器机制
模型文件分散在各目录单独整理到 deepcraft_ai/model/
[url=][/url]四、关键配置项
/* CherryUSB Host */#define RT_USING_CHERRYUSB#define RT_CHERRYUSB_HOST#define RT_CHERRYUSB_HOST_DWC2_INFINEON#define RT_CHERRYUSB_HOST_VIDEO/* DeepCraft AI */#define BSP_USING_DEEPCRAFT_AI/* MSH 命令行 */#define RT_USING_MSH#define RT_USING_FINSH
#define RT_CHERRYUSB_HOST_BUILD_FROM_SOURCE
[url=][/url]五、编译与下载[url=][/url]5.1 导入与编译工程
- 在 RT-Thread Studio 中导入 Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision 示例工程
- 确认 BSP 版本:检查 M33 工程和 M55 工程是否基于同一 BSP 版本
- 确保工具链配置正确(GNU Arm Embedded,支持 Cortex-M55 + Helium/MVE)
- 若编译出现 unknown type name 'uint32_t' 等错误,右键工程 → 同步 scons 配置至项目,然后重新编译
- 点击编译按钮进行构建

[url=][/url]5.2 命令行编译(可选)scons -j8
[url=][/url]5.3 烧录固件
- 首先编译并烧录 M33 工程(确保已启用 CM55 Core,且与 M55 工程同 BSP 版本)
- 然后编译并烧录 M55 工程(Edgi_Talk_M55_DEEPCRAFT_Deploy_Vision)
- 使用板载 DAP 下载器,通过 USB 连接 PC 进行烧录
⚠️ 烧录顺序不可颠倒,且 BSP 版本必须一致,否则 M55 核无法被正确唤醒或屏幕无显示。
[url=][/url]六、运行效果[url=][/url]6.1 摄像头识别
[I/usbh_video] ============= Video device information ===================bcdVDC:0100Num of altsettings:7 (iso mode)...bNumFormats:2 FormatIndex:1 FormatType:uncompressed Resolution: FrameIndex:4 wWidth: 320, wHeight: 240, fps: 30 FormatIndex:2 FormatType:mjpeg Resolution: FrameIndex:4 wWidth: 320, wHeight: 240, fps: 30

[url=][/url]6.2 启动 AI 视频流
msh />usbh_uvc_start 0 320 240

- 0 = YUYV 格式(未压缩)
- 320 240 = 分辨率
注意:AI 模式会强制使用 YUYV + 320×240,即使输入其他参数也会被修正为该配置。这是因为模型训练时固定了输入尺寸。
[url=][/url]6.3 LCD 显示效果

- 实时摄像头画面(经过旋转适配竖屏 LCD)
- 目标检测框(矩形框标注目标位置)
- 类别标签(框上方或旁边显示识别类别)
- 置信度分数(可选显示)
[url=][/url]6.4 日志输出
[I/uvc_app] UVC fps:30 disp:15 drop:0 urb:1322[AI] inference time: 45ms[AI] #1 bbox=[120,80,200,150] class="person" conf=0.92[AI] #2 bbox=[300,200,350,280] class="cup" conf=0.78

字段说明
fps摄像头实际输出帧率
dispLCD 成功显示帧数
drop因处理不过来而丢弃的帧数
inference time单次 AI 推理耗时
bbox检测框坐标 [x, y, w, h]
class识别类别
conf置信度(0~1)[url=][/url]6.5 停止视频流msh />usbh_uvc_stop
[url=][/url]七、异常处理[url=][/url]7.1 屏幕无显示(BSP 版本不一致)
- 确认 M33 工程与 M55 工程基于 同一 BSP 版本
- 如 M33 是 1.3.0 而 M55 是 1.3.1,需要统一版本
- 重新创建工程或升级/降级 BSP 包
[url=][/url]7.2 uvc abort1 / uvc abort2
- 摄像头供电/线材质量
- UVC 带宽与分辨率配置
- 应用层负载(显示刷新 + AI 推理 + 日志输出)
[url=][/url]7.3 AI 推理帧率低
- 确认使用 320×240 分辨率(AI 模式已强制)
- 减少同时检测的目标数量
- 关闭或减少串口日志输出(日志打印占用 CPU)
- 检查模型复杂度,必要时替换更轻量的模型
[url=][/url]7.4 编译报错:unknown type name 'uint32_t'
[url=][/url]八、模型替换说明
[url=][/url]8.1 模型文件位置libraries/Common/deepcraft_ai/├── model/│ ├── model.c /* 模型权重、网络结构 */│ └── model.h /* 模型接口声明 */└── src/ └── uvc_ai.c /* AI 核心处理逻辑 */
[url=][/url]8.2 模型接口规范
/* 模型初始化:加载权重、分配内存 */int IMAI_init(void);/* 模型推理:输入预处理后的图像,输出检测结果 */int IMAI_compute(const void *input, void *output);/* 模型释放:释放模型占用的资源 */int IMAI_finalize(void);
[url=][/url]8.3 替换步骤
- 使用 DeepCraft 或其他工具训练/导出新模型
- 将生成的模型 C 文件和头文件替换到 deepcraft_ai/model/ 目录
- 确保 IMAI_init / IMAI_compute / IMAI_finalize 接口签名一致
- 根据新模型的输入尺寸,调整 uvc_ai.c 中的预处理参数
- 重新编译工程并烧录

[url=][/url]九、小结
- DeepCraft AI 推理框架:在 M55 上运行 TFLM 模型实现实时目标检测
- UVC 摄像头采集:基于 CherryUSB Host 的摄像头数据采集
- 检测框叠加显示:在 LCD 上实时绘制检测结果
- BSP 版本一致性:M33 与 M55 工程必须使用相同 BSP 版本的关键经验
- 模型替换方法:保持标准接口即可替换自定义模型
- 启动依赖:M33 必须先于 M55 烧录,且需在 M33 中启用 CM55 Core
[url=][/url]参考资料
- Infineon PSOC™ E84 Edgi-Talk 开发板资料汇总
- RT-Thread 官方文档 - PSOC E84 Edgi-Talk
- RT-Thread Studio BSP GitHub 仓库
- 上一篇:九、USB 摄像头实时显示









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


所有评论(0)