精华内容
下载资源
问答
  • MS COCO 2014数据集获取类别semantic segmentation

    万次阅读 热门讨论 2018-01-05 22:11:51
    MS COCO 2014 数据集的cocoapi只能获得 instance mask(下图右);但是要是想获得 class semantic segmentation(下图左),现在的官方cocoapi貌似并没提供这个api。 实现环境: Python 实现方法: ...

    MS COCO 2014 数据集的cocoapi只能获得 instance mask(下图右);但是要是想获得 class semantic segmentation(下图左),现在的官方cocoapi貌似并没提供这个api。

    这里写图片描述


    实现环境:

    • Python

    实现方法:

    coco官网的2017年数据集中可以发现有Stuff Segmentation,同时提供了新版的能获取Stuff Segmentation的cocoapi:link 。里面的 PythonAPI/cocostuff/cocoSegmentationToPngDemo.py 可以获得类别的Segmentation,但是这个是仅针对2017年的dataset的(博主发现直接使用会报错或者只能得到一片黑的图)。

    在研究了2017的dataset和新版cocoapi后,发现2017的dataset的 category ids 与2014的dataset不一样,变成:

     1-91      % thing categories (not used for stuff segmentation) 
     92-182    % stuff categories 
     183       % other category (all thing pixels)

    新版cocoapi根据stuff categories来对同一个class赋予颜色,直接使用原来的category ids(1-91)无法进行stuff分类(所以一片黑),因此对代码稍作改动即可作用于2014的数据集!


    实现步骤:

    1、下载新版cocoapihttps://github.com/nightrome/cocoapi

    2、进入PythonAPI/pycocotools/cocostuffhelper.py,改动:

    (1) Line141:

    from:

        labelMap = cocoSegmentationToSegmentationMap(coco, imgId, includeCrowd=includeCrowd)

    to:

        labelMap = cocoSegmentationToSegmentationMap(coco, imgId, checkUniquePixelLabel=False, includeCrowd=includeCrowd)
    

    (2) Line142 后面加上:

        labelMap = labelMap + 91
    

    3、进入 PythonAPI/

    make

    4、使用 PythonAPI/cocostuff/cocoSegmentationToPngDemo.py ,设置好 annPath 为你自己的 coco/annotations/instances_train2014.json 路径;然后把 Line75-Line88 注释掉

    5、运行即可


    结果:

    这里写图片描述
    这里写图片描述
    这里写图片描述


    常见问题:

    1. “Exception: Error: Some pixels have more than one label”

      • 原因:2014的dataset可能存在一个pixel对应多个label的情况,2017的Stuff Segmentation应该不存在这个问题,所以新版cocoapi会检查异常
      • 解决方法:不检查异常(多个label则由后者覆盖),即看一下 Line141 有没有加上checkUniquePixelLabel=False (查看上方实现步骤2-(1))
    2. 得到的图像全黑

      • 原因:检查原来 Line142的 labelMap 有没有加上91。若没加上,category ids仍为1-91,无法着色。
      • 解决方法:查看上方实现步骤2-(2)

    References:

    [1] coco dataset官网:http://cocodataset.org/#download
    http://cocodataset.org/#stuff-eval
    [2] cocoapi(旧版):https://github.com/cocodataset/cocoapi
    [3] cocoapi(新版):https://github.com/nightrome/cocoapi

    展开全文
  • COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...MS COCO官网数据集(百度云)下载,COCO API、MASK A...

    COCO系列文章:

    MS COCO数据集目标检测评估(Detection Evaluation)(来自官网)

    MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网)

    MS COCO数据集输出数据的结果格式(result format)和如何参加比赛(participate)(来自官网)

    MS COCO官网数据集(百度云)下载,COCO API、MASK API和Annotation format介绍(来自官网)

     目标检测评估

    1. Detection Evaluation

    本页介绍了COCO使用的检测评估指标。此处提供的评估代码可用于在公开可用的COCO验证集上获得结果。它计算下面描述的多个指标。为了在COCO测试集上获得结果,其中隐藏了实际真值注释,必须将生成的结果上传到评估服务器。下面描述的评估代码用于评估测试集的结果。

    2. Metrics(指标)

                                         预测情况
    Positive(预测结果为正例)Negative(预测结果为反例)
    GroundTruthTrue(正例)TPFN(注意这并不是TN)
    False(反例)FPTN(注意这并不是FN)

    Recall   召回率(查全率)。表示正确识别物体A的个数占测试集中物体A的总个数的百分数,即所有正例中预测正确的概率,Recall = TP / (TP+FN)

    Precision 精确率(查准率)。表示正确识别物体A的个数占总识别出的物体个数n的百分数,即预测为正例中预测正确的概率,Precision = TP / (TP+FP)

    fp :false positive误报,即预测错误

    fn :false negative漏报,即没有预测到

     

    tp:true positive

    tn:true negative

    iou:intersection-over-union

    Accuracy  准确率。正确分类(正例分为正例,负例分为负例)的样本数除以所有的样本数,正确率越高,分类器越好。Accuracy=(TP+TN)/ (TP+TN+FP+FN)

    以上介绍都是基于2分类的,并不是多分类的

     

    以下12个指标用于表征COCO上物体检测器的性能:

     

    Average Precision (AP):

    AP                              % AP at IoU=0.50:0.05:0.95 (primary challenge metric)

    APIoU=.50                   % AP at IoU=0.50 (PASCAL VOC metric)

    APIoU=.75                   % AP at IoU=0.75 (strict metric)

    AP Across Scales:

    APsmall                       % AP for small objects: area < 322

    APmedium                   % AP for medium objects: 322 < area < 962

    APlarge                        % AP for large objects: area > 962

    Average Recall (AR):

    ARmax=1                     % AR given 1 detection per image

    ARmax=10                   % AR given 10 detections per image

    ARmax=100                 % AR given 100 detections per image

    AR Across Scales:

    ARsmall                       % AR for small objects: area < 322

    ARmedium                   % AR for medium objects: 322 < area < 962

    ARlarge                        % AR for large objects: area > 962

    1)除非另有说明,否则AP和AR在多个交汇点(IoU)值上取平均值。具体来说,我们使用10个IoU阈值0.50:0.05:0.95。这是对传统的一个突破,其中AP是在一个单一的0.50的IoU上计算的(这对应于我们的度量APIoU=.50 )。超过均值的IoUs能让探测器更好定位(Averaging over IoUs rewards detectors with better localization.)。

    2)AP是所有类别的平均值。传统上,这被称为“平均精确度”(mAP,mean average precision)。我们没有区分AP和mAP(同样是AR和mAR),并假定从上下文中可以清楚地看出差异。

    3)AP(所有10个IoU阈值和所有80个类别的平均值)将决定赢家。在考虑COCO性能时,这应该被认为是最重要的一个指标

    4)在COCO中,比大物体相比有更多的小物体。具体地说,大约41%的物体很小(面积<322),34%是中等(322 < area < 962)),24%大(area > 962)。测量的面积(area)是分割掩码(segmentation mask)中的像素数量。

    5)AR是在每个图像中检测到固定数量的最大召回(recall),在类别和IoU上平均。AR与提案评估(proposal evaluation)中使用的同名度量相关,但是按类别计算。

    6)所有度量标准允许每个图像(在所有类别中)最多100个最高得分检测进行计算。

    7)除了IoU计算(分别在框(box)或掩码(mask)上执行)之外,用边界框和分割掩码检测的评估度量在所有方面是相同的。

    3. Evaluation Code

    评估代码可在COCO github上找到。 具体来说,分别参见Matlab或Python代码中的CocoEval.mcocoeval.py。另请参阅Matlab或Python代码(demo)中的evalDemo。在运行评估代码之前,请按结果格式页面上描述的格式准备结果(查看具体的结果格式MS COCO数据集比赛参与(participate)(来自官网))。

    评估参数如下(括号中的默认值,一般不需要改变):

     

    params{

        "imgIds"         : [all]N img ids to use for evaluation

        "catIds "          : [all] K cat ids to use for evaluation cat=category

        "iouThrs"        : [0.5:0.05:0.95] T=10 IoU thresholds for evaluation

        "recThrs"        : [0:0.01:1] R=101 recall thresholds for evaluation

        "areaRng"      : [all,small,medium,large] A=4 area ranges for evaluation

        "maxDets"      : [1 10 100] M=3 thresholds on max detections per image

        "useSegm"    : [1] if true evaluate against ground-truth segments

        "useCats"      : [1] if true use category labels for evaluation

    }

    运行评估代码通过调用evaluate()和accumulate()产生两个数据结构来衡量检测质量。这两个结构分别是evalImgs和eval,它们分别衡量每个图像的质量并聚合到整个数据集中。evalImgs结构体具有KxA条目,每个评估设置一个,而eval结构体将这些信息组合成 precision 和 recall 数组。这两个结构的细节如下(另请参阅CocoEval.mcocoeval.py):

     

     

    evalImgs[{

        "dtIds"               : [1xD] id for each of the D detections (dt)

        "gtIds"               : [1xG] id for each of the G ground truths (gt)

        "dtImgIds"        : [1xD] image id for each dt

        "gtImgIds"        : [1xG] image id for each gt

        "dtMatches"     : [TxD] matching gt id at each IoU or 0

        "gtMatches"     : [TxG] matching dt id at each IoU or 0

        "dtScores"       : [1xD] confidence of each dt

        "dtIgnore"        : [TxD] ignore flag for each dt at each IoU

        "gtIgnore"        : [1xG] ignore flag for each gt

    }]

     

     

     

    eval{

        "params"        : parameters used for evaluation

        "date"              : date evaluation was performed

        "counts"          : [T,R,K,A,M] parameter dimensions (see above)

        "precision"     : [TxRxKxAxM] precision for every evaluation setting

        "recall"            : [TxKxAxM] max recall for every evaluation setting

    }

    最后,summary()根据eval结构计算前面定义的12个检测指标。

    4. Analysis Code

    除了评估代码外,我们还提供一个函数analyze()来执行误报的详细分类。这受到了Derek Hoiem等人在诊断物体检测器中的错误(Diagnosing Error in Object Detectors)的启发,但在实现和细节方面却有很大不同。代码生成这样的图像:

    这两幅图显示了来自2015年检测挑战赛获胜者Kaiming He等人的ResNet(bbox)检测器的分析结果。左图显示了ResNet的人员类别错误;右图是ResNet对所有类别平均值的整体分析。每个绘图是一系列精确召回(precision recall)曲线,其中每个PR曲线被保证严格地高于之前的评估设置变得更宽容。曲线如下:

    1)C75:在IoU = 0.75(严格的IoU的AP)的PR(precision),对应于APIoU=.75度量曲线下的面积(area under curve )。

    2)C50:IoU = 0.50处的PR(PASCAL IoU处的AP),对应于APIoU=.50度量曲线下面积。

    3)Loc:在IoU =0 .10的PR(定位误差(localization errors ignored)被忽略,但不重复检测)。 所有其余的设置使用IoU = 0.1。

    4)Sim:超类别误报(fps,supercategory false positives)被移除后的PR值。具体而言,与具有不同类标签但属于同一个超类别的对象的任何匹配都不会被视为fp(或tp)。通过设置同一超类别中的所有对象与所讨论的类具有相同的类标签并将它们的忽略标志设置为1来计算Sim。注意,该人是单例超类别,因此其Sim结果与Loc完全相同。

    5)Oth:所有类型混乱被移除后的PR值。与Sim类似,除了现在如果检测与任何其他对象匹配,则不再是fp(或tp)。计算Oth的方法是将所有其他对象设置为与所讨论的类具有相同的类标签,并将忽略标志设置为1。

    6)BG:所有背景误报(和类混乱(class confusion))被移除后的PR。 对于单个类别,BG是一个阶跃函数,直到达到最大召回后才降为0(跨类别平均后曲线更平滑)。

    7)FN:在所有剩余错误都被删除后(平均AP = 1)的PR。

     

    每条曲线下面的区域显示在图例的括号中。在ResNet检测器的情况下,IoU = 0.75的整体AP为0.399,完美定位将使AP增加到0.682。有趣的是,消除所有类别混乱(超范畴内和超范畴内)只会将AP略微提升至0.713。除去背景fp会将性能提高到0.870 AP,而其余的错误则缺少检测(尽管假设更多的检测被添加,这也会增加大量的fps)。总之,ResNet的错误来自不完美的定位和背景混淆。

     

    对于一个给定的探测器(detector),代码总共产生了372个块(plots)!共有80个类别(category),12个超类别(supercategory),1个总体结果,总共93个不同的设置,分析是在4个尺度(scale)(全部,小,中,大,所以93 * 4 = 372个块)进行。 文件命名为[supercategory] - [category] - [size] .pdf(对于80 * 4每个分类结果),overall- [supercategory] - [size] .pdf(对于12 * 4每个超类别结果)全部[[size] .pdf为1 * 4的整体结果。在所有图中,通常总体和超类别的结果是最感兴趣的。

     

    注意:analyze()可能需要很长时间才能运行,请耐心等待。因此,我们通常不会在评估服务器上运行此代码;您必须使用验证集在本地运行代码。最后,目前analyze()只是Matlab API的一部分; Python代码即将推出。

     

     

     

    展开全文
  • MSCOCO检测数据集类别中文名

    千次阅读 2019-06-04 09:46:08
    {0: u'__background__', 1: u'person', 2: u'bicycle', 3: u'car', 4: u'motorcycle', 5: u'airplane', 6: u'bus', 7: u'train', 8: u'truck', 9: u'boat', 10: u'traffic light', 11: u'fire hydrant', ...
    {0: u'__background__',
     1: u'person',
     2: u'bicycle',
     3: u'car',
     4: u'motorcycle',
     5: u'airplane',
     6: u'bus',
     7: u'train',
     8: u'truck',
     9: u'boat',
     10: u'traffic light',
     11: u'fire hydrant',
     12: u'stop sign',
     13: u'parking meter',
     14: u'bench',
     15: u'bird',
     16: u'cat',
     17: u'dog',
     18: u'horse',
     19: u'sheep',
     20: u'cow',
     21: u'elephant',
     22: u'bear',
     23: u'zebra',
     24: u'giraffe',
     25: u'backpack',
     26: u'umbrella',
     27: u'handbag',
     28: u'tie',
     29: u'suitcase',
     30: u'frisbee',
     31: u'skis',
     32: u'snowboard',
     33: u'sports ball',
     34: u'kite',
     35: u'baseball bat',
     36: u'baseball glove',
     37: u'skateboard',
     38: u'surfboard',
     39: u'tennis racket',
     40: u'bottle',
     41: u'wine glass',
     42: u'cup',
     43: u'fork',
     44: u'knife',
     45: u'spoon',
     46: u'bowl',
     47: u'banana',
     48: u'apple',
     49: u'sandwich',
     50: u'orange',
     51: u'broccoli',
     52: u'carrot',
     53: u'hot dog',
     54: u'pizza',
     55: u'donut',
     56: u'cake',
     57: u'chair',
     58: u'couch',
     59: u'potted plant',
     60: u'bed',
     61: u'dining table',
     62: u'toilet',
     63: u'tv',
     64: u'laptop',
     65: u'mouse',
     66: u'remote',
     67: u'keyboard',
     68: u'cell phone',
     69: u'microwave',
     70: u'oven',
     71: u'toaster',
     72: u'sink',
     73: u'refrigerator',
     74: u'book',
     75: u'clock',
     76: u'vase',
     77: u'scissors',
     78: u'teddy bear',
     79: u'hair drier',
     80: u'toothbrush'}
    

    背景类

    自行车
    汽车
    摩托车
    飞机
    公交车
    火车
    卡车

    红绿灯
    消防栓
    停止标志
    停车收费表
    长凳








    斑马
    长颈鹿
    背包
    雨伞
    手提包
    领带
    手提箱
    飞盘
    滑雪板
    单板滑雪
    运动球
    风筝
    棒球棒
    棒球手套
    滑板
    冲浪板
    网球拍
    瓶子
    红酒杯
    杯子
    叉子



    香蕉
    苹果
    三明治
    橙子
    西兰花
    胡萝卜
    热狗
    比萨
    甜甜圈
    蛋糕
    椅子
    长椅
    盆栽

    餐桌
    马桶
    电视
    笔记本电脑
    鼠标
    遥控器
    键盘
    手机
    微波炉
    烤箱
    烤面包机
    洗碗槽
    冰箱

    时钟
    花瓶
    剪刀
    泰迪熊
    吹风机
    牙刷

    展开全文
  • MSCOCO 数据集是微软构建的一个数据集,其包含 detection, segmentation, keypoints等任务。 MSCOCO主要是为了解决detecting non-iconic views of objects(对应常说的detection), contextual reasoning between ...

    1. 前言

    介绍一下目标检测领域另外一个比较有名的数据集 MS COCO (Microsoft COCO: Common Objects in Context) .

    MSCOCO 数据集是微软构建的一个数据集,其包含 detection, segmentation, keypoints等任务。

    MSCOCO主要是为了解决detecting non-iconic views of objects(对应常说的detection), contextual reasoning between objects and the precise 2D localization of objects(对应常说的分割问题) 这三种场景下的问题。

    下面是iconic 图片和 non-iconic 图片之间的对比:

    在这里插入图片描述
    与PASCAL COCO数据集相比,COCO中的图片包含了自然图片以及生活中常见的目标图片,背景比较复杂,目标数量比较多,目标尺寸更小,因此COCO数据集上的任务更难,对于检测任务来说,现在衡量一个模型好坏的标准更加倾向于使用COCO数据集上的检测结果。

    2. COCO数据集分类

    Image Classification:分类需要二进制的标签来确定目标是否在图像中。早期数据集主要是位于空白背景下的单一目标,如MNIST手写数据库,COIL household objects。在机器学习领域的著名数据集有CIFAR-10 and CIFAR-100,在32*32影像上分别提供10和100类。最近最著名的分类数据集即ImageNet,22,000类,每类500-1000影像。

    Object Detection:经典的情况下通过bounding box确定目标位置,期初主要用于人脸检测与行人检测,数据集如Caltech Pedestrian Dataset包含350,000个bounding box标签。PASCAL VOC数据包括20个目标超过11,000图像,超过27,000目标bounding box。最近还有ImageNet数据下获取的detection数据集,200类,400,000张图像,350,000个bounding box。由于一些目标之间有着强烈的关系而非独立存在,在特定场景下检测某种目标是是否有意义的,因此精确的位置信息比bounding box更加重要。

    Semantic scene labeling:这类问题需要pixel级别的标签,其中个别目标很难定义,如街道和草地。数据集主要包括室内场景和室外场景的,一些数据集包括深度信息。其中,SUN dataset包括908个场景类,3,819个常规目标类(person, chair, car)和语义场景类(wall, sky, floor),每类的数目具有较大的差别(这点COCO数据进行改进,保证每一类数据足够)。

    Other vision datasets:一些数据集如Middlebury datasets,包含立体相对,多视角立体像对和光流;同时还有Berkeley Segmentation Data Set (BSDS500),可以评价segmentation和edge detection算法。

    3. COCO数据集格式

    COCO有5种类型的标注,分别是:物体检测、关键点检测、实例分割、全景分割、图片标注,都是对应一个json文件。json是一个大字典,都包含如下的关键字:

    {
    	"info" : info,
    	"images" : [image], 
    	"annotations" : [annotation], 
    	"licenses" : [license],
    }
    

    其中info对应的内容如下:

    info{
    	"year" : int, 
    	"version" : str, 
    	"description" : str, 
    	"contributor" : str, 
    	"url" : str, 
    	"date_created" : datetime,
    }
    

    其中images对应的是一个list,对应了多张图片。list的每一个元素是一个字典,对应一张图片。格式如下:

    info{
    	"id" : int, 
    	"width" : int, 
    	"height" : int, 
    	"file_name" : str, 
    	"license" : int, 
    	"flickr_url" : str, 
    	"coco_url" : str, 
    	"date_captured" : datetime,
    }
    

    license的内容如下:

    license{
    	"id" : int, 
    	"name" : str, 
    	"url" : str,
    }
    

    虽然每个json文件都有"info", “images” , “annotations”, "licenses"关键字,但不同的任务对应的json文件中annotation的形式不同,分别如下:

    3.1 目标检测

    每个对象实例注释都包含一系列字段,包括对象的类别id和分段掩码。分割格式取决于实例是表示单个对象(使用多边形的情况下iscrowd=0)还是表示对象的集合(使用RLE的情况下iscrowd=1)。注意,单个对象(iscrowd=0)可能需要多个多边形,例如遮挡时。Crowd注释(iscrowd=1)用于标记大量对象(例如一群人)。此外,还为每个对象提供了一个包围框(框坐标从图像左上角开始测量,并以0为索引)。最后,注释结构的categories字段存储类别id到类别和超类别名称的映射。请参见检测任务。

    annotation{
    	"id" : int, 
    	"image_id" : int, 
    	"category_id" : int, 
    	"segmentation" : RLE or [polygon], 
    	"area" : float, 
    	"bbox" : [x,y,width,height], 
    	"iscrowd" : 0 or 1,
    }
    
    categories[{
    	"id" : int, 
    	"name" : str, 
    	"supercategory" : str,
    }]
    

    3.2 关键点检测

    一个关键点注释包含对象注释的所有数据(包括id、bbox等)和两个附加字段。首先,keypoints是一个长度为3k的数组,其中k是为该类别定义的关键点的总数。每个关键点都有一个0索引的位置x,y和一个可见性标志v,定义为v=0:未标记(在这种情况下x=y=0), v=1:标记但不可见,v=2:标记且可见。一个关键点被认为是可见的,如果它落在对象段内。num_keypoints表示一个给定对象(许多对象,例如人群和小对象,将有num_keypoints=0)标记的关键点的数量(v>0)。最后,对于每个类别,categories结构有两个额外的字段:keypoints,这是一个长度为k的关键点名称数组,以及skeleton,它通过一个关键点边缘对列表定义连接性,并用于可视化。目前,关键点仅被标记为person类别(对于大多数中型/大型非人群的person实例)。参见关键任务。

    annotation{
    	"keypoints" : [x1,y1,v1,...], 
    	"num_keypoints" : int, 
    	"[cloned]" : ...,
    }
    
    categories[{
    	"keypoints" : [str], 
    	"skeleton" : [edge], 
    	"[cloned]" : ...,
    }]
    
    "[cloned]": denotes fields copied from object detection annotations defined above.
    

    3.3 实例分割

    stuff注释格式与上面的对象检测格式完全相同并完全兼容(除了iscrowd没有必要并且默认设置为0)。为了方便访问,我们提供了JSON和png格式的注释,以及这两种格式之间的转换脚本。在JSON格式中,图像中的每个类别都用一个RLE注释进行编码(更多细节请参阅Mask API)。category_id表示当前物品类别的id。有关物品类别和超类别的更多细节,请参阅物品评估页面。参见stuff task。

    3.4 全景分割

    对于panoptic任务,每个注释结构是每个图像的注释,而不是每个对象的注释。每个图像注释有两个部分:(1)一个PNG存储与类无关的图像分割;(2)一个JSON结构存储每个图像分割的语义信息。更详细地说:要将注释与图像匹配,请使用image_id字段(也就是注释)。image_id = = image.id)。对于每个注释,每个像素的段id都存储在annotation.file_name中的单个PNG中。这些png文件在一个与JSON文件同名的文件夹中,例如:annotations/name. JSON对应的annotations/name. JSON。每个段(无论是东西段还是东西段)都被分配一个唯一的id。未标记的像素(void)被分配0的值。请注意,当你加载PNG作为RGB图像,你将需要通过ids=R+G256+B256^2计算id。对于每个注释,每个段信息都存储在annotation.segments_info中。segment_info。id存储段的唯一id,用于从PNG (ids==segment_info.id)中检索相应的掩码。category_id给出语义类别,iscrowd表示该段包含一组对象(仅与事物类别相关)。bbox和area字段提供了关于段的额外信息。COCO panoptic任务具有与检测任务相同的事物类别,而物品类别与stuff任务不同(详情请参见panoptic评估页面)。最后,每个类别结构都有两个额外的字段:区分事物和事物类别的isthing和有助于一致可视化的颜色。

    annotation{
    	"image_id" : int, 
    	"file_name" : str, 
    	"segments_info" : [segment_info],
    }
    
    segment_info{
    "id" : int,
    "category_id" : int, 
    "area" : int, 
    "bbox" : [x,y,width,height], 
    "iscrowd" : 0 or 1,
    }
    
    categories[{
    "id" : int, 
    "name" : str, 
    "supercategory" : str, 
    "isthing" : 0 or 1, 
    "color" : [R,G,B],
    }]
    

    3.5 图像标注

    这些注释用于存储图像说明。每个标题描述指定的图像,每个图像至少有5个标题(有些图像有更多)。请参阅标题任务。

    annotation{
    	"id" : int, 
    	"image_id" : int, 
    	"caption" : str,
    }
    

    4. 统计信息

    MSCOCO总共包含91个类别,每个类别的图片数量如下:
    在这里插入图片描述
    图中也标出了PASCAL VOC的统计数据作为对比。

    下图展示的是几个不同数据集的总类别数量,以及每个类别的总实例数量,一个实例就是图片上的一个目标,主要关注一下 PASCAL 和 ImageNet。

    在这里插入图片描述
    COCO数据集的类别总数虽然没有 ImageNet 中用于detection的类别总数多,但是每个类别的实例目标总数要比PASCAL和ImageNet都要多。

    下图是每张图片上的类别数量或者实例数量的分布,括号中为平均值:
    在这里插入图片描述

    • PASCAL和ImageNet中,每张图片上的类别或者实例数量普遍都很少。
      • 以PASCAL为例:有多于70%的图片上都只有一个类别,而多于50%的图片上只有一个实例或者目标。PASCAL数据集平均每张图片包含1.4个类别和2.3个实例目标,ImageNet也仅有1.7和3.0个。
    • COCO数据集平均每张图片包含 3.5个类别和 7.7 个实例目标,仅有不到20%的图片只包含一个类别,仅有10%的图片包含一个实例目标。
    • COCO数据集不仅数据量大,种类和实例数量也多。从这角度来说 SUN 数据集这两个指标更高一点,但是这个数据集在目标检测里面并不常用。

    实例目标的分布(COCO数据集中的小目标数量占比更多):

    在这里插入图片描述
    关于数据集的划分,COCO的论文里是这么说的:The 2014 release contains 82,783 training, 40,504 validation, and 40,775 testing images (approximately 1/2 train, 1/4 val, and /4 test). There are nearly 270k segmented people and a total of 886k segmented object instances in the 2014 train+val data alone. The cumulative 2015 release will contain a total of 165,482 train, 81,208 val, and 81,434 test images.

    2014年的数据在官网是可以下载的,但是2015年只有test部分,train和val部分的数据没有。另外2017年的数据并没有什么新的图片,只是将数据重新划分,train的数据更多了,如下:
    在这里插入图片描述

    5. 评估标准

    COCO的测试标准比PASCAL VOC更严格:

    在这里插入图片描述

    • PASCAL 中在测试mAP时,是在IOU=0.5时测的。

    • COCO中的AP 是指在 10个IOU层面 以及 80个类别层面 的平均值。

    • COCO的主要评价指标是AP,指 IOU从0.5到0.95 每变化 0.05 就测试一次 AP,然后求这10次测量结果的平均值作为最终的 AP。
      AP@0.5 跟PASCAL VOC中的mAP是相同的含义。
      AP@0.75 跟PASCAL VOC中的mAP也相同,只是IOU阈值提高到了0.75,显然这个层面更严格,精度也会更低。
      IOU越高,AP就越低,所以最终的平均之后的AP要比 AP@0.5 小很多,这也就是为什么COCO的AP 超过 50%的只有寥寥几个而已,因为超过50%太难了。而且由于COCO数据集本身数据的复杂性,所以目前的 AP@0.5 最高也只有 73% 。

    • COCO数据集还针对 三种不同大小(small,medium,large) 的图片提出了测量标准,COCO中包含大约 41% 的小目标 (area<32×32), 34% 的中等目标 (32×32<area<96×96), 和 24% 的大目标 (area>96×96). 小目标的AP是很难提升的。

    • 除了AP之外,还提出了 AR 的测量标准 跟AP是类似的。

    COCO提供了一些代码,方便对数据集的使用和模型评估 :cocodataset/cocoapi

    6. 总结

    为什么COCO的检测任务那么难?

    • 图片大多数来源于生活中,背景更复杂
    • 每张图片上的实例目标个数多,平均每张图片7.7个
    • 小目标更多
    • 评估标准更严格

    所以现在大家更倾向于使用COCO来评估模型的质量。

    参考文献

    1. 目标检测数据集MSCOCO简介:https://arleyzhang.github.io/articles/e5b86f16/
    2. MS COCO数据集详解:https://blog.csdn.net/u013832707/article/details/93710810
    展开全文
  • mscoco_labels.names

    2018-12-29 18:33:47
    mscoco_labels.names是coco数据集的标签信息,可以根据自己类别进行修改。
  • MS COCO数据集详解

    万次阅读 2019-06-26 10:10:58
    数据集官网首页:http://cocodataset.org/#home 数据集下载: 可用迅雷去下载官方链接,速度还是挺快的。如果速度不快,可能你需要找“正确版本”的迅雷 也可以去这个高中生搭建的下载站下载:...
  • MS COCO数据集

    2021-03-02 00:52:56
    简介MS COCO数据集是目标检测领域中另一个非常有名的大型数据集(前面介绍过 PASCAL VOC ),其中COCO是Common Objects in COntext的缩写,由微软公司...
  • MS COCO数据集介绍以及pycocotools简单使用

    千次阅读 多人点赞 2021-01-27 16:36:50
    MS COCO数据集简介2. MS COCO数据集下载3. MS COCO标注文件格式3.1 使用Python的json库查看3.2 使用官方cocoAPI查看 1. MS COCO数据集简介 官网地址 https://cocodataset.org/ 简介 MS COCO是一个非常大型且...
  • MS COCO格式化程序 下载和格式化MS COCO数据集以进行多标签图像分类的工具 它输出一个.h5文件,其中包含以下内容: data_types:“ train”和“ val” cats:80个类别的名称(将x替换为任何数据类型) x_images:...
  • MSCOCO数据标注详解

    万次阅读 多人点赞 2018-03-19 14:36:39
    cocodataset/cocoapi philferriere/cocoapi - support Windows build and python3 COCO 标注详解 COCO数据集annotation内容 Dataset - COCO Dataset 数据特点 完整代码 点击此处 JSON文件...
  • https://blog.csdn.net/qq_33000225/article/details/78985635
  • MsCOCO数据集标注详解

    千次阅读 2019-02-21 10:17:24
    COCO数据集的标注格式 COCO数据集的介绍:全称是Common ...COCO通过在Flickr上搜索80个对象类别和各种场景类型来收集图像,其使用了亚马逊的Mechanical Turk(AMT)。 COCO数据集的标注类型:object instances(...
  • MS COCO2017数据集

    2019-06-25 15:27:27
    COCO 数据集(全称为 Common Objects in Context)目前最常用于图像检测定位的数据集,是一个新的图像识别、分割、和字幕数据集,其对于图像的标注信息不仅有类别、位置信息,还有对图像的语义文本描述。本资源提供...
  • MS coco 2014数据集

    2019-06-25 15:29:36
    COCO 数据集(全称为 Common Objects in Context)目前最常用于图像检测定位的数据集,是一个新的图像识别、分割、和字幕数据集,其对于图像的标注信息不仅有类别、位置信息,还有对图像的语义文本描述。本资源提供...
  • MS COCO数据集分析

    千次阅读 2018-04-10 21:52:24
    MS COCO数据集分析 COCO数据集有2014和2017两个版本,我主要是关于看了2017版,由于我希望使用Mask RCNN检测图片中的动物,所以非常关注对象检测的类别。 在官网下载标注文件 下载得到annotations_trainval2017...
  • MS COCO数据集简介及评估标准介绍1.简介2. 数据集信息3.评估标准4. 代码 COCO官网:http://cocodataset.org COCO论文1:Microsoft COCO: Common Objects in Context COCO论文2:What makes for effective detection...
  • COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...MS COCO官网数据集(百度云)下载,COCO API、MASK A...
  • 【笔记】制作自己的MSCOCO数据集(VOC2COCO)

    千次阅读 多人点赞 2019-07-08 17:52:50
    文章目录1 MSCOCO数据集简介1.1 概要1.2 数据集格式公共格式特有格式-目标检测类2 动手制作2.1 数据集框架准备2.1 制作xml格式的annotation文件2.2 xml2coco3 测试3.1 安装cocoapi3.2 实测【完】 1 MSCOCO数据集简介...
  • COCO系列文章: MS COCO数据集目标检测评估(Detection Evaluation)(来自官网) MS COCO数据集人体关键点评估(Keypoint Evaluation)(来自官网) ...MS COCO官网数据集(百度云)下载,COCO API、MASK A...
  • 文章目录1 MS COCO 目标检测评价指标2 MS COCO 人体关键点检测评价指标 1 MS COCO 目标检测评价指标 COCO 目标检测评价指标(官网) The evaluation metrics for detection with bounding boxes and segmentation ...
  • 之前使用sift-flow数据集,用FCN官方代码...官方代码没有提供在MS COCO数据集下的相关代码,我自己尝试修改代码,利用MS COCO 2014的数据集实现了semantic segmentation。以下记录了代码修改的地方:
  • MSCOCO数据集格式转化成VOC数据集格式

    万次阅读 热门讨论 2018-03-13 17:35:56
    MSCOCO数据集格式转化成VOC数据集格式转载请注明原出处:http://blog.csdn.net/ouyangfushu/article/details/79543575作者:SyGoingQQ: 2446799425SSD目标检测算法在MSCOCO上训练,SSD默认训练格式是VOC数据集格式,...
  • MS COCO数据集介绍

    万次阅读 多人点赞 2018-07-25 10:35:40
    本文直接从实用型角度介绍下coco数据集。 以coco2014为例,下载资源以后,得到以下目录: annotations中存放的是一大堆json文件: (注,带person和face的是我自己制作的json文件,截图时懒得删除,可以忽略...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,081
精华内容 1,632
关键字:

mscoco的类别