这是我参加8月更文应战的第9天

软硬件环境

  • ubuntu 18.04 64bit
  • nvidia 1070Ti
  • anaconda with python 3.7
  • cuda 10.1
  • cudnn 7.6
  • paddlepaddle 1.8.4
  • pahttpclientddledetection 0.5

简介

引用官方的项目介绍

PaddleDetection飞桨方针检测开发套件,旨在协助开发者更快更好地完结检测模型github永久回家地址的组成、练习、优化及安顿等全开发流程。PaddleDetection模块化地实现了多种干流方针检测算法,供应了丰厚的数据增强github永久回家地址战略、网络模块组件(如主干网络)、丢掉函数等,并集成了模型紧缩和跨渠道高功用安顿能力。通过长时间工业实践打磨,Pgithub永久回家地址addleDetection已具有顺利、出色的运用领会,被工业质检、遥感图像检测、无人巡检、新零售、互联网、科研等十多个作业的开发者广泛应用。

总结成一句话便是十分牛逼!

再来看看套件结构概览

Architectures Backbones Components Data Augmentation
  • Two-Sgithub敞开私库tage Detection
    • Faster RCNN
    • FPN
    • Cascade-RCNN
    • Libra RCNN
    • Hybrid Task RCNN
    • PSS-Det RCNN
  • One-Stage Detection
    • RetGitHubinaNet
    • YOLOv3
    • YOLOv4
    • PP-YOLO
    • SSD
  • Anchor Free
    • CornerNet-Squeeze
    • FCOS
    • TTFNet
  • Instance Segmentathttp 500ion
    • Mask RCNN
    • SOLOv2
  • Face-DUbuntuetction
    • FaceBoxegithub永久回家地址s
    • BlazeFace
    • BlazeFace-NAS
  • ResNet(&aUbuntump;vd)
  • ResNeXt(&vgithub直播渠道永久回家d)
  • SENet
  • Res2Net
  • HRNet
  • Hourglass
  • CBNet
  • GCNet
  • DarkNet
  • CSPDarkNet
  • VGG
  • MobileNetv1/v3
  • GhostNet
  • Effiubuntu指令cientnet
  • Common
    • Syncscala教程-BN
    • Group Nhttp 302orm
    • DCNv2
    • Non-scalabilitylocal
  • FPN
    • BiFPN
    • BFP
    • HRFPN
    • ACFPN
  • Lohttp://192.168.1.1登录ss
    • Smgithub下载ooth-L1
    • GIoU/DIoU/CIoU
    • IoUAware
  • Post-processing
    • SoftNMS
    • MatrixNMS
  • Speed
    • FP16 training
    • Multi-machine training
  • Resize
  • Flipping
  • Expand
  • Crop
  • Color Distort
  • Random Erasing
  • Miscala装置xup
  • Cutmix
  • Grid Mask
  • Auto Augment

眼睛都看花了,支撑scalar的也太xx全面了。除了功用,再来看看功用

各模型ubuntu体系结构和主干网络的代表模型在COCO数据集上精度mAP和单卡Tesla V100上猜测httpwatch速度(FPS)比照图

PaddleDetection方针检测套件

图中github直播渠道永久回家模型均可在模型库中获取,地址是 github.com/PaddlePaddl…

设备PaddlePaddle

飞桨(PaddlePaddle)是百度研制的我国首个开源敞开、技术抢先、功用完备的工业级深度学习渠道,集深度学习中心练习和推理结构、基础模型库、端到端开发套件和http 500丰厚github下载的东西组件于一体。

首要创立pgithub打不开ython的虚拟环境,然后设备paddlepaddle-gpu

conda crgithub永久回家地址eate -n ppdetection python=3.7
conda activate ppdetehttp://192.168.1.1登录ction
pip install paddlepaddle-gpu==1.8.4.post107 -i https://mirror.baidu.com/pypi/simple

假如需求运用到多gpu的话,还要设备nvidiaNCCL结构,它是用来进行多卡通讯的,下载地址是 developer.nvidia.com/nccl/nccl-d…,选择匹配CUDA版别的github下载下载

