Python----目标检测(PASCAL VOC数据集)

一、PASCAL VOC数据集

        PASCAL VOC(Visual Object Classes)数据集是计算机视觉领域中广泛使用的一个 标准数据集,用于目标检测、图像分割、图像分类、动作识别等任务。该数据集由 PASCAL(Pattern Analysis, Statistical Modelling and Computational Learning) 网络主办的年度挑战赛推出,旨在推动视觉对象识别技术的发展。

PASCAL VOC 数据集可以通过官方网站下载,每个版本的图像和标注文件都可以独立获取:

The PASCAL Visual Object Classes Homepage

2012年数据集下载

        2012 年 PASCAL 视觉对象类挑战赛 (VOC2012)

1.1、数据集的版本

        PASCAL VOC 数据集从2005年开始发布,最常用的版本包括2007、2010和2012年 版本。每个版本包含不同数量的图像和注释。

VOC2007:包括5011张训练图像和4952张测试图像,总共9963张图像。包含20 个类别。

VOC2010:图像数量比VOC2007更多,并增加了更多复杂的场景。

VOC2012:进一步增加了数据集的大小和多样性,包含11530张训练和验证图像 (未公开test)。

1.2、数据集类别

PASCAL VOC 数据集包括以下20个类别(其他类、动物类、交通工具类、家具 类):

1. Person(人)

2. Bird(鸟)

3. Cat(猫)

4. Cow(牛)

5. Dog(狗)

6. Horse(马)

7. Sheep(羊)

8. Aeroplane(飞机)

9. Bicycle(自行车)

10. Boat(船)

11. Bus(公共汽车)

12. Car(汽车)

13. Motorbike(摩托车)

14. Train(火车)

15. Bottle(瓶子)

16. Chair(椅子)

17. Dining table(餐桌)

18. Potted plant(盆栽植物)

19. Sofa(沙发)

20. TV/monitor(电视/监视器)

1.3、 PASCAL VOC任务

1. 目标检测:识别图像中的所有目标,并给出每个目标的类别和边界框。

2. 图像分类:给出整幅图像的类别标签。

3. 语义分割:对图像中的每个像素进行分类,标注其所属类别。

4. 动作识别:识别图像中人物的动作类别。

1.3.1、分类/检测图像示例

1.3.2、语义分割

定义:

        语义分割的目标是将图像中的每个像素分类到预定义的类别中,而不区分同一类别中 的不同个体。

特点:

        类别级别分类:每个像素被分配到一个类别,例如,所有的汽车像素被分类为“汽 车”。

        不区分实例:同一类别的不同个体在结果中不区分,例如,图像中所有的汽车像 素都被标记为“汽车”,而不会区分它们属于不同的汽车。

例子:

        在一张包含两只猫和一只狗的图片中,语义分割的结果是将所有猫的像素标记为 “猫”,将狗的像素标记为“狗”,而不会区分两只不同的猫。

应用:

        自动驾驶汽车中的道路和障碍物检测。

        医学图像处理中的组织和器官分割。

1.3.3、实例分割 

定义:

        实例分割的目标是将图像中的每个像素不仅分类到预定义的类别中,还要区分同一类 别中的不同个体。

特点:

        类别级别和实例级别分类:每个像素不仅被分配到一个类别,还被分配到一个实 例,例如,不仅区分“汽车”,还区分每辆不同的汽车。

        区分实例:同一类别的不同个体在结果中被区分开来,例如,图像中两辆不同的 汽车会被标记为“汽车1”和“汽车2”。

例子:

        在一张包含两只猫和一只狗的图片中,实例分割的结果是将两只猫分别标记为“猫1” 和“猫2”,并将狗标记为“狗”。

应用:

        机器人视觉中的对象识别和抓取。

        计算机视觉中的多对象跟踪和分析。

1.4、数据集结构 

PASCAL VOC 数据集的文件结构通常包括以下几个部分:

        JPEGImages:存放所有图像文件,格式为JPEG。

        Annotations:存放图像的标注文件,格式为XML。每个XML文件对应一张图 像,包含图像中每个对象的类别、边界框坐标等信息。

        ImageSets:包含不同任务(如Main、Segmentation、Layout、Action)下的 训练、验证和测试集的划分文件。

                 Main:用于分类和检测任务。

                Segmentation:用于分割任务。

                Layout:用于物体布局任务。

                Action:用于动作识别任务。

1.5、标注文件示例

<annotation>  <!-- 文件夹名称 -->  <folder>VOC2012</folder>  <!-- 图像文件名 -->  <filename>2007_000033.jpg</filename>  <!-- 图像来源信息 -->  <source>  <database>The VOC2007 Database</database> <!-- 数据库名称 -->  <annotation>PASCAL VOC2007</annotation> <!-- 数据集名称 -->  <image>flickr</image> <!-- 图像来源平台 -->  </source>  <!-- 图像尺寸信息 -->  <size>  <width>500</width> <!-- 图像宽度 -->  <height>366</height> <!-- 图像高度 -->  <depth>3</depth> <!-- 图像深度(RGB三通道) -->  </size>  <!-- 是否进行过分割,1表示是 -->  <segmented>1</segmented>  <!-- 第一个对象(飞机) -->  <object>  <name>aeroplane</name> <!-- 对象类别:飞机 -->  <pose>Unspecified</pose> <!-- 姿态:未指定 -->  <truncated>0</truncated> <!-- 未截断 -->  <difficult>0</difficult> <!-- 不是难以识别的对象 -->  <bndbox>  <xmin>9</xmin> <!-- 边界框左上角X坐标 -->  <ymin>107</ymin> <!-- 边界框左上角Y坐标 -->  <xmax>499</xmax> <!-- 边界框右下角X坐标 -->  <ymax>263</ymax> <!-- 边界框右下角Y坐标 -->  </bndbox>  </object>  <!-- 第二个对象(飞机) -->  <object>  <name>aeroplane</name> <!-- 对象类别:飞机 -->  <pose>Left</pose> <!-- 姿态:向左 -->  <truncated>0</truncated> <!-- 未截断 -->  <difficult>0</difficult> <!-- 不是难以识别的对象 -->  <bndbox>  <xmin>421</xmin> <!-- 边界框左上角X坐标 -->  <ymin>200</ymin> <!-- 边界框左上角Y坐标 -->  <xmax>482</xmax> <!-- 边界框右下角X坐标 -->  <ymax>226</ymax> <!-- 边界框右下角Y坐标 -->  </bndbox>  </object>  <!-- 第三个对象(飞机,部分被截断) -->  <object>  <name>aeroplane</name> <!-- 对象类别:飞机 -->  <pose>Left</pose> <!-- 姿态:向左 -->  <truncated>1</truncated> <!-- 被截断 -->  <difficult>0</difficult> <!-- 不是难以识别的对象 -->  <bndbox>  <xmin>325</xmin> <!-- 边界框左上角X坐标 -->  <ymin>188</ymin> <!-- 边界框左上角Y坐标 -->  <xmax>411</xmax> <!-- 边界框右下角X坐标 -->  <ymax>223</ymax> <!-- 边界框右下角Y坐标 -->  </bndbox>  </object>  
</annotation>  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/81759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mariadb 升级 (通过yum)

* 注意下 服务名, 有的服务器上是mysql,有的叫mariadb,mysqld的 #停止 systemctl stop mysql #修改源 vi /etc/yum.repos.d/MariaDB.repo baseurl http://yum.mariadb.org/11.4/centos7-amd64 #卸载 yum remove mysql #安装 yum install MariaDB-server galera-4 MariaDB-…

vuejs处理后端返回数字类型精度丢失问题

标题问题描述 后端返回数据有5.00和3.30这种数据&#xff0c;但是前端展示的时候返回对应分别为5和3.0&#xff0c;小数点后0都丢失了。 接口返回数据展示network-Response&#xff1a; 接口返回数据展示network-Preview&#xff1a; 错误数据效果展示 发现问题 浏览器接口…

ubuntu kubeasz 部署高可用k8s 集群

ubuntu kubeasz 部署高可用k8s 集群 测试环境主机列表软件清单kubeasz 部署高可用 kubernetes配置源配置host文件安装 ansible 并进行 ssh 免密登录:下载 kubeasz 项⽬及组件部署集群部署各组件开始安装修改 config 配置文件增加 master 节点增加 kube_node 节点登录dashboard…

IDEA2025版本使用Big Data Tools连接Linux上Hadoop的HDFS

目录 Windows的准备 1. 将与Linux上版本相同的hadoop压缩包解压到本地 ​编辑2.设置$HADOOP HOME环境变量指向:E:\hadoop-3.3.4 3.下载hadoop.dll和winutils.exe文件 4.将hadoop.dll和winutils.exe放入$HADOOP HOME/bin中 IDEA中操作 1.下载Big Data Tools插件 2.添加并连…

Java转Go日记(三十九):Gorm查询

1.1.1. 查询 // 获取第一条记录&#xff0c;按主键排序db.First(&user)SELECT * FROM users ORDER BY id LIMIT 1;// 获取最后一条记录&#xff0c;按主键排序db.Last(&user)SELECT * FROM users ORDER BY id DESC LIMIT 1;// 获取所有记录db.Find(&users)SELECT *…

bisheng系列(二)- 本地部署(前后端)

一、导读 环境&#xff1a;Ubuntu 24.04、open Euler 23.03、Windows 11、WSL 2、Python 3.10 、bisheng 1.1.1 背景&#xff1a;需要bisheng二开商用&#xff0c;故而此处进行本地部署&#xff0c;便于后期调试开发 时间&#xff1a;20250519 说明&#xff1a;bisheng前后…

5G金融互联:迈向未来金融服务的极速与智能新时代

5G金融互联:迈向未来金融服务的极速与智能新时代 大家好,我是Echo_Wish,今天咱们聊聊一个大家都十分关心的话题:5G网络在金融服务中的应用。咱们平时可能觉得5G只是打个电话、刷个视频更流畅了,但在金融服务领域,5G的低延时、大带宽和高可靠性正在悄然改变整个游戏规则。…

