Recent Advances in Deep Learning for Object Detection

2023-11-04

Abstract

目标检测是计算机视觉中的基本视觉识别问题,并且在过去的几十年中已得到广泛研究。 视觉目标检测旨在在给定图像中找到具有精确定位的特定目标类的对象,并为每个对象实例分配一个对应的类标签。 由于基于深度学习的图像分类取得了巨大的成功,因此近年来已经积极研究了使用深度学习的目标检测技术。在本文中,我们对深度学习中视觉目标检测的最新进展进行了全面的调查。在调查中,我们详细介绍了影响检测性能的多种因素,例如检测器的结构,特征的学习,建议的生成,采样的策略等。最后,我们讨论了一些未来的方向,以促进未来的深度学习视觉目标检测研究。

1 Introduction

在计算机视觉领域,存在一些基本的视觉识别问题:图像分类,目标检测和实例分割以及语义分割。特别地,图像分类旨在识别给定图像中对象的语义类别。目标检测不仅可以识别对象类别,还可以通过边界框预测每个对象的位置。语义分割旨在预测逐个像素的分类器,以便为每个像素分配特定的类别标签,从而提供对图像的更丰富的理解。之后提出了一种在目标检测和语义分割的交集处相对较新的设置,称为实例分割,以识别不同的对象,并为每个对象分配一个单独的分类像素级蒙版。

实际上,实例分割可以看作是目标检测的特殊设置,不是通过边界框来定位对象,而是需要像素级的定位。在此调查中,我们将注意力集中在回顾基于深度学习的目标检测方面的主要工作。一个好的检测算法应该对语义线索以及有关图像的空间信息有深刻的理解。实际上,目标检测是许多计算机视觉应用的基础,例如人脸识别,行人检测,视频分析和logo检测。

在深度学习时代之前的早期,目标检测的流程分为三个步骤:

  1. 建议区域的生成;
  2. 特征向量的提取;
  3. 区域的分类。

建议区域生成的目的是在图像中搜索可能包含对象的位置。这些位置也称为感兴趣区域(roi)。一个直观的想法是使用滑动窗口扫描整个图像。为了捕获有关对象的多尺度和不同纵横比的信息,将输入图像调整为不同比例,并使用多比例窗口在这些图像中滑动。在第二步中,在图像的每个位置上,从滑动窗口获取固定长度的特征向量,以捕获所覆盖区域的判别语义信息。该特征向量通常由低级视觉描述符编码,例如SIFT(尺度不变特征变换),Haar,HOG(梯度直方图)或SURF(加速鲁棒特征),显示出一定的鲁棒性规模,照明和旋转方差。最后,在第三步中,学习了区域分类器,以将分类标签分配给覆盖的区域。通常,这里使用支持向量机(SVM),因为它们在小规模训练数据上表现良好。此外,在区域分类步骤中使用了一些分类技术,例如bagging,cascade和adaboost,从而进一步提高了检测精度。大多数成功的传统目标检测方法都集中在精心设计特征描述符以获得对感兴趣区域的理解。借助良好的特征表示以及强大的区域分类器,Pascal VOC数据集(用于基准物体检测的可公开获得的数据集)取得了令人瞩目的结果。

值得注意的是,基于变形零件的机器(DPM)是一种突破性的检测算法,在2007、2008和2009年的VOC挑战赛中获得了3次冠军。DPM学习并整合具有可变形损失的多个零件模型,并使用潜在的SVM挖掘坚硬的负面示例以进行判别训练。但是,在2008年至2012年期间,基于这些传统方法的Pascal VOC的进展已逐渐增加,而从构建复杂的集成系统中获得的收益却很小。这表明了这些传统探测器的局限性。 最突出的是,这些限制包括:

  1. 在建议区域生成过程中,生成了大量建议区域,其中许多都是多余的。 这导致在分类过程中出现大量的冗余。 而且,窗口比例尺是手动和启发式设计的,无法很好地匹配对象;
  2. 特征描述符是基于低级视觉提示而手工制作的,这使得在复杂的上下文中难以捕获具有代表性的语义信息;
  3. 检测pipeline的每个步骤都是单独设计和优化的,因此无法获得整个系统的全局最优解决方案。

在将深度卷积神经网络(CNN)应用于图像分类成功之后,基于深度学习技术的目标检测也取得了显着进展。基于深度学习的新算法大大优于传统的检测算法。然而,深度卷积神经网络并未得到广泛研究,而支持向量机变得更加突出。这是因为深度学习有一些限制:

  1. 缺乏大规模的带注释的训练数据,从而导致过度拟合;
  2. 有限的计算资源;
  3. 与SVM相比,理论支持较弱。

