本帖最后由 eefocus_4140093 于 2026-3-15 22:49 编辑
一、评测概述 本次评测基于瑞萨RA8P1 TitanBoard开发板,结合Edge Impulse云端机器学习平台完成电路板缺陷检测模型的全流程开发,涵盖数据集配置、模型训练量化、RUHMI工具转换及板端NPU部署调试,最终实现端侧实时电路板缺陷检测功能。评测全程验证了RA8P1搭载的Cortex-M85内核+Ethos™-U55 NPU的强悍AI算力,同时验证了Edge Impulse平台与RA8P1开发板的高效适配性,针对电路板生产过程中常见的短路、断路、虚焊、元件缺失等缺陷,提供可复用的边缘端轻量级视觉AI检测落地方案,助力工业生产提质增效。 二、评测环境搭建 1. 硬件环境 • 核心开发板:瑞萨RA8P1 Titan Board(1GHz Cortex-M85内核、Ethos™-U55 NPU,2MB SRAM/1MB RAM); • 外设模块:OV5640摄像头(采集分辨率640×480,配备微距镜头适配电路板细节拍摄)、LCD显示屏(800×480)、LED指示灯(BSP_IO_PORT_00_PIN_12,用于缺陷报警提示); • 辅助设备:Windows 10电脑(用于Edge Impulse操作、RUHMI模型转换、RT-Thread Studio开发烧录)、标准电路板样本(含正常样本与各类缺陷样本)数据集。 2. 软件环境 • 云端 平台:Edge Impulse (电路板缺陷检测数据集配置、模型训练与INT8量化); • 模型转换工具:RUHMI框架(conda环境,完成TFLite模型到RA8P1 NPU适配格式转换); • 开发工具:RT-Thread Studio(板端代码开发、编译、烧录与调试)、瑞萨FSP库(外设与NPU驱动); • 核心依赖:Edge Impulse 、pmu_ethosu NPU驱动、sensor摄像头驱动、lcd_port显示驱动、缺陷检测标注工具(用于自制数据集标注)。 三、基于Edge Impulse的模型训练与配置 1. 项目基础配置 在Edge Impulse 创建Circuit Board Defect Detection电路板缺陷检测项目,完成硬件与输入参数定向配置,适配RA8P1硬件特性及缺陷检测场景需求: • 目标硬件配置:设置target为Cortex-M85,启用Arm Cortex-U55 NPU加速支持,适配工业场景实时检测需求; • 图像输入配置:设定图像尺寸160×160、像素格式RGB,开启GPU加速与Profile int8 model量化配置,兼顾检测精度与推理速度; • 模型输出配置:选择MobileNetV2 160x160 0.35轻量化网络作为基础模型,通过迁移学习构建电路板缺陷检测网络,支持多缺陷类别识别。 核心参数配置: 2. 数据集与特征分析 本次评测采用“公开数据集+自制数据集”结合的方式,构建适配工业场景的电路板缺陷检测数据集,涵盖正常、短路、断路、虚焊、元件缺失五类样本,通过平台Data Explorer完成特征可视化分析: • 特征聚类:各类缺陷样本与正常样本的特征簇群聚类清晰,短路、断路的线条特征、虚焊的焊点特征、元件缺失的区域特征区分明显,无明显重叠,为模型高精度识别提供基础; • 数据预处理:平台自动完成样本归一化、尺寸缩放,无需手动处理,针对电路板缺陷细节,额外启用边缘增强预处理,设备端仅需2ms即可完成单帧图像预处理,满足工业实时检测需求。 数据集为网上找的数据集: 配置训练参数: 上传数据集: 输入传输部分: 3. 模型训练与量化 基于迁移学习对MobileNetV2 0.35模型进行微调,重点优化缺陷特征提取能力,选用INT8量化模式适配RA8P1 NPU的硬件加速特性,核心训练与量化结果如下: • 训练精度:模型总准确率98.7%,F1 Score稳定在0.985左右,其中短路、断路识别准确率≥99%,虚焊、元件缺失识别准确率≥98%,满足工业缺陷检测的高精度要求; • 推理性能预估:单帧推理时间7.52ms,等效推理帧率约133fps,内存占用仅702.3KB,对RA8P1的2MB SRAM实现轻量化适配,可满足流水线高速检测需求;
• INT8量化:量化后模型精度无明显损失,同时大幅降低模型体积与推理耗时,完美匹配NPU的整数运算加速特性,适配工业边缘设备资源受限场景。 4. 模型导出 在Edge ImpulseDashboard选择TensorFlow Lite (int8 quantized)格式导出训练好的模型,得到ei-circuit-board-defect-detection-tensorflow-lite-int8-quantized-model.3.lite文件,重命名为ei-circuit-board-defect-int8-quantized-model.tflite后,拷贝至RUHMI框架的workspace\ruhmi-framework-mcu\models目录,为后续模型转换做准备。 四、RUHMI工具模型转换与适配 1. RUHMI模型转换命令执行 在conda环境中激活RUHMI框架,执行专属转换命令,将TFLite模型转换为RA8P1 NPU可执行的模型文件与推理代码,适配电路板缺陷检测的实时推理需求: | Plain Text
conda activate ruhmi
python mcu_deploy.py --ethos --ref_data ../models/ deploy_qtzed_ethos |
2. 转换结果处理 转换完成后,在ruhmi-framework-mcu\scripts\deploy_qtzed_ethos\ei-circuit-board-defect-int8-quantized-model_no_ospi\build\MCU\compilation\src目录生成模型推理相关C文件,删除无关的*_io_data.*文件与hal_entry文件,保留核心模型文件,直接用于后续RA8P1板端项目开发,确保缺陷检测推理的高效性。 五、RA8P1板端部署 1. 项目基础搭建 基于RT-Thread Studio的官方示例项目Titan_npu_ai_face_detection创建自定义项目Titan_npu_circuit_defect,完成项目结构改造,适配电路板缺陷检测场景: • 替换模型文件:将RUHMI转换后的核心C文件替换项目中原有的models目录文件,确保模型支持五类缺陷识别; • 删减冗余代码:删除原项目中YOLO人脸检测相关的yolo目录,精简代码体积,提升运行效率; • 添加功能文件:新增vision_preprocess(图像预处理,强化缺陷细节提取)、defect_detection(缺陷检测核心)、display(结果显示与报警提示)三类功能文件,构建电路板缺陷检测专属代码框架。 2. 核心功能模块实现 (1)图像预处理模块(vision_preprocess) 实现RGB565到RGB888 INT8的格式转换与160×160尺寸缩放,基于定点运算优化预处理效率,额外添加边缘增强算法(Sobel算子),强化电路板线路、焊点等缺陷细节特征,核心函数为rgb565_to_rgb888_resize_160_int8,完成摄像头采集图像到模型输入格式的适配,同时支持灰度图转换与量化调试,满足工业检测的细节识别需求。 (2)缺陷检测核心模块(defect_detection) 实现摄像头采集、NPU推理、缺陷结果解析与报警提示的全流程逻辑,是整个系统的核心,关键功能包括: • 外设初始化:完成摄像头、NPU、LED指示灯的驱动初始化,配置摄像头为640×480RGB565格式,启用微距模式适配电路板细节拍摄; • 推理线程创建:以25优先级创建缺陷检测线程,实现图像采集→预处理→NPU推理的自动化执行,适配工业流水线连续检测场景; • 量化结果解析:通过反量化公式浮点值 = (int8值 - zero_point) × scale(scale=0.00390625,zero_point=-128)将模型INT8输出转换为实际置信度,结合softmax归一化得到各类缺陷的百分比结果,区分正常与各类缺陷类别; • 结果去抖动:设置3帧连续稳定机制,避免因摄像头轻微抖动、光线变化导致的误判,提升工业检测的稳定性; • 帧率统计与报警:分别统计系统整体帧率(摄像头+预处理+推理+显示)与NPU推理等效帧率,实时反馈系统性能;当检测到缺陷且置信度≥60%时,触发LED指示灯闪烁报警,提示工作人员处理。 (3)显示模块(display) 实现摄像头采集的电路板图像显示、缺陷识别结果(类别、置信度)叠加展示,基于8x8位图字体实现字符绘制,关键优化点为避开文字区域的图像绘制,将屏幕划分为文字区域上、下、左、右四个部分进行图像渲染,避免显示刷新时覆盖缺陷类别、FPS、置信度等关键信息,同时支持不同颜色区分不同检测结果(正常-绿色、缺陷-红色),直观呈现检测状态。 (4)主入口模块(hal_entry) 完成系统总初始化与模块调度,创建LED心跳线程(500ms闪烁),初始化LED、摄像头、LCD等外设,调用start_all_modules函数启动缺陷检测与显示模块,主循环中每5秒打印一次系统状态(帧率、检测结果、各类缺陷置信度),方便调试与工业场景下的性能监控,同时记录缺陷检测日志,便于后续追溯。 3. 板端代码核心配置 六、板端调试与问题解决 在部署调试过程中,针对工业电路板缺陷检测的场景特点,解决边缘端开发常见问题,确保系统稳定运行,满足工业检测需求: 1. 模型推理与输入格式不匹配:摄像头采集为RGB565格式,模型输入为RGB888 INT8格式,通过vision_preprocess模块的格式转换函数,实现无损耗格式适配,同时优化边缘增强算法参数,解决缺陷细节提取不清晰、推理输入报错问题;
2. 缺陷识别结果抖动:单帧推理易受光线变化、摄像头轻微抖动影响导致误判,添加3帧连续稳定去抖动机制,只有连续3帧识别结果一致时才更新最终结果、触发报警,提升工业检测的稳定性;
3. 显示结果被图像覆盖:直接渲染摄像头图像会覆盖缺陷类别、FPS等关键信息,通过划分屏幕裁剪区域,避开文字区域进行图像绘制,解决显示重叠问题,确保检测结果直观可见;
4. 帧率统计不准:初始单帧统计帧率波动较大,改为0.5秒滑动窗口统计帧率,兼顾统计准确性与显示灵敏性,适配工业流水线高速检测的性能监控需求;
5. NPU启动失败:核对瑞萨FSP库中NPU驱动配置,确保RM_ETHOSU_Open接口调用参数正确,重新初始化NPU后解决启动失败问题,同时优化NPU内存分配,提升推理稳定性。
七、测试结果与性能分析 完成板端部署与调试后,选用1000张电路板样本(含200张正常样本、200张短路样本、200张断路样本、200张虚焊样本、200张元件缺失样本),对电路板缺陷检测系统的功能完整性与性能指标进行全面测试,核心测试结果如下: 1. 核心性能指标
2. 性能分析 1. 算力表现:RA8P1的Ethos™-U55 NPU实现7.52ms单帧推理,等效帧率达412.2FPS,远超工业实时检测需求,剩余算力可支撑多区域缺陷同时检测或与其他工业控制任务并行处理,打破传统MCU视觉处理算力瓶颈;
2. 轻量化适配:模型仅占用702.3KB内存,远低于RA8P1的2MB SRAM资源上限,为后续功能扩展(如多类型缺陷细分、缺陷定位)预留充足资源,适配工业边缘设备资源受限特性;
3. 开发效率:Edge Impulse平台实现数据集、训练、量化的一站式操作,无需手动编写复杂的网络训练代码,RUHMI工具完成模型一键转换,大幅降低工业边缘AI开发门槛,缩短项目落地周期;
4. 生态适配:RT-Thread与瑞萨RA8P1的深度融合,实现外设驱动、NPU调用、线程调度的无缝衔接,代码可移植性强,可快速适配不同型号的电路板检测场景,适合工业级产品快速迭代。
八、评测总结与展望 1. 评测总结 本次评测成功实现了Edge Impulse云端训练→RUHMI模型转换→RA8P1板端NPU部署的电路板缺陷检测全流程开发,完成正常、短路、断路、虚焊、元件缺失五类场景的实时检测与报警功能,核心成果与结论如下: 1. 硬件算力强悍:瑞萨RA8P1 Titan Board的Cortex-M85内核+Ethos™-U55 NPU组合展现出极致的边缘AI算力,7.52ms的推理时间、98.7%的识别准确率,可高效处理电路板缺陷检测的细节识别需求,成为工业边缘视觉AI应用的高性能载体;
2. 平台适配高效:Edge Impulse平台与RA8P1开发板的适配性极佳,云端轻量化开发大幅缩短模型训练周期,RUHMI工具实现模型的一键转换与NPU适配,让工业边缘AI开发无需深厚的算法与底层硬件功底,降低工业智能化门槛;
3. 方案可复用性高:本次评测形成的图像采集→预处理(边缘增强)→NPU推理→结果显示与报警的工业边缘视觉AI开发流程,可直接复用至不同类型的电路板缺陷检测,或拓展至其他工业缺陷检测场景(如元器件外观检测),仅需替换数据集与模型即可快速落地;
系统稳定性优异:通过格式适配、结果去抖动、显示优化等一系列调试手段,系统可连续稳定运行,识别准确率与实时性均达到工业级应用标准,可直接部署于工业流水线,助力提升电路板生产合格率。
|