本篇文章全部基于Maixpy文档
MaixPy文档并不是非常推荐小白搭建本地训练环境,因此文档的内容写的比较简单,也出了些小问题,因此这里会写的稍微详细一些。
一、安装python3.8
文档说明其他版本会出现一些问题因此这里尽量也跟着文档走。
验证安装:按win+r输入cmd打开命令行,输入python --version后回车
出现Python 3.8.10字样则表示安装成功
二、安装pip并换源
默认是安装了python之后pip也会自动帮你安装的
输入pip list
来查看python环境下安装的包
因为pip默认下载网站在国外,很多时候会下载比较慢,因此这里建议换成国内的源
在命令行中输入如下代码即可
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
这是清华的源,这是网址,如果你想用国内其他的源自行去了解即可
如果发现没有pip模块则可以参考这篇文章
三、CUDA和CUDNN环境配置
文档的教程是针对GPU训练的环境配置的,同时显卡必须是英伟达的显卡,如果没有那么可以跳过这一步
3.1、安装显卡驱动
基本都有的吧,参考这里下载对应的驱动
当然你电脑本身应该就有装显卡驱动,原有的应该就够了
3.2、安装CUDA
指定了使用CUDA10.1
这是链接
我觉得下载和安装就不必多提了,如果网站访问比较慢的话,懂得都懂
3.3、安装CUDNN
同样的,如果访问比较慢的话,懂得都懂
这是CUDNN的下载官网
选择cudnn v7.6.5.32 for cuda 10.1的版本进行下载
下载完成之后将压缩包里的三个文件夹都复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1文件夹下面,如果不是安装在C盘那稍微按这个路径找一下也能找到
建议这一步结束之后重启一下电脑
四、建立python虚拟环境并且安装tensorflow
创建虚拟环境是为了让你安装的各种库隔离开来避免产生各种库依赖上的问题
比较建议用虚拟环境去装自己没把握的东西
4.1、创建python虚拟环境
找个地方新建个文件夹,然后点进去在文件夹空白处按住shift同时鼠标右击,再选择在此处打开Powershell窗口
接着输入如下代码:
python -m venv 虚拟环境的名字
运行完成之后你的文件夹里会出现一个和你虚拟环境同名的文件夹,表示安装成功
4.2、激活虚拟环境
在powershell中输入如下代码:
.\你的虚拟环境\Scripts\activate
如果出现类似如下的情况则表示安装完成
之后每次想要再进入这个虚拟环境都需要执行上述操作
4.3、安装tensorflow
在虚拟环境激活的情况下在命令行中输入:
pip install tensorflow-gpu==2.3.0
安装即可
五、下载MiaiHub源码
下载地址
把压缩包解压到你刚刚创建的python虚拟环境的那个文件夹
然后下载ncc-win7-x86_64
将解压到的ncc-win7-x86_64文件夹修改为ncc_v0.1并将其复制到maix_train/tools/ncc文件夹下面(如果没有这个文件夹就自己新建一个)
六、安装依赖环境
打开requirements.txt,将其中的tensorflow>=2.3.1删除,添加一行numpy==1.18.5
之后在确保虚拟环境激活的情况下输入:
pip install -r requirements.txt
等待安装完成即可
七、制作数据集
严格按照maixhub上的数据集制作要求来进行
这里提几点要点:
- 采集照片建议用上述制作要求中提供的脚本来用开发板直接采集图片
- 标注数据集用vott比较方便一点
- 数据集标注工具生成的文件夹不必打包,直接保留文件夹形式即可
八、开始训练!
第一步依然是确认自己是否在虚拟环境中
初始化:
python train.py init
在instance/config.py中修改对应的参数,里面的注释应该说的很明白了,主要是看你的数据集的图片够不够了
这里只提目标检测:
将你的数据集文件夹复制到datasets文件夹中,然后输入:
python .\train.py -t detector -d .\datasets\数据集文件夹的名字\ train
等待训练结束,会出现一个out的文件夹,里面就是训练的模型了
注意现在先不要关闭powershell
九、使用模型
out文件夹中有一个压缩包,把他解压然后放到sd里面就行
同时需要对boot.py进行一些修改:
- 70和71行的labels和anchors的默认值有问题,需要改成训练的结果,训练模型的输出信息中可以找到,大概在训练开始之前往上翻,仔细找找就能找到
- 因为我们是把模型放在sd卡所以注释72行并取消注释73行
之后就正常把sd卡插回去然后上电看结果即可