2009年,贾等人收集了一个包含120万个高分辨率图像的大规模带注释的图像数据集ImageNet,这使得使用大型训练数据训练深度模型成为可能。随着并行计算系统(例如GPU群集)上计算资源的发展,2012年Krizhevsky等人(英文)。 用ImageNet数据集训练了一个大型的深度卷积模型,并且与所有其他方法相比,在大规模视觉识别挑战(ILSVRC)上显示出了显著的改进。在将DCNN应用于分类成功之后,深度学习技术迅速适应了其他视觉任务,并且与传统方法相比显示出了可喜的成果。与传统检测器中使用的手工描述符相比,深度卷积神经网络会从原始像素到高级语义信息生成层次结构特征表示,这些特征表示可从训练数据中自动学习,并在复杂环境中表现出更具区分性的表达能力。此外,得益于强大的学习能力,深度卷积神经网络可以使用更大的数据集获得更好的特征表示,而传统视觉描述符的学习能力是固定的,并且在有更多数据可用时无法提高。这些特性使基于深度卷积神经网络设计目标检测算法成为可能,该算法可以以端到端的方式进行优化,具有更强大的特征表示能力。

当前,基于深度学习的目标检测框架可以主要分为两个系列:

  • 两阶段检测器(two-stage),先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。主要通过一个卷积神经网络来完成目标检测过程,其提取的是CNN卷积特征,在训练网络时,其主要训练两个部分,第一步是训练RPN网络,第二步是训练目标区域检测的网络。网络的准确度高、速度相对One-stage慢。例如基于区域的CNN(R-CNN)及其变体;
  • 一阶段检测器(one-stage),直接通过主干网络给出类别和位置信息,没有使用RPN网络,但准确度低,速度相遇two-stage快。例如YOLO及其变体。

下图说明了基于深度学习的目标检测技术在2012年之后的主要发展和里程碑。
在这里插入图片描述
这项调查的目的是提供对基于深度学习的目标检测算法的全面理解。下图显示了本次调查涵盖的主要方法的分类。
在这里插入图片描述
我们回顾了基于深度学习的目标检测的各种贡献,并将其分为三类:detection components, learning strategies, and applications & benchmarks(评价标准)。对于detection components,我们首先介绍两个检测设置:边界框级别(bbox级)和像素蒙版级别(mask级)定位。Bbox级算法需要通过矩形边界框来定位对象,而在mask级算法中需要更精确的逐像素的mask来分割对象。然后,我们对每个detection components进行了详细调查,包括骨干架构,建议生成和特征学习。对于学习策略,由于训练检测器的困难,我们首先强调检测学习策略的重要性,然后详细介绍针对训练和测试阶段的优化技术。最后,我们回顾一些基于现实世界的目标检测应用,包括人脸检测,行人检测,logo检测和视频分析。我们还讨论了用于这些检测任务的公开可用且常用的数据集和评估指标。最后,我们展示了近年来在公共数据集上进行通用检测的最新结果。

本文的其余部分安排如下:在第2节中,我们给出了目标检测的标准问题设置。detector conponents的详细信息在第3节中列出。然后,在第4节中介绍学习策略。在第5节和第6节中提供了针对实际应用的检测算法和基准。在第7节中列出了通用检测的最新结果。 在第8节中总结并讨论未来的方向。

2 Problem Settings

目标检测涉及识别(例如,“对象分类”)和定位(例如,“位置回归”)任务。一个物体检测器需要通过精确的定位来区分某些目标类别的物体与图像中的背景,并对每个物体实例进行正确的分类标签预测。将使用边界框或像素蒙版来定位这些目标对象实例。
在这里插入图片描述
不同的损失函数(例如softmax损失和focal损失)会影响最终检测性能,我们将在第4节中讨论这些函数。

