|
1 年之前 | |
---|---|---|
model_baby | 1 年之前 | |
model_fire | 1 年之前 | |
py | 1 年之前 | |
sh | 1 年之前 | |
video | 1 年之前 | |
image.jpg | 1 年之前 | |
model.txt | 1 年之前 | |
out.txt | 1 年之前 | |
readme_v2.md | 1 年之前 | |
result.mp4 | 1 年之前 | |
test.mp4 | 1 年之前 | |
video.avi | 1 年之前 | |
video1.mp4 | 1 年之前 | |
video2.avi | 1 年之前 | |
video2.mp4 | 1 年之前 | |
video3.avi | 1 年之前 | |
video3.mp4 | 1 年之前 | |
video4.mp4 | 1 年之前 |
YOLOV8模型转换ezb模型使用教程.
0.环境切换
0.1 conda环境切换
conda activate eeasy_caffe_v1.2.0
0.2 定义项目文件夹(xxx自己定义)
export PROJECT_NAME='model_xxx'
export PROJECT_NAME='model_fire'
export PROJECT_NAME='model_pet'
export PROJECT_NAME='model_baby'
export PROJECT_NAME='model_fall'
export PROJECT_NAME='model_pet_test'
这里fire为例子
export PATH="/home/ubuntu/sv82x-v1.1/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf:/opt/anaconda3/envs/eeasy_caffe_v1.2.0/eztool:$PATH"
0.3 修改py/yolo.py
修改这个文件里面的names和cls_num参数为自己模型的类别和类别数量.
0.4 新建文件夹
mkdir -p $PROJECT_NAME/logs
1.准备数据和模型
文件夹结构
./model_xxxx/
|
|-model.onnx
|-logs/
|-img_train/
|-1.jpg
|-2.jpg
|-...
2.onnx2caffe
2.0 转换pt模型为onnx模型并复制到PROJECT_NAME下
cp /root/eeasy/eeasy_train/yolov8_fire/runs/train/yolov8n_fire_EXP1/weights/best.onnx $PROJECT_NAME/model.onnx
cp /root/eeasy/eeasy_train/yolov8_fire/runs/train/yolov8n_baby_EXP1/weights/best.onnx $PROJECT_NAME/model.onnx
2.2 onnx转换到caffe
sh sh/onnx2caffe.sh
3.测试caffe模型和制作量化数据集
3.0 复制数据集到PROJECT_NAME/img_train下 (path:原始图像路径 num:图像数量(0为全部))
python3 py/copy_img.py --path /root/data_ssd/fire/dataset/images/train --num 200
python3 py/copy_img.py --path /root/data_ssd/dataset_baby_head/images/train --num 200
python3 py/copy_img_select.py --path /root/public_dataset/cat_dog/catdog_dataset/JPEGImages --xml_path /root/public_dataset/cat_dog/catdog_dataset/Annotations --num 100
3.1 测试caffe模型map(记得修改数据集路径image_base_path,label_base_path)并把结果保存到PROJECT_NAME/map_img_save下 (计算map的时候默认conf为0.01 如需要较好的可视化 可以添加--conf 0.45)
nohup python3 py/get_map.py --type caffe --conf 0.01 > $PROJECT_NAME/logs/map_for_caffe.log 2>&1 & tail -f $PROJECT_NAME/logs/map_for_caffe.log
3.2 查看PROJECT_NAME/map_img_save (绿色是预测框 红色是真实框)
4.量化
4.0 量化命令
nohup python py/quan.py > $PROJECT_NAME/logs/quan.log 2>&1 & tail -f $PROJECT_NAME/logs/quan.log
4.1 测试qkqb模型map(记得修改数据集路径image_base_path,label_base_path)并把结果保存到PROJECT_NAME/map_img_save下 (计算map的时候默认conf为0.01 如需要较好的可视化 可以添加--conf 0.45)
nohup python3 py/get_map.py --type qkqb --conf 0.01 > $PROJECT_NAME/logs/map_for_qkqb.log 2>&1 & tail -f $PROJECT_NAME/logs/map_for_qkqb.log
4.2 查看PROJECT_NAME/map_img_save (绿色是预测框 红色是真实框)
5.模型转换
5.1 qkqb2ezb(重新执行0.2)
sh sh/qkqb2ezb.sh
5.2 单张/批量推理ezb(指定测试图片路径/图片文件夹路径/视频路径(只支持qkqb推理),其会先自动letterbox到640x640再进行推理)
python py/inference.py --path image.jpg --type ezb
python py/inference.py --path model_pet/img_test/2.png --type all
python py/inference.py --path model_pet/img_test --type all
python py/inference.py --path model_crowdhuman/img_train --type all
python py/inference.py --path test.mp4 --type qkqb --video --video_batch_size 32
python py/inference.py --path model_crowdhuman/img_train/273275,7078a000056e3b81.jpg --type ezb
python py/inference.py --path ../yolov5ToEZB/image.jpg --type all
python py/inference.py --path video.avi --type caffe --video --video_batch_size 64
python py/inference.py --path video3.avi --type qkqb --video --video_batch_size 64
比对bin文件:
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Concat.bin --bin_path2 model_pet/sim/res_hw/_model.22_Concat.bin --name /model.22/Concat
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Concat_1.bin --bin_path2 model_pet/sim/res_hw/_model.22_Concat_1.bin --name /model.22/Concat_1
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Concat_2.bin --bin_path2 model_pet/sim/res_hw/_model.22_Concat_2.bin --name /model.22/Concat_2
python py/cal_bin_diff_ygy.py --bin_path1 model_pet/_share_res_hw__model.22_Concat_2.bin --bin_path2 model_pet/sim/res_hw/_model.22_Concat_2.bin --name /model.22/Concat_2
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Transpose.bin --bin_path2 model_pet/sim/res_hw/_model.22_Transpose.bin --name /model.22/Transpose
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Transpose_1.bin --bin_path2 model_pet/sim/res_hw/_model.22_Transpose_1.bin --name /model.22/Transpose_1
python py/cal_bin_diff.py --bin_path1 model_pet/_share_res_hw__model.22_Transpose_2.bin --bin_path2 model_pet/sim/res_hw/_model.22_Transpose_2.bin --name /model.22/Transpose_2
比对caffe和qkqb文件:
nohup python py/cal_caffe_qkqb_diff.py > $PROJECT_NAME/logs/cal_caffe_qkqb_diff.log 2>&1 & tail -f $PROJECT_NAME/logs/cal_caffe_qkqb_diff.log
cp $PROJECT_NAME/_share_res_hwmodel.22_Concat.bin $PROJECT_NAME/sim/res_hw/_model.22_Concat.bin cp $PROJECT_NAME/_share_res_hwmodel.22_Concat_1.bin $PROJECT_NAME/sim/res_hw/_model.22_Concat_1.bin cp $PROJECT_NAME/_share_res_hw__model.22_Concat_2.bin $PROJECT_NAME/sim/res_hw/_model.22_Concat_2.bin