Petoi Doc Center
🇨🇳中文版
🇨🇳中文版
  • 欢迎查阅派拓艺文档中心
  • 快速上手指南
  • Petoi 机器人关节序号
  • 蓝牙连接
  • 上传固件
  • 关节校准
  • 红外遥控
    • 遥控器
  • 手机应用
    • 总览
    • 关节校准
    • 控制面板
  • 桌面应用
    • 总览
    • 固件上载
    • 关节校准
    • 技能创作坊
    • 调试器
  • 图形化编程
    • Petoi 编程积木
    • Mind+中的Python代码模式
    • Arduino UNO 编程积木
  • Arduino IDE
    • 为NyBoard上传程序
    • 为BiBoard上传程序
    • 使用Arduino IDE校准舵机
    • 串口监视器
  • API
    • 🖇️串口协议
    • 🐍Python serialMaster使用指南
    • 🐛MicroPython控制器
      • MicroPython上手玩
      • 配置WebREPL
      • 使用ESP-NOW协议
    • 🍓通过树莓派控制机器人
    • 🤖ROS
  • NYBOARD
    • 总述
    • NyBoard V1_0
    • NyBoard V1_1 & NyBoard V1_2
  • BiBoard
    • BiBoard V0 快速上手指南
    • 例程介绍
      • 1. GPIO例程
      • 2. 串口
      • 3. 模拟-数字转换器
      • 4. 数字-模拟转换器
      • 5. EEPROM(电擦除存储器)
      • 6. 陀螺仪IMU(MPU6050)
      • 7. 红外遥控
      • 8. PWM
      • 9. 舵机(施工)
      • 10. 经典蓝牙串口SPP
      • 11. 蓝牙低功耗(BLE)串口透传
      • 12. 文件系统SPIFFS
      • 13. Arduino IDE增加硬件分区配置选项
      • 14. 播放MP3
      • 15. WiFi和OTA的使用
    • BiBoard V1 用户指南
  • 通信模块
    • 通信模块概要说明
    • USB上载模块(CH340C)
    • 双模蓝牙模块
    • WiFi模块(ESP8266)
      • 使用ESP8266 + Python 脚本实现无线群控
  • 扩展模块
    • 扩展模块概要说明
    • MU摄像头模块
    • 超声波传感器
    • 光强传感器
    • 触摸传感器
    • 手势传感器
    • 人体移动探测器
    • 语音指令模块
    • Petoi AI Vision摄像头模块
    • 深度开发应用AI视觉模块
      • 🏋️模型训练
      • ⚖️模型量化
      • 🏌️模型部署
      • COCO数据集DIY训练
    • 机械臂
      • 升级旧款 Bittle/Bittle X
    • Micro:bit 游戏手柄
  • 应用实例
    • 技能创作
    • 姿势模仿教程
    • 可编程木偶角色
  • 历史文档
    • 为NyBoard上传1.0版本程序
  • 技术支持
    • 🛠️配套应用软件
    • 🙋‍♂️常见问题 (FAQ)
    • 烧录Bootloader
  • 资源链接 🕸
    • 🔭Official Site of Petoi
    • 💿GitHub of OpenCat
    • 📀GitHub of OpenCatEsp32
    • 🎪PetoiCamp (Forum)
Powered by GitBook
On this page
  • 在本地进行模型训练
  • 在云端进行模型训练
  • 制作自己的训练集

Was this helpful?

Export as PDF
  1. 扩展模块
  2. 深度开发应用AI视觉模块

模型训练

通过深度学习网络可以从大量数据中学习数据特征,从而应用于各种检测,分割任务。想要使用深度学习解决具体问题,必须了解如何通过已知数据进行网络模型的训练。因此我们首先讲解了如何训练深度学习神经网络。本节的内容如下:

Previous深度开发应用AI视觉模块Next模型量化

Last updated 8 months ago

Was this helpful?

  • 在本地进行模型训练

  • 在云端进行模型训练

  • 制作自己的训练集

在本地进行模型训练

本小节介绍如何在个人PC上进行模型训练,您需要拥有以下硬件:

一台带有英伟达显卡的笔记本或台式机,安装Windows系统(如果您的电脑并不含有英伟达显卡,那么我们建议您使用云端进行模型训练。)

请安装Anaconda软件用来管理您的python环境。Anaconda有Windows,Max,Linux三个版本可以选择,请根据您的系统选择对应的版本。

安装VScode作为您的代码编辑软件。

使用anaconda创建我们训练模型要使用的环境:

下面打开Anaconda Propmt

输入以下命令,进入工作命令,激活环境,打开vscode(注意,将工作目录和环境名称替换成你自己的相应的名称)。

在Terminal里输入以下命令:

pip install ultralytics
git clone https://github.com/ultralytics/ultralytics
cd ultralytics
pip install -e .

完成后输入

pip uninstall torch torchvision

