转载自 | 量子位
作者 | 允中
目标检测技术作为视觉技术届的顶梁柱,不仅单兵作战在人脸、车辆、商品、缺陷检测等场景有出色的表现,也是文本识别,图像检索、视频分析、目标跟踪等复合技术的核心模块,应用场景可谓比比皆是。
各界开发者对高精度、高效率的目标检测算法,以及便捷高效的开发、部署方式的追求可谓是极致的。但业界却缺少全面兼顾高性能算法、便捷开发、高效训练及完备部署的开源目标检测项目。百度飞桨端到端目标检测开发套件PaddleDetection重磅升级为2.0版本后,终于全面兼顾业界开发者的需求,成长为中国产业实践中目标检测领域一柄重器。
让我们先来概览一下PaddleDetection2.0本次升级内容:新增超越YOLOv4、YOLOv5 的PP-YOLOv2,1.3M 超超超轻量目标检测算法PP-YOLO Tiny,全面领先同类框架的RCNN系列算法,以及SOTA 的Anchor Free算法:PAFNet(Paddle Anchor Free)除全系列通用目标检测算法外,额外覆盖旋转框检测、实例分割、行人检测、人脸检测、车辆检测等垂类任务。全面支持动态图开发,压缩、部署等全流程方案打通,极大程度的提升了用户开发的易用性,加速了算法产业应用落地的速度。△ 图1 PaddleDetection2.0明星通用目标检测模型的性能着急的小伙伴可以直接传送门前往开源项目主页直接体验:https://github.com/PaddlePaddle/PaddleDetection而本篇也将为大家详细解读一下PaddleDetection2.0的升级内容,初步领略下这个检测重器的杀伤力:
1. PP-YOLOv2,比YOLOv4、YOLOv5更强!
自去年PP-YOLO一度成为产业实践最佳目标检测模型后,随着PaddleDetection2.0的发布,PP-YOLO也推出了v2版本。延续v1版本的理念,PP-YOLOv2持续深化考虑在产业实践中需要兼顾算法的精度和速度,PP-YOLOv2(R50)mAP从45.9%达到了49.5%,相较v1提升了3.6个百分点,FPS高达106.5FPS,超越了YOLOv4甚至YOLOv5!而如果使用RestNet101作为骨架网络,PP-YOLOv2(R101)的mAP更高达50.3%,并且比同等精度下的YOLOv5x快15.9%!完整论文请参考:https://arxiv.org/abs/2104.10419你无需再在眼花缭乱的目标检测算法中对比选择,用PP-YOLOv2就对了!
2. PP-YOLO Tiny,1.3M,比YOLO-Fastest、NanoDet更轻量!
随着物联网的快速发展,端侧芯片部署轻量化深度学习算法的需求越来越强烈,基于此,PaddleDetection 2.0 推出了经过深度优化后,体积仅为1.3M的超超超轻量目标检测算法—PP-YOLO Tiny。如下表所示,在coco val2017数据集测试,输入尺寸320px版本,mAP达到20.6,单张预测时延10.83ms(92.3FPS);输入尺寸416px版本,mAP达到22.7,单张预测时延15.48ms(64.6FPS)。比YOLO-Fastest、 NanoDet更强!
3. RCNN系列算法全面超越同类开发工具!
除了YOLO系列之外,PaddleDetection2.0 还将目标检测的基础两阶段系列算法—RCNN进行了整体升级。如表1可以清晰的看到,RCNN系列模型(Faster RCNN, Mask RCNN, Cascade RCNN等)在PaddleDetection进行训练,比mmDetection和Detectron2在更短的时间获得更高的精度!△ 表1:RCNN系列模型在PaddleDetection、mmDetection和Detectron2开发套件下,在COCO 2017 val集上的mAP对比结果
4. SOTA Anchor Free算法:PAFNet(Paddle Anchor Free)& PAFNet-Lite
相较于SSD、RCNN等系列各种Anchor-Based算法,Anchor-Free算法拥有更少的超参、更易配置、对多尺度目标检测效果更好等优点,但也存在检测结果不稳定、训练时间长等问题,是近些年科研领域的热点方向。飞桨当然一直紧跟全球科研动向,基于TTFNet进行多维度的优化,推出了在COCO数据集精度42.2,V100预测速度67FPS, 处于anchor free领域SOTA水平的PAFNet(Paddle Anchor Free)算法!同时提供移动端轻量级模型PAFNet-Lite,COCO数据集精度达到23.9,麒麟990芯片延时26ms。
5. 旋转框检测算法—S2ANet
在一般的的目标检测项目中,我们通常使用水平矩形框为检测框对目标进行框定。而在产业场景中,例如质检、遥感图像,目标往往是任意方向排列且长宽比差别比较大的, 用水平矩形框则会出现大量空白非目标的区域,且丢失了目标的朝向角度信息,例如图5 精度不能满足业务需求。旋转框目标检测算法就可以很好的解决这类问题,它在检测出四边形矩形框的同时可以同时获得旋转角度。PaddleDetection 2.0本次的升级,就新增了高性价比旋转框检测算法—S2ANet,方便开发者直接取用或进一步开发。△ 图5 左: 传统检测效果; 图6 右:S2ANet旋转框检测效果至此PaddleDetection共包含了19类共231个模型算法,其中动态图预训练模型70个,静态图预训练模型161个。其中包括PP-YOLO、RCNN、PAFNet系列等明星算法!覆盖通用目标检测、人脸检测、行人检测、车辆检测、旋转框检测、实例分割任务,得益于飞将框架和PaddleDetection套件本身的设计,算法训练的效率也超越同类开发工具!
1. 动态图开发,灵活调试代码
PaddleDetection 2.0基于PaddlePaddle 2.0.1版本,默认使用动态图进行开发,在这种模式下,每次执行一个运算,可以立即得到结果,而不是事先定义好网络结构再执行。用户也可以快速获取网络结构、每层输入输出和对应梯度信息等,并对应进行快速调整。这样用户可以更快速的组织代码,更容易的调试程序。
2.更便捷的安装方式
除了传统的git clone方式,PaddleDetection 2.0这次还新增了whl包的发布,用户可以直接通过pip install的方式安装,由此可以通过import ppdet的方式调用PaddleDetection 2.0下的API快速完成自己的检测任务。
为了进一步加速深度学习算法的产业落地,PaddleDetection 2.0动态图顺畅打通了算法的全流程部署。
在完成模型训练过程中或之后,PaddleDetection2.0方便支持开发者使用PaddleSlim对算法进行量化、蒸馏、裁剪等压缩优化,并支持快速将模型由动态图转化为静态图,实现模型的高效多平台预测部署。
1. 模型压缩能力
为了满足开发者对计算量、模型体积、运算速度等极致的追求,PaddleDetection 2.0动态图模式下基于PaddleSlim新增了多种模型压缩能力,包括剪裁,量化,蒸馏以及剪裁+蒸馏联合策略压缩方案,可大幅减少模型参数或者计算量,便于部署在受限的硬件环境中。由下表可以看出,量化策略为模型带来1.7%的精度提升,同时体积压缩3.71倍,速度提升1.46倍!而采用蒸馏+裁剪的联合策略,在精度几乎无损的情况下,体积压缩了3.05倍,加速1.58倍!△ 表3:基于YOLOv3-MobileNetv1模型进行模型压缩的效果对比
2. 预测部署能力
得益于飞桨预测库系列产品Paddle Inference、Paddle Lite和Paddle Serving的能力,PaddleDetection 2.0支持开发者快速在Linux、Windows、NV Jetson等多系统多平台进行算法部署,同时提供了Python预测和C++预测两种方式,覆盖主流目标检测算法。另外适配TensorRT,支持TensorRT动态尺寸输入及TensorRT INT8量化预测, 全面支持用户进行硬件加速。△ 表4:Tesla V100上各主流算法预测速度对比
本次PaddleDetection2.0的重磅升级,为开发者提供了目标检测领域全新的开发体验, mAP 50.3 的PP-YOLOv2超越YOLOv4、YOLOv5,1.3M 超轻量PP-YOLO Tiny超越YOLO-Fastest、NanoDet,RCNN系列算法全面领先其他框架水平,PAFNet(PaddleAnchorFree)SOTA,还覆盖了旋转框检测、实例分割、行人检测、人脸检测、车辆检测等任务。动态图的升级和全流程方案的打通,极大程度的提升了用户开发的易用性。不论你是学术科研工作者,还是产业开发者;不论你是刚入门的萌新,还是已经历练成为大神,PaddleDetection 2.0都能帮你更快的进行算法实验、获得高性能的目标检测算法、投入产业实用。
如此用心制作的高水准产品,期待业界开发者参与一同共建!
更多PaddleDetection信息,访问GitHub项目体验或Star:
https://github.com/PaddlePaddle/PaddleDetection
✄------------------------------------------------
双一流高校研究生团队创建 ↓
专注于计算机视觉原创并分享相关知识 ☞