
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-API1 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对检测性能的影响,主要得到了以下结论
更加详细的实验与结论可以参考论文中的实验部分。目前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