遇到不熟悉的问题时,还是直接看官方文档直接。

我想用Vocdevkit里对检测见过进行评估的程序,所以把从devkit_doc.pdf里看到的内容记录下:

4. Detection Task

4.1 Task

  对于20个类中的每一个,预测测试图像中该类的每个对象的边界框(如果有的话)。 每个边界框应该输出一个相关的检测实值置信度,以便绘制一条精度/回调曲线。 参与者可以选择处理全部或任何对象类别的子集,例如“仅限汽车”或“摩托车和汽车”。

4.2 Competitions

  根据训练数据的来源来定义两项比赛:(i)从VOC提供的数据中提取数据,或者(ii)不包括所提供的VOC测试数据的任何来源:

No. Task Training data Test data
3 Detection trainval test
4 Detection any but VOC test test

  在比赛3中,在VOC训练和训练集中提供的任何注释可以用于训练,例如边界框或特定视图,例如, '正面'或'左'。 参与者不得对培训或测试数据进行额外的手动注释。

4.3 Submission of Results

  应为每个比赛(3或4)和每个比赛类别产生单独的结果,比方 '汽车'。 每行应该是检测器的检测输出,格式如下:

<image identifier> <confidence> <left> <top> <right> <bottom>

  其中(左,上) - (右,下)定义检测对象的边界框。 图像中左上角的像素具有坐标(1,1)。 更高的置信度值意味着检测结果的正确性。 下面显示了一个示例文件摘录。 请注意,对于图像000006,检测到多个对象:

//comp3_det_test_car.txt:
000004 0.702732 89 112 516 466
000006 0.870849 373 168 488 229
000006 0.852346 407 157 500 213
000006 0.914587 2 161 55 221
000008 0.532489 175 184 232 201

  例程中检测器实现(第7.2.2节)包括用于以所需格式生成结果文件的代码。

4.4 Evaluation

  检测任务将通过精度/召回曲线来判断。 使用的主要定量测量将是平均精度(AP)。 用于计算精度/召回率和AP度量的示例代码在开发工具包中提供。

  通过和GT边界框重叠的区域,判断检测结果是TP或FP。 为了被认为是正确的检测,预测边界框B p和GT边界框B gt之间的重叠区域a o必须超过50%.在开发工具包中提供了用于计算此重叠度量的示例代码。 图像中同一对象的多次检测被视为错误检测,例如 单个对象的5次检测被计为1次正确检测和4次错误检测 - 参与者系统有责任从其输出中过滤多次检测。

7 Development KIt

  开发工具包打包在一个包含MATLAB代码和(本)文档的gzip压缩文件中。 比赛的图像,注释和训练/验证集的列表在单独的档案中提供,可以通过VOC网页获得[1]。

7.1 Installation and Configuration

  最简单的安装是通过将开发工具和挑战数据库放在一个位置来实现的。 在解开开发工具包之后,下载挑战镜像数据库并解压到相同的目录中,产生以下目录结构:

VOCdevkit/                                      % development kit
VOCdevkit/VOCcode/                     % VOC utility code
VOCdevkit/results/VOC2007/               % your results on VOC2007
VOCdevkit/results/VOC2006/               % your results on VOC2006
VOCdevkit/local/                     % example code temp dirs
VOCdevkit/VOC2007/ImageSets              % image sets
VOCdevkit/VOC2007/Annotations              % annotation files
VOCdevkit/VOC2007/JPEGImages             % images
VOCdevkit/VOC2007/SegmentationObject         % segmentations by object
VOCdevkit/VOC2007/SegmentationClass          % segmentations by class

7.2 Example Code

  为所有任务均提供了示例实现。 这些(最小)实现的目的仅仅是为了演示开发工具包中代码的使用。

7.2.2 Example Detector Implementation

  文件example_detector.m包含检测任务的完整实现。 对于每个VOC对象类,一个简单的(并且不是很成功的)探测器在训练集上训练; 然后将检测器应用于验证集,并将输出保存到比赛所需格式的结果文件中; 绘制精度/回想曲线并显示“平均精度”(AP)度量

8 Using the Development Kit

  开发工具包提供加载注释数据的功能。 还提供了用于计算精度/召回曲线和分段准确度以及用于查看注释的示例代码。

