当前位置: 首页 > 科技观察

如何采用深度学习进行对象检测_0

时间:2023-03-15 20:22:59 科技观察

如何使用深度学习进行物体检测在过去几年中,它们已成为许多计算机视觉应用程序的关键组成部分。神经网络可以解决的关键问题之一是检测和定位图像中的对象。目标检测用于许多不同的领域,包括自动驾驶、视频监控、医疗保健等。以下是帮助计算机检测对象的深度学习架构的简要回顾:卷积神经网络(CNN)卷积神经网络(CNN)是基于深度学习的计算机视觉应用程序的关键组成部分。卷积神经网络(CNN)是深度学习技术先驱YannLeCun在1980年代开发的一种神经网络,可以有效地捕捉多维空间中的模式。这使得卷积神经网络(CNN)特别适合检测图像,尽管它们也用于处理其他类型的数据。为了更简单的描述,本文考虑的卷积神经网络是二维的。每个卷积神经网络都由一个或多个卷积层组成,这是一种从输入图像中提取有意义值的软件组件。每个卷积层由多个滤波器和矩阵组成,它们在图像上滑动并记录不同位置像素值的加权和。每个过滤器都有不同的值,从输入图像中提取不同的特征。卷积层的输出是一组“特征图”。当堆叠在一起时,卷积层可以检测视觉模式的层次结构。例如,较低层将为垂直和水平边缘、角和其他简单模式生成特征图。更高层可以检测复杂的图案,例如网格和圆形。而最高层可以检测更复杂的物体,如汽车、房屋、树木和人。神经网络的每一层都对输入图像中的特定特征进行编码。大多数卷积神经网络使用池化层来逐渐减小特征图的大小并保留最显着的特征图。最大池化是当今卷积神经网络(CNN)中使用的主要池化层类型,它在像素块中保持最大值。例如,如果使用大小为2像素的池化层,它将从前一层生成的特征图中提取2×2像素的块并保留最大值。此操作将其特征映射的大小减半并保留最相关的特征。池化层使卷积神经网络(CNN)能够概括其能力,并且对跨图像的对象位移不那么敏感。最后,卷积层的输出被展平为一维矩阵,它是图像中包含的特征的数值表示。然后将该矩阵输入到一系列“完全连接”的人工神经元层中,这些人工神经元将特征映射到网络期望的输出类型。卷积神经网络(CNN)的架构卷积神经网络最基本的任务是图像分类,其中网络将图像作为输入并返回一系列值,这些值表示图像属于几个类别之一的概率.例如,假设您要训练一个神经网络来检测流行的开源数据集ImageNet中包含的所有1,000类对象。在这种情况下,输出层将有1,000个数值输出,每个输出包含图像属于这些类别之一的概率。您可以从头开始创建和测试自己的卷积神经网络。但大多数机器学习研究人员和开发人员使用几种主流的卷积神经网络,例如AlexNet、VGG16和ResNet-50。对象检测数据集对象检测网络需要在准确标记的图像上进行训练。虽然图像分类网络可以判断图像是否包含对象,但它不会说明对象在图像中的位置。对象检测网络提供图像中包含的对象类别,并提供该对象坐标的边界框。对象检测网络与图像分类网络非常相似,并使用卷积层来检测视觉特征。事实上,大多数对象检测网络使用卷积神经网络(CNN)进行图像分类,并将它们重新用于对象检测。对象检测是一个有监督的机器学习问题,这意味着模型必须在标记的示例上进行训练。训练数据集中的每张图像都必须附有一个文件,其中包含其包含的对象的边界和类别。有几种开源工具可以创建对象检测注释。对象检测训练数据的注释文件示例对象检测网络在注释数据上进行训练,直到它可以在图像中找到与每种对象类型相对应的区域。让我们了解一些对象检测神经网络架构。R-CNN深度学习模型R-CNNArchitectureRegion-basedConvolutionalNeuralNetwork(R-CNN)于2014年由加州大学伯克利分校的人工智能研究人员提出。R-CNN由三个关键组件组成:首先,区域选择器使用“选择性搜索”算法来查找图像中可能代表对象的像素区域,也称为“感兴趣区域”(RoI)。区域选择器为每个图像生成大约2,000个感兴趣区域(RoI)。其次,感兴趣区域(RoI)被压缩为预定义的大小并传递给卷积神经网络。卷积神经网络(CNN)通过一系列的卷积运算分别处理每个区域并提取特征。卷积神经网络(CNN)使用全连接层将特征图编码为一维数值向量。最后,分类器机器学习模型将从卷积神经网络(CNN)获得的编码特征映射到输出类。分类器有一个单一的“背景”输出类,它对应于任何不是对象的东西。使用R-CNN进行对象检测一篇关于R-CNN的原始论文建议研究人员使用AlexNet卷积神经网络进行特征提取,并使用支持向量机(SVM)进行分类。但在那篇论文发表后的几年里,研究人员使用更新的网络架构和分类模型来提高R-CNN的性能。R-CNN有一些问题。首先,该模型必须为每张图像生成并裁剪2,000个单独的区域,这可能需要很长时间。其次,该模型必须单独计算2,000个区域的特征。这需要大量计算并减慢过程,使R-CNN不适合实时对象检测。最后,该模型由三个独立的组件组成,这使得集成计算和提高速度变得困难。FastR-CNNFastR-CNNArchitecture2015年,这篇R-CNN论文的主要作者提出了一种名为FastR-CNN的新架构,解决了其前身的一些问题。FastR-CNN将特征提取和区域选择集成到单个机器学习模型中。FastR-CNN接收图像和一组感兴趣区域(RoI),并返回图像中检测到的边界框和对象类别的列表。FastR-CNN的关键创新之一是“RoI池化层”,它采用卷积神经网络(CNN)特征图和图像的感兴趣区域,并为每个区域提供相应的特征。这使得FastR-CNN能够一次提取图像中所有感兴趣区域的特征,而R-CNN单独处理每个区域。这显着提高了处理速度。然而,还有一个问题没有解决。FastR-CNN仍然需要提取图像区域并将它们作为模型的输入。FastR-CNN尚未准备好进行实时对象检测。FasterR-CNNFasterR-CNNArchitectureFasterR-CNN于2016年推出,通过将区域提取机制集成到目标检测网络中来解决目标检测的最后一个难题。FasterR-CNN将图像作为输入并返回对象类列表及其对应的边界框。FasterR-CNN的架构与FastR-CNN的架构非常相似。它的主要创新是“RegionProposalNetwork”(RPN),该组件采用卷积神经网络生成的特征图并提出一组目标可能所在的边界框。然后将建议的区域传递给RoI池化层。其余过程与FastR-CNN类似。通过将区域检测集成到主要神经网络架构中,FasterR-CNN实现了接近实时的目标检测速度。YOLOYOLO架构2016年,华盛顿大学、艾伦人工智能研究所和FacebookAI研究所的研究人员推出了“YOLO”,这是一个神经网络家族,可通过深度学习提高物体检测的速度和准确性。YOLO的主要改进是将整个目标检测和分类过程集成在一个网络中。YOLO不是单独提取特征和区域,而是一次通过网络执行所有操作,因此得名“youonlylookonce”(YOLO)。YOLO能够以视频流帧率执行对象检测,使其适用于需要实时推理的应用。在过去的几年中,深度学习对象检测已经取得了长足的进步,从由不同组件拼接在一起的单一神经网络发展为功能强大且更高效的神经网络。如今,很多应用都以物体检测网络为主要组成部分,人们的手机、电脑、相机、汽车等设备中都存在这种技术。了解更高级的神经网络的能力会很有趣,也可能令人毛骨悚然。原标题:Anintroductiontoobjectdetectionwithdeeplearning,作者:BenDickson