运用以下ubuntu装置指令进行验证

(ppdetection) xugaoxiang@1070Ti:~/Works/github/PaddleDetection-release-0.5$ ipython
Python 3.7.9 (default, Aug 31 2020, 12:42:55)
Type 'copyright', 'credits' or 'license' fogithub永久回家地址rGitHub more ihttp协议nformation
IPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import paddgithub下载le.fluid as fluid
In [2]: fluscalarid.install_check.run_check()
Running Verify Fluid Prubuntu指令oggithub中文官网网页ram ...
W1208 13github中文社区:28:59.964426ubuntu是什么操作体系 1325ubuntu装置1 device_httpclientcontgithub官网ext.cc:252] Please NOTE: device: 0, CUDA Capability: 61, Driver API Version: 11.0, Runtime API Version: 10.0
W1208 13:29:00.090900 13251 device_contexthttpclient.cc:260] device: 0, cuDNN Version: 7.6.
Your Paddle Fluid works well on SINGLE GPU or CPU.
Your Paddle Fluscalability优化id works well on MUTIPLE GPU or CPubuntu和linux的差异U.
Your Paddlehttp://www.baidu.com Fluidubuntu体系菜鸟入门 is installed successfhttp署理ully! Let's start deep Learning withscalar Paddle Fluid now
In [3]: import paddle
In [4]: paddle.__version__
Out[4]: '1.8.4'
In [5ubuntu和linux的差异]:

设备其它依托

pip install pycocotools

设备PaddleDetection

目前最新的版别是0.5,下载后进入目录设备必要的依托

wget https://github.com/PaddlePaddle/PaddleDetubuntu分区ection/archive/release/0.5.zip
unzip PaddleDetection-release-0.5.zip
cscala怎样读d PaddleDetection-release-0.5
pip insubuntu指令tall -r requirements.txt

承认下面检验通过

(ppdetection) xugaoxiang@1070Ti:~/Works/github/PaddleDetection-release-0.5$ python ppdet/modeling/tests/test_architectures.ubuntu分区py
ss/home/xugaoxiang/Works/github/PaddleDhttpclientescalabilitytection-release-0.5/ppdet/core/workspace.py:118: DeprecationWarninscalability优化g: Using or importing the ABCsubuntu体系菜鸟入门 from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
isinstance(merge_dct[k], collections.Mapping)):
..........
----------------------------------------------------------------------
Ran 12 testshttp 302 in 2.866s
OK (skipped=2)

运用官方供应的预练习模型猜测图片,快速领会模型猜测效果

# 通过use_gpu参数设置是否运用GPU
python tools/infer.py -c configs/ppyolo/ppyolo.yml -o use_gpu=true weights=https://paddlemodels.bj.bcebhttpclientos.com/object_ubuntu体系detection/ppyolo.pdparams --infer_img=demo/000000014439.jpg

程序工作完毕后,会在output文件夹下生成一个画有猜测成果的同名图像

PaddleDetection方针检测套件

PaddleDetection方针检测套件

PaddleDetection方针检测套件

模型练习

这儿以paddledetection自带的苹果、香蕉和桔子数据集为例,官方代码中供应了下载脚本及配置文件

cd dataset/fruit
# 下载数据集,vod格式
python download_fruit.py

这个生果数据集是选用的VOC格式,下载完结后,目录结构是这样的

PaddleDetection方针检测套件

接下来就可以初步练习了,这儿运用YOLOv3作为练习模型,backbonemobilenet_v1

python tools/train.http署理py -c configs/yolov3_mobilenet_v1_fruit.yml --eval

其间-c指定练习配置文件,--eval表明边ubuntu是什么操作体系练习边检验,配置文件scala教程中的参数说明可以参看 github.com/PaddlePaddl…,十分的详细

PaddleDetection方针检测套件

通过visualdl指令可以实时查看改动曲线

