通过更快的R-CNN目标检测方法,我获得了一组包含强度值的边界框(每个边界框可以被视为一个具有3个深度(RGB强度)、宽度和高度的3D矩阵,然后可以通过取灰度转换为2D矩阵),这些边界框对应于包含目标的区域。我想做的是获取每个边界框内强度单元格在原始图像中的相应坐标点。有什么方法可以做到这一点吗?
回答:
据我所知,你有一个R-CNN模型,它输出输入图像的裁剪部分,现在你想将这些输出的裁剪部分追溯到它们在原始图像中的坐标。
你可以做的是简单地使用补丁相似性度量来找到原始位置。因为输出裁剪应该在原始图像中看起来完全相同,只需使用基于像素的距离:
在图像中找到距离最小的位置(应该为零),从那里你可以找到你想要的坐标。
在Python中:
d_min = 10**6crop_size = crop.shapefor x in range(org_image.shape[0]-crop_size[0]): for y in range(org_image.shape[1]-crop_size[1]): d = np.abs(np.sum(np.sum(org_image[x:x+crop_size[0],y:y+crop_size[0]]-crop))) if d <= d_min: d_min = d coord = [x,y]
然而,你的模型应该已经有了这些信息(毕竟,它是基于某些坐标来裁剪输出的)。也许如果你能提供一些关于你的实现的信息会更好。