回答

收藏

[评测分享] 【瑞萨AI挑战赛】检测结果与demo展示

#板卡评测 #板卡评测 24 人阅读 | 0 人回复 | 2026-03-14

一、评测思路
在前两篇文章中,我们完成了Titan板卡环境搭建和模型训练与转换。进入第三阶段,我们的目标是将TFLite模型成功部署到Titan板卡上,利用NPU加速推理,并确保系统能够实时进行人脸检测。
本篇主要描述了模型部署与调试的详细过程,解决了在推理模型部署时遇到的多个问题,并成功在Titan上实现了实时人脸检测。
本阶段目标:TFLite模型转换为Ruhmi可部署模型。解决编译过程中CMSIS-NN和函数未定义问题。Titan上部署并成功运行NPU推理。二、模型部署流程Ruhmi转换与文件管理
在之前的步骤中,我们成功将YOLO-Fastest模型从Darknet转换为TFLite格式。接下来,使用Ruhmi工具将TFLite模型转换为适用于TitanNPU的格式。该过程中,我们会生成一组C代码文件,包括模型输入输出的函数以及其他相关推理代码。
模型转换命令:
pythontools/model_converter/conver2tflite_and_int8.py\
--config_pathyolo-fastest.cfg\
--weights_pathyolo-fastest_last.weights\
--output_pathface.h5\
--int8_img_path../Yolo-Fastest/datasets/face/data_1/train/image/\
--save_tflite_pathface_int8.tflite\
-f
转换后的TFLite模型用于Ruhmi工具的输入,而Ruhmi会生成适配NPUC代码。
在模型转换完成后,我按照以下步骤进行了文件管理:
删除不需要的文件:我删除了生成过程中的*_io_data.*文件以及hal_entry.c文件,这些文件不需要直接参与**的编译。
保留核心文件:将核心生成的文件(包括模型推理的相关C文件)放入Titan_npu_ai_face_detection/src/models目录中。
此时,我们已经准备好进行编译。
三、编译过程中遇到的问题及解决方案1.CMSIS-NN库缺失
在进行编译时,首先遇到的问题是CMSIS-NN库的缺失,系统提示找不到相关的头文件。具体报错如下:
fatalerror:arm_nn_types.h:Nosuchfileordirectory
这个问题通常出现在CMSIS-NN库未正确集成到工程中。为了解决这个问题,我从GitHub上下载了CMSIS-NN库,并将需要的头文件(arm_nn_types.harm_nnfunctions.h)放置到了models文件夹中。这样就解决了编译过程中缺失头文件的问题。
解决方案:
下载CMSIS-NN库并将其头文件添加到项目中。
修改工程配置,确保编译器能够找到这些头文件。
2.模型输入输出函数未定义
在编译过程中,还遇到未定义函数的问题,特别是获取模型输入和输出指针的函数。报错信息如下:
undefinedreferenceto`GetModelInputPtr_serving_default_image_input_0`
undefinedreferenceto`GetModelOutputPtr_StatefulPartitionedCall_0_70273`
这些函数通常是在模型转换过程中生成的,它们用于返回模型输入和输出的指针。在检查后,我发现调用和定义的函数名不匹配,导致了编译失败。
解决方案:
检查函数名是否一致:通过仔细比对函数声明和调用,我发现调用时的函数名与实际定义的函数名不一致。修改后,编译问题得到解决。
修改的函数名一致后,编译成功通过。
四、下载到板子并测试
经过以上的修改和调整,我成功通过RT-ThreadStudio将程序下载到Titan板卡上,并启动了NPU推理。
1.串口输出调试
在启动程序后,使用RT-Thread打开终端串口,查看输出结果。控制台上正常显示推理结果:
detectboxnum:5
Timeelapsed:42ms
2.实时人脸检测效果
同时,Titan板卡的LCD屏幕也开始显示实时人脸检测结果,检测框在检测到人脸时准确绘制,并实时更新。
3.成功运行NPU推理
最终,NPU推理成功完成,模型正确检测并显示了结果。这意味着整个部署过程已经成功,Titan板卡上的NPU加速推理已经可以稳定工作。
五、问题总结与解决方案遇到的问题CMSIS-NN库缺失:在编译过程中,缺少了CMSIS-NN的头文件,导致编译失败。模型输入输出函数未定义:由于模型转换时生成的函数名和调用名不一致,导致链接错误。解决方案下载CMSIS-NN库并将其头文件正确集成到工程中,确保路径设置无误。仔细检查模型转换时生成的函数名和调用名,确保一致性,解决链接错误。六、总结
通过这次部署和调试,我完成了TitanNPU推理模型的成功部署,并成功解决了CMSIS-NN库和函数未定义的问题。整个流程的关键步骤如下:
TFLite模型转换:从Darknet训练的YOLO-Fastest模型通过TFLite转换为适用于MCU的格式。
Ruhmi转换:将TFLite模型转换为TitanNPU可执行的代码。
CMSIS-NN集成:下载并集成CMSIS-NN库,解决头文件缺失问题。
函数名称调整:解决函数未定义问题,确保模型输入输出函数正确调用。
成功部署并运行NPU推理:在Titan板卡上成功运行实时人脸检测
检测视频如下:

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条