小物体的计算机视觉检测为什么效果不好?
Computer vision detection on small object bad results why?
目前,对于检测(定位+识别任务),我们主要使用计算机视觉中的深度学习算法。存在两种类型的检测器:
- 一个阶段:SSD、YOLO、retinanet、...
- 两个阶段:例如 RCNN、Fast RCNN 和更快的 RCNN
在非常小的物体(例如 10 像素)上使用这些检测器是一项非常具有挑战性的任务,而且一级算法似乎比二级算法差。但是我真的不明白为什么它在 Faster RCNN 上效果更好。事实上,一级和二级检测器都使用了它们的anchor概念,并且大多数使用相同的backbone,如VGG16或resnet50/resnet101。这意味着感受野是相同的。例如,我尝试在 retinanet 和更快的 RCNN 上检测非常小的物体。在 retinanet 上,与更快的 rcnn 相反,小物体没有被检测到。我不懂为什么。理论上的解释是什么? (相同 backbone : resnet50)
我认为像 retinaNet 这样的一般网络正试图弥合你 mention.Usually 在一个阶段网络中的差距,我们将在 Backbone 网络生成的特征图中具有不同比例的锚框,这些特征图是通过对输入图像进行大量下采样生成的,执行此操作时可能会丢失有关小对象的大量信息 operation.While 这是一级检测器的情况,由于 RPN 的灵活性,在两级检测器中网络,RPN 网络可能仍然会提出较小的区域,这可能有助于它比其单阶段网络的性能略好。
我不认为你应该对这两个可能使用相同的方法感到惊讶backbone,提取 conv 特征后,两个网络使用不同的方法来执行检测。
希望这对您有所帮助,如果我不够清楚或者您有任何疑问,请告诉我。
目前,对于检测(定位+识别任务),我们主要使用计算机视觉中的深度学习算法。存在两种类型的检测器:
- 一个阶段:SSD、YOLO、retinanet、...
- 两个阶段:例如 RCNN、Fast RCNN 和更快的 RCNN
在非常小的物体(例如 10 像素)上使用这些检测器是一项非常具有挑战性的任务,而且一级算法似乎比二级算法差。但是我真的不明白为什么它在 Faster RCNN 上效果更好。事实上,一级和二级检测器都使用了它们的anchor概念,并且大多数使用相同的backbone,如VGG16或resnet50/resnet101。这意味着感受野是相同的。例如,我尝试在 retinanet 和更快的 RCNN 上检测非常小的物体。在 retinanet 上,与更快的 rcnn 相反,小物体没有被检测到。我不懂为什么。理论上的解释是什么? (相同 backbone : resnet50)
我认为像 retinaNet 这样的一般网络正试图弥合你 mention.Usually 在一个阶段网络中的差距,我们将在 Backbone 网络生成的特征图中具有不同比例的锚框,这些特征图是通过对输入图像进行大量下采样生成的,执行此操作时可能会丢失有关小对象的大量信息 operation.While 这是一级检测器的情况,由于 RPN 的灵活性,在两级检测器中网络,RPN 网络可能仍然会提出较小的区域,这可能有助于它比其单阶段网络的性能略好。
我不认为你应该对这两个可能使用相同的方法感到惊讶backbone,提取 conv 特征后,两个网络使用不同的方法来执行检测。
希望这对您有所帮助,如果我不够清楚或者您有任何疑问,请告诉我。