AXera-pi使用使用记录(1)

chmod +x ax_hrnet
./ax_hrnet -m hrnet_256x192.joint -i image.jpg
fbon
fbv pose_out.png

后处理参考model zoo 里面的 onnx hrnet 处理下就好

对应HRNet仓库==============

https://github.com/open-mmlab/mmpose/blob/master/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/mpii/litehrnet_18_mpii_256x256.py

https://github.com/HRNet/HRNet-Image-Classification

https://github.com/HRNet/Lite-HRNet

=======================================================模型支持列表
分类:
MobileNetv1 、MobileNetv2、SqueezeNetv1_1、ResNet18、ResNet50、VGG16
检测:
YOLOv3、PP-YOLOv3、YOLOv3-Tiny、YOLOv4、YOLOv4-Tiny
YOLOv5-S、 YOLOX-S、YOLO-Fastest、YOLO-Fastest-Body、NanoDet-m
识别:
MobileFaceNets
关键点:
HRNet

=======================================================Pulsar工具链
Pulsar 由 爱芯元智 自主研发 的 all-in-one 神经网络编译器, (转换-》量化-》编译-》异构)四合一

Pulsar工具链核心功能是将.onnx模型编译成芯片可以识别的运行的 .joint模型

//===============ubuntu连接串口
ls /dev/ttyUSB*

sudo screen /dev/ttyUSB0 115200

nutui-connect 进行图形化界面连接

ip addr 查看本地ip地址

ssh [email protected] 用ubuntu终端直接连接开发板

//=============AXerapi的开发环境

c/c++语言开发 本地编译与交叉编译

(1)本地编译:
打开工具 Remmina (界面形式连接ssh、sftp)

ax-samples 是爱心派官方提供的例程

git pull 更新源码(在开发板目录/home/ax-samples下)-》一系列操作就行编译

推理一张图片    ./install/bin/ax_yolov5s(编译好的可执行程序)      -m        /home//models/yolov5s.joint(模型文件)        -i     /home/images/dog.jpg (图片)
/home/ax-samples/build  在此目录下找到推理好的图片,并下载到本地查看

(2)使用CLion开发推理图片(本地编译)

(3)交叉编译速度快

//===本地转换模型文件

sudo docker run -it --net host --shm-size 8g -v SPWD:/data sipeed/pulsar      创建容器并运行容器

sudo  docker   kill  ffc1792471da   停止正在运行的容器进程

docker rm 1a18447e378b		 删除docker容器

docker使用,ctrl+D  退出容器

sudo docker ps -a    看看正在运行的容器,需要知道容器的ID

docker start xxx && docker attach xxx进入容器

//===训练自己的数据集,ax-samples样例

1)直接再pycharm下进行训练	训练yolov5 得到xxx.pt
	python  train.py  --weights   yolov5s.pt  --cfg  models/yolov5s.yaml  --data  data/VisDrone.yaml  --batch-size  -1  --epoch  	

2)安装onnx,导出onnx模型(自己的训练集进行训练得到的onnx)
	python   export.py  --weights   runs/train/exp/weights/best.pt   --include   onnx

3)与官方自带的onnx模型进行对比修改(因为官方修改后的网络结构式式刚好适配这个joint的格式的一些底层算子)===后处理步骤
	可以使用脚本编辑
		
	可以使用图像化编辑   在onnx-modifier目录下,  python    app.py 进行图形化修改(删除部分节点、修改节点输入输出名、编辑节点属性、增加新节点)
 
	yolov5s_visdrone.prototxt 中的数据集路径换成自己的数据集,2处地方,
			一个具有 1000 张图片的 tar 包
			tar -cvf visdrone_1000.tar  0000*.jpg  	

4)修改完成后的自训练模型,进行转换模型,之后会得到xxx.joint模型文件(ModelZoo目录下)
	pulsar  build --input  onnx/yolov5s_visdrone.onnx  --output  yolov5s_visdrone.joint  --config  config/yolov5s_visdrone.prototxt  --output_config  yolov5s_visdrone.prototxt


5)在docker下用一下命令进行仿真半分
	pulsar  run  onnx/yolov5s_visdrone.onnx  yolov5s_visdrone .joint  --config yolov5s_visdrone.prototxt  --output_gt  gt
	
	如果结果的cosine-sim:value  值小于0.99,需要检查onnx模型和量化(转换)图片 
	
6)直接把转换后的模型复制到ax-samples/models下,即上传到开发板开干!!!!

7)构建自己的测试程序,在ax-samples/examples下面
	复制ax_yolov5s_steps.cc 这个源码,重命名为ax_yolov5s_visdrone_test.cc  然后进入此文件
	修改 CLASS_NAMES类别   为自己的类别
	修改        ANCHORS           为自己的锚点
	
	在examples/base/detection.hpp  ,复制函数,再修改函数名;
	修改   cls_num 按照自己的数据集;
	再继续修改复制的这个文件的后处理;

	在example/CMakeLists.txt文件
	添加自己的程序  ax_yolov5s_visdrone_test.cc 

	点击下方的CMake按钮刷新,然后构建自己的程序

	上传测试图片(单张图片推理结果,参照第2集视频)

//==============ax-pipeline样例

-m /home/models/yolov5s.joint -p /home/ax-pipeline/examples/sample_run_joint/config/yolov5s.json

ffplay rtsp://192.168.1.122:8554/axstream0

-m /home/models/hrnet_256x192.joint -p /home/ax-pipeline/examples/sample_run_joint/config/hrnet_pose_rgd.json

挂载U盘 mount /dev/sda1 /mnt/usb

显示logo sipeedlogo
fbon
fbv /home/res/logo.png
fboff

显示图片
fbv /home/examples/480x360.jpg

//================json文件
yolov5s.json
{
“MODEL_TYPE”: “MT_DET_YOLOV5”,
“MODEL_PATH”: “/home/models/yolov5s.joint”,
“ANCHORS”: [
373.0,
326.0
。。。。。。
],
“CLASS_NAMES”: [
“hair drier”,
“toothbrush”
。。。。。。
],
“CLASS_NUM”: 80,
“NMS_THRESHOLD”: 0.44999998807907104,
“PROB_THRESHOLD”: 0.4000000059604645
}

hrnet_pose.json=====
{
“MODEL_TYPE”: “MT_MLM_HUMAN_POSE_HRNET”,
“SAMPLE_IVPS_ALGO_WIDTH”: 960,
“SAMPLE_IVPS_ALGO_HEIGHT”: 540,
“MODEL_PATH”: “./models/yolov5s_sub_rgb_11.joint”,
“MODEL_MINOR”: {
“MODEL_PATH”: “./models/hrnet_256x192.joint”
},
“MODEL_MAJOR”: {
“MODEL_TYPE”: “MT_DET_YOLOV5”,
“MODEL_PATH”: “./models/yolov5s_sub_rgb_11.joint”,
“ANCHORS”: [
10.0,
13.0,
。。。。。。。
],
“CLASS_NAMES”: [
“person”,
“bicycle”,
。。。。。。
],
“CLASS_NUM”: 80,
“NMS_THRESHOLD”: 0.44999998807907104,
“PROB_THRESHOLD”: 0.4000000059604645
}
}

你可能感兴趣的:(AXera-Pi,人工智能)