基于PaddlePaddle实现的目标检测模型PP-YOLO
2023-04-18 12:46:55 时间
原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历 本文链接:基于PaddlePaddle实现的目标检测模型PP-YOLO
PP-YOLO
PP-YOLO是PaddleDetection优化和改进的YOLOv3的模型,其精度(COCO数据集mAP)和推理速度均优于YOLOv4模型,PP-YOLO在COCO test-dev2017数据集上精度达到45.9%,在单卡V100上FP32推理速度为72.9 FPS, V100上开启TensorRT下FP16推理速度为155.6 FPS。其中还包含了PP-YOLO tiny模型,此模型后量化压缩模型,将模型体积压缩到1.3M,对精度和预测速度基本无影响。
本教程源码地址:https://github.com/yeyupiaoling/PP-YOLO
训练
- 安装PaddlePaddle和PaddleDetection依赖库。
pip install paddlepaddle-gpu==2.1.0.post101 -f https://paddlepaddle.org.cn/whl/mkl/stable.html
pip install paddledet==2.1.0 -i https://mirror.baidu.com/pypi/simple
- 准备数据,默认使用的是VOC格式的数据集,首先将标注文件放在
dataset/annotation/
,图像文件放在dataset/images/
,最后执行create_data_list.py
程序生成数据列表和类别名称。 - 修改
voc.yml
中的类别数量num_classes
,这个类别数量不用算上背景这一类别。 - 执行
train.py
开始训练,其中选择PP-YOLO和PP-YOLO tiny模型,并支持量化训练,具体看配置参数。 - 执行
visualdl --logdir=log
查看训练可视化信息。
评估
执行eval.py
完成模型评估,其中参数-o weights
为模型的路径,不需要带后缀名,执行之后输入如下。
python eval.py -o weights=output/ppyolo_mbv3_large_qat/best_model
2020-08-17 12:56:58,530-INFO: Test iter 0
2020-08-17 12:57:13,349-INFO: Test iter 100
2020-08-17 12:57:27,421-INFO: Test iter 200
2020-08-17 12:57:36,716-INFO: Test finish iter 268
2020-08-17 12:57:36,716-INFO: Total number of images: 1070, inference time: 27.43800773116421 fps.
2020-08-17 12:57:36,717-INFO: Start evaluate...
2020-08-17 12:57:36,999-INFO: Accumulating evaluatation results...
2020-08-17 12:57:37,017-INFO: mAP(0.5, 11point) = 90.75
预测
- 执行预测执行先要导出预测模型,执行
export_model.py
,其中参数--weights
为模型的路径,不需要带后缀名,--output_dir
输出预测模型的路径,文件目录结构如下。
python export_model.py -o weights=output/ppyolo_mbv3_large_qat/best_model
- 导出PaddleLite模型。
python to_lite_model.py
预测
项目提供了两种预测方式,第一种infer.py
为使用图像路径进行预测。第二个infer_camera.py
为调用摄像头进行实时预测。
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用