UE5 GAS框架解析内部数据处理机制——服务器与客户端

当&#xff0c; gas通过点击鼠标光标触发事件时&#xff0c;内部的处理机制。 当通过点击事件&#xff0c;命中中目标时&#xff0c; 可获取到对应的TargetData 目标数据。处理相应的操作。 仅有本地的客户端的情况下。命中并不会有什么异常。 当存在服务器时&#xff0c; 服…

Golang的Web应用架构设计

# Golang的Web应用架构设计 介绍 是一种快速、高效、可靠的编程语言&#xff0c;它在Web应用开发中越来越受欢迎。Golang的Web应用架构设计通常包括前端、后端和数据库三个部分。在本篇文章中&#xff0c;我们将详细介绍Golang的Web应用架构设计及其组成部分。 前端 在Golang的…

对比 HTTP-REST 与 gRPC:各自的优缺点以及适用的场景

文章目录 对比 HTTP-REST 与 gRPC&#xff1a;各自的优缺点以及适用的场景HTTP-REST 与 gRPC 的核心区别gRPC 的优缺点HTTP-REST 的优缺点适用场景 模糊点什么是 Protobuf&#xff1f;HTTP/2 会将 HTTP 消息拆分并封装为二进制帧&#xff0c;那还能过使用 HTTP/2 构建 RESTful …

现代健康生活养生指南

现代社会中&#xff0c;熬夜加班、久坐不动、饮食不规律成为许多人的生活常态&#xff0c;由此引发的健康问题也日益增多。想要摆脱亚健康&#xff0c;不必依赖中医理念&#xff0c;从以下这些现代科学养生方法入手&#xff0c;就能逐步改善身体状况。​ 饮食上&#xff0c;注…

Go语言数组的定义与操作 - 《Go语言实战指南》

在 Go 语言中&#xff0c;数组&#xff08;Array&#xff09; 是一种定长、同类型的集合。它在内存中是连续分布的&#xff0c;适合用于性能敏感的场景。 一、数组的定义 数组的基本语法如下&#xff1a; var 数组名 [长度]元素类型 示例&#xff1a; var nums [5]int …

Helm Chart 中配置多个 Docker Registry 地址以实现备用访问

在 Helm Chart 中配置多个 Docker Registry 地址以实现备用访问&#xff0c;可以通过以下几种方式实现&#xff1a; 1. 在 values.yaml 中定义多个 Registry 在 values.yaml 中定义主 Registry 和备用 Registry&#xff0c;以便在部署时灵活切换&#xff1a; # values.yaml …

云原生安全:错误策略S3存储桶ACL设置为Everyone:FullControl

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 ——从基础到实践的深度解析 1. 基础概念 S3存储桶与ACL Amazon S3(Simple Storage Service)是AWS提供的对象存储服务,支持存储和检索任意规模的数据。ACL(访问控制列表…

.NET 8 kestrel 配置PEM,实现内网https

一、生成证书 mkcert 是一个简单的工具&#xff0c;用于制作本地信任的开发证书。它不需要配置。 mkcert官方仓库地址&#xff1a;GitHub - FiloSottile/mkcert: A simple zero-config tool to make locally trusted development certificates with any names youd like. 简…

nodejs快速入门到精通1

参考 nodejs快速入门到精通 菜鸟教程-nodejs nodejs官方文档 原因 视频免费 资料收费 笔记还是自己写吧 安装 nodejs官网 windows下&#xff1a; #查看nodejs版本 node -v #查看npm版本 npm -v #设置npm为淘宝镜像源 npm config set registry https://registry.npmmirror.…

nginx负载均衡及keepalive高可用

实验前期准备&#xff1a; 5台虚拟机&#xff1a;4台当做服务器&#xff0c;1台当做客户机&#xff08;当然&#xff0c;也可以使用主机的浏览器&#xff09;&#xff0c;4台服务器中&#xff0c;2台服务器当做后端真实访问服务器&#xff1b;另外2台服务器当做负载均衡服务器…

go语法大赏

前些日子单机房稳定性下降&#xff0c;找了好一会才找到真正的原因。这里面涉及到不少go语法细节&#xff0c;正好大家一起看一下。 一、仿真代码 这是仿真之后的代码 package mainimport ("fmt""go.uber.org/atomic""time" )type StopSignal…

Android 14 解决打开app出现不兼容弹窗的问题

应用安装到 Android 14 上&#xff0c;出现如下提示 This app isn’t compatible with the latest version of Android. Check for an update or contact the app’s developer. 通过源码找原因。 提示的字符 根据字符找到 ./frameworks/base/core/res/res/values/strings.xm…

Linux句柄数过多问题排查

以下是Linux句柄数过多问题的排查与解决方法整理&#xff1a; 一、检测句柄使用情况 1‌.查看系统限制‌ 单个进程限制&#xff1a;ulimit -n 系统级总限制&#xff1a;cat /proc/sys/fs/file-max 2‌.统计进程占用量‌ 查看指定进程&#xff1a;lsof -p <PID> | wc -…