专栏首页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

本文分享自微信公众号 - PaddlePaddle(PaddleOpenSource)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PaddlePaddle实战 | 经典目标检测方法Faster R-CNN和Mask R-CNN

    机器视觉领域的核心问题之一就是目标检测(objectdetection),它的任务是找出图像当中所有感兴趣的目标(物体),确定其位置和大小。作为经典的目标检测框...

    用户1386409
  • 模型训练太慢?显存不够?这个方法让你的GPU联手CPU

    随着深度学习模型复杂度和数据集规模的增大,计算效率成为了不可忽视的问题。GPU凭借强大的并行计算能力,成为深度学习加速的标配。然而,由于服务器的显存非常有限,随...

    用户1386409
  • 计算机视觉八大任务全概述:PaddlePaddle工程师详解热门视觉模型

    百度深度学习工程师,围绕计算机视觉领域的八大任务,包括:图像分类、目标检测、图像语义分割、场景文字识别、图像生成、人体关键点检测、视频分类、度量学习等,进行了较...

    用户1386409
  • xYOLO | 最新最快的实时目标检测

    随着物联网(IoT)、边缘计算和自主机器人等领域的车载视觉处理技术的出现,人们对复合高效卷积神经网络模型在资源受限的硬件设备上进行实时目标检测的需求越来越大。...

    计算机视觉研究院
  • 最全整理 | 万字长文综述目标检测领域,您要的,都在这里!

    目标检测是计算机视觉中的一个重要问题,近年来传统检测方法已难以满足人们对目标检测效果的要求,随着深度学习在图像分类任务上取得巨大进展,基于深度学习的目标检测算法...

    潘永斌
  • 目标检测101:一文带你读懂深度学习框架下的目标检测

    大数据文摘
  • 系统调用跟踪分析神器--strace

    最近遇到两起应用系统层面性能问题的案例,同事在排查问题的时候使用了strace这款神器,给自己在以后解决系统性能问题时提供了思路,本文学习了解系统分析工具---...

    用户1278550
  • 目标检测:Segmentation is All You Need ?

    对于目标检测,从滑动窗口时代开始,我们已经习惯了候选区域特征提取然后分类的套路,深度学习时代强大的特征表示能力让我们能够探索不一样的道路,比如:

    CV君
  • 行人检测系统原理与实现(一)【计算机视觉】

    过去的一年我都在忙着实现我的本科毕业设计课题项目:行人检测系统。我们团队的目标是实时检测现场CCTV摄像机视频流中出现的行人。本文是对此项目的简要总结,同时对我...

    用户1408045
  • 055 警告: 未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。

    将签名命令上加一段话: -digestalg SHA1 -sigalg MD5withRSA 加上后就可以了

    上善若水.夏

扫码关注云+社区

领取腾讯云代金券