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

PaddleDetection代码分析和训练数据集(2)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PaddleDetection代码分析和训练数据集(2)

2021SC@SDUSC

paddledetection作为国内出名的应用于目标检测框架,想要搞明白并不是一件非常容易的事,在分析代码之前,要首先知道如何使用它

举个例子 我们现在有一份数据集 我们需要训练这份数据集 该怎么办呢

方法如下:

1.转换格式 将这份数据集的格式转换成我们的PaddleDetection可以操作的格式,比如COCO或VOC数据集格式
如果需要转化的数据集格式是labelme或者cityscape的 一般使用x2coco.py(在tools目录下)来转化成coco格式

问题1:如何判断自己得到数据集格式?
labelme数据集

打开预先准备好的数据集,如果文件目录为 

 这就是labelme格式的数据集 其中image放的原始图片 label放的二值化灰度图(举个例子)

image的png图                           

对应的label

 cityscape数据集 
  对应目录  里面内容不再赘述 小白如果不知道可以去搜索

 问题2:如何开始转换?
找到x2coco.py所在路径 在此处资源管理器执行cmd

 执行以下命令

python ./ppdet/data/tools/x2coco.py
                --dataset_type labelme
                --json_input_dir ./labelme_annos/
                --image_input_dir ./labelme_imgs/
                --output_dir ./cocome/
                --train_proportion 0.8
                --val_proportion 0.2
                --test_proportion 0.0
--dataset_type:需要转换的数据格式,目前支持:'labelme'和'cityscape'
--json_input_dir:使用labelme标注的json文件所在文件夹
--image_input_dir:图像文件所在文件夹
--output_dir:转换后的COCO格式数据集存放位置
--train_proportion:标注数据中用于train的比例
--val_proportion:标注数据中用于validation的比例
--test_proportion:标注数据中用于infer的比例
此处参考大佬

VOC数据集所必须的文件内容如下所示,数据集根目录需有VOCdevkit/VOC2007或VOCdevkit/VOC2012文件夹,该文件夹中需有Annotations,JPEGImages和ImageSets/Main三个子目录,Annotations存放图片标注的xml文件,JPEGImages存放数据集图片,ImageSets/Main存放训练trainval.txt和测试test.txt列表。

  VOCdevkit
  ├──VOC2007(或VOC2012)
  │   ├── Annotations
  │       ├── xxx.xml
  │   ├── JPEGImages
  │       ├── xxx.jpg
  │   ├── ImageSets
  │       ├── Main
  │           ├── trainval.txt
  │           ├── test.txt

执行以下脚本,将根据ImageSets/Main目录下的trainval.txt和test.txt文件在数据集根目录生成最终的trainval.txt和test.txt列表文件:

python dataset/voc/create_list.py -d path/to/dataset

2.选择模型
根据需求选择一个合适的模型

PaddleDetection中提供了丰富的模型库,具体可在模型库中查看各个模型的指标,您可依据实际部署算力的情况,选择合适的模型:

算力资源小时,推荐您使用移动端模型,PaddleDetection中的移动端模型经过迭代优化,具有较高性价比。
算力资源强大时,推荐您使用服务器端模型,该模型是PaddleDetection提出的面向服务器端实用的目标检测方案。
同时也可以根据使用场景不同选择合适的模型:

当小物体检测时,推荐您使用两阶段检测模型,比如Faster RCNN系列模型,具体可在模型库中找到。
当在交通领域使用,如行人,车辆检测时,推荐您使用特色垂类检测模型。
当在竞赛中使用,推荐您使用竞赛冠军模型CACascadeRCNN与OIDV5_baseLINE_MODEL。
当在人脸检测中使用,推荐您使用人脸检测模型。
同时也可以尝试PaddleDetection中开发的YOLOv3增强模型、YOLOv4模型与Anchor Free模型等。
 

剩下两个步骤在我的下一篇博客中 此处开始分析已经看的源码

因为我负责分析的是特色垂类检测模型

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

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号