我正在尝试在 Ubuntu 20.04 上下载 Waymo Open Dataset,但遇到了一个又一个问题。首先我去了这里:
https://waymo.com/open/download/
输入我的名字等,然后在“感知数据集”下,我选择 v1.2“单独文件”链接,它指向:
https://console.cloud.google.com/storage/browser/waymo_open_dataset_v_1_2_0_individual_files
我之前使用过各种云服务,但从未使用过 Google Cloud Platform。我勾选了所有复选框,然后选择“下载”:
出现一个弹出框,指示输入此命令:
gsutil -m cp -r \
"gs://waymo_open_dataset_v_1_2_0_individual_files/domain_adaptation/" \
"gs://waymo_open_dataset_v_1_2_0_individual_files/testing/" \
"gs://waymo_open_dataset_v_1_2_0_individual_files/training/" \
"gs://waymo_open_dataset_v_1_2_0_individual_files/validation/" \
.
我运行了该命令,并收到错误“gsutil 无法识别”,因此我执行以下操作:
sudo apt-get install gsutil
然后再次运行推荐的命令,结果出现此错误:
Unknown option: m
No command was given.
Choose one of -b, -d, -e, or -r to do something.
经过谷歌搜索后,我发现了这篇文章:
https://stackoverflow.com/questions/61417140/installing-gcloud-gsutil-on-ubuntu-18
所以我做了:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update
sudo apt-get install google-cloud-sdk
现在,当我运行上面推荐的命令时,我得到:
$ gsutil -m cp -r \
> "gs://waymo_open_dataset_v_1_2_0_individual_files/domain_adaptation/" \
> "gs://waymo_open_dataset_v_1_2_0_individual_files/testing/" \
> "gs://waymo_open_dataset_v_1_2_0_individual_files/training/" \
> "gs://waymo_open_dataset_v_1_2_0_individual_files/validation/" \
> .
ServiceException: 401 Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.
CommandException: 1 file/object could not be transferred.
此数据集是公开的,因此不需要密码或等效密码。有没有其他使用 Ubuntu 的人成功下载了此数据集?我下载了其他自动驾驶汽车数据集(Lyft Level 5、Kitti 等),并且在同一台计算机上使用 AWS 时没有遇到问题。我做错了什么?
答案1
我已经解决这个问题了,步骤如下:
GoogleDownload Waymo Dataset
或类似工具会带你到https://waymo.com/open/
选择Download
右上角,第一次执行此操作时您必须输入您的姓名和电子邮件地址,不用担心,他们不会向您发送垃圾邮件或任何内容,继续输入您的信息。
进入页面后Download
向下滚动并找到您要下载的数据集,例如Perception
,,,将带您到v1.2
tar files
https://console.cloud.google.com/storage/browser/waymo_open_dataset_v_1_2_0;tab=objects?prefix=&forceOnObjectsSortingFiltering=false。
选择文件/目录上方的复选框,以便选中每个目录的复选框(参见上面问题的屏幕截图),然后选择DOWNLOAD
,这将弹出如下命令:
gsutil -m cp -r \
"gs://waymo_open_dataset_v_1_2_0/domain_adaptation/" \
"gs://waymo_open_dataset_v_1_2_0/testing/" \
"gs://waymo_open_dataset_v_1_2_0/training/" \
"gs://waymo_open_dataset_v_1_2_0/validation/" \
.
打开终端并复制/粘贴此内容,如果您收到如下消息:
Unknown option: m
No command was given.
Choose one of -b, -d, -e, or -r to do something.
这意味着您使用命令安装了一个软件包gsutil
,但它不是与 Google Cloud SDK 配套的软件包!因此,如果您收到此消息,请卸载此其他gsutil
软件包:
sudo apt-get purge --auto-remove gsutil
现在通过以下方式安装 Google Cloud SDK snap
:
snap install google-cloud-sdk --classic
或者,你可以去https://cloud.google.com/sdk/docs/install#deb并按照手动下载和配置说明进行操作,但老实说,该snap
软件包更容易使用并且运行良好,所以我推荐该选项。
gsutil
现在尝试再次从终端运行上述命令,您将收到类似以下错误:
ServiceException: 401 Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.
CommandException: 1 file/object could not be transferred.
要解决此问题,请在默认浏览器中登录您的 Google 帐户(如果尚未登录),然后从终端执行以下操作:
gcloud auth login
这将打开您的默认浏览器,进入一个页面,其中会要求您授予 Google Cloud 执行操作的权限,请继续并允许权限。有关此主题的更多信息,请参阅此帖子https://stackoverflow.com/questions/49302859/gsutil-serviceexception-401-anonymous-caller-does-not-have-storage-objects-list
最后回到终端,gsutil
再次发出上述命令,现在它应该可以正常工作了。我不确定 Google 为什么要把它弄得这么复杂,而且没有提供关于如何在任何地方执行此操作的明确说明。
- - - 编辑 - - -
今天早上下载 Waymo 数据集时我又遇到了一个问题,不过我已经解决了。具体来说,对于 Motion Dataset v1.1,Google Cloud 提供的下载命令不起作用:
gsutil -m cp -r "gs://waymo_open_dataset_motion_v_1_1_0/uncompressed/" .
它不会显示错误或挂起,它只是什么也不做。诀窍是删除引号:
gsutil -m cp -r gs://waymo_open_dataset_motion_v_1_1_0/uncompressed .
那么它似乎工作正常。请参阅此问题https://github.com/waymo-research/waymo-open-dataset/issues/377更多细节。