PaddleDetection学习(一)

PaddleDetection学习(一)

安装

GitHub地址:https://github.com/PaddlePaddle/PaddleDetection

1、安装PaddlePaddle框架

# CUDA 10.1
python -m pip install paddlepaddle-gpu==2.2.0.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

# CPU
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

2、安装PaddleDetection

# 克隆PaddleDetection仓库
git clone https://github.com/PaddlePaddle/PaddleDetection.git

# 安装依赖
cd PaddleDetection
pip install -r requirements.txt

# 编译安装paddledet
python setup.py install

  安装后验证:

python ppdet/modeling/tests/test_architectures.py

​ 如若出现问题:libSM.so.6: cannot open shared object file: No such file or directory

​ 解决方案:

apt-get install libsm6		# 安装对应软件包

​ 通过验证会打印如下信息:

orRXEd.png

3、案例体验

​ 通过官方给定的Demo进行体验:

export CUDA_VISIBLE_DEVICES=0
python tools/infer.py -c configs/ppyolo/ppyolo_r50vd_dcn_1x_coco.yml -o use_gpu=true weights=https://paddledet.bj.bcebos.com/models/ppyolo_r50vd_dcn_1x_coco.pdparams --infer_img=demo/000000014439.jpg

​ 预测结果在output目录下:

oUtbXd.png

PaddleDetection特点

一、模型丰富

提供丰富的模型套件,场景包含目标检测、实力分割、人脸检测、追踪等,并且提供相对应的预训练模型,涵盖了多种全球竞赛冠军方案;

套件结构图:

oUwpan.png

二、简洁易用

1、动态图开发,可灵活调试代码;

2、模块化设计,使用配置文件即可修改超参数,使用简单方便;

产业级目标检测算法

在实际落地场景中,目标检测方案有以下问题:

  • 模型选用及开发:高精度or轻量化,如何快速改进并训练新的数据集;
  • 模型优化:如何提升精度,进行版本迭代;
  • 模型部署:服务器or端侧部署,

PP-YOLO

一、YOLO最根本原理:

目标检测实质是通过滑窗的方法找到目标对应位置,YOYO用CNN实现滑窗的作用:

oUwHeJ.png

二、YOLOV3的简单结构图:

oU0NXF.png

三、PP-YOLO简介:
V2版本在COCO2017数据集上的精度达到49.5%,在640*640的输入尺寸下,FPS达到68.9;PP-YOLOV2在同等速度下,精度已经超越YOLOV5;

oUBAHJ.png

四、PP-YOLO改进点

1、MixUP数据增强:将两张图像线性相加来平滑数据集;

2、Backbone的替换:DarkNet53 —> Paddle分类中的ResNet50(用好的预训练模型);

3、Backbone中添加DCN,原理是让参与计算的点集中在物体上,涨精度但会掉一点点速度;

orWqzV.md.png

4、Neck部分加入SPP,获得不同的感受野,增加了一点参数;

o6PkCj.md.png

5、Neck部分加入Coordconv,由于Conv做one-hot转坐标任务差,所以加入坐标信息;

o6PcsP.png

6、Neck加入PAN,增强Neck部分的特征融合能力;

7、Neck加入MISH激活函数,希望处处平滑,<0处也有值;

o6kE2d.png

8、Loss部分加入IOU Loss,定位时xywh的loss一同计算,公式1-IOU的平方;

9、Loss部分加入IoU Aware Branch,也就是加多了一个分支来预测IOU;

10、加指数滑动平均EMA,平均一下更容易得到最优解;

11、SoftNMS的并行处理版本,就算IOU很大,也不直接抑制掉,而是降分;

12、调大一定Batch后调大Input size,Batch到一定值后已经稳定训练,调大Input size对小物体好;

关于PP-YOLO2的模型使用案例,可参考官方教程:https://aistudio.baidu.com/aistudio/projectdetail/3200646?forkThirdPart=1

总结

  Paddle是百度自研的一款框架,在当前很场景中已经有很好的应用;不管是目标检测、NLP、OCR,都在工业界能简单快速的应用;虽然大部分项目还是用Pytorch、Tensorflow比较多,但Paddle也是不比这两者差的一个框架;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你想了解关于PaddleDetection的训练吗?PaddleDetection是一个基于PaddlePaddle深度学习框架开发的目标检测工具。它可以用来训练和部署各种目标检测模型,包括但不限于Faster RCNN、YOLO和SSD等。 要训练一个目标检测模型,你需要准备好训练数据集、定义模型结构和设置训练参数。以下是一个基本的训练流程: 1. 数据准备:首先,你需要收集并标注一个合适的数据集。数据集应该包含各种目标类别的图像,并为每个目标提供标注框的位置。PaddleDetection支持多种数据集格式,如COCO和VOC等。 2. 模型配置:接下来,你需要选择一个适合你任务的模型结构,并在配置文件中进行相应设置。PaddleDetection提供了一些预训练模型供选择,你可以在其配置文件中进行修改和调整。 3. 训练模型:通过执行训练命令,你可以开始训练你的目标检测模型。PaddleDetection会自动加载配置文件,并根据配置进行训练。你可以指定训练时的批次大小、学习率、优化算法等参数。 4. 模型评估:训练完成后,你可以使用验证集或测试集对模型进行评估。PaddleDetection提供了一些评估指标,如mAP(mean Average Precision),帮助你评估模型的性能。 5. 部署模型:当你对模型的性能满意后,你可以将其部署到实际应用中。PaddleDetection提供了一些工具和接口,方便你将模型应用于图片或视频中的目标检测任务。 这只是一个简单的训练流程概述,具体的步骤和操作可以根据你的需求和数据集的特点进行调整。希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值