zoukankan      html  css  js  c++  java
  • 部署可扩展的目标检测管道:推理过程(上)

    部署可扩展的目标检测管道:推理过程(上)

    基于YOLOv3的目标检测推理过程的所有代码都可以在eriklindernoren/PyTorch-YOLOv3 GitHub repo找到。                                                                                                     

    为了进行审查,使用了完整版的YOLO配置文件。它包含有关网络,卷积层,三个YOLO检测层以及其它层及其属性的信息。使用PyTorch来解析配置文件并应用模型定义来实现网络。YOLOv3检测层默认情况下启用了CUDA。来自NGC软件中心的PyTorch CUDA提供了GPU优化的容器,并预先配置了cuDNN之类的库,以利用多个支持CUDA的处理器。

    接下来,为YOLOv3-416加载了预训练的偏差和权重文件,该文件连接了层之间的节点。卷积层使用可训练的参数,其中包括内核权重和偏差。权重指定为3D张量,带有行,列和通道的数量。在整个网络中使用零填充来保持图像的尺寸。输入层不包含任何可训练的参数,因为它包含数据。而且,快捷方式和路由层没有权重,因为它们不执行任何卷积。

    卷积层的可训练参数的数量由以下公式确定:

    权重+偏见
    输入x输出+偏差
    如果最后一层很密集,则输入=节点数
    如果最后一层是conv,则输入=过滤器数
    输出=(过滤器数量)x(过滤器尺寸)
    偏差=过滤器数量

    输出层可训练的参数数由以下公式确定:

    权重+偏见
    输入x输出+偏差
    输入=图像宽度x图像高度x过滤器数量
    因为它是一个密集层,所以输出=节点数
    偏差=节点数

    网络通过称为网络卷积层内核步幅的因子对图像进行下采样。输入416 x 416时,将以13 x 13的步幅(步幅32),26 x 26的步幅16和52 x 52的步幅8进行检测。在每个尺度上,每个像元都使用三个锚点预测三个边界框(规模不同),总共有9个锚点。

    基于预测概率的权重与边界框相关联-随后,将检测阈值某个值,以仅查看高评分检测。最后,非最大抑制(NMS)用于删除多个检测,以为每个检测到的目标选择一个边界框,以生成合并的推理图像输出。

     

    1.推理过程。

    推理输出

     

     2.原始的1280 x 720图像。

     

     3.比例尺为1的大型物体。

     

     4.以比例2检测到的中等物体。

     

     5.规模为3的较小物体被检测到。

     

     6.合并到推理图像中的预测边界框。

    推理性能指标

    目标检测推理过程负责执行图像分类和定位。每个图像可以具有用于分类和定位的不同类别的多个目标。检测到的目标类别包括汽车,卡车,公共汽车,行人和交通灯。目标检测性能指标用作量化评估推理对图像分类,定位和目标检测任务的执行程度的度量。

     7.汽车(单个目标)的图像分类。

     

    图8:图像本地化(边界框)

     

     图9:目标检测(汽车,行人,交通信号灯)

     图7和8显示了单个目标。图9显示了多个目标。

    评估图像分类

    对图像进行分类是一个难题,而准确的分类则更加困难。对于预注释,力求在速度和图像分类精度之间取得平衡。在本节中,术语图像目标可互换使用。

    图像分类的任务是为给定图像预测单个标签(或具有置信度的标签分布)。图像是从0到255的整数的3D数组,大小是宽度x高度x3。三个代表颜色通道:红色,绿色和蓝色。

    以下是对影响图像推理速度和准确性的图像进行分类时,所面临的挑战的已知列表。在数据集中遇到了这些。另外,还提到了YOLOv3中包含的适用于应对这些挑战的技术和技巧。重要的是要注意,许多贡献来自许多先前的研究工作。深度卷积网络的分类可能是最具影响力的研究论文之一,其中包括其它著名的研究成果:

    视点变化

    目标的方向可能会因相机传感器的位置而异。

     10.左侧汽车的前视图。

     

     11:汽车的侧视图

      12:汽车的后视图

    12:汽车的后视图

    YOLOv3每幅图像的误报率(FPPI)随视点而变化。这取决于相机传感器的位置和视场(FOV)的影响。在某些情况下,较大的FFPI归因于从单个前置摄像头捕获的图像。

    规模变化

    目标的大小通常会变化(现实世界中的大小,不仅限于图像的大小)。

     13.大型汽车。

     

     14:中等规模的汽车

     

     15:小型汽车。

    YOLOv3可以从检测大型物体到小型物体三个方面进行预测,尽管它在检测远距离较小的物体方面并不可靠。

    失真

    许多感兴趣的目标不是刚体。在极端情况下,它们可能以极端方式变形。

     16.人走。

     

     17:人员停止行走。

     

     18:等待行人过路。

    由于YOLOv3是具有众所周知几何形状的刚性物体,因此在预测汽车,卡车,公共汽车和交通信号灯时更准确。但是,由于行人不是刚体,并且具有各种姿势和变形,因此有更好的网络结构可以使行人检测更加准确。

    人工智能芯片与自动驾驶
  • 相关阅读:
    jquery ajax 上传文件
    动态sql语句,非存储过程,如何判断某条数据是否存在,如果不存在就添加一条
    VS2017中的nuget还原失败或超时的解决方案
    查找datatable 中的重复记录(只查询一个字段)
    SQL Server 删除重复记录,只保留一条记录
    图床_typora设置.md
    各种源更改.md
    linux手机投屏.md
    firefox设置.md
    Manjaro初次.md
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/14196779.html
Copyright © 2011-2022 走看看