准备模型和数据集
想让板子识别苹果,有两条路:直接使用别人做好的模型,或者准备自己的图片并训练。先选一条,不需要两边都做。
不训练:直接使用现成模型
如果只是想快速体验,按下面的顺序找:
- 在板子的
/root/models中查看系统自带的模型。 - 到 MaixHub 模型库,先选择自己的板子型号,再找需要的模型。
- 下载前确认说明中明确写着支持你的板子。
找到后直接按模型获取、上板和运行操作,不需要再准备数据集或训练。
如果没有找到合适的模型,再继续下面的“自己训练”路线。下载别人制作的模型时,也要查看许可证。许可证就是作者写明的使用、修改和分享规则。
自己训练:准备初始模型
训练不是从空白开始,需要先拿一个已经学过通用物体的基础模型作为起点。本文用体积较小的 YOLO11 模型 yolo11n.pt,适合第一次练习。
不用另外寻找下载地址:开始训练时,训练工具会自动下载 yolo11n.pt。电脑需要联网,并在命令中保持这个文件名即可。如果自动下载失败,也可以从 Ultralytics 模型页面手动下载,再把文件路径填到训练命令的 model= 后面。
这里的 yolo11n.pt 只是电脑训练用的起点,不是能直接放进板子的模型。训练完成后,还要导出并转换,具体步骤见在电脑训练 YOLO 检测模型。
自己训练:准备数据集
数据集就是“训练要看的图片”和“每张图片的正确答案”。对于目标检测,正确答案是图片中物体的名称和位置。
第一步:拍摄图片
最好用最终运行模型的板子拍照。这样训练时看到的画面,更接近板子以后真正看到的画面。
以苹果检测为例,不要只拍白桌子中间的一个红苹果,还要拍:
- 不同品种、大小和颜色的苹果。
- 苹果在画面边缘、远处或被挡住一部分的情况。
- 不同桌面、房间和光线。
- 没有苹果的背景,以及容易被认错的红色物体。
先用一小批图片跑通流程,再根据识别失败的画面补图片。图片是否接近真实使用场景,比盲目追求数量更重要。
第二步:给图片标注
标注就是用矩形框出图片里的每个目标,并写上类别名称。
可以选择这些免费工具:
- MaixHub 在线训练:直接在网页中标注,适合想少安装软件的新手。
- Make Sense:打开网页就能用,可以导出 YOLO 格式。
- AnyLabeling:免费的开源桌面工具,支持矩形标注和辅助标注。
- CVAT:有免费网页版,适合图片较多或多人一起标注的项目。
在电脑上训练时,导出格式选择 Ultralytics YOLO Detection。这是训练工具约定的一种文件摆放方式,不是另一种模型。
标注时注意:
- 方框尽量贴近目标边缘,不要带入太多背景。
- 一张图片中有三个苹果,就画三个框。
- 同一种目标始终使用同一个名称,例如一直用
apple。 - 图片中出现了要识别的目标,就必须标出来,不能漏掉。
第三步:分成训练集和验证集
把大约 80% 的图片放进训练集,剩下约 20% 放进验证集:
- 训练集:模型用这些图片学习。
- 验证集:训练过程中用这些没参与学习的图片检查效果。
同一张图片不能放进两边,几乎相同的连拍也不要拆到两边。验证集尽量使用板子在真实环境中拍摄的图片。
第四步:按标准目录摆放
整理后的数据集应是下面的样子。这里最重要的是 train 和 val 的位置:
apple_dataset/
├── images/
│ ├── train/ # 训练图片
│ └── val/ # 验证图片
├── labels/
│ ├── train/ # 训练图片对应的标注
│ └── val/ # 验证图片对应的标注
└── data.yaml
标注工具会为每张图片生成一个同名的 .txt 文件。例如:
images/train/apple_001.jpg
labels/train/apple_001.txt
图片和标注必须同名,并分别放在对应的 images 和 labels 文件夹中。没有任何目标的背景图片,也放在 images 中,并为它准备一个同名的空 .txt 文件。
最后创建 data.yaml,告诉训练工具图片放在哪里、类别叫什么:
path: /你的完整路径/apple_dataset
train: images/train
val: images/val
names:
0: apple
把 path 换成电脑上 apple_dataset 的完整路径。多个类别继续写 1:、2:,顺序要与标注工具中的类别顺序一致。
整理好后,可以选择 MaixHub 在线训练或在电脑训练 YOLO 检测模型。
也可以使用公开数据集
可以到 Ultralytics 数据集列表、Roboflow Universe 或 Kaggle Datasets搜索。
下载前确认三件事:数据允许怎样使用、内容是不是目标检测、能不能导出为 Ultralytics YOLO Detection 格式。公开图片可以补充训练集,但不能代替板子在真实场景中拍到的图片。
转换模型时还会用到另一批图片
网页转换会另外要求 20 到 100 张真实场景图片。这些图片只帮助转换工具适配板子,不参与训练,因此不用标注。
直接挑选图片并压缩成 ZIP 即可。不要把它和上面的训练集、验证集混在一起,具体要求见网页转换 YOLO 模型。