卸载后安装GPU适用的torch版本

安装前请查看您显卡所安装的cuda驱动,安装对应cuda版本的pytorch及torchvision。例如,我的cuda版本高于12.1,所以我安装

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

这时你已经完成了模型训练所需的所有环境配置,下面就可以愉快的训练模型了😊。

训练模型需要执行以下命令:

yolo train detect model=yolov8n.pt data=coco128.yaml imgsz=192 epochs=100

其中,model为你所需要训练的模型路径,目前的Grove Vision V2只支持yolov8n.pt的部署,所以请选择yolov8n.pt。

data为模型训练所需训练集的路径,在这里我们使用一个很小的数据集作为测试,在本节的后面会讲解如何创建训练集进行训练。另外我们实现了coco数据集的自定义部分标签训练,您可以按照自己的喜好以及用途选择特定标签进行训练,实现更灵活的推理功能。

imgsz为模型输入接受的图像大小,这里必须为192

epochs为训练的次数,一般来说,训练次数越多,模型与数据拟合程度越好。

训练结束后,您可以在命令行显示的模型保存的位置找到您训练后的模型(例如我的模型保存在runs\detect\train3)

在云端进行模型训练

如果您的电脑不带有英伟达显卡,那么很可惜您无法在本地进行模型训练,不过您可以在云端进行模型训练,两种训练方法得到的模型效果是相同的。

我们使用ultralytics进行云端模型训练。以下是 Ultralytics HUB 的链接,打开链接,你就可以看到它的介绍和使用教程。

要使用 Ultralytics HUB,你需要一个 github 账户或谷歌账户或苹果账户。

ultralytics hub支持训练用户自己的数据集,如何制作并上传数据集请查看之后章节。

设置高级模型配置(Advanced Model Configuration),如果以后使用 Google Colab 进行模型训练,建议将 Epochs 改为 30,因为虽然 Google Colab 是免费的,但使用有时间限制,30 次训练约为 2 小时,正好在时间限制范围内。如果要在 Grove Vision V2 模块上部署模型,还需要将图像大小改为 192,这更符合我们的实际应用场景。

此外,使用 Google Colab 还需要 Google 邮箱。

制作自己的训练集

如果您想要对开源数据集之外的标签进行检测,那么您需要自己制作数据集。数据集应该包括图像和对应标签。

下面是yolov8指定的数据集格式

我们使用Make Sense在线数据标注工具来完成训练集制作过程:

有关如何使用Make Sense,可以参考:

当您完成了数据集标签的标注,您需要将图像和标签数据合并起来,构成一个完整的数据集。

数据集需要满足以下格式:

您需要把Make Sense生成的标签数据拷贝到相应的位置。比如您标记了用于训练的标签数据,那么训练所需的图像应该位于images/train,而标签数据应该位于labels/train。另外您需要编写一个dataset.yaml文件。该文件需要放在dataset目录下,文件内容为:

(!注意:dataset.yaml命名要与文件夹命名相一致,否则数据集上传到ultralytics时会遇到问题)

train: images/train
val: images/val
test: images/test

names:
  0: class_one
  1: class_two
  2: class_three

names需要和Make Sense标注时的标签相对应。

如果您在本地进行训练,建议您将train,val,test的路径修改为绝对路径,而在云端训练则不需要。

到此步骤您已经可以使用制作好的数据集进行模型训练了,只需要将

yolo train detect model=yolov8n.pt data=coco128.yaml imgsz=192 epochs=100

中的“data=coco128.yaml”路径改为您制作的数据集中dataset.yaml即可。

如果您在云端进行训练,那么您需要将数据集上传到ultralytics hub上,上传过程非常简单:

这样Ultralytics HUB中就存有了您的数据集,您此时便可以使用您自己的数据集进行模型训练。

🏋️
LogoAnaconda | The World's Most Popular Data Science PlatformAnaconda
https://code.visualstudio.com/Downloadcode.visualstudio.com
LogoPyTorch
LogoUltralytics HUB
LogoDatasets Overview
LogoMake Sense
LogoHow to Annotate Your Images Using the MakeSense ToolXailient
Ultralytics HUB 主页
创建项目
输入项目名称并点击 "Create "
点击 "训练模型“
选择您感兴趣的数据集。
选择要训练的模型,如果要部署在Grove Vision V2,我们推荐 yolov8n
复制代码,然后打开此链接。
然后,您将被重定向到以下页面,在这里您需要用刚才复制的代码替换 "开始 "部分
单击 "Setup",等待设置完成,然后单击 "start"。
如果打印输出与我展示的截图相似,则说明模型训练正常。
还可以在 Ultralytics HUB 中直观地观察模型训练。
如果 google colab 中断培训,也不必担心,因为数据已被保存。只需等到 google colab 有剩余的训练资源时再继续训练。
模型训练完成后,您可以选择您想要的模型格式进行下载。