在评估时,使用一个称为对象与预测之间的交集(IoU)的度量来评估定位质量(在此省略索引i):
在这里插入图片描述
设置IoU阈值Ω可确定预测是否紧密覆盖了对象(即IoU≥Ω;通常Ω = 0.5)。对于物体检测,具有正确分类标签的预测以及成功的定位预测(符合IoU标准)均被视为肯定预测,否则为否定预测:
在这里插入图片描述
对于通用目标检测问题评估,将使用在C个类别上的平均平均精度(mAP)进行评估,在诸如行人检测之类的现实世界场景中,将使用不同的评估指标,这将在第5节中进行讨论。除了检测精度外,检测速度也是评估对象检测算法的重要指标。具体而言,如果我们希望检测视频流中的对象(实时检测),则必须配备能够快速处理此信息的检测器。因此,还以每秒帧数(FPS)评估检测器效率,即每秒可以处理多少个图像。通常可以将检测速度达到20 FPS的检测器视为实时检测器。

3 Detection Components

在本节中,我们介绍目标检测的不同组成部分。 首先是关于目标检测范式的选择。我们首先介绍两个检测设置的概念:bbox级和mask级算法。 然后,我们介绍了两个主要的目标检测范例:两阶段检测器和一阶段检测器。 在这些范式下,检测器可以使用各种深度学习骨干架构,生成建议区域和特征表示模块。

3.1 Detection Settings

目标检测中有两个设置:

  • vanilla object detection(bbox级定位);
  • 实例分割(像素级或mask级定位)。

Vanilla object detection已被更广泛地研究,并被认为是传统的检测设置,其目标是通过矩形边界框定位对象。在Vanilla object detection算法中,只需要bbox注释,计算预测边界框与groundtruth之间的IoU用来衡量预测表现。实例分割是一个相对较新的领域,它基于传统的检测设置。实例分割需要通过对逐个像素进行分类而不是用粗糙的矩形边界框来分割每个对象。由于像素级的预测更加精确,因此实例分割对空间未对准更加敏感,因此对空间信息的处理要求也更高。实例分割的评估指标与bbox级检测几乎相同,不同之处在于IoU计算是对mask预测执行的。

3.2 Detection Paradigms

当前具有深度学习功能的最新目标检测器主要可分为两大类:两阶段检测器和单阶段检测器。对于两阶段检测器,在第一阶段中,将生成一组稀疏的建议。在第二阶段,通过深度卷积神经网络对生成的建议的特征向量进行编码,然后进行对象类别预测。单阶段检测器没有建议区域生成的单独阶段。他们通常将图像上的所有位置都视为潜在对象,并尝试将每个感兴趣的区域分类为背景或目标对象。两阶段检测器通常会在许多公共基准数据集上有着最好的结果,但是速度太慢。单阶段检测器要快得多,并且对于实时目标检测应用更有希望,但是与两阶段检测器相比,其性能相对较差。

3.2.1 Two-stage Detectors

两阶段检测器将检测任务分为两个阶段:

  1. proposal generation;
  2. making predictions for these proposals.

在建议区域生成阶段,检测器将尝试识别图像中可能是物体的区域。该想法是提出具有较高召回率的区域,使得图像中的所有对象都属于这些提议区域中的至少一个。在第二阶段,基于深度学习的模型用于使用正确的分类标签对这些建议进行分类。该区域可以是背景,也可以是预定义类别标签之一中的对象。此外,模型可以优化建议生成器建议的原始区域。接下来,我们回顾两阶段检测器中一些最具影响力的工作。

R-CNN是由Girshick等人在2014年提出的开创性的两阶段目标检测器。 R-CNN的pipline可以分为三个部分:

  1. proposal generation;
  2. feature extraction;
  3. region classification.

对于每张图像,R-CNN通过“选择性搜索”生成一组稀疏的建议(约2,000个建议),其目的是拒绝可以轻松识别为背景区域的区域。然后,将每个建议裁剪并调整为固定大小的区域,然后通过深度卷积神经网络,将其编码为一个(例如4,096维)特征向量,再接一个对所有的SVM分类器。最后,使用提取的特征作为输入来学习边界框回归器,以使原始建议紧密地约束对象。与传统的手工特征描述符相比,深度神经网络生成分层特征,并在不同层中捕获不同的比例信息,最后生成健壮和可区分的特征以进行分类(也就是特征提取能力强)。利用迁移学习的力量,R-CNN采用了在ImageNet上预先训练的卷积网络权重。最后一个全连接的层(FC层)将重新初始化以执行检测任务。然后在预训练模型上对整个检测器进行微调。来自Imagenet数据集的知识转移可显着提高性能。另外,R-CNN在训练前会拒绝大量的无用区域,这有助于提高学习速度并减少误差。

