python-3.x - 如何在 MS-COCO 演示中更改示例图像(图像字幕)
问题描述
我正在研究图像字幕,我发现这个很棒的 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 的目录中。那么这里的问题是什么?有任何想法吗。非常感谢!
解决方案
从演示中,从“人”、“狗”或“滑板”中获取随机图像的代码是:
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 目录中。
推荐阅读
- mongoose - Mongoose 相同模式的多个文档
- javascript - 遍历对象数组,其中元素包含可以重复的元素数组,然后返回匹配
- sql-server - 无法用非主键制作外键
- c - IEEE 754:带有 fesetround() 的 sqrtf():编译器之间的不同结果:0x42440a72 与 0x42440a73
- reactjs - 如何使用 Formik 在 ReactJS 中递增和递减
- php - 如何使用嵌入查询在键值对中传递超过 1 个值来编辑 url
- python - ValueError: too many values to unpack (expected 2) error when change a value
- html - 如何更改 html 文本的位置?
- css - 响应时文本从背景溢出
- c - strsep() 导致分段错误