多目标检测:基于Yolo优化的多目标检测(附论文下载)

关注并星标

从此不迷路

计算机视觉研究院

77a0b0e5b4b7e08fee7436d6a26c6bb7.gif

d67f2ec8aba87d25259cd0a952f326cd.gif

83b3f44fc15ea4719c6eb4f9d38d127f.png

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

c53854242a850ee66e5939bdfce52331.png

计算机视觉研究院专栏

作者:Edison_G

为了解决目标检测任务中小目标检测精度低、误检、漏检率高等问题,有研究者提出了一种新的目标检测方法。

一、前言

为了解决目标检测任务中小目标检测精度低、误检、漏检率高等问题,有研究者提出了一种基于YOLOv4卷积神经网络的多目标检测方法。 目标检测作为目标检测领域的一个重要研究方向,一直受到研究人员的广泛关注。目前,在智能交通、智能辅助驾驶和视频监控等领域已经产生了深入的研究。

3f85dbdcc059240c58f65c5e9469256d.jpeg

传统的行人检测方法,如HOG(定向梯度直方图)、DPM(可变形部件模型)、ACF(聚合通道特征),都采用人工设计或特征聚合来获取行人特征。随着2012年AlexNet在图像分类任务上的重大突破,利用卷积神经网络自动学习特征提取过程代替传统的人工设计是当前的主要研究方向。基于卷积神经网络的目标检测方法主要分为两类,一类是两阶段方法,一类是单阶段方法。

7c11852f2da59600e519b1011eafaf1d.jpeg

第一种方法的主要思想是在生成候选目标区域的基础上,利用级联方法进一步判断边界框的类别和位置。另一种是单阶段方法,以YOLO和SSD为例。思路是使用卷积神经网络直接返回位置和类别。卷积神经网络的引入提高了行人检测算法的性能,但遮挡问题仍然是行人检测的一大难点。有文献【Deep learning strong parts for pedestrian detection】使用联合学习方法对不同的行人遮挡模式进行建模,但其检测框架复杂且无法穷尽所有情况。【Repulsion Loss: Detecting Pedestrians in a Crowd】设计了一种新的损失函数,使预测帧与目标真实帧保持接近,同时远离其他真实帧。这种方法处理遮挡更灵活,更容易实现。【Occlusion-aware R-CNN: Detecting Pedestrians in a Crowd】结合了上述两种思想,提出了一个组件遮挡感知单元和一个聚合损失函数来处理行人遮挡问题。【Bi-box Regression for Pedestrian Detection and Occlusion Estimation】通过引入新的监督信息(行人可见区域的边界框)来处理遮挡,思路是用两个分支网络分别返回行人的全身框架和可见区域的边界框,最后合并两个分支的结果,提高检测性能。

535b007a9507686a7fc8803e6e30ce8e.jpeg

目前目标检测任务主要针对不同的应用场景选择合适的检测算法:单阶段算法检测速度最快,但准确率较低;两阶段和多阶段检测算法可以获得更高的检测精度,但以牺牲检测速度为代价。

二、概要

今天分享的框架,新的方法基于YOLOv4。 高层特征的语义信息首先通过FPN采样传播到低层网络,然后与底层特征的高分辨率信息融合,以提高小目标检测对象的检测效果。 通过对特征金字塔进行下采样来增强从底部到顶部的信息传递路径,最后融合不同层的特征图以实现相关预测。 实验证明,新提出的方法具有良好的效果。

三、新框架

2568a1187eeea7174ecbe31f4c80acec.png

新的模型架构如上图所示。它由三部分组成:用于特征提取的前端网络、特征融合模块和用于分类和回归操作的检测模块。在输入处将输入图像的尺寸resize为416×416,输入到网络中进行训练和检测。 基本卷积块是一个卷积层,它结合了批量归一化 (BN) 并使用Mish和leakyRelu激活函数。

模型前端使用CSPDarknet模块组成的主干网络,由卷积层和残差模块叠加,有效防止在网络层数加深的基础上梯度消失或爆炸,获得更丰富的语义信息特征图,并且在主干网络中,特征图维度的减少是通过卷积层的5倍下采样实现的,其步长为2,内核大小为3;对网络neck处进行2次上采样,浅层采用PAN+SPP模型结构实现浅层特征与高层语义特征的融合以及多尺度感受野的融合,充分利用了浅层网络,改善小目标特征丢失的问题;检测头采用回归+分类的思想,将输入图像分别划分为76×76、38×38、19×19三种不同尺寸的网格图像,分别实现小目标、中目标和大目标的检测目标。

