添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本文介绍如何训练物体检测模型,以使用 Azure 机器学习中的 自动化 ML 检测高分辨率图像中的小物体。

通常,用于物体检测的计算机视觉模型适用于包含相对较大物体的数据集。 但是,由于内存和计算限制,这些模型在检测高分辨率图像中的小物体时往往表现不佳。 由于高分辨率图像通常很大,在输入到模型之前需要调整其大小,这就限制了模型检测较小物体(相对于初始图像大小而言)的能力。

为了帮助解决此问题,自动化 ML 支持计算机视觉功能所包括的平铺功能。 自动化 ML 中的平铺功能基于 用于小物体检测的平铺功能的效力 中的概念。

平铺时,每个图像将分割成图块网格。 相邻的图块在宽度和高度的维度上彼此重叠。 图块是从原件中裁剪出来的,如下图所示。

  • Azure 机器学习工作区。 若要创建工作区,请参阅 创建工作区资源

  • 本文假设你对如何 为计算机视觉任务配置自动化机器学习试验 有一定的了解。

    支持的模型

    适用于物体检测任务的图像自动化 ML 支持的所有模型都支持使用平铺功能的小物体检测。

    在训练期间启用平铺

    若要启用平铺,可以将 tile_grid_size 参数设置为类似“3x2”的值;其中 3 是沿宽度维度的图块数量,2 是沿高度维度的图块数量。 当此参数设置为“3x2”时,每个图像将拆分为 3 x 2 的图块网格。 每个图块与相邻的图块重叠,因此落在图块边界上的任何物体将完全包含在一个图块中。 可以通过 tile_overlap_ratio 参数(默认值为 25%)控制这种重叠。

    启用平铺后,整个图像以及从其生成的图块将通过模型传递。 将这些图像和图块馈送到模型之前,会根据 min_size max_size 参数调整其大小。 由于需要处理这些额外的数据,计算时间将成比例增加。

    例如,当 tile_grid_size 参数为“3x2”时,计算时间大约是不启用平铺时的七倍。

    可以在训练参数中将 tile_grid_size 的值指定为字符串。

    CLI v2 Python SDK v2
    image_object_detection_job.extend_search_space(
        SearchSpace(
            model_name=Choice(['fasterrcnn_resnet50_fpn']),
            tile_grid_size=Choice(['2x1', '3x2', '5x3'])
    

    在推理期间平铺

    部署在启用平铺的情况下训练的模型时,在推理期间也会发生平铺。 自动化 ML 使用训练中的 tile_grid_size 值在推理期间生成图块。 整个图像和相应的图块将通过模型传递,其中的物体建议将会合并,以输出最终预测结果,如下图所示。

    有可能会从多个图块中检测到同一个物体,可执行重复项检测来消除这种重复。

    重复项检测是通过对图块和图像的建议运行 NMS 来执行的。 当多个建议重叠时,将选取分数最高的一个,其他建议将作为重复项被丢弃。如果两个建议之间的交并比 (iou) 大于 tile_predictions_nms_thresh 参数,则认为两者是重叠的。

    还可以选择仅在推理期间启用平铺,而不在训练中启用。 为此,请仅在推理期间设置 tile_grid_size 参数,而在训练时则不设置它。

    这样可以针对某些数据集来提高性能,并且可以避免在训练时由于使用平铺而产生额外成本。

    平铺超参数

    下面是可用于控制平铺功能的参数。

    tile_grid_size 用于平铺每个图像的网格大小。 在训练、验证和推理期间可用。

    应以 '3x2' 格式作为字符串传递。

    注意:设置此参数会成比例增加计算时间,因为模型将会处理所有图块和图像。 tile_overlap_ratio 控制每个维度中相邻图块之间的重叠率。 如果落在图块边界上的物体太大,因而无法完全放入其中一个图块,请增大此参数的值,使物体至少完全放入其中一个图块。

    必须是 [0, 1) 范围内的浮点数。 tile_predictions_nms_thresh 在合并图块和图像的预测时,用于执行非最大抑制 (nms) 的交并比阈值。 在验证和推理期间可用。 如果在最终预测中检测到了每个物体有多个框,请更改此参数。

    必须是 [0, 1] 范围内的浮点数。

    示例笔记本

    有关设置和训练物体检测模型的详细代码示例,请参阅物体检测示例笔记本

    本文中的所有图像是根据 MIT 许可协议的“准许使用”部分提供的。

  • 详细了解如何以及在何处部署模型
  • 有关为每次作业提供的性能图表和指标的定义和示例,请参阅评估自动化机器学习试验结果
  • 教程:使用 AutoML 和 Python 训练物体检测模型
  • 请参阅哪些超参数可用于计算机视觉任务
  • 使用 ONNX 对来自 AutoML 的计算机视觉模型进行预测
  •