但是,R-CNN面临一些关键缺陷:

  1. 每个建议区域的特征分别由深度卷积网络提取(即不共享计算),从而导致大量重复的计算。因此,R-CNN的训练和测试非常耗时;
  2. R-CNN的三个步骤(建议生成,特征提取和区域分类)是独立的组件,并且整个检测框架无法以端到端的方式进行优化,从而难以获得全局最优解决方案;
  3. 选择性搜索依赖于低级的视觉提示,因此很难在复杂的环境中生成高质量的建议。而且,它无法享受GPU加速。

He等人受到空间金字塔匹配(SPM)概念的启发,提出了SPP-net来加速R-CNN并学习更多判别特征。SPP-net无需裁剪建议区域并分别输入CNN模型,而是使用深度卷积网络从整个图像中计算特征图,并通过空间金字塔池化(SPP)层在特征图上提取定长特征向量(有关SPP-net[1]的更多信息见参考博客)。与RCNN相比,SPP层还可以在各种比例和高宽比的图像/区域上工作,而无需调整它们的大小。 因此,它不会遭受信息丢失和不必要的几何失真的困扰。

与R-CNN相比,SPP网络获得了更好的结果,并且速度明显加快。但是,SPP网络的训练仍然是多阶段的,因此无法端到端进行优化(并且需要额外的高速缓存来存储提取的功能)。此外,SPP层不会将梯度反向传播到卷积核,因此,冻结了SPP层之前的所有参数。这极大地限制了深度骨干架构的学习能力。 Girshick等人提出了Fast R-CNN [38],这是一种多任务学习检测器,解决了SPP网络的这两个局限性。

Fast R-CNN(如SPP-Net)也计算了整个图像的特征图,并提取了特征图上的固定长度区域特征。与SPP网络不同,Fast R-CNN使用ROI池化层提取区域特征。特征提取部分的详细内容见[2]。特征提取后,将特征向量馈送到一系列完全连接的层中,然后进入两个同级输出层:分类层(cls)和回归层(reg)。分类层负责生成C + 1类(C类加一个背景类)的softmax概率,而回归层编码4个实值参数以精简边界框。在Fast RCNN中,特征提取,区域分类和边界框回归步骤都可以端到端进行优化,而无需额外的缓存空间来存储特征(与SPP Net不同)。 Fast R-CNN的检测精度比R-CNN和SPP-net高得多,并且具有更好的训练和推断速度。

尽管在学习检测器方面取得了进步,但是提案的生成步骤仍然依赖于传统方法,例如选择性搜索或边缘框,这些方法基于低级视觉提示,并且无法以数据驱动的方式进行学习。为了解决这个问题,开发了Faster R-CNN,它依靠一种新颖的建议生成器:Region Proposal Network(RPN)。该建议生成器可以通过监督学习方法来学习。 RPN是一个全卷积的网络,它的输入可以是任意大小的图像,并在特征图的每个位置上生成一组对象建议(详细内容见[3])。RPN可以插入Fast R-CNN中,因此可以对训练数据进行端到端的优化整个框架。通过这种方式,RPN可以以数据驱动的方式生成建议,并且还可以享受深层骨干网络的区分能力。Faster R-CNN能够在GPU上以5FPS进行预测,并在许多公共基准数据集(例如Pascal VOC 2007、2012和MSCOCO)上取得了最好的结果。当前,有大量基于Faster R-CNN的检测器变体用于不同用途。Faster R-CNN计算输入图像的特征图和特征图上的提取区域特征,它们在不同区域之间共享特征提取计算。但是,计算没有在区域分类步骤中共享,在该步骤中,每个特征向量仍需要分别经过一系列FC层。这样的额外计算可能会非常庞大,因为每个图像可能都有数百个建议。 仅仅删除完全连接的层会导致检测性能急剧下降,因为深层网络会减少建议的空间信息。Dai等人提出了基于区域的全卷积网络(R-FCN[4]),该网络在区域分类步骤中分担了计算成本。

Faster R-CNN的另一个问题是它使用单个深层特征图进行最终预测。这使得难以检测不同比例的物体。特别是,很难检测到小物体。 在DCNN特征表示中,深层特征在语义上强但空间弱,而浅层特征在语义上弱但空间强。Lin等人利用这一特性,提出了将深层特征与浅层特征相结合的特征金字塔网络(FPN),从而可以在不同比例的特征图中进行对象检测。主要思想是利用来自较深层的丰富语义信息来增强空间上较浅的层功能。FPN在检测多尺度物体方面取得了重大进展,并已广泛用于许多其他领域,例如视频检测和人体姿势识别。

