使用 Tensorflow Object Detection API 检测图像中的小物体
Use Tensorflow Object Detection API to detect small objects in images
我想使用在 COCO 数据集上预训练的 Tensorflow Object Detection API to identify objects in a series of webcam images. The Faster RCNN models 似乎很合适,因为它们包含我需要的所有对象类别。
但是,我想提高模型在每张图像中识别相当小的对象的性能。如果我理解正确,我需要编辑 config file 中的锚点 scales
参数以使模型使用较小的边界框。
我的问题是:
- 调整这个参数后是否需要在整个COCO数据集上重新训练模型?或者是否有一种方法可以更改仅用于推理的模型并避免任何重新训练?
- 除了将图像裁剪成多个部分并运行分别对每个部分进行推理外,是否还有其他 tips/tricks 可以成功识别小物体?
背景资料
我目前正在为模型提供 1280x720 的图像。在大约 200x150 像素处,我发现很难检测到物体。
不幸的是,您需要完全重新训练,因为权重确实取决于锚点的形状。
具有更高分辨率的特征图应该会有所帮助(但会减慢过程),因此更改特征提取器以获得输入尺寸减少较少的特征图(步长 >1 的最大池化通常是什么减小 space 大小)或在初始图像缩放器中稍微放大图像。
我想使用在 COCO 数据集上预训练的 Tensorflow Object Detection API to identify objects in a series of webcam images. The Faster RCNN models 似乎很合适,因为它们包含我需要的所有对象类别。
但是,我想提高模型在每张图像中识别相当小的对象的性能。如果我理解正确,我需要编辑 config file 中的锚点 scales
参数以使模型使用较小的边界框。
我的问题是:
- 调整这个参数后是否需要在整个COCO数据集上重新训练模型?或者是否有一种方法可以更改仅用于推理的模型并避免任何重新训练?
- 除了将图像裁剪成多个部分并运行分别对每个部分进行推理外,是否还有其他 tips/tricks 可以成功识别小物体?
背景资料
我目前正在为模型提供 1280x720 的图像。在大约 200x150 像素处,我发现很难检测到物体。
不幸的是,您需要完全重新训练,因为权重确实取决于锚点的形状。
具有更高分辨率的特征图应该会有所帮助(但会减慢过程),因此更改特征提取器以获得输入尺寸减少较少的特征图(步长 >1 的最大池化通常是什么减小 space 大小)或在初始图像缩放器中稍微放大图像。