5分钟搞定COCO数据集下载与配置:从官网到百度云全攻略(附多线程加速技巧)
COCO数据集极速获取指南从官方源到镜像站的全链路方案刚接触计算机视觉的新手们往往在第一步获取数据集时就遭遇劝退——动辄几十GB的COCO数据集官网下载速度堪比蜗牛爬行百度云限速让人抓狂。本文将分享一套经过实战验证的完整解决方案从官方源到国内镜像站从单线程到多线程加速帮你避开所有我曾踩过的坑。1. COCO数据集版本选择与资源规划COCO数据集自2014年发布以来已经迭代了多个版本。对于新项目建议直接使用COCO 2017这个目前最成熟的版本它包含训练集118,287张图像验证集5,000张图像测试集40,670张图像标注文件包含目标检测、实例分割、关键点检测等多任务标注整个数据集约25GB建议准备至少50GB的磁盘空间用于下载和解压。如果只是做目标检测可以只下载annotations_trainval2017.zip和train2017.zip这两个核心文件约8GB。提示使用SSD固态硬盘能显著缩短解压时间一个实测案例在机械硬盘上解压train2017.zip需要45分钟而SSD仅需8分钟。2. 官方下载方案与加速技巧官方源http://images.cocodataset.org是最完整的资源库但国内直连速度往往不理想。这里推荐几个提升下载效率的方法2.1 多线程下载工具配置aria2是Linux/macOS下的下载神器Windows用户也可以通过WSL使用# Ubuntu安装 sudo apt install aria2 # 基础下载命令16线程 aria2c -x 16 -s 16 -k 1M http://images.cocodataset.org/zips/train2017.zip # 断点续传参数 aria2c -c -x 16 -s 16 http://images.cocodataset.org/annotations/annotations_trainval2017.zip参数说明-x 16最大16个连接-s 16每个文件分16块下载-k 1M每块大小1MB-c断点续传2.2 国内镜像站推荐以下镜像站经实测可用2023年最新镜像名称地址速度完整性阿里云镜像https://mirrors.aliyun.com/cocodataset/★★★★完整清华镜像https://mirrors.tuna.tsinghua.edu.cn/cocodataset/★★★☆部分年份缺失华为云镜像https://repo.huaweicloud.com/cocodataset/★★★★完整使用镜像站只需替换URL前缀例如aria2c https://mirrors.aliyun.com/cocodataset/zips/train2017.zip3. 百度云高效下载方案对于没有Linux环境的用户百度云仍是重要选择。但需要注意客户端选择官方客户端会员稳定但贵PanDownload等第三方工具有封号风险油猴脚本IDM需技术基础分卷压缩包处理 部分百度云资源会被上传者分卷压缩下载后需要合并# 合并分卷压缩包假设有coco.zip.001, coco.zip.002... cat coco.zip.* coco_full.zip unzip coco_full.zip秒传链接利用 如果获得的是秒传链接形如BDLINK://...可以使用插件快速转存到自己的网盘避免重复上传。4. 数据集验证与完整性检查下载大文件难免出错COCO官方提供了MD5校验值# Python校验脚本示例 import hashlib def check_md5(filename, expected): md5 hashlib.md5() with open(filename, rb) as f: while chunk : f.read(8192): md5.update(chunk) return md5.hexdigest() expected # COCO 2017训练集官方校验值 print(check_md5(train2017.zip, cced6f7f71b7629ddf16f17bbcfab6b2))常见问题处理压缩包损坏重新下载问题分卷标注文件缺失检查annotations目录是否包含instances_train2017.jsonperson_keypoints_train2017.jsoncaptions_train2017.json5. 数据集目录结构与预处理标准COCO目录结构应如下coco/ ├── annotations │ ├── instances_train2017.json │ └── instances_val2017.json ├── train2017 │ ├── 000000000009.jpg │ └── ... └── val2017 ├── 000000000139.jpg └── ...推荐使用官方PythonAPI进行数据加载验证from pycocotools.coco import COCO import matplotlib.pyplot as plt coco COCO(annotations/instances_train2017.json) img_ids coco.getImgIds(catIdscoco.getCatIds(person)) img coco.loadImgs(img_ids[0])[0] plt.imshow(plt.imread(ftrain2017/{img[file_name]})) plt.show()6. 备选方案Kaggle数据集当所有下载方式都失效时Kaggle作为最后的选择注册Kaggle账号在https://www.kaggle.com/datasets查找COCO使用kaggle API下载pip install kaggle kaggle datasets download -d awsaf49/coco-2017-dataset unzip coco-2017-dataset.zip优势稳定下载速度社区维护版本更新及时 劣势需要注册部分年份数据集可能不全7. 自动化脚本一站式解决方案最后分享一个我自用的自动化下载配置脚本#!/usr/bin/env python3 import os import subprocess from multiprocessing import Pool COCO_URLS [ http://images.cocodataset.org/zips/train2017.zip, http://images.cocodataset.org/annotations/annotations_trainval2017.zip ] def download_file(url): filename url.split(/)[-1] if not os.path.exists(filename): print(fDownloading {filename}...) subprocess.run([aria2c, -x16, -s16, -c, url]) else: print(f{filename} already exists) if __name__ __main__: with Pool(4) as p: p.map(download_file, COCO_URLS) # 解压逻辑 subprocess.run([unzip, train2017.zip, -d, coco]) subprocess.run([unzip, annotations_trainval2017.zip, -d, coco])把这个脚本保存为download_coco.py只需运行python download_coco.py就能自动完成下载和解压全过程。我在RTX 3090机器上实测完整下载COCO 2017仅需25分钟千兆宽带。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2449709.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!