大多数实例分割算法是从目标检测算法扩展而来的。早期方法通常会生成细分受众群提案,然后是Faster RCNN进行细分类别。后来,Dai等人提出了一种称为“ MNC”的多阶段算法,该算法将整个检测框架分为多个阶段,并从学习的边界框建议中预测分割掩码,然后由区域分类器对其进行分类。这些早期工作在多个阶段执行了bbox和mask预测。 为了使整个过程更加灵活,He等人提出了Mask R-CNN,它可以根据建议并行预测边界框和分割蒙版。Huang等人基于Mask R-CNN,提出了一种掩模质量感知框架,称为Mask Scoring R-CNN,该框架了解了预测的掩模的质量并校准了掩模质量和掩模置信度得分之间的偏差。下图概述了几个代表性的两级检测器的检测框架。
在这里插入图片描述

3.2.2 One-stage Detectors

与两阶段检测算法不同,该算法将检测流水线分为两部分:建议生成和区域分类;单阶段检测器没有建议生成的单独阶段。他们通常将图像上的所有位置都视为潜在对象,并尝试将每个感兴趣的区域分类为背景或目标对象。

Sermanet等人开发了一种早期基于深度学习的单阶段检测器,名为Over-Feat。OverFeat通过将DCNN分类器转换为完全卷积的目标检测器来执行目标检测。目标检测可以看作是“多区域分类”问题,因此OverFeat[5]通过将最后的FC层视为1x1卷积层以允许任意输入,从而将原始分类器扩展到检测器中。分类网络在输入的每个区域上输出预测网格,以指示对象的存在的可能性。主要贡献总结为两点:全卷积和offset池化。与卷积神经网络相比,OverFeat通过使用卷积层共享重叠区域的计算而显示出显着的速度强度,并且只需要通过网络一次传递。 但是,分类器和回归器的训练是分开进行的,没有共同优化。

后来,雷德蒙(Redmon)等人开发了一种称为YOLO(You Only Look Once)的实时检测器。YOLO将目标检测视为一种回归问题,并将整个图像在空间上划分为固定数量的网格单元(例如,使用7×7网格)。每个单元均被视为建议区域来检测可能存在的一个或多个对象。在原始实现中,每个单元都被认为包含(最多)两个对象的中心。对于每个单元格,进行的预测包括以下信息:该位置是否有对象,边界框坐标和大小(宽度和高度)以及对象的类别。整个框架是一个单一的网络,它省略了可以以端到端的方式进行优化的建议生成步骤。基于精心设计的轻量级架构,YOLO可以以45 FPS进行预测,并通过更简化的主干达到155 FPS。

但是,YOLO面临一些挑战:

  1. 在给定的位置它最多只能检测到两个物体,这使得难以检测小物体和拥挤的物体;
  2. 仅使用最后一个特征图进行预测,这不适用于以多个比例和宽高比预测对象.

在2016年,Liu等人提出了另一种单阶段检测器Single-Shot Mulibox Detector(SSD),它解决了YOLO的局限性。SSD还将图像划分为网格单元,但是在每个网格单元中,生成了一组具有多个比例和宽高比的anchor以离散化边界框的输出空间(与从YOLO中采用的固定网格单元进行预测不同)。每个锚点都由回归器学习到的4个值的偏移量进行了细化,并由分类器分配了(C + 1)个类别概率。此外,SSD可以在多个特征图上预测对象,并且这些特征图中的每一个都负责根据其感受野检测特定比例的对象。为了检测大物体并增大感受野,将几个额外的卷积特征图添加到原始主干架构。通过端到端的训练方案,在所有预测图上使用位置损失和分类损失的加权总和来优化整个网络。通过合并来自不同特征图的所有检测结果来做出最终预测。 为了避免大量的负面建议主导训练梯度,我们使用硬性负样本挖掘来训练检测器。密集数据增强也被用于提高检测精度。 SSD实现了与Faster RCNN相当的检测精度,但具有进行实时推理的能力。

如果不生成建议以过滤简单的负样本,则前景和背景之间的类别不平衡在单阶段检测器中是一个严重的问题。Lin等人提出了一种单阶段检测器RetinaNet,该检测器可以更灵活地解决类不平衡问题。RetinaNet使用focal loss抑制了简单负样本的梯度,而不是简单地丢弃它们。此外,他们使用特征金字塔网络来检测不同尺度的特征图上的多尺度对象。

