Paddle实现YOLOv3 目标检测

简介: Paddle实现YOLOv3 目标检测

环境准备


环境设置

GPU:GeForce GTX 1080Ti (12GB)


python:3.8.12


Paddle:2.1


PaddleDetection下载


通过如下git clone命令下载PaddleDetection目标检测库。


git clone https://github.com/PaddlePaddle/PaddleDetection # 下载PaddleDetection目标检测库

安装PaddleDetection依赖库

通过如下方式安装PaddleDetection依赖。


cd PaddleDetection/
pip install -r requirements.txt # requirements.txt列出了PaddleDetection的所有依赖库
pip install Cython pycocotools


数据准备


PaddleDetection提供了COCO、VOC等数据集下载脚本如dataset/coco/download.py,通过此脚本可自动下载对应数据集。


COCO的train数据集较大,训练比较耗时,本项目将训练集和验证集划分构建MINI_COCO数据集。


python dataset/coco/download_coco.py  # coco数据集下载脚本
python dataset/coco/split_coco.py     # 构建MINI_COCO数据集
python dataset/voc/download_coco.py  # VOC数据集下载脚本


对于VOC数据集,我们还需要通过脚本dataset/voc/creat_list.py构建test.txt和test.txt文件

python dataset/voc/creat_list.py # 构建txt文件


模型训练与评估


VOC数据集

本项目选取yolov3_darknet.yml作为本项目的训练配置文件。该配置文件选取的是YOLOv3_darknet模型,骨干网络为DarkNet,yolo_head为YOLOv3Head。


对于VOC数据集,我们不需要修改配置文件,直接用脚本运行,进行训练及评估。


python tools/train.py -c configs/yolov3/yolov3_darknet53_270e_cocoval.yml #训练VOC数据集
python -u tools/eval.py -c configs/yolov3/yolov3_darknet53_270e_cocoval.yml #评估yolov3_darknet模型


最终评估结果如下图所示:



从上图中,可以看出yolov3_darknet模型在VOC数据集上的mAP = 74.42 , FPS = 15.79

目录
相关文章
|
Kubernetes 关系型数据库 MySQL
Docker终端无法输入中文问题
Docker终端无法输入中文问题
309 0
|
10月前
|
缓存 JavaScript 前端开发
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
该文章全面覆盖了Vue.js从基础知识到进阶原理的48个核心知识点,包括Vue CLI项目结构、组件生命周期、响应式原理、Composition API的使用等内容,并针对Vue 2与Vue 3的不同特性进行了详细对比与讲解。
251 13
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
ly~
|
9月前
|
存储 监控 安全
如何评估云数据库的安全性?
评估云数据库安全性需关注基础架构与物理安全、网络基础设施、电力与冷却系统;访问控制与身份验证,包括多因素身份验证、基于角色的访问控制、身份验证强度;数据加密,涉及传输加密、存储加密、密钥管理;备份与恢复,涵盖备份策略、恢复测试、异地备份;安全审计与监控,如审计日志、实时监控、漏洞扫描与渗透测试;合规性,包括法规遵循、认证与合规证明;以及云服务提供商的信誉与技术支持。
ly~
325 4
|
11月前
|
分布式计算 Java Linux
centos7通过Ambari2.74部署Hadoop
centos7通过Ambari2.74部署Hadoop
|
10月前
|
消息中间件 传感器 物联网
手把手教你搭建物联网平台,轻松实现远程设备管理
嘿,大家好!我是技术小伙伴小米,今天分享的主题是“物联网平台接入”。在这个万物互联的时代,智能设备如雨后春笋般涌现。我们将探讨如何通过物联网平台实现设备远程控制,包括设备数据的上行和指令的下行。上行数据链路涉及设备通过MQTT协议上报数据至平台,并通过消息队列转发至业务系统;下行指令链路则是业务系统通过API调用云端服务,将控制指令下发给设备。整个过程高效便捷,让你轻松掌握物联网技术的核心流程。
322 5
|
11月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
356 1
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的校园二手交易平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的校园二手交易平台的详细设计和实现(源码+lw+部署文档+讲解等)
262 0
|
Java 对象存储 Spring
Javaweb之SpringBootWeb案例之 @ConfigurationProperties的详细解析
Javaweb之SpringBootWeb案例之 @ConfigurationProperties的详细解析
247 0
Javaweb之SpringBootWeb案例之 @ConfigurationProperties的详细解析
|
XML 监控 大数据
Sqoop作业调度:自动化数据传输任务
Sqoop作业调度:自动化数据传输任务
|
Oracle Java 关系型数据库
Neo4J因为JDK不匹配出现启动问题
这是因为你的电脑没有安装好正确版本的JDK,所以不能正常启动。这里提供一个方案,可能可以解决你的问题。
461 0
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等