• Pascal VOC & COCO数据集介绍 & 转换


    Pascal VOC & COCO数据集介绍

    Pascal VOC数据集介绍

    • Annotations
    • ImageSets
    • JPEGImages
    • SegmentationClass
    • SegmentationObject

    1. JPEGImages

    主要提供的是PASCAL VOC所提供的所有的图片信息,包括训练图片,测试图片

    这些图像就是用来进行训练和测试验证的图像数据。

    2. Annotations

    主要存放xml格式的标签文件,每个xml对应JPEGImage中的一张图片

    <annotation>  
        <folder>VOC2012</folder>                             
        <filename>2007_000392.jpg</filename>                             //文件名  
        <source>                                                         //图像来源(不重要)  
            <database>The VOC2007 Database</database>  
            <annotation>PASCAL VOC2007</annotation>  
            <image>flickr</image>  
        </source>  
        <size>                                            //图像尺寸(长宽以及通道数)                        
            <width>500</width>  
            <height>332</height>  
            <depth>3</depth>  
        </size>  
        <segmented>1</segmented>            //是否用于分割(在图像物体识别中01无所谓)  
        <object>                              //检测到的物体  
            <name>horse</name>                                         //物体类别  
            <pose>Right</pose>                                         //拍摄角度  
            <truncated>0</truncated>                                   //是否被截断(0表示完整)  
            <difficult>0</difficult>                                   //目标是否难以识别(0表示容易识别)  
            <bndbox>                                                   //bounding-box(包含左下角和右上角xy坐标)  
                <xmin>100</xmin>  
                <ymin>96</ymin>  
                <xmax>355</xmax>  
                <ymax>324</ymax>  
            </bndbox>  
        </object>  
        <object>              //检测到多个物体  
            <name>person</name>  
            <pose>Unspecified</pose>  
            <truncated>0</truncated>  
            <difficult>0</difficult>  
            <bndbox>  
                <xmin>198</xmin>  
                <ymin>58</ymin>  
                <xmax>286</xmax>  
                <ymax>197</ymax>  
            </bndbox>  
        </object>  
    </annotation>  
    

    3. ImageSets

    • Action // 人的动作
    • Layout // 人体的具体部位
    • Main // 图像物体识别的数据,总共20类, 需要保证train val没有交集
      • train.txt
      • val.txt
      • trainval.txt
    • Segmentation // 用于分割的数据

    4. SegmentationObject & SegmentationClass

    保存的是物体分割后的数据,在物体识别中没有用到

    COCO数据集介绍

    COCO数据集是微软团队获取的一个可以用来图像recognition+segmentation+captioning 数据集

    这个数据集以scene understanding为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation进行位置的标定。图像包括91类目标,328,000影像和2,500,000个label。

    该数据集主要解决3个问题:目标检测,目标之间的上下文关系,目标的2维上的精确定位。数据集的对比示意图:

    img

    数据集分类

    • 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算法。

    Coco

    COCO数据集有91类,虽然比ImageNet和SUN类别少,但是每一类的图像多,这有利于获得更多的每类中位于某种特定场景的能力,对比PASCAL VOC,其有更多类和图像。

    COCO难度更大,因为coco数据集每张图片中的物体数目很多,所以导致相对别的数据集,该数据集检测的准确率很低

    VOC数据集转化为COCO数据集格式

    Facebook的Detectron平台只支持coco格式的数据集,所以需要将VOC格式的数据集转化为coco格式的数据集

    具体过程参照:https://blog.csdn.net/meccaendless/article/details/79457330

    训练detectron

    训练

    python2 tools/train_net.py --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml  OUTPUT_DIR experiments/output
    

    测试

    python2 tools/infer_simple.py  
    --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml 
    --output-dir experiments/test_out/ 
    --wts ./pretrained_model/model_final.pkl 
    test_demo_cow
    

    other:(注意在训练结束后inferece时,需要将cls_score_voc以及bbox_pred_voc改回。不然会报错)

    python2 tools/infer_simple.py --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml --output-dir experiments/test_out/ --wts ./experiments/output_bak/train/voc_2007_train/generalized_rcnn/model_final.pkl test_demo_cow
    

    评估

    python2 tools/test_net.py 
    --cfg experiments/e2e_faster_rcnn_resnet-50-FPN_pascal2007.yaml 
    TEST.WEIGHTS ./experiments/output_bak/train/voc_2007_train/generalized_rcnn/model_final.pkl  
    NUM_GPUS 1
    

    Reference

    https://blog.csdn.net/weixin_35653315/article/details/71028523

    https://blog.csdn.net/u012905422/article/details/52372755

  • 相关阅读:
    [Unity3D]Animation说明
    [Unity3D]Shader说明
    [AR+Vuforia]学习笔记
    [Android]ListView学习笔记
    [Android]优化相关
    [Android]学习笔记之布局
    [Android]快捷键
    [Android]学习笔记Activity_001
    [Unreal]学习笔记之灯光说明
    什么是Hystrix,Hystrix如何使用
  • 原文地址:https://www.cnblogs.com/pprp/p/9629752.html
Copyright © 2020-2023  润新知