在上一篇博文中,我们创建了基础的openvino容器openvino2020.3.1_ubuntu18.04,具体环境为
* ubuntu 18.04
* openvino2020.3.341
这里,我们将通过安装miniconda,安装yolov5 v4.0的版本。
1、win中下载miniconda的linux安装包
网址:https://docs.conda.io/en/latest/miniconda.html
下载文件为Miniconda3-latest-Linux-x86_64.sh(需要复制到桌面上)。
2、进入容器openvino2020.3.1_ubuntu18.04,创建文件夹/home/anaconda,进入该文件夹
2.1. 双击桌面“Docker Quickstart Terminal”图标,创建docker终端窗口
2.2. 执行命令
docker start openvino2020.3.1_ubuntu18.04
docker exec -it -u 0 openvino2020.3.1_ubuntu18.04 /bin/bash
mkdir /home/anaconda
cd /home/anaconda
3、参考博客,将上述.sh文件传输到/home/anaconda
4、安装miniconda
bash Miniconda3-latest-Linux-x86_64.sh
一路选择enter就行,最后键入yes,默认安装位置/root/miniconda3
更新.bashrc
source ~/.bashrc
5、从yolov5 v4.0下载4.0版本的yolov5代码,同时将下载的yolov5s.pt放入yolov5-4.0/weights/文件夹中,如图
6、在容器中创建文件夹/home/yolov5_openvino;将桌面上得yolov5-4.0传入容器/home/yolov5_openvino文件夹
7、创建yolov5的环境,具体依赖为yolov5-4.0文件夹中的requiremets.txt,我们将安装依赖
7.1. 创建conda环境yolov5_openvino,进入该环境
conda create -n yolov5_openvino python=3.6
conda activate yolov5_openvino
7.2. 进入yolov5-4.0文件夹,安装依赖
cd yolov5-4.0
pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
pip install onnx coremltools networkx defusedxml -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
这里自动安装的最新的torch 1.9。
8、先将.pt转.onnx,然后将.onnx转成.ir
8.1. 安装vim编辑工具,方便后面修改代码
apt-get install vim
8.2. .pt转.onnx模型。这里由于openvino对于较新的onnx算子支持有问题,因此我们需要指定onnx版本为10。具体方法是,在yolov5-4.0/models/export.py中,大概72行左右,将opset_version从12改为10,如下
torch.onnx.export(model, img, f, verbose=False, opset_version=10, input_names=['images'],
output_names=['classes', 'boxes'] if y is None else ['output'])
然后在yolov5-4.0中,执行如下命令,将yolov5s.pt转成yolov5s.onnx
cd /home/yolov5_openvino/yolov5-4.0
python models/export.py --weights weights/yolov5s.pt --img-size 640 --batch-size 1
这样,在yolov5-4.0/weights中,就生成了yolov5s.onnx文件。
8.3. .onnx模型转.ir模型。这个转化过程借助的是openvino自带的脚本mo.py,这个脚本在/opt/intel/openvino_2020.3.341/deployment_tools/model_optimizer文件夹中。我们将yolov5s.onnx复制进这个文件夹,然后用mo.py转化,如下
cd /opt/intel/openvino_2020.3.341/deployment_tools/model_optimizer
cp /home/yolov5_openvino/yolov5-4.0/weights/yolov5s.onnx ./
python mo.py --input_model ./yolov5s.onnx
这样,在该文件夹下就能生成yolov5s.bin和yolov5s.xml文件。