作为快速r-cnn对象检测方法的结果,我获得了一组强度值框(每个边界框都可以看作是3g矩阵,其中rgb强度,宽度和宽度分别为3和高度,然后可以通过采用灰度将其转换为2D矩阵),该高度对应于包含对象的区域。我要做的是获取原始图像中边界框内每个强度单元的相应坐标点。有什么想法怎么做?
答案 0 :(得分:1)
据我了解,您获得了一个R-CNN模型,该模型输出输入图像的裁切后的片段,现在您希望将这些输出的裁切符追溯至原始图像中的坐标。
您所能做的就是简单地使用补丁相似度测量来找到原始位置。 由于输出的裁切图像应该看起来像原始图像中的完全一样,因此只需使用基于像素的距离即可:
在图像中找到距离最小(应该为零)的位置,然后您可以找到所需的坐标。
在python中:
d_min = 10**6
crop_size = crop.shape
for 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]
但是,您的模型应该具有可用的信息(毕竟,它会基于某些坐标来裁剪输出)。也许如果您在实现中添加一些信息。