8.1 Image Sets

8.1.1 Classification/Detection Task Image Sets

  VOC2007 / ImageSets / Main /目录包含指定 主要分类/检测任务 的图像列表的文件。

  文件train.txt,val.txt,trainval.txt和test.txt列出了相应图像集(训练,验证,训练+验证和测试)的图像标识符。 文件的每一行都包含一个图像标识符。 以下MATLAB代码将图像列表读入字符串的单元数组:

imgset=’train’;
ids=textread(sprintf(VOCopts.imgsetpath,imgset),’%s’);

  对于给定的图像标识符ids {i},可以生成相应的图像和标签文件路径:

imgpath=sprintf(VOCopts.imgpath,ids{i});
annopath=sprintf(VOCopts.annopath,ids{i});

  请注意,所使用的图像集对于所有类都是相同的。 对于每场比赛,参赛者需要为测试集中的所有图像提供输出。

8.2 Development Kit Functions

8.2.1 VOCinit

  VOCinit脚本初始化包含PASCAL功能选项的单个结构VOCopts,包括包含VOC数据和评估功能选项(不会被修改)的目录。

关键词 classes 中列出了这个比赛所用到的类别:

VOCopts.classes={’aeroplane’,’bicycle’,’bird’,’boat’,...’bottle’,’bus’,’car’,’cat’,...’chair’,’cow’,’diningtable’,’dog’,...’horse’,’motorbike’,’person’,’pottedplant’,...’sheep’,’sofa’,’train’,’tvmonitor’};

关键词 testset 指明了用于测试的图片集:

VOCopts.testset=’val’; % use validation data for development

为方便起见,其他关键词提供图像和注释数据以及结果文件的路径。 示例实现中说明了这些路径的使用。

8.2.2 PASreadrecord( filename )

  PASreadrecord函数从文件名指定的注释文件中读取特定图像的注释数据,例如:

>> rec=PASreadrecord(sprintf(VOCopts.annopath,’000058’))rec =
folder: ’VOC2007’
filename: ’000058.jpg’
source:[1x1 struct]
size:[1x1 struct]
segmented:0
imgname:’VOC2007/JPEGImages/000058.jpg’
imgsize:[500 375 3]
database:’The VOC2007 Database’
objects:[1x4 struct]

8.2.3 viewanno( imgset )

viewanno函数显示由imgset指定的图像集中图像的注释。 一些例子:

>> viewanno(’Main/train’);
>> viewanno(’Main/car_val’);
>> viewanno(’Layout/train’);
>> viewanno(’Segmentation/val’);

8.4 Detection Functions

8.4.1 VOCevaldet( VOCopts, id, cls. draw )

VOCevaldet函数执行检测任务的评估,计算精度/召回曲线和平均精度(AP)度量。 参数id和cls指定要加载的结果文件,例如:

>> [rec,prec,ap]=VOCevaldet(VOCopts,’comp3’,’car’,true);

进一步的例子见示例检测器。 如果参数绘制为true,则精确度/回忆曲线绘制在数字窗口中。 该函数返回rec和prec中的召回和精度比率的矢量,以及ap中的平均精度度量。

8.4.2 viewdet( id, cls, onlytp )

viewdet函数显示存储在检测任务的结果文件中的检测结果。 参数id和cls指定要加载的结果文件,例如:

>> viewdet(’comp3’,’car’,true)

如果onlytp 参数是true,则只显示通过VOC评估测量被认为是真正的检测。

转载于:https://www.cnblogs.com/caffeaoto/p/8809322.html

