训练自己的分类和检测模型
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/
-
下载 nncase v0.1.0-rc5 并解压到
maix_train/tools/ncc/ncc_v0.1
, 保证可执行文件的路径是maix_train/tools/ncc/ncc_v0.1/ncc
-
配置工程
先初始化工程
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
卡根目录,然后开发板上电运行即可