# 设置visualdl参数
python toolshttp 404/train.py -c confgithub打不开igs/yolov3_mobilScalaenet_v1_roadsign.yml --eval -o use_gpu=true --use_vdl=True --vdl_log_dir=vdl_dir/scalar
# 翻开visualdl
visualdl --lubuntu装置ogdir vdl_dir/scalar/ --host <host_IP> --port <port_num>

PaddleDetection方针检测套件

练习好的模型存放在output/scalaryolov3http 404_mobilenet_v1_ubuntu体系菜鸟入门fruit

PaddleDetection方针检测套件

运用练习好的模型进行猜测

# 运用参数--infer_dir来猜测图片文件夹
python tools/infer.py -c configs/yolov3_mobilenet_v1_fruit.yml -o wegithub打不开ights=output/yolov3github永久回家地址_mobilenet_v1_fruit/best_model.pdmodel --infer_img=demo/orange_71.jpg --output_dir=output

PaddleDetection方针检测套件

PaddleDetection方针检测套件

安顿

运用PaddleServing安顿方法,首要设备ubuntu装置教程依托github敞开私库paddle-sescala教程rving-clientpaddle-serving-servubuntu装置er-gpu

pip install paddle-serving-client -i https://mirror.baiduscala怎样读.com/HTTPpypi/simple
pip install paddle-serviscalableng-servscalareubuntu体系r-gpu -i https://mirror.baidu.com/pypi/subuntu分区imple

导出模块

python tools/export_serving_model.py -c configs/yoloscalarv3_mobilenet_v1_fruiScalat.yml -o use_gpu=true weights=output/yolov3_mobilenet_v1_fruit/best_model.pdmodel --outputgithub敞开私库_dir=./inference_model

以上指令会在Ubuntu./infescala教程rence_model文件GitHub夹下生成一个yolov3_mobilenet_v1_fruit文件夹,目录结构是这样的

inference_model
│   ├── yolov3_mobilenet_v1_fruit
│   │   ├── infer_cfg.yml
│   │   ├── serving_client
│   │   │   ├── serving_client_conf.prototxt
│   │   │   ├── serving_client_conf.strscalability优化eam.prototxt
│   │   ├── serving_server
│   │   │   ├── conv1_bn_mean
│   │   │   ├── conv1_bn_offset
│   │   │   ├── conv1_bn_shttp://192.168.1.1登录cale
│   │   │   ├── ...

serving_client文件夹下serving_client_conf.prototxt详细说清楚模型输入输出信息,serving_client_Ubuntuconf.prototxt文件内容为:

feed_var {
name: "image"
alias_name: "image"
is_lod_tensor: false
feed_type: 1
shape: 3
shape: 608
shape: 608
}
feed_var {
name: "im_size"
alias_name: "im_size"
is_lod_tensor: false
feed_type: 2
shape: 2
}
fetch_var {
name: "multiclass_nms_0.tmp_0"
alias_namscalabilitye: "multiclass_nms_0.tmp_0"
is_lod_tensor:github永久回家地址 true
fetch_type: 1
shape: -1
}

接下来发起Paddgithub永久回家地址leServing服务,需求一贯开着

cd inference_modhttp://www.baidu.comel/yolscala怎样读ov3_mobilenetGitHub_v1_fruit
python -m paddle_servubuntu是什么操作体系ing_server_gpu.serve --model serving_server --port 9393 --gpu_ids 0

预备label_list.txt文件

cd inference_model/yolov3_mobilenet_v1_fruit
# 将生果数据集对应的label_list.txt文件拷贝到其时文件夹下
cp ../../dataset/fruit/label_list.txt .

初步检验

# 进入目录
cd inference_model/yolov3_mobilenet_v1github打不开_fruit/
# 检验代码 test_client.http 302py
python ../http 302../deploy/serving/test_client.py ../../demo/orangeScala_71.png

参看资料

  • xugaoxiang.com/2019/12/08/…
  • xugaoxubuntu装置教程iang.com/2020/09/24/…
  • xugaoxiang.com/2019/12/13/…
  • github.http 404com/PaddlePaddl…
  • www.paddlepaddle.org.cn/install/qui…