Redmon等人提出了一种改进的YOLO版本YOLOv2,该版本显着提高了检测性能,但仍保持了实时推理速度。YOLOv2采用了功能更强大的深度卷积主干体系结构,该体系结构已在ImageNet的高分辨率图像(从224×224到448×448)上进行了预训练,因此所学习的权重对捕获细粒度的信息更加敏感。此外,受SSD中使用的定位策略启发,YOLOv2通过从训练数据(而不是手动设置)中进行k均值聚类来定义更好的定位先验。这有助于减少定位的优化困难。最终,YOLOv2与批处理归一化层[62]和多尺度训练技术集成在一起,从而获得了当时最好的检测结果。先前的方法需要手动设计锚盒以训练检测器。

后来,开发了一系列anchor-free物体检测器,其目的是预测边界框的关键点,而不是尝试将物体fit在anchor中。Law和Deng提出了一种新颖的无锚框架CornerNet,该框架将对象检测为一对角。在特征图的每个位置上,都可以预测类热图,对嵌入和角偏移。后来有基于关键点检测的一级检测器的其他几种变体。

参考博客

1 SPP-net原理解读
2 目标检测算法Fast R-CNN简介
3 RPN(区域生成网络)
4 目标检测之R-FCN网络
5 论文笔记:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Recent Advances in Deep Learning for Object Detection 的相关文章

  • 图像目标检测之cascade-rcnn实践

    最近一直在调试目标检测方面的模型 其中mmdetection中就集成了许多的目标检测模型 其中表现比较好的模型中有cascade rcnn 因此也趁这个机会具体了解一下这个模型的发展脉络 1 模型原理 在two stage模型中 常见都会预
  • YOLOV2个人理解总结

    YOLOv2框架图 YOLOv2改进之处 1 Batch Normalization BN Batch Normalization 层简单讲就是对网络的每一层的输入都做了归一化 这样网络就不需要每层都去学数据的分布 收敛会快点 原来的YOL
  • Object Detection(目标检测神文)

    目标检测神文 非常全而且持续在更新 转发自 https handong1587 github io deep learning 2015 10 09 object detection html 如有侵权联系删除 更新时间 20190226
  • [YOLO专题-23]:YOLO V5 - ultralytics代码解析-网络子结构详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122369993 目录 第1章 网络总
  • 【目标检测】【语义分割】—Mask-R-CNN详解

    一 mask rcnn简介 论文链接 论文链接 论文代码 Facebook代码链接 Tensorflow版本代码链接 Keras and TensorFlow版本代码链接 MxNet版本代码链接 mask rcnn是基于faster rcn
  • 目标检测入坑指南3:VGGNet神经网络

    学了蛮久的目标检测了 但是有好多细节总是忘或者模棱两可 感觉有必要写博客记录一下学习笔记和一些心得 既可以加深印象又可以方便他人 博客内容集成自各大学习资源 所以图片也就不加水印了 需要自取 本专栏会详细记录本人在研究目标检测过程中的所学所
  • 动手学CV-目标检测入门教程4:模型结构

    3 4 模型结构 本文来自开源组织 DataWhale CV小组创作的目标检测入门教程 对应开源项目 动手学CV Pytorch 的第3章的内容 教程中涉及的代码也可以在项目中找到 后续会持续更新更多的优质内容 欢迎 如果使用我们教程的内容
  • 【今日CV 计算机视觉论文速览 第149期】Tue, 30 Jul 2019

    今日CS CV 计算机视觉论文速览 Tue 30 Jul 2019 Totally 77 papers 上期速览 更多精彩请移步主页 Interesting MaskGAN人脸属性操作的新方法 为了克服先前方法受限于预定义的有限人脸特征操作
  • [YOLO专题-26]:YOLO V5 - ultralytics代码解析-detect.py程序的流程图与对应的plantUML源码

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122443972 目录 第1章 det
  • IA-YOLO项目中DIP模块的初级解读

    IA YOLO项目源自论文Image Adaptive YOLO for Object Detection in Adverse Weather Conditions 其提出端到端方式联合学习CNN PP和YOLOv3 这确保了CNN PP
  • 【计算机视觉

    文章目录 一 检测相关 11篇 1 1 Follow Anything Open set detection tracking and following in real time 1 2 YOLO MS Rethinking Multi
  • 快速椭圆检测代码调试记录

    代码环境 Windows11 vs2019 opencv3 3 1 Debugx64 一 代码注释 1 realpath PATH MAX basename 这几句是为了在Ubuntu中运行时 寻找路径用的 Ubuntu需要比较严格的路径
  • 睿智的目标检测60——Tensorflow2 Focal loss详解与在YoloV4当中的实现

    睿智的目标检测60 Tensorflow2 Focal loss详解与在YoloV4当中的实现 学习前言 什么是Focal Loss 一 控制正负样本的权重 二 控制容易分类和难分类样本的权重 三 两种权重控制方法合并 实现方式 学习前言
  • [YOLO专题-27]:YOLO V5 小目标检测遇到的问题与常见解决办法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 YOLO专题 27 YOLO V5 小目标检测遇到的问题与常见解决办法 文火冰糖 王文兵 的博客 CSDN博客 目录 第1章 前言 第2章
  • QueryDet:级联稀疏query加速高分辨率下的小目标检测

    论文 https arxiv org abs 2103 09136 代码 已开源 https github com ChenhongyiYang QueryDet PyTorch 计算机视觉研究院专栏 作者 Edison G 虽然深度学习的
  • STM32f103增加ESP8266模块,通过Wifi用手机TCP服务端远程与STM32通信

    STM32f103增加ESP8266模块 通过Wifi用手机TCP服务端远程与STM32通信 提示 esp8266开启透传模式 连上路由器Wifi 电脑热点 接入STM32串口引脚 另外手机TCP服务端是手机IP地址 串口号 大于8000滴
  • 【pytorch目标检测】创新之作:Fast R-CNN算法解读

    背景 2015年 提出了Fast RCNN算法 训练步骤实现端到端 CNN 基于VGG6 Fast R CNN是基于R CNN和SPPnets进行的改进 成果 训练速度比RCNN块9倍 测试速度快乐23倍 准确率68 4 SPPnets网络
  • 目标检测深度学习的anchor

    在目标检测深度学习中 Anchor是一种预定义的框 用于在图像中采样不同位置 尺度和长宽比例的区域 作为目标检测模型的候选区域 Anchor是Faster R CNN等基于Anchor的目标检测算法的核心概念 具体来说 Anchor有以下几
  • 基于改进RoI Transformer的遥感图像多尺度旋转目标检测

    源自 应用光学 作者 刘敏豪 王堃 金睿蛟 卢天 李璋 人工智能技术与咨询 发布 摘 要 旋转目标检测是遥感图像处理领域中的重要任务 其存在的目标尺度变化大和目标方向任意等问题给自动目标检测带来了挑战 针对上述问题 提出了一种改进的RoI
  • 作物叶片病害识别系统

    介绍 由于植物疾病的检测在农业领域中起着重要作用 因为植物疾病是相当自然的现象 如果在这个领域不采取适当的护理措施 就会对植物产生严重影响 进而影响相关产品的质量 数量或产量 植物疾病会引起疾病的周期性爆发 导致大规模死亡 这些问题需要在初

