1

我正在研究图像字幕,我发现这个很棒的 MS-COCO 挑战教程。MS_COCO 图片字幕演示

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

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 的目录中。那么这里的问题是什么?有任何想法吗。非常感谢!

4

1 回答 1

2

从演示中,从“人”、“狗”或“滑板”中获取随机图像的代码是:

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 目录中。

于 2018-09-15T01:45:41.573 回答