前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强烈推荐 | 基于飞桨的五大目标检测模型实战详解

强烈推荐 | 基于飞桨的五大目标检测模型实战详解

作者头像
用户1386409
发布2019-06-21 21:47:32
1.5K0
发布2019-06-21 21:47:32
举报
文章被收录于专栏:PaddlePaddle

机器视觉领域的核心问题之一就是目标检测(object detection),它的任务是找出图像当中所有感兴趣的目标(物体),确定其位置和大小。对于人类来说,目标检测是一个非常简单的任务。然而,计算机能够“看到”的是图像被编码之后的数字,很难解图像或是视频帧中出现了人或是物体这样的高层语义概念,也就更加难以定位目标出现在图像中哪个区域。

与此同时,由于目标会出现在图像或是视频帧中的任何位置,目标的形态千变万化,图像或是视频帧的背景千差万别,诸多因素都使得目标检测对计算机来说是一个具有挑战性的问题。百度自研的深度学习平台飞桨(PaddlePaddle)开源了用于目标检测的一系列模型,从而可以快速构建强大的应用,满足各种场景的应用,包括但不仅限于安防监控、医学图像识别、交通车辆检测、信号灯识别、食品检测等等。

项目地址:

https://github.com/PaddlePaddle/models/tree/v1.4/PaddleCV

经典的单阶段的目标检测器SSD

Single Shot MultiBox Detector (SSD) 是一种单阶段的目标检测器。与两阶段的检测方法不同,单阶段目标检测并不进行区域推荐,而是直接从特征图回归出目标的边界框和分类概率。SSD 运用了这种单阶段检测的思想,并且对其进行改进:在不同尺度的特征图上检测对应尺度的目标。

如下图所示,SSD 在六个尺度的特征图上进行了不同层级的预测。每个层级由两个3x3卷积分别对目标类别和边界框偏移进行回归。因此对于每个类别,SSD 的六个层级一共会产生 38x38x4 + 19x19x6 + 10x10x6 +5x5x6 + 3x3x4 + 1x1x4 = 8732 个检测结果。SSD 可以方便地插入到任何一种标准卷积网络中,比如 VGG、ResNet 或者MobileNet,这些网络被称作检测器的基网络。

表:SSD模型评估结果

项目地址:

https://github.com/PaddlePaddle/models/blob/v1.4/PaddleCV/object_detection/README_cn.md

运行速度大大提升的Faster R-CNN

Faster R-CNN,区域生成网络(RPN)+Fast RCNN的实现,将候选区域生成、特征提取、分类、位置精修统一到一个深度网络框架,大大提高运行速度。作为经典的目标检测框架,虽然是2015年的论文,但是它至今仍然是许多目标检测算法的基础,这在飞速发展的深度学习领域十分难得。

Faster R-CNN整体网络可以分为4个主要内容:

  • 基础卷积层(CNN):作为一种卷积神经网络目标检测方法,Faster R-CNN首先使用一组基础的卷积网络提取图像的特征图。特征图被后续RPN层和全连接层共享。
  • 区域生成网络(RPN):RPN网络用于生成候选区域(proposals)。该层通过一组固定的尺寸和比例得到一组锚点(anchors), 通过softmax判断锚点属于前景或者背景,再利用区域回归修正锚点从而获得精确的候选区域。
  • RoI Pooling:该层收集输入的特征图和候选区域,将候选区域映射到特征图中并池化为统一大小的区域特征图,送入全连接层判定目标类别,该层可选用RoIPool和RoIAlign两种方式,在config.py中设置roi_func。
  • 检测层:利用区域特征图计算候选区域的类别,同时再次通过区域回归获得检测框最终的精确位置。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/rcnn

像素级别检测的MaskR-CNN

FasterR-CNN 在物体检测中已达到非常好的性能,Mask R-CNN在此基础上更进一步:得到像素级别的检测结果。对每一个目标物体,不仅给出其边界框,并且对边界框内的各个像素是否属于该物体进行标记。Mask R-CNN同样为两阶段框架,第一阶段扫描图像生成候选框;第二阶段根据候选框得到分类结果,边界框,同时在原有Faster R-CNN模型基础上添加分割分支,得到掩码结果,实现了掩码和类别预测关系的解藕。MaskR-CNN斩获了ICCV2017年的最佳论文,并且在实例分割、目标检测、人体关键点检测三个任务都取得了很好的效果。

项目地址:

https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/rcnn

速度和精度均衡的YOLO v3

YOLO 创造性的提出one-stage,就是目标定位和目标识别在一个步骤中完成。由于整个检测流水线是单个网络,因此可以直接在检测性能上进行端到端优化,使得基础YOLO模型能以每秒45帧的速度实时处理图像,较小网络的Fast YOLO每秒处理图像可达到惊人的155帧。

YOLO v3保持了YOLO的速度优势,提升了模型精度,尤其加强了小目标、重叠遮挡目标的识别,补齐了YOLO的短板,是目前速度和精度均衡的目标检测网络。基于飞桨(PaddlePaddle)的YOLO v3实现,参考了论文【Bag of Tricks for ImageClassification with Convolutional NeuralNetworks】,增加了mixup,label_smooth等处理,精度(mAP(0.5:0.95))相比于原作者的实现提高了4.7个绝对百分点,在此基础上加入synchronize batchnormalization, 最终精度相比原作者提高5.9个绝对百分点。

表:模型评估结果

表:模型预测速度

项目地址:

https://github.com/PaddlePaddle/models/blob/v1.4/PaddleCV/yolov3/README_cn.md

2018WIDER FACE三料冠军PyramidBox

PyramidBox 是一种基于SSD的单阶段人脸检测器,利用上下文信息解决非受控场景中的小脸、模糊和遮挡的人脸检测的技术难题。PyramidBox在六个尺度的特征图上进行不同层级的预测,主要包括以下模块:LFPN、Pyramid Anchors、CPM、Data-anchor-sampling。WIDER FACE共包括3万多张图片近40万个人脸,是目前国际上规模最大、场景最为复杂、难度和挑战性最高的人脸检测公开数据集。

由于更高的难度、更准确的标注和评测信息,近年来WIDER FACE成为研究机构和公司争相挑战的业界标杆。2018年3月, PyramidBox模型在WIDER FACE的“Easy”、“Medium”和“Hard”三项评测子集中均荣膺榜首。PyramidBox模型在有一千张人脸的示例图片上展示鲁棒的检测性能,检测出其中的880张人脸。

项目地址:

https://github.com/PaddlePaddle/models/blob/v1.4/PaddleCV/face_detection/README_cn.md

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PaddlePaddle 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档