gpt4 book ai didi

python - 无法使用 Fiftyone 加载 "open-images-v6"的子部分

转载 作者:行者123 更新时间:2023-12-04 07:25:40 65 4
gpt4 key购买 nike

语境
我正在尝试检索大量数据来训练 CNN。
更具体地说,我正在寻找游泳池的图片。
我在 Google 制作的 open-images-v6 数据库中找到了很多。
所以现在,我只想下载这些特定的图像(我不希望 9 百万张图像最终出现在我的下载文件夹中)。
问题
为了做到这一点,我仔细遵循了下载页面上给出的说明(参见:https://storage.googleapis.com/openimages/web/download.html)。
所以,我安装了“五十一”,尝试了“测试”程序(这将加载“快速入门”数据集并浏览数据),到目前为止还没有遇到任何问题。
但是当我尝试使用以下代码检索游泳池图像时,我遇到了很多问题:

import fiftyone as fo
import fiftyone.zoo as foz

dataset = foz.load_zoo_dataset(
"open-images-v6",
split="validation",
label_types="detections",
classes="Swimming pool"
)
session = fo.launch_app(dataset)
我将直接跳到我无法弄清楚的问题:
当我运行代码时,它会正确下载一堆 .csv 文件,但是当它尝试下载数据(图像)时,它显示了一个非常糟糕的错误:
botocore.exceptions.ClientError: An error occurred (404) when calling the HeadObject operation: Not Found
最先进的
经过数小时搜索错误的根源,我最终发现它以某种方式与 AWS 相关联,但我完全不知道我可以在这个领域做什么。
我在互联网上看到一个随机教程,建议通过 PIP 安装“awscli”,但没有任何改变。
我尝试使用相同的程序(即 foz.load_zoo_dataset("coco-2017") )导入其他数据集,它似乎有效(至少下载开始了,但我很早就停止了)。
感谢您的时间。

最佳答案

感谢您的 aws 提示,这终于让我走上了正确的道路。
Fiftyone 使用 python os.path.join() 功能,它将在运行 Windows 时创建 Windows 样式路径。 s3 blob 存储无法使用这些 windows 路径,因此会引发 404 错误。
由于这是五十一本身的错误(我将创建一个 pr 来修复该错误),因此您需要自己修改五十一。
转到您的 python 站点包目录,然后打开 fityone/utils/openimages.py
在此文件中,将以下代码添加到导入语句中:

import re
然后搜索 _download_images_if_necessary 方法并替换此行:
fp_download = os.path.join(split, image_id + ".jpg")
有了这个:
fp_download = re.sub(r"\\", "/", os.path.join(split, image_id + ".jpg"))
这确实为我解决了问题。

关于python - 无法使用 Fiftyone 加载 "open-images-v6"的子部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68229288/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com