算能杯记录2.0

1.1 准备开发环境
开发环境是指用于模型转换或验证以及程序编译等开发过程的环境,目前只支持x86,需要使用我们提
供的基于Ubuntu18.04的docker镜像。
1.1.1 开发主机准备:
开发主机:一台安装了Ubuntu16.04/18.04/20.04的x86主机

# 安装docker
sudo apt-get install docker.io
# docker命令免root权限执行
# 创建docker用户组,若已有docker组会报错,没关系可忽略
sudo groupadd docker
# 将当前用户加入docker组
sudo gpasswd -a ${USER} docker
# 重启docker服务
sudo service docker restart
# 切换当前会话到新group或重新登录重启X会话
newgrp docker

初始化开发环境

# 确保安装环境
unzip x86_sophonsdk3_ubuntu18.04_py37_dev_22.06_docker.zip
# 进入文件夹并加载Docker镜像
cd x86_sophonsdk3_ubuntu18.04_py37_dev_22.06_docker
sudo docker load -i x86_sophonsdk3_ubuntu18.04_py37_dev_22.06.docker
# Sophon SDK3.0.0
unzip sophonsdk_v3.0.0_20220716.zip
cd sophonsdk_v3.0.0_20220716
解压sophonsdk_v3.0.0.tar.gz
cd sophonsdk_v3.0.0
# 通过脚本文件创建并进入Docker容器
# 若您没有执行前述关于docker命令免root执行的配置操作,需在命令前添加sudo
./docker_run_sophonsdk.sh

配置Docker容器开发环境
以下步骤均在Docker容器中进行:
1.安装nntc以及配置环境变量

cd /workspace/scripts
./install_lib.sh nntc
# 设置环境变量-[无PCIe加速卡]
source envsetup_cmodel.sh
# 设置环境变量,注意此命令只对当前终端有效,重新进入需要

开发环境移植例程:Docker下载案例

1、登录到docker,从Github下载所需案例,下载案例所需的代码等到“家目录 ~“
cd
git clone https://github.com/VACUUMSONG/sophpi-shaolin     
#第一次会出现fatal: unable to access 'https://github.com/VACUUMSONG/sophpi-shaolin/': gnutls_handshake() failed: Error in the pull function. 解决方法:再输一次指令

下载数据集:docker下准备yolov5测试数据集

【下载测试数据集】
1、从下载好的案例集文件夹sophpi-shaolin中,拷贝yolov5文件夹到“家目录 ~” 下。
# cd
# cp -r sophpi-shaolin/yolov5/ ~

2、切换到yolov5文件夹下载test数据集
# cd yolov5/scripts
# chmod +777 *.sh
# ./01_prepare_test_data.sh
下载完成,数据(图片和视频)将保存在 data 目录

3、安装tree,用于查询目录结构
# apt install tree

下载数据集:docker下准备yolov5量化数据集

【下载量化数据集】
MS COCO是微软构建的一个包含分类、检测、分割等任务的大型的数据集。使用yolov5基于COCO Detection 2017预训练好的80类通用目标检测模型。

MS COCO提供了一些API,方便对数据集的使用和模型评估。
使用pip3 install pycocotools安装 ,并使用COCO提供的API进行下载。

模型准备:下载yolov5s.pt模型文件
yolov5下

第一步:下载yolov5s.pt模型
#wget https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt
第二步:下载yolov5 v6.1源码#wget https://github.com/ultralytics/yolov5/archive/refs/tags/v6.1.zip
第三步:解压源码
# unzip v6.1.zip
第四步:修改models/yolo.py
Detect类的forward函数最后的return语句,可实现不同的输出。
# cd  yolov5-6.1
# vi models/yolo.py

下载yolov5s.pt失败

vi /etc/resolv.conf
添加nameserver 8.8.8.8
    nameserver 8.8.4.4

在这里插入图片描述
模型准备:虚拟环境中导出JIT模型

第一步:创建并切换到python虚拟环境
# pip3 install virtualenv 
# virtualenv -p python3 --system-site-packages env_yolov5 
# source env_yolov5/bin/activate 
第二步:安装依赖
# pip3 install tensorboard==1.13.0
# pip3 install -r requirements.txt 
第三步:导出jit模型 
# chmod +777 *.py
# cp ../yolov5s.pt .
# python3 export.py --weights yolov5s.pt --include torchscript 
第四步:退出虚拟环境 
# deactivate 

模型准备
yolov5/yolov5-6.1下

1、将生成好的jit模型yolov5s.torchscript拷贝到${YOLOv5}/build文件夹下 
# mkdir ../build
# cp yolov5s.torchscript ../build/yolov5s_coco_v6.1_3output.trace.pt

2、拷贝一份到${YOLOv5}/data/models文件夹下 
# mkdir ../data/models
# cp yolov5s.torchscript ../data/models/yolov5s_coco_v6.1_3output.trace.pt

模型转换:生成FP32和INT8的bmodel

第一步:生成F32 Bmodel
1、在yolov5/scripts/目录下生成FP32 Bmodel
# cd scripts
#  ./1_gen_fp32bmodel.sh

2、在yolov5目录查询model结构,确认是否完成
# tree -L  2 ../data/models/

第二步:生成INT8 Bmodel 
1、在yolov5/scripts/目录下生成INT8 Bmodel
# ./00_prepare.sh
# ./2_gen_int8bmodel.sh

2、在yolov5目录查询model结构,确认是否完成
# tree -L  2 ../data/models/

C++执行文件生成:使用C++运行推理时需要执行此操作

第四步:完成
1、切换到cpp路径
# cd ../cpp
# chmod +777 *.*

2、编译可执行文件,生成yolov5_cv_cv_bmrt.arm 
# make -f Makefile.arm 

3、查询model目录结构,确认是否完成
# tree -L  2

数据集和模型转移到少林派

第四步:把开发完成的数据集、模型等文件转移到少林派
# cd
# scp -r yolov5/ linaro@192.168.150.1:/data

推理测试

第一步:少林派环境准备
1、登录到少林派
> ssh linaro@192.168.150.1
第二步:Python运行环境准备
1、切换到yolov5的python路径下
# cd /data/yolov5/python

2、运行Python需要增加运行权限
# chmod +777 *.py

cd 
推理测试(以yolov5_bmcv_3output.py为例)
fp32模型
# python3 yolov5_bmcv_3output.py --bmodel ../data/models/yolov5s_640_coco_v6.1_3output_fp32_1b.bmodel --input /home/linaro/Pictures/w.png 
int8模型
#python3 yolov5_bmcv_3output.py --bmodel ../data/models/yolov5s_640_coco_v6.1_3output_int8_1b.bmodel --input ../data/images/dog.jpg
tree -L 2 output/yolov5_bmcv_3output/

在这里插入图片描述

视频推理测试

第一步: C++运行环境准备
1、切换到yolov5 C++路径
# cd  ../cpp

2、运行推理测试
# ./yolov5_demo.arm --input=../data/videos/dance.mp4 –bmodel=../data/models/yolov5s_640_coco_v6.1_3output_fp32_1b.bmodel --is_video=true 

3、更多信息
#./yolov5_demo.arm --help
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值