SPP模块:

该模型在主干网络后面添加了SPP模块,如下图所示。输入特征图经过一个卷积层后,经过5×5、9×9、13×13三个核进行最大池化, 然后concat得到的特征图进行通道拼接,输出通道数变成原来通道数的4倍,特征图大小保持不变。

fbcfeed1a70caadb4c591a37748bac9e.jpeg

输出特征图大小为:

ff332bee3686e4393aa453bb527eb223.jpeg

其中n是输入特征图的大小,p是padding,s是步长,这意味着向下取整。SPP模块通过使用不同大小核的Maxpool层获取特征图局部区域的感受野信息和接近全局的感受野,并进行特征融合。这种融合不同尺度感受野的操作可以有效丰富特征图的表达能力,增强骨干网络输出特征的接受范围,分离重要的上下文信息。

四、实验及可视化

90d30220ac3095416f28fb851edae28d.png

e0ae1d2a0a06f49539a4a50590e924df.png

© THE END 

转载请联系本公众号获得授权

ef919dc97670dcc0e65259e3dcbcd4fd.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

f8868ca7cd8f6ec1b210c763791785de.jpeg

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

🔗

  • Fast YOLO:用于实时嵌入式目标检测(附论文下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)

  • 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏)

  • 半监督辅助目标检测:自训练+数据增强提升精度(附源码下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载)

  • Sparse R-CNN:稀疏框架,端到端的目标检测(附源码)


http://www.niftyadmin.cn/n/310914.html

相关文章

mysql编码问题

# 查看数据库和数据库表中编码集 show CREATE database newdjangodb; show CREATE table newdjangoapp_department ; show CREATE table newdjangoapp_userinfor; # 查看表信息 desc newdjangodb.django_migrations; # 查看编码信息 show character set ; # 修改表编码集 alt…

未面试蓄力,redis肝起来

目录 1、为什么要使用Redis做缓存?2、为什么Redis单线程模型效率也能那么高?3、Redis6.0为什么要引入多线程呢?4、Redis常见数据结构以及使用场景字符串(String)哈希(Hash)列表(list)集合&#…

【MySQL】(9)索引

文章目录 基础知识局部性原理扇区,磁盘块,页磁盘预读B树B树,B树和B树的区别MySQL 与磁盘交互的基本单位 索引是什么聚簇索引与非聚簇索引索引操作创建主键索引创建唯一索引普通索引的创建全文索引的创建使用查询索引删除索引 索引创建原则复合…

vue2实现高德地图 JSAPI 2.0海量点标记(标注和标注图层)->自定义点位->定时刷新点位

前提: 需要注册高德开放平台,之后创建应用并且开通Web端(JS API)平台,然后拿到securityJsCode和key 1. 基础抽取(还原示例) 1.1 组件代码 代码说明: 需要修改securityJsCode和key为自己的allowCollision为标注是否避让marker,默认为false不避让markers为地图上的标记数组layer…

我有妙招-使用element-ui的el-tree组件setCheckedKeys设置无效的解决办法/setCheckedNodes设置不上数据

使用element-ui的el-tree组件setCheckedKeys设置无效的解决办法/setCheckedNodes设置不上数据 当我们使用el-tree时经常会涉及到回显,有的时候回显失败怎么解决,下面是我常用的两种回显方式 第一种: const filterA [1,2];//数组里是数字还…

Xcode安装ipa

iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。​ 非常的方便,没有Mac也可以用Ap…

Robbin负载均衡详解及实践---SpringCloud组件(三)

Robbin负载均衡详解及实践 一 为什么使用Robbin?二 Robbin概念三 负载均衡实践1.启动eureka客户端2.启动多个provider服务,注册到eureka3.在consumer端配置负载均衡参数 一 为什么使用Robbin? 在Eureka详解及实践—SpringCloud组件(二)案例中…

GeoTools实战指南: 切割矢量地图数据并导出为Google-XYZ标准的瓦片

GeoTools实战指南: 切割矢量地图数据并导出为Google-XYZ标准的瓦片 介绍 本教程将介绍如何使用 GeoTools 库将 Shapefile 矢量数据渲染为 Google Maps XYZ 切片。此过程包括读取 Shapefile 数据,设置地图样式,计算切片地理范围,并将矢量数据渲染为切片。 TMS (瓦片地图服…