训练自己的分类和检测模型
Maixhub 模型训练
Maixhub 提供模型训练功能和模型分享功能, 只需要准备好需要训练的数据集, 不需要搭建训练环境和代码, 上传训练数据即可快速训练出模型
目前 Maixhub 支持分类模型 和 目标检测模型的训练。
你需要做的:
- 确定目标, 是分类还是检测
- 根据使用说明制作符合要求的数据集
- 上传数据集等待云端自动训练
- 训练完成, 结果会通过邮件进行通知, 不管是成功还是失败,都会有邮件通知,里面有详细的任务信息和结果文件
Maixhub 使用说明参考 Maixhub 训练使用说明
本地模型训练
本地模型训练使用 sipeed/maix_train 这份代码进行, 使用了 Tensorflow 作为训练框架
主要支持:
- 物体分类模型(使用 Mobilenet V1): 只识别图片中的物体是什么
- 物体检测模型(使用 YOLO V2): 找到图片中认识的图体,并同时找到其坐标和大小
1. 系统环境
首先,需要一台有 Linux 系统的电脑 如果你的主力系统是 Windows, 你可以用以下系统环境:
- 使用虚拟机,
virtual box
或者 vmware
都可以, 系统推荐安装Ubuntu20.04
- 或者安装双系统,安装方法请自行搜索学习,或者看这个双系统安装教程
你可能想着在 Windows
下面进行开发, 但是这里强烈建议使用Linux
而不是Windows
:
- 首先,大多数模型训练框架都是首先支持
Linux
, 在Linux
下面开发的难度会比Windows
下开发更加容易
- 作为一个开发者, 学会使用
Linux
是基础技能,当然,除非你是Windows
狂热粉, 那我相信你一定有把其它系统的软件移植到Windows
的能力
2. 软件安装
训练可以使用 CPU 进行训练,但是速度比较慢, 如果使用专用的显卡(GPU)进行加速,速度会快非常多,个人一般使用Nvidia
的显卡, 比如RTX 3090
, 当然,使用普通的GTX 1060 6G内存
版本就可以愉快使用了
初次接触,建议先使用 CPU 进行训练,环境安装会简单很多很多, 以下只讲 CPU 训练的方法, GPU 请自行学习
GPU 使用可以参考 Tensorflow 官方 GPU 使用教程, 如果你显卡驱动遇到了问题,可以参考这里, 另外如果你用 docker 安装遇到了问题, 也可以看这里
接下来的使用方法摘抄于仓库的 README, 如果有出入, 以仓库的README
为准,注意分辨
git clone https://github.com/sipeed/maix_train --recursive
cd maix_train
pip3 install -r requirements.txt
中国用户可以使用阿里云或者清华的源, 下载速度更快
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
先初始化工程
python3 train.py init
然后根据你的硬件情况,编辑maix_train/instance/config.py
配置
3. 准备数据集
准备数据集, 图片大小为 224x224
, 格式可以参考maix_train/datasets
下的数据集示例
也可以看 Maxhub 的数据集要求
4. 训练分类模型
python3 train.py -t classifier -z datasets/test_classifier_datasets.zip train
或者解压数据集到文件夹,指定数据集文件夹
python3 train.py -t classifier -d datasets/test_classifier_datasets train
5. 训练目标检测模型
python3 train.py -t detector -z datasets/test_detector_xml_format.zip train
6. 使用模型
和使用Maixhub
训练的模型一样, 在out
文件夹会生成一个zip
文件,里面包含了结果,把所有文件拷贝到SD
卡根目录,然后开发板上电运行即可