如何更改 MS-COCO demo 中的示例图像(Image captioning)

How to change the sample image in MS-COCO demo (Image captioning)

我正在研究图像字幕,我发现了这个关于 MS-COCO 挑战的很棒的教程。 MS_COCO Image captioning demo

无论如何,我 运行 演示一切顺利。除了,当我尝试更改示例图像(我想 运行 另一张图像)时,我收到此错误:

KeyError                                  Traceback (most recent call last)
<ipython-input-126-68bce2986aae> in <module>()
      1 # load and display image
----> 2 I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['000000014226.jpg']))
      3 
      4 plt.axis('off')
      5 plt.imshow(I)

KeyError: '000000014226.jpg'

我知道导致此错误的代码是这样的:

# load and display image
I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['000000014226.jpg']))
# use url to load image
# I = io.imread(img['coco_url'])  # originally they used to run this
plt.axis('off')
plt.imshow(I)
plt.show()

我确保我在val2017的目录中。那么这里的问题是什么?有任何想法吗。非常感谢!

从演示中,从 "person"、"dog" 或 "skateboard" 获取随机图像的代码是:

catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
imgIds = coco.getImgIds(catIds=catIds );
imgIds = coco.getImgIds(imgIds = [324158])
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]

我不太确定你是如何编辑上面的代码并得到 14226.jpg 但可能是你没有更改上面代码的这个特定部分?所以可能会导致他们找不到图片的情况?

此外,我不确定将脚本嵌套在 val2017 目录中是否有效,因为我认为说明是将图像 (val2017) 放在名为 "images" 的文件夹中,将注释放在名为 "annotations"。我将自己的脚本(使用本地文本编辑器,个人不使用 ipython)放在 PythonAPI 目录中。