Open Images Dataset 网站获取已经标注好的数据集
一、简介
Open Images Dataset是一个可以提供免费数据集的网站,里面的数据集提供了目标检测任务、语义分割任务的标签,可以减少我们搜集数据的压力。网址是(这里):
二、数据集说明
我们以获取目标检测数据集为例,对于方框中的一个物体,我们记录的是这个方框的左上角坐标(x1,y1)和右下角坐标(x2,y2),目标检测的数据标签如下:
1.查看数据集
点击Explore,在Category中搜索我们需要的数据,这里以车(Car)为例。
2.搜索选项
Subset:
有两个选项,下载train(训练集);
Type Detection:
选择Detection,即目标检测数据集;
Options:
仅仅是可视化作用,选择第二个Show text in boxes显示目标的名字。
三、数据集下载和使用
下载和使用的代码已经分别放在OIDv4_ToolKit文件的main.py和convert_annotations.py中。运行代码所需要的库如下,如果有未安装的,直接运行 pip install 库名即可;例如:
pip install pandas
pip install numpy
pandas
numpy
awscli
urllib3
tqdm
opencv-python
或者在OIDv4_ToolKit
文件夹下运行pip install -r requirements.txt
来安装所有必备库。
1.数据集下载
在OIDv4_ToolKit文件夹下运行如下指令:
python main.py downloader --classes Car --type_csv train --limit 1000
这里运行main.py
进行下载,输入类别(car)、数据类型(train)以及需要下载的数量(1000)。弹出的两个选项都输入y,然后回车,显示开始下载。
其中有一条信息会提示我们需要找的类(car)在网址中一共有多少张照片,car可以找到89465张,所以我们要下载的数量不能超过这个数。
2.下载失败
在windows可能下载失败(我没成功过),所以可以将代码文件夹OIDv4_ToolKit上传到Google Colab中,直接将数据集下载到谷歌云盘(需要注册)中。依次执行:
# 安装必备的功能包,后面的路径是谷歌云盘中OIDv4_ToolKit所在的路径,自行修改
!pip install -r ./OIDv4_ToolKit/requirements.txt
#这里运行main.py进行下载
!python ./OIDv4_ToolKit/main.py downloader --classes Car --type_csv train --limit 1000
3.从谷歌云盘中下载数据
如果在windows下可以下载,那就跳过这步。在google colab中下载的话,需要将数据从谷歌云盘中下载到本地电脑。将下载好的OID文件夹用鼠标拖动到谷歌云盘中。
或者在colab中执行如下python代码:
# -*- coding:utf-8 -*-
import shutil
import os
def remove_file(old_path, new_path):
print(old_path)
print(new_path)
filelist = os.listdir(old_path)#列出该目录下的所有文件,listdir返回的文件列表是不包含路径的。
print(filelist)
for file in filelist:
src = os.path.join(old_path, file)
dst = os.path.join(new_path, file)
print('src:', src)# 原文件路径下的文件
print('dst:', dst)# 移动到新的路径下的文件
shutil.move(src, dst)
if __name__ == '__main__':
old_path = '/content/OID' # 原文件夹路径
new_path = '/content/drive/MyDrive/OID' # 新文件夹路径
remove_file(old_path, new_path)
在谷歌云盘中右键下载即可。
下载到本地可以打开查看:
4.转化成数据集所需格式
首先将OID文件夹放到OIDv4_ToolKit文件夹中。
修改classes.txt,里面输入类别。
然后直接运行convert_annotations.py,运行后的结果可以打开OID查看,每副图片的标签都以txt的形式放到了一起: