[评测分享]
【瑞萨AI挑战赛】Titan板卡环境搭建与YOLO-Fastest训练全过程记录
#板卡评测
62 人阅读
|
0 人回复
|
2026-03-13
|
|
一、评测思路
本阶段目标是完成从板卡上手到模型训练的完整准备工作,为后续模型部署 与NPU运行打下基础。
本周主要完成以下内容:
Titan Board 开箱与硬件连接
软件环境搭建(RT-Thread Studio + Conda 环境)
数据集制作与格式转换
Anchor 重新计算
YOLO-Fastest 模型训练
权重文件生成
整体思路是:
先完成训练端闭环,再进入模型转换与板端部署阶段。
二、板卡开箱与硬件准备
![]()
2月6日,我收到了 RA8P1 Titan Board。包装内包含:
Titan 开发板一块
摄像头模块一个
数据线一根
阅读官方资料后,按照接口说明完成:
摄像头与开发板连接
USB接口连接
![]()
确认硬件安装无误
为后续视觉模型部署做好硬件准备。
下面为一个连接后输出“Hello RT-Thread!”,测试连接的视频。
三、软件环境搭建
1.开发工具准备
安装:
RT-Thread Studio(用于板端工程开发)
Miniconda(用于模型转换与量化 环境)
VSCode(代码编辑)
![]()
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[0]
dh = 1.0 / size[1]
x = (box[0] + box[1]) / 2.0 - 1
y = (box[2] + box[3]) / 2.0 - 1
w = box[1] - box[0]
h = box[3] - box[2]
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 标签文件
![]()
六、代码解释
1.数据读取
xml_files = [f for f in os.listdir(xml_dir) if f.endswith('.xml')]
读取所有 XML 标注文件。
![]()
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
![]()
九、本周成果展示
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.png
(753.59 KB, 下载次数: 0)
-
2.png
(257.75 KB, 下载次数: 0)
-
3.png
(224.6 KB, 下载次数: 0)
-
4.png
(156.58 KB, 下载次数: 0)
-
5.png
(154.55 KB, 下载次数: 0)
-
6.png
(205.1 KB, 下载次数: 0)
|
|
|
|
|
|
|
|