eefocus_4216363 发表于 7 天前

【瑞萨AI挑战赛】Titan板卡环境搭建与YOLO-Fastest训练全过程记录

一、评测思路
本阶段目标是完成从板卡上手到模型训练的完整准备工作,为后续模型部署 与NPU运行打下基础。
本周主要完成以下内容:
Titan Board 开箱与硬件连接
软件环境搭建(RT-Thread Studio + Conda 环境)
数据集制作与格式转换
Anchor 重新计算
YOLO-Fastest 模型训练
权重文件生成
整体思路是:
先完成训练端闭环,再进入模型转换与板端部署阶段。
二、板卡开箱与硬件准备​​​​​​
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246056&size=300x300&key=69077120e0370432&nocache=yes&type=fixnone
2月6日,我收到了 RA8P1 Titan Board。包装内包含:
Titan 开发板一块
摄像头模块一个
数据线一根
阅读官方资料后,按照接口说明完成:
摄像头与开发板连接
USB接口连接
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246057&size=300x300&key=d2e9aae66da56778&nocache=yes&type=fixnone
确认硬件安装无误
为后续视觉模型部署做好硬件准备。
下面为一个连接后输出“Hello RT-Thread!”,测试连接的视频。
https://www.bilibili.com/video/BV1FcwJzGEWM/?spm_id_from=333.1387.list.card_archive.click&vd_source=24190f7e6f114d33e651f04956651fa2
三、软件环境搭建
1.开发工具准备
安装:
RT-Thread Studio(用于板端工程开发)
Miniconda(用于模型转换与量化 环境)
VSCode(代码编辑)
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246058&size=300x300&key=9ea30896b6811f43&nocache=yes&type=fixnone
2.虚拟环境建立
在终端创建 ruhmi 环境:
conda create -n ruhmi python=3.10
conda activate ruhmi
将 convert.zip 解压至 miniconda3/envs 目录,作为后续模型转换环境。
四、数据集制作与格式转换
由于本项目使用 YOLO-Fastest 模型,数据格式必须为 YOLO 格式。
1.使用 labelimg 标注
生成 VOC 格式的 XML 文件。
但 YOLO 训练需要:
class_id x_center y_center width height
因此编写 xml2yolo.py 进行转换。
五、项目代码
xml2yolo.py 核心代码
def convert(size, box):
    dw = 1.0 / size
    dh = 1.0 / size
    x = (box + box) / 2.0 - 1
    y = (box + box) / 2.0 - 1
    w = box - box
    h = box - box
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return (x, y, w, h)
主函数功能:
读取 VOC XML
提取 bounding box
转换为 YOLO 相对坐标格式
自动划分训练集与验证集(90% / 10%)
生成:
train.txt
val.txt
每张图片对应的 .txt 标签文件
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246059&size=300x300&key=a51fb323bbf60abd&nocache=yes&type=fixnone
六、代码解释
1.数据读取
xml_files =
读取所有 XML 标注文件。
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246060&size=300x300&key=4fafa9e3733361f7&nocache=yes&type=fixnone
2.数据集划分
split_point = int(len(xml_files) * 0.9)
按照 9:1 划分训练与验证集。
3.坐标转换逻辑
VOC格式:
xmin, xmax, ymin, ymax
YOLO格式:
x_center / width
y_center / height
box_width / width
box_height / height
核心计算:
x_center = (xmin + xmax)/2y_center = (ymin + ymax)/2
然后除以图像尺寸进行归一化。
4.生成训练文件
最终输出:
my_datasets/voc_face/train.txt
my_datasets/voc_face/val.txt
供 darknet 直接调用。
七、Anchor 重新计算
使用已编译的 darknet 计算 anchor:
darknet.exe detector calc_anchors datasets/voc.data -num_of_clusters 9 -width 192 -height 192
说明:
9个聚类中心
输入尺寸 192×192
保证 anchor 与当前数据分布匹配
随后将结果填入:
yolo-fastest.cfg
八、模型训练
训练指令:
darknet.exe detector train datasets/voc.data \
datasets/yolo-fastest.cfg -dont_show
本次训练使用 CPU进行(GTX未使用)。
由于 CPU 训练速度较慢,本周训练进度:
已训练 10000 轮
当前 avg loss ≈ 8
示例输出:
10000: 7.91, 8.23 avg loss
说明模型开始收敛,但仍有优化空间。
训练完成后保存权重文件:
yolo-fastest_last.weights
https://www.eefocus.com/forum/forum.php?mod=image&aid=2246061&size=300x300&key=c760a3d4cb1def56&nocache=yes&type=fixnone
九、本周成果展示
1.数据集成功转换为 YOLO 格式
生成:
所有图片对应 .txt 文件
train.txt / val.txt
2.Anchor 已重新计算
保证模型适配 192 输入尺寸。
3.模型已成功训练 10000 轮
平均损失降至 8 左右。
十、本阶段总结
本周完成:
Titan 板卡硬件准备
开发环境搭建
Conda 虚拟环境建立
数据集制作
VOC → YOLO 格式转换
Anchor 重新计算
YOLO-Fastest 训练启动并运行 10000 轮
为后续:
模型量化
TFLite 转换
Ruhmi 部署
NPU 推理运行
打下基础。

页: [1]
查看完整版本: 【瑞萨AI挑战赛】Titan板卡环境搭建与YOLO-Fastest训练全过程记录