微软发布的COCO数据库, 除了图片以外还提供物体检测, 分割(segmentation)和对图像的语义文本描述信息.
COCO数据库的网址是:
- MS COCO API - http://mscoco.org/
- Github网址 - https://github.com/pdollar/coco
- 关于API更多的细节在网站: http://mscoco.org/dataset/#download
数据库提供 Matlab, Python 和 Lua 的 API 接口. 其中 matlab 和 python 的 API 接口可以提供完整的图像标签数据的加载, parsing 和可视化.此外,网站还提供了数据相关的文章, 教程等.
在使用 COCO 数据库提供的 API 和 demo 时, 需要首先下载 COCO 的图像和标签数据.
- 安装:
- 首先解压数据文件:
- 图像数据下载到
coco/images/
文件夹中 - 标签数据下载到
coco/
文件夹中.
- 图像数据下载到
- matlab, 在 matlab 的默认路径中添加
coco/MatlabApi
- Python. 打开终端,将路径切换到
coco/PythonAPI
下,输入make
- 首先解压数据文件:
- COCO数据集的标注信息
COCO的数据标注信息包括:
- 类别标志
- 类别数量区分
- 像素级的分割
import sys
sys.path.append('E:/xinlib')
from data import cocox
import zipfile
查看 coco/images/
文件夹下的数据:
image_names = cocox.get_image_names()
image_names
['E:/Data/coco/images/test2017.zip',
'E:/Data/coco/images/train2017.zip',
'E:/Data/coco/images/unlabeled2017.zip',
'E:/Data/coco/images/val2017.zip']
查看 coco/
文件夹的文件:
import os
dataDir = cocox.root
os.listdir(dataDir)
['annotations',
'annotations_trainval2017.zip',
'cocoapi',
'images',
'image_info_test2017.zip',
'image_info_unlabeled2017.zip',
'stuff_annotations_trainval2017.zip']
我们只需要获取 annotations 的信息(这里都是以 .zip
结尾):
annDir = [z_name for z_name in os.listdir(dataDir) if z_name.endswith('.zip')]
annDir
['annotations_trainval2017.zip',
'image_info_test2017.zip',
'image_info_unlabeled2017.zip',
'stuff_annotations_trainval2017.zip']
解压 annotations 的文件:
for ann_name in annDir:
z = zipfile.ZipFile(dataDir + '/' + ann_name)
# 全部解压
z.extractall(dataDir)
# 封装为函数
cocox.unzip_annotations()
# 删除标签的压缩文件
cocox.del_annotations()
由于图片数据比较大,我就不解压了,不过可以通过 MXNet + zipfile
来直接获取图片信息。
获取图片数据
我以 test2017.zip
为例:
image_names
['E:/Data/coco/images/test2017.zip',
'E:/Data/coco/images/train2017.zip',
'E:/Data/coco/images/unlabeled2017.zip',
'E:/Data/coco/images/val2017.zip']
z = zipfile.ZipFile(image_names[0])
# 测试集的图片名称列表
z.namelist()