首页 > 解决方案 > 为什么YOLOv3计算调整anchor box的offset值,而不是直接输出bounding box的维度?

问题描述

我试图了解 YOLOv3 的工作原理。而且这件事还是让我很困惑:YOLO 可以确定边界框(坐标和尺寸),但是为什么它不直接输出这些值,而不是用它们来调整锚框呢?

标签: pythonobject-detectionyolo

解决方案


与固定锚点相比,大多数对象检测算法计算边界框的偏移量(x、y、宽度、高度)。

通常生成锚点以遵循固定网格:为网格上的每个位置创建一组具有不同纵横比和不同区域的锚点。

学习算法从固定锚点输出一个偏移量,从中可以推断出整体坐标,而不是试图直接找到整体坐标,因为它是一个局部且位置不变的特征,所以要容易得多。

这意味着如果在图片的左上角有一只带有错误居中边界框的狗,则要求算法输出偏移量,就好像狗在图片的右下角一样,这使其具有鲁棒性移动并且不需要它学习图像中对象的全局位置。


推荐阅读