栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

PaddleDetection部署以及小组分工 版本(win10+vs2019)

Python 更新时间:发布时间: 百科书网 趣学号

2021SC@SDUSC

PaddleDetection项目简介

PaddleDetection是PaddlePaddle(百度飞桨,百度推出的深度学习平台,可简单理解为一个生态,一个环境)推出的物体检测统一框架。支持现有的RCNN、SSD、YOLO等系列模型、支持 ResNet、ResNet-VD、ResNeXt、ResNeXt-VD、SENet、MobileNet、DarkNet等主干网络。针对不同的业务场景(性能、目标大小、准确率等)可以选择框架中的不同模块组合得到最适合的模型,实现任务。相比于tensorflow的Object_Detection,优势之一就是将YOLOv3这一目标检测的快速算法融合到了框架下。


部署与安装

本文主要按照paddle文档部署,可能与大家网上搜索的教学不同,希望大家根据需要寻找最适合自己的安装方法

注意:以下全是自己安装操作运行步骤 均为原创 真实模拟部署安装

进入网址:开始使用_飞桨-源于产业实践的开源深度学习平台

如图所示:默认如下图

 根据安装信息中的安装命令 进入vs2019 新建一个python项目 如图所示 打开powershell

或者是找到自己vs的python目录  打开资源地址管理器 输入cmd 回车即可

 运行安装命令

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

 然后我出现了这个报错

 吓我一跳 仔细看发现意思是安装tensorflow库时需要的环境gast不兼容 然后给我提建议 那我就按照他的意思继续了

提示说pip需要升级 于是升级了pip 

python -m pip install --upgrade pip 

最后为了确保安装无误 再次卸载paddle依赖

python -m pip uninstall paddlepaddle-gpu

再次安装paddle

就没有问题了

安装coco-API
1 pip install Cython
2 pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

运行第二步出现问题

 出现这个错误 搜寻网上教程无果 于是亲自访问github发现没法访问 大概猜出是网络问题了(吐槽一下校园网)

切换成手机热点 安装成功

给同组其他成员调试发现有时候手机热点也不一定成功

于是搜寻方法 找到一个非常靠谱的安装cocoapi方法

win10安装cocoapi_君莫笑-CSDN博客

根据这篇博客 成功安装 感谢这位大佬

找一个文件夹 安装paddledetection 也就是克隆库

我的python在E盘 于是在E盘找一个位置下载paddledetection

cd “要安装的目录”
git clone https://github.com/PaddlePaddle/PaddleDetection.git

然后

 可见 我们的网络实在不行

于是换方法

python ppdet/modeling/tests/test_architectures.py

这次就很成功

 接下来安装python其他依赖库

这一步最好在安装paddledetection之后 因为要调用安装的paddledetection的require文档

先cd到我们的requirement.txt的上级目录

 

cd 安装目录
pip install -r requirements.txt

由于不明原因

 

发现安装cython-bbox失败 这很有可能又是网络原因 于是我们亲自去安装cython-bbox库

ERROR: Failed building wheel for cython-bbox_jasminechan0831的博客-CSDN博客

然后我们测试一下是否成功

python ppdet/modeling/tests/test_architectures.py

显示ok 就ok了

小组分工

我选择负责分工是 CBNet模型 相关研究

以下是此模型介绍:


骨干网络对于检测网络的模型性能至关重要,但是大部分的骨干网络设计完成之后都需要首先在imagenet数据集上训练,得到的模型作为检测网络的预训练模型,该论文中,作者基于已有的骨干网络进行组合,最终实现一种新的骨干网络,同时验证了它在目标检测任务中的性能,在coco test-dev测试集上基于多尺度测试,达到了53.3%的精度指标。

模型特色

(此处有论文可以参考)https://arxiv.org/abs/1909.03625
论文提出的检测网络结构如下,其中用K个相同的结构进行联结,生成新的骨干网络,以ResNet结构为例,K=2时,为Dual-ResNet,K=3时,为Triple-ResNet。

论文中验证了骨干网络的不同的联结方式及其对应的检测精度指标,如下所示。

不同结构对应的精度指标如下。最终AHLC这种连接方式在CBNet被验证最为有效,通过和上图©中的ALLC的对比,也验证了单纯地通过添加网络参数并不能提升模型性能,和(d)中的ADLC对比,验证了特征图之间的信息融合方式也很重要。

论文中也验证了骨干网络权重共享、快速版CBNet、骨干网络的数量K对检测性能的影响,主要得到了以下结论

  1. 即使使用骨干网络权重不共享的方式,使用CBNet也能带来1%的绝对精度提升,这也验证了CBNet带来的精度提升更多地是因为网络结构而非参数量。
  2. 减少AHLC的连接数量,仅将C4和C5引入到下一个ResNet的骨干网络中,仍然可以带来1.4%的精度提升,这比C2~C5全部全部引入低0.2%,但是速度却快了约20%。
  3. 骨干网络堆叠的数量K在K>=3时,带来的收益逐渐减小,因此建议K=2或3,可以在速度和精度方面做比较好的权衡。

更加详细的实验与结论可以参考论文中的实验部分。目前Paddle已经开源基于ResNet的CBNet模型,实现代码可以参考:https://github.com/PaddlePaddle/PaddleDetection/blob/master/ppdet/modeling/backbones/cb_resnet.py

此外,基于CBNet,PaddleDetection也开源了coco val2017验证集53.3%的单模型单尺度检测模型:(这里我也可以进行相关研究)https://github.com/PaddlePaddle/PaddleDetection/blob/master/configs/dcn/cascade_rcnn_cbr200_vd_fpn_dcnv2_nonlocal_softnms.yml

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/280352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号