随机推荐

  • 【PhpStorm】插件集

    安装翻译插件Translation 使用方法 点击你需要翻译的英文即可 插件2 CodeGlance 这个插件可以添加代码地图 插件3 ApiDebuggerApiDebugger 可以做沉浸式开发 插件4 代码特效插件Power Mode
  • 深入浅出:CAN通信之CCP协议

    CCP CAN Calibration Protocol CAN标定协议 用于标定系统与ECU之间的通信 CCP协议在应用层 使用CAN的数据帧来传输命令 CRO数据帧 主设备向从设备发送 CRO报文 CCP报文帧格式为CMD CTR DA
  • 未明学院:从国企联通到金融科技随手记,学长告诉你国企和互联网私企差别有多大?

    作者 W同学 未明学院学员 在未明学院完成课程的学习后 成功拿下上汽通用五菱汽车股份有限公司数据工程师offer和香港城市大学资讯ISM研究生offer 正文 首先自我介绍 我是四川大学信息管理与信息系统专业2017届本科毕业生 辅修了财务
  • CSS的基本使用

    CSS的基本使用一 1 CSS基本语法 CSS样式由选择器和一条或多条以分号隔开的样式声明组成 每条声明的样式包含着一份CSS属性和属性值 选择器名 属性 属性值 属性 属性值 div background color red 注意 css
  • 详解 http

    TCP IP 基础 在学习http之前 我们需要先了解一下TCP IP 网络基础 我们通常使用的网络 包括互联网 都是在TCP IP协议族的基础上运行的 而http则属于它内部的一个子集 TCP IP 分层 TCP IP 协议族按层次分 可
  • 前端Vue自定义加载loading组件 通过设置gif实现loading动画 可用于页面请求前loading

    前端Vue自定义加载loading组件 提高用户体验的关键 随着技术的发展 前端开发也变得越来越复杂 传统的一次性整体开发方式已经无法满足现代Web应用程序的需求 为了解决这个问题 我们引入了一种新的开发方式 组件化开发 组件化开发可以将一
  • 将编程上升为中小学主要学科课程,真的靠谱吗?

    近日 有人建议将 编程 上升为中小学主要学科课程 并列入 中高考升学考试体系 此话题瞬间引发广大家长及IT互联网圈内人士热议 褒贬不一 对此 我觉得网上的一种观点非常对 孩子们现阶段需要的是思想和素质教育 而不是单纯地通过某一类技工学科的学
  • 2023最新信息安全毕业设计题目选题大全

    0 简介 毕业季马上就要开始了 不少同学询问学长网安专业选题以及开题相关的问题 今天跟大家分享信息安全毕设选题 最新的信息安全 网络安全 专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长整理的题目标准 相对容易 工作量达标 题目新颖
  • STM32CubeMX之RTC的使用

    本篇文章介绍STM32实时时钟 RTC 的使用方法 前期准备 STM32硬件电路板及仿真器 以STM32F407ZGT6单片机为例 Keil v5以上版本 MDK ARM 串口助手 实时时钟 RTC 是STM32单片机的标配 每个系列的都有
  • yolov5运行报错之RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at.....

    错误 RuntimeError The size of tensor a 80 must match the size of tensor b 56 at non singleton dimension 3 如图 解决方法 https gi
  • idea登录github时出现Invalid authentication data. connect time out问题解决方法

    辛辛苦苦注册好GitHub 安装了git客户端 弄好ssh后 用IDEA登录GitHub账号 又出现问题了 好吧 一番搜查之下终于找到了解决办法 问题图如下 解决办法 file gt setting gt system settings去掉
  • Style 中的 ‘>>>‘ 与 ‘ /deep/(sass/less)‘介绍

    Vue style 深度作用选择器 这两个深度选择器的主要作用就行修改UI库中的默认样式 gt gt gt page gt gt gt van skeleton margin top 10px gt gt gt van skeleton t
  • 合理利用泛型擦除

    曾几何时 一直痛恨java的泛型擦除 为了适配老版的jdk java引入泛型的同时 引入了泛型擦除机制 导致想要获取类中的泛型 需要都个圈子 具体可以看我这篇博客 获取泛型的类 前不久使用Mybatis plus分页 但发现PO对象不满足接
  • Transformer《Attention Is All You Need》精读

    文章目录 1 研究背景 2 研究动机 3 模型结构 3 1编码器 3 2 解码器 3 3 Attention 3 4 Multi Head Attention 3 5 模型中Attention的应用 3 6 Position wise Fe
  • 计算机指令——从纸带说起

    前言 其实很多时候我都会感叹计算机的伟大 通过一个个电路就完成了如今各种系统 通过各种各样的语言就能够指挥设备完成不同的动作 当写下第一个hellow world的时候我就在想他什么怎么出现 今天搞明白其中的原理 我在这和大家分享 打孔卡
  • 使用ROS连接两台电脑时,只能看到对方设备的IP,但是订阅不到ros消息

    ROS连接两台设备 利用Ros通信 两台电脑需要处于同一局域网下 1 查看主机 从机 ip hostname ifconfig 查看ip 如果电脑连接的时有线网 则显示结果中 etho 部分的 inet addr 后面就是该电脑的 IP 地
  • java kotlinlang_Kotlin与Java互操作

    1 Kotlin 调用Javaimport java util fun demo source List val list ArrayList for item in source list add item for i in 0 sour
  • redis基本命令

    转 https www cnblogs com woshimrf p 5198361 html 目录 全局操作 1 redis是key value存储的 放在内存中 并在磁盘持久化的数据结构存储系统 2 redis提供原子自增操作incr
  • 学习算法之路(转载)

    第一阶段 练经典常用算法 下面的每个算法给我打上十到二十遍 同时自己精简代码 因为太常用 所以要练到写时不用想 10 15分钟内打完 甚至关掉显示器都可以把程序打 出来 1 最短路 Floyd Dijstra BellmanFord 2 最
  • Recent Advances in Deep Learning for Object Detection

    Recent Advances in Deep Learning for Object Detection Abstract 1 Introduction 2 Problem Settings 3 Detection Components