用PaddlePaddle 实现方针检测使命——Paddle Fluid v1.1深度测评
关于PaddlePaddle计较描写的详情可以参考Fluid编程指南:http://www.paddlepaddle.org/documentation/docs/zh/1.1/beginners_guide/programming_guide/programming_guide.html 3.3PaddlePaddle的模子库简介PaddlePaddle的焦点框架内置了很是多的经典模子和收集,涵盖了险些全部主流的呆板进修/深度进修使命,包罗图像、语音、天然说话处理赏罚、保举等诸多方面。由于本文是做方针检测,以是首要调研了一下图像方面的模子库,在此大抵先容一下。 3.3.1分类分类使命中的模子库是最全面的,AlexNet、VGG、GoogleNet、ResNet、Inception、MobileNet、Dual Path Network以及SE-ResNeXt,2012年以来的经典图像辨认收集都包括个中,每个收集模子是一个独立的py文件,内里是这个收集模子的类,类内里公用的要领是net(),在挪用时初始化对应的类之后挪用.net()要领,就可以获得对应收集的Program描写,之后只必要给收集feed数据、界说丧失函数、优化要领等就可以轻松行使了。分类模子作为图像使命的基本使命,在方针检测、语义支解等使命中城市一再操作这些模子,以是这样一个模子库可觉得大大简化后续使命的开拓事变。这部门的模子库里的写法较量同一,只要相识收集布局,用.net()要领挪用就可以,这里就纷歧一先容了,详细可以参考:https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/image_classification/models。 3.3.2方针检测SSD Single Shot MultiBox Detector (SSD) 是一种单阶段的方针检测器。与两阶段的检测要领差异,单阶段方针检测并不举办地区保举,而是直接从特性图回归出方针的界线框和分类概率。SSD 运用了这种单阶段检测的头脑,而且对其举办改造:在差异标准的特性图上检测对应标准的方针。如下图所示,SSD 在六个标准的特性图长举办了差异层级的猜测。每个层级由两个3x3卷积别离对方针种别和界线框偏移举办回归。因此对付每个种别,SSD 的六个层级一共会发生 38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 个检测功效。 SSD 方针检测模子 SSD 可以利便地插入到任何一种尺度卷积收集中,好比 VGG、ResNet 可能 MobileNet,这些收集被称作检测器的基收集。PaddlePaddle里的SSD行使Google的MobileNet作为基收集。 方针检测模子库差异于分类模子库,PaddlePaddle是以一个工程的情势提供SSD的模子库。工程内里包括如下文件: 个中,train.py、reader.py、mobilenet_ssd.py是与收集实习相干的文件,包罗数据读取、收集布局、实习参数等进程的界说都在这3个文件中;eval.py、eval_coco_map.py是收集猜测评估相干文件;infer.py是可视化猜测功效相干文件。Data文件夹用于存储数据集,行使时可以把实习集、测试集、验证集放在data目次下,reader会在data目次下探求图片数据加载;pretrained目次存放预实习模子,假如不想从新实习一个SSD,可以把预实习好的模子放在这个目次下,利便举办迁徙进修。 4.PaddlePaddle实现SSD的方针检测有了上述的一些基本,我们就可以轻松行使PaddlePaddle上手一些项目了。此刻我们就来实现一个基于SSD的方针检测使命。 4.1处事器设置体系:Ubuntu 16.04 GPU:NVIDIA GTX 1080*4 显存:8GB 情形:python 3.5 4.2框架设置Paddle Fluid v1.1 GPU版本 4.3数据筹备我们行使微软的COCO2017数据集来预实习模子(PaddlePaddle提供了一个基于COCO的预实习模子,可以直接行使),COCO数据集是微软团队获取的一个可以用来图像recognition+segmentation+captioning 数据集,其官方声名网址:http://mscoco.org/。微软在ECCV Workshops里颁发文章《Microsoft COCO: Common Objects in Context》更充实地先容了该数据集。COCO以场景领略为方针,从伟大场景中截取了328,000张影像,包罗了91类方针和2,500,000个label。整个COCO2017数据集20G,官网下载很是慢,可以在海内找一些镜像站下载,数据集里分好了实习集、测试集和验证集,标注和file_list用json文件生涯。 拿到预实习数据集后,我们在Pascal VOC数据集上对模子举办进一步实习,做一下微调。Pascal VOC数据集相较COCO数据集来说图片数目和种类小许多,共计20类,11540张实习图片,标注回收xml名目文件生涯。 4.4数据读取图片名目为jpg,必要对图像举办转码读取,SSD中的reader.py文件辅佐我们实现了这个成果,内置的数据读取行使了一个天生器来逐个batch读取图片并转码,这样内存占用率很是低。因为我们呆板内存不大,配置的batch为32,在此环境下load十万张图片的annotation只必要17秒阁下,每一个batch的load+train时刻只必要0.3秒阁下。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |