125.人工智能-PaddleDetection实现行人检测

本文主要使用飞桨的PaddleDetection开发套件来实现行人检测

数据集:MOT20-COCO ,coco格式,解压到PaddleDection的dataSet/coco中

一、安装PaddleDetect

1、PaddleDetection代码库下载,支持github和gitee源。

!git clone https://gitee.com/paddlepaddle/PaddleDetection.git
#运行信息Cloning into 'PaddleDetection'...remote: Enumerating objects: 27523, done.remote: Counting objects: 100% (7993/7993), done.remote: Compressing objects: 100% (3200/3200), done.remote: Total 27523 (delta 5979), reused 6496 (delta 4772), pack-reused 19530Receiving objects: 100% (27523/27523), 283.97 MiB | 11.38 MiB/s, done.Resolving deltas: 100% (20528/20528), done.Checking connectivity... done.Checking out files: 100% (1973/1973), done.
#更换目录,并安装PaddleDetection%cd PaddleDetection! pip install paddledet -i https://mirror.baidu.com/pypi/simple或编译安装!python setup.py install
#验证安装是否成功!python ppdet/modeling/tests/test_architectures.py
#运行信息W0809 08:19:04.509773  4701 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1W0809 08:19:04.514896  4701 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6........----------------------------------------------------------------------Ran 7 tests in 0.875sOK

二、解压数据集压缩文档到指定的dataset/coco目录中

!unzip -d dataset/coco -o data/data87561/MOT20-coco.zip

三、模型配置与训练

1、选择:YOLOX-m,配置文件:configs/yolox/yolox_m_300e_coco.yml

模型库

#yolox_m_300e_coco.yml文件信息_BASE_: [  '../datasets/coco_detection.yml',  '../runtime.yml',  './_base_/optimizer_300e.yml',  './_base_/yolox_cspdarknet.yml',  './_base_/yolox_reader.yml']depth_mult: 0.67width_mult: 0.75log_iter: 100snapshot_epoch: 10weights: output/yolox_m_300e_coco/model_finalconfigs/datasets/coco_detection.yml

2、修改:configs/datasets/coco_detection.yml中的num_classes: 1,

#coco_detection.yml文件信息,metric: COCOnum_classes: 1TrainDataset:  !COCODataSet    image_dir: train2017    anno_path: annotations/instances_train2017.json    dataset_dir: dataset/coco    data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']EvalDataset:  !COCODataSet    image_dir: val2017    anno_path: annotations/instances_val2017.json    dataset_dir: dataset/cocoTestDataset:  !ImageFolder    anno_path: annotations/instances_val2017.json # also support txt (like VOC's label_list.txt)    dataset_dir: dataset/coco # if set, anno_path will be 'dataset_dir/anno_path'

3、修改:configs/yolox/_base_/optimizer_300e.yml:epoch: 10(减少训练时间)

4、开始训练,预估训练完成要花2个多小时,感觉算力太重要了

!python tools/train.py -c configs/yolox/yolox_m_300e_coco.yml --amp --eval
#训练过程部分W0809 10:53:09.184935  1650 gpu_resources.cc:91] device: 0, cuDNN Version: 8.2.[08/09 10:53:17] ppdet.engine INFO: Epoch: [0] [   0/1006] learning_rate: 0.000000 loss: 10.703002 loss_cls: 2.085776 loss_obj: 4.708332 loss_iou: 0.781779 loss_l1: 0.000000 size: 608.000000 eta: 22:11:56 batch_cost: 7.9440 data_cost: 3.3122 ips: 1.0071 images/s[08/09 10:54:48] ppdet.engine INFO: Epoch: [0] [ 100/1006] learning_rate: 0.000004 loss: 10.682548 loss_cls: 1.872797 loss_obj: 4.725732 loss_iou: 0.813314 loss_l1: 0.000000 size: 624.000000 eta: 2:34:03 batch_cost: 0.8579 data_cost: 0.0003 ips: 9.3254 images/s[08/09 10:56:17] ppdet.engine INFO: Epoch: [0] [ 200/1006] learning_rate: 0.000016 loss: 10.652306 loss_cls: 1.949500 loss_obj: 4.698775 loss_iou: 0.801429 loss_l1: 0.000000 size: 608.000000 eta: 2:24:54 batch_cost: 0.8351 data_cost: 0.0003 ips: 9.5801 images/s[08/09 10:57:48] ppdet.engine INFO: Epoch: [0] [ 300/1006] learning_rate: 0.000036 loss: 10.476755 loss_cls: 1.993784 loss_obj: 4.573769 loss_iou: 0.786735 loss_l1: 0.000000 size: 640.000000 eta: 2:22:01 batch_cost: 0.8558 data_cost: 0.0003 ips: 9.3483 images/s

四、模型测试

!python tools/infer.py -c configs/yolox/yolox_m_300e_coco.yml -o weights=output/yolox_m_300e_coco/model_final.pdparams --infer_img=dataset/coco/test2017/04000009.jpg


源图

预测结果


最后说明,从整个项目准备到模型测试,其中感受最大的就是算力的重要性,数据集稍微大一些的话,训练就非常耗时,而且训练容易失败。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章