通过处理openimages v4遇到的问题总结

需要对google最新发布的openiamges v4数据集进行下载并处理。

1、下载

下载遇到的一些问题:openiamges v4数据集官网:https://storage.googleapis.com/openimages/web/index.html。

数据集主要有两个:一个是带boudingbox的数据集561G,一个是主要用于分类的数据集:18T。


Bounding Boxes (600 classes) 561G

下载方法官网上提供了两种:

1、在Figure Eight上下载

下载地址:https://www.figure-eight.com/dataset/open-images-annotated-with-bounding-boxes/

亲测,下载速度几百KB而且经常中断,放弃。

2、在CVDF上下载

在github上的下载方法和说明地址:https://github.com/cvdfoundation/open-images-dataset#download-images-with-bounding-boxes-annotations

需要安装google cloud storage bucket 的 gustil,官方安装教程地址:https://cloud.google.com/storage/docs/gsutil_install

安装完之后,按照教程登录下载就可以:

  1. gcloud auth login [your_mail_account]
  2. gsutil -m rsync -r gs://open-images-dataset/train [target_dir/train] (513GB)
    gsutil -m rsync -r gs://open-images-dataset/validation [target_dir/validation] (12GB)
    gsutil -m rsync -r gs://open-images-dataset/test [target_dir/test] (36GB) 

Image-Level Labels (19,995 classes) 18T

这个数据集只能通过CVDF下载,由于需要收费,空间也很大,还没下载......

2、下载Bouding Box数据集后的处理:

1、按照需求将数据集中包含标注框信息,类别信息的csv文件转化成VOC的xml格式

3、处理数据集用到的linux命令

1、生成trainval.txt test.txt 需要用到的随机提取文件名命令:shuf -n100 trainval.txt >2.txt 把 trainval.txt 中随机的100行提取到val.txt

2、对一个文件夹下的文件进行文件进行名字提取:

包含扩展名:ls -1 | grep ".jpg$" > /home/2.txt          ls | grep ".jpg" > /home/2.txt

不包含扩展名:

3、将2中提取的包含扩展名的.txt里的扩展名去掉、数据集中xml的标签进行替换,可以写成脚本:

#!/bin/sh 

sed -i "s/A/B/g" *.xml 把文件夹下xml文件中的字符串A,换成B。

文件数量较大时 find  /media/test/1/ -name "*.txt" | xargs  sed -i "s/1/2/g"

4、批量修改文件后缀名:

 find ./ -name "*.c" | awk -F "." '{print $2}' | xargs -i -t mv ./{}.c  ./{}.h

5'移动文件夹内大量数据:

首先要要进入文件夹目录dir1 在dir1目录下执行

ls dir1 | xargs -t -I {} mv {} dir2/{}

例如 ls /media/JPEGImages/validation_JPEGImages | xargs -t -I {} mv {} /media/JPEGImages/{}

find source/ -name  "*.txt" | xargs -i mv {} target/


你可能感兴趣的:(通过处理openimages v4遇到的问题总结)