COCO数据集整理及使用

1、简介

COCO数据集是微软团队获取的一个可以用来图像recognition+segmentation+captioning 数据集,其官方说明网址:http://mscoco.org/。引用

首先看COCO数据集的构造,COCO数据集使用:

2、数据结构

1、通用字段

info{
    "year"            : int,    # 数据集年份号
    "version"         : str,    # 数据集版本
    "description"     : str,    # 数据集描述
    "contributor"     : str,    # 贡献者
    "url"             : str,    # 数据集官方网址
    "date_created"    : datetime,    # 数据集创建详细时间
}

image{           # 这个是图像对应的字典数
    "id"               : int,     # 图像id
    "width"            : int,     # 图像宽度
    "height"           : int,     # 图像高度
    "file_name"        : str,     # 图像文件名
    "license"          : int,     # 许可证
    "flickr_url"       : str,     # flickr链接
    "coco_url"         : str,     # coco链接
    "date_captured"    : datetime,    # 拍摄时间
}

license{
    "id"     : int,    # license的编号,1-8
    "name"   : str,    # 许可证名称
    "url"    : str,    # 许可证网址
}

对于目标检测的字段为:

annotation{   这个是框的个数,对应的字典数
    "id"            : int,    # annotation的id,每个对象对应一个annotation
    "image_id"      : int,     # 该annotation的对象所在图片的id
    "category_id"   : int,     # 类别id,每个对象对应一个类别
    "segmentation"  : RLE or [polygon],
    "area"          : float,     # 面积
    "bbox"          : [x,y,width,height],     # x,y为左上角坐标
    "iscrowd"       : 0 or 1,    # 0时segmentation为REL1为polygon
}

categories[{    #这个是定义类别的,比如80类,就80个字典
    "id"         : int,    # 类别id
    "name"            : str,     # 类别名称
    "supercategory"  : str,    # 类别的父类,例如:bicycle的父类是vehicle
}]

3、使用pycocotools脚本读取

1、初始化
annFile='./annotations/instances_2017.json'
# initialize COCO api for instance annotations
coco = COCO(annFile)
#loading annotations into memory…
#Done (t=4.19s)
#creating index…
#index created!

它里面包括了把每个图片的框收集到一起,比如这张图,你调用的时候,就会有
``json
{ 289343: [
{‘id’: 1768, ‘area’: 702.1057499999998,
‘segmentation’: [[510.66, … 510.45, 423.01]],
‘bbox’: [473.07, 395.93, 38.65, 28.67],
‘category_id’: 18,
‘iscrowd’: 0,
‘image_id’: 289343
},

]
}

一般获取的流程是根据条件获得 index 数组,然后用load函数获的最终信息
在这里插入图片描述
例如加载指定图片:

# get all images containing given categories, select one at random
catIds = coco.getCatIds(catNms=['person','dog','skateboard']);
imgIds = coco.getImgIds(catIds=catIds );
imgIds = coco.getImgIds(imgIds = [324158])
// loadImgs() 返回的是只有一个元素的列表, 使用[0]来访问这个元素
// 列表中的这个元素又是字典类型, 关键字有: ["license", "file_name", 
//  "coco_url", "height", "width", "date_captured", "id"]
img = coco.loadImgs(imgIds[np.random.randint(0,len(imgIds))])[0]

# 加载并显示图片,可以使用两种方式: 1) 加载本地图片, 2) 在线加载远程图片
# 1) 使用本地路径, 对应关键字 "file_name"
# I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['file_name']))  

# 2) 使用 url, 对应关键字 "coco_url"
I = io.imread(img['coco_url'])        
plt.axis('off')
plt.imshow(I)
plt.show()

其中,有意思的是,get函数中,范围是依次进行缩小的
在这里插入图片描述
入下面截图可以看出,由于id为82时,是属于appliance的,所以显示supNms筛选掉了,后面即使想有也筛选不出来。
在这里插入图片描述

4、 Pytorch读取coco数据集

参考官方文档,发现返回的是一个tuple,而且
在这里插入图片描述

4、COCO指标mAP的评测

可以参考这篇文章,在IOU从0.5到0.95的情况下,步长为0.05的情况下,算准确率,源码参考了facebook的detectionCOCO目标检测测评指标
COCO目标检测测评指标
一文了解目标检测/图像分割/coco数据集检测评价标准
在这里插入图片描述

参考文章:

COCO 和 CityScapes 数据集的标注格式和使用
MicroSoft COCO数据集 这个对里面的函数介绍的很清楚

(一) COCO Python API - 使用篇

(二) COCO Python API - 源码分析篇

你可以使用Linux中的wget命令来下载COCO数据集。首先,你需要找到COCO数据集的下载链接。你可以在官方网站或其他可靠的来源找到这些链接。然后,使用wget命令,将链接粘贴到终端中,并按下回车键开始下载。例如,你可以使用以下命令下载COCO2017数据集: wget http://images.cocodataset.org/zips/train2017.zip wget http://images.cocodataset.org/zips/val2017.zip wget http://images.cocodataset.org/zips/test2017.zip 确保在运行wget命令时,你已经进入到你想要下载文件保存的目录。这样,下载的文件将会保存在你所指定的目录中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [# COCO2017 数据集下载](https://blog.csdn.net/daishan1/article/details/123885742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MSCOCO数据集下载安装---image_caption](https://blog.csdn.net/ccbrid/article/details/79368639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [CoCo数据集下载](https://blog.csdn.net/ji_meng/article/details/124959983)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值