PASCAL VOC工具包解读相关推荐

  1. 【SSD论文解读】 论文中用到的数据集:Pascal VOC、MS COCO、ImageNet

    [SSD论文解读] 论文中用到的数据集 一.数据集介绍 1.Pascal VOC 2.MS COCO 3.ILSVRC 二.数据集处理函数 1.专门的datasets类 2.论文中的数据集处理函数 三 ...

  2. 目标检测实战篇1——数据集介绍(PASCAL VOC,MS COCO)

    前言   前面我们讲过了目标检测的YOLO系列算法,SSD算法.从这个博文开始,我们要真实开启实战篇章.在正式介绍实战篇之前,我们需要先知道两个数据集:PASCAL VOC和COCO数据集. 一.PA ...

  3. 建立自己的voc数据集_一次将自己的数据集制作成PASCAL VOC格式的惨痛经历

    因为准备训练keras-yolo3,开源代码上给出了voc_annotation.py文件,只要将自己的数据格式处理成PASCAL VOC格式,那么运行voc_annotation.py就可以将自己的 ...

  4. Dataset之Pascal:Pascal竞赛及其Pascal VOC(VOC 2012、VOC 2007) 数据集的简介、下载、使用方法详细攻略

    Dataset之Pascal VOC:Pascal VOC(VOC 2012.VOC 2007) 数据集的简介.下载.使用方法详细攻略 目录 Pascal 竞赛 1.PASCAL VOC竞赛任务 2. ...

  5. 目标检测数据集PASCAL VOC简介

    简介 PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛, PASCAL全称:Pattern Analysis, Stat ...

  6. Ubuntu上用caffe的SSD方法训练Pascal VOC数据集

    实验目的 继caffe和ssd搭建完成,demo也演示完毕,了解一些基本知识后,现在开始训练自己的数据集,在给自己的训练集处理之前,先跟着官方的示例将Pascal VOC数据集训练走一遍,把可能会踩坑 ...

  7. RCNN系列实验的PASCAL VOC数据集格式设置

    我们在做RCNN系列的实验时,往往需要把数据集的格式设置为和PASCAL VOC数据集一样的格式,其实当然也可以修改读取数据的代码,只是这样更为麻烦,自己的数据格式变了又得修改.  首先以VOC200 ...

  8. Deep Learning---py-faster-rcnn基于PASCAL VOC数据集训练模型

    0 说明 系统环境为Ubuntu14.04, 已经安装好了CUDA和cuDNN以及Python等基础包. 1 设置和编译py-faster-rcnn 1.1 下载py-faster-rcnn $ gi ...

  9. 对PASCAL VOC 数据集进行数据增强

    对PASCAL VOC 数据集进行数据增强 1.GitHub仓库位置 目的:对VOC数据集的对象检测的数据进行数据增强.如果能帮到您请给本人一颗⭐,拜托了!!!!! https://github.co ...

最新文章

  1. 【linux】嵌入式中 crontab的使用
  2. 一个非常好用的 Python 魔法库
  3. 人群密度估计--Generating High-Quality Crowd Density Maps using Contextual Pyramid CNNs
  4. 镁的提取及应用_电熔镁炉、电熔镁以及菱镁耐火材料的发展及简介
  5. groupby python_【实战案例】用Python做出5 种非传统的可视化技术,超炫酷的动态图...
  6. 23种设计模式的索引
  7. 从真实项目中抠出来的设计模式——第三篇:责任链模式
  8. Excel 取消Internet及网络路径自动替换为超链接
  9. Spring Boot 快速集成第三方登录功能
  10. fasterrcnn论文_论文笔记:Fast(er) RCNN
  11. h3c trunk口改access_H3C交换机恢复出厂和各种基本配置
  12. 如何设计艺术字体,可以从这两个方面入手
  13. 远程工具TeamViewer
  14. 常见电线电缆电阻的检测方法盘点
  15. 升级opengl和显卡驱动_opengl驱动 OpenGL版本或显卡驱动版本太低的解决方法介绍_网络-游戏圈...
  16. mysql r_mysql:’r’是什么意思?
  17. Linux内核延迟写机制学习
  18. 2018-10-20-C#-从零开始写-SharpDx-应用-初始化dx修改颜色
  19. 锤子使用手册 android,锤子爱好者的新手使用指南
  20. 《推荐系统实战》读书笔记——在隐式反馈系统中如何给商品打分

热门文章

  1. 系统架构升级要不要上微服务?历“久”弥新微服务——你真的需要升级微服务架构吗
  2. 【CentOS】利用Kubeadm部署Kubernetes (K8s)
  3. VSCode 安装 Go 插件、gopls 是个什么东东
  4. Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)
  5. 遇事不责怪别人,换位思考能成全更好的自己
  6. 53个Python库,你必须要试试
  7. Python怎么利用多核cpu
  8. window10+python3.7安装tensorflow--gpu tensorflow 安装
  9. Arm架构CPU服务器
  10. GPU上的快速光谱图分区