在计算机视觉领域,准确检测图像中的小物体一直是一个挑战。为了提高检测精度,可以采用一种称为SAHI的技术。SAHI技术的核心思想是将大图像分割成多个小图像,然后对每个小图像单独进行推理,最后将结果拼接起来。
Roboflow工作流是一个强大的工具,它可以帮助快速构建一个使用SAHI技术的小物体检测系统。通过这个指南,将学习如何使用Roboflow工作流中的图像分割器(Image Slicer)来构建一个检测80种常见物体(包括猫、人和汽车)的工作流。
首先,需要创建一个工作流。在Roboflow仪表板中点击“工作流”标签,然后点击“创建工作流”按钮。在创建工作流的窗口中,选择“自定义工作流”模板并点击“创建工作流”。这样,就进入了工作流编辑器,可以开始配置工作流了。
接下来,需要添加一个图像分割器(Image Slicer)块。在工作流编辑器的右上角点击“添加块”,然后选择图像分割器块。这个块的作用是将输入的图像分割成多个小图像片段,这些图像片段可以单独通过一个物体检测模型进行处理。
在添加了图像分割器块之后,需要添加一个模型块。这个模型块将用于对图像片段进行推理。在模型字段中,可以设置Roboflow工作空间中的任何模型的ID,或者设置托管在Roboflow Universe上的任何模型的ID。
为了完成SAHI技术的使用,需要将检测结果合并。可以使用检测结果拼接(Detections Stitch)块来合并检测结果。添加一个检测结果拼接块,并将图像输入设置为图像分割器图像,检测输入设置为物体检测模型的检测结果。
Roboflow工作流支持多种可视化工具,可以绘制视觉模型的检测结果。在这个指南中,将添加两个可视化工具:一个绘制边界框的可视化工具,另一个是在边界框上添加预测标签的可视化工具。从添加块面板中添加这些可视化工具,并将边界框可视化工具连接到输入图像,并使用检测结果拼接块的检测结果。
现在已经拥有了检测小物体所需的所有块,并可以可视化结果。最终的工作流应该包括以下步骤:接受输入图像、分割图像、对每个切片运行物体检测模型、将检测结果拼接回去、使用边界框和标签可视化检测结果。
要测试工作流,点击工作流编辑器顶部的“运行预览”按钮。然后,拖入想要使用的图像。点击“运行预览”来运行工作流。工作流的结果将显示在右侧面板上。点击右侧面板上的“显示可视化”按钮,查看系统的检测结果。
通过使用图像分割器(Image Slicer)块,基于SAHI的小物体检测工作流比仅使用物体检测模型的工作流检测到的物体数量要多得多。
可以以三种方式部署工作流:使用Roboflow API部署到Roboflow云;部署到由Roboflow托管的专用部署服务器,该服务器专门为使用;或者部署到自己的硬件上。工作流部署文档详细介绍了如何使用上述各种方法部署工作流。