目标检测(1)—— 基础知识和常用数据集

news2024/11/28 12:40:37

一、什么是目标检测

一张图片,经过网络后得到输出,检测出感兴趣目标的一个位置,比如下图的车在什么地方,狗在什么地方;还要输出相应位置的目标是什么类别的。
目标检测:位置+类别

  • 矩形框:位置
  • 矩形框:类别

在这里插入图片描述

eg:人脸检测
把人脸作为目标,就把人脸框起来。

在这里插入图片描述
eg:文字检测
把文字当作目标,就把文字框起来。

在这里插入图片描述

重点在于:要学会判断你要做的东西的目标是什么?

主流的目标检测,都是以矩形框的形式进行输出的。一般精度不高。
更高精度的:叫做语义分割。

语义分割:用不同的颜色区分开。矩形框会包含背景,所以精度没有那么高。语义分割的训练要求更高。

在这里插入图片描述

  • 总结:目标检测能满足大多数场景,如果需要更高的精度,选择语义分割。

二、目标检测数据集

1、常见的数据集

VOC数据集

VOC2007、VOC2012
训练集-图片:人工对训练集进行标注,需要标注想要的目标在那个位置,对应的是哪个目标
测试集-图片:测试集也有一些标注。
具体如下:(这里省略验证集)
共四种类型的图片,竞赛给参赛者前三种图片,参赛者用自己的网络模型对训练集的图片和标注进行训练,然后用训练好的模型,在测试集的图片上跑一遍,得到测试集的标注。参赛者把测试集的标注提交给比赛方,比赛方把自己的标注和参赛者的标注进行比较后排名。

在这里插入图片描述

为什么用VOC2007、VOC2012?
05-07一个阶段,08-12一个阶段。选择数据集比较大的。

数据集的下载

第一种下载方式:在VOC官网下载。
http://host.robots.ox.ac.uk/pascal/VOC/
第二种下载方式:PyTorch自带。

在这里插入图片描述

数据集的标注

VOC2007:

在这里插入图片描述

  • Annotations:包含了xml文件,描述了图片的各种信息,特别是目标的位置坐标。
  • ImageSets:主要关注Main文件夹,里面的文件包含了不同类别目标的训练/验证数据集图片名称
  • JPEGImages:原图片。
  • SegmentationClass/Object:用于语义分割,不关注。

Annotations:标注
xml是一种规定的格式。

在这里插入图片描述
打开000032.xml,xml里面包括了图片的信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
bndbox是核心,打开网站:图片在线查看工具

https://www.gifgit.com/image/rectangle-tool

验证xml中矩形框:

在这里插入图片描述

ImageSets:重点关注Main

在这里插入图片描述

aeroplane_train:aeroplane代表是飞机这一类,train代表是训练集,剩下的同。

在这里插入图片描述

000032.jpg是飞机,打开aeroplane_train.txt

在这里插入图片描述

该图片在飞机这一类。只要图片中有飞机(不是有一个飞机),就是1,为正样本;-1代表图片中没有飞机。

在这里插入图片描述

JPEGImages:原图。

在这里插入图片描述
例如:000031.jpg

在这里插入图片描述

针对目标检测,2012没有包含2007,从2008开头的;针对图像分割,就包含了2007。

COCO数据集

官网:https://cocodataset.org/#home

在这里插入图片描述
常用COCO2017,下载2017的val和它的标注,看一下是怎么标注的。(所以就下个小的,和18G的目录一样)

在这里插入图片描述
val2017:里面是图片。

在这里插入图片描述
在这里插入图片描述
打开任意的一个instance的json文件,发现很大,这里用一小部分举例子(只有两张图片)。

图片中没有群体的情况:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图片中有群体的情况:

在这里插入图片描述
在这里插入图片描述
segmentation中的counts表述方式为:

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

vue 的 render 函数的用法:new Vue({ render: h => h(App), }).$mount(‘#app‘)

render函数的作用 render函数是vue通过js渲染dom结构的函数createElement,约定可以简写为h 官方文档中是这样的,createElement 是 Vue.js 里面的 函数, 这个函数的作用就是生成一个 VNode节点, render 函数得到这个 VNode 节点之后…

记一次内网靶机实战

文章目录0x00 边界服务器0x01 一层网络0x01-01 fscan内网扫描0x01-02 配置frp设置socks5代理0x01-03 访问内网的(10.10.135.66)0x01-04 访问内网的(10.10.135.35)0x01-05 访问内网的(10.10.135.190)0x02二层…

稀疏数组

章节目录:一、稀疏数组1.1 需求引出1.2 基本介绍1.3 应用实例二、结束语一、稀疏数组 1.1 需求引出 假设我们有个五子棋程序,使用1来表示黑子,2表示蓝子,0表示没有棋盘落子,并且需要对棋盘数据进行存储。 前端棋盘示意…

546、Zookeeper详细入门教程系列 -【Zookeeper内部原理】 2022.11.06

目录一、Zookeeper内部原理1.1 节点类型(Znode)1.2 Stat结构体1.3 监听器原理1.4 选举机制1.5 写数据流程二、最后三、参考链接一、Zookeeper内部原理 1.1 节点类型(Znode) 持久:客户端和服务器断开后,创…

汇编语言程序设计 --- 一元二次方程ax2+bx+c=0求解(含注释详细源代码 + 实验报告)

目录一、实验内容二、实验说明三、实验报告要求四、实验目的五、 程序流程图六、内存变化情况七、实验报告 源程序代码 (详细注释)一、实验内容 一元二次方程ax2bxc0求解。 二、实验说明 1、要求在数据段中定义a、b、c、x,a、b、c初值不限…

【晶振专题】案例:为什么对着STM32低速32.768K晶振哈口气就不起振了?

本案例发现在一个工装产品上,首批一共做了10几台样机。发现有的样机在开机的时候读取不到RTC,有的样机却可以。读不到RTC是概率性出现的,发生在第一次上电的情况。开始他怀疑是环境问题,会不会和温度有关,于是同事在家做了大量的实验,发现对晶振吹口气就能让晶振不起振,…

01-nacos在Windows系统单机,集群的安装

一 ,什么是Nacos?官网 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 提供了一组简单易用的特性集,能够快速实现动态服务发现、服务…

Flutter教程之在 Flutter 中显示 TextField 上的日期选择器(教程含源码)

首先我们必须知道它是什么 Flutter 中的日期选择器——Flutter 日期范围选择器是一个轻量级的小部件,它允许用户轻松选择单个日期、多个日期或一个日期范围。日期选择器提供月、年、十年和世纪视图选项,以快速导航到所需的日期。 让我们实现它… 日期选择器—— 我们将在 …

机场调度管理系统(客户端+服务器端+Java+MySQL)

目 录 1 绪论 1 1.1 项目背景 1 1.2 项目目的 1 1.3 项目可行性分析 2 2 技术介绍 3 2.1 Java技术 3 2.1.1 Java技术简介 3 2.1.2 Java面向对象的特征 3 2.2Javascript和jQuery技术 4 2.1.1 Javascript 简介 4 2.2.2 jQuery-easyui简介 4 2.3Jsp技术 5 2.4 Mysql 5 3 需求分析…

python基础05——字典:dict及集合:set,看这篇文章就够了

目录1字典: dict 无序可变序列1.1 创建1.1.1 用{ }创建字典1.1.2 用dict创建字典1.1.3 用zip创建字典1.1.4 用fromkeys创建字典1.2 查询1.2.1 通过键访问字典的值1.2.1.1 直接取键 dict[ ]1.2.1.2 get()1.2.2 查看字典的键和值1.2.2.1 返回所有的键 dict.keys()1.2.2.2 返回所有…

分布式搜索———黑马旅游

案例功能实现 : ● 酒店搜索和分页 ● 酒店结果过滤 ● 我周边的酒店 ● 酒店竞价排名 资源链接 hoteld-demo工程:https://pan.baidu.com/s/1YlKz6vxcm7VWXAWPlUiBqg 提取码:GY66 进入hoteld-demo工程,启动服务,打开浏览器进入…

uniapp微信小程序半屏跳转小程序

1、资料设置申请绑定 进入微信小程序 设置 -> 第三方设置 -> 半屏小程序管理 添加需要绑定的小程序的appid 等待审核,审核通过后开始写代码 2、代码编写 (1)、以前的跳转方式是uni.navigateToMiniProgram 换成wx.openEmbeddedMiniP…

Spring核心思想

文章目录1. Spring核心思想1.1 Spring是什么1.2 什么是容器1.3 什么是loC1.3.1 传统开发1.3.2 如何解决传统开发中耦合度高的问题1.3.3 控制反转程序的编写1.4 理解Spring loC1.5 什么是DI1. Spring核心思想 1.1 Spring是什么 我们通常说的Spring是Spring Framework(Spring框…

一个非常实用的分布式 JVM 监控工具

介绍 该项目为了方便开发者更快监控多个远程主机jvm,如果你的项目是Spring boot那么很方便集成,jar包引入即可,不是Spring boot也不用气馁,你可以快速自行初始化一个Spirng boot程序引入jar包即可 效果展示 整体架构 git地址 ht…

Kafka由浅入深(6) Sender线程执行源码解析

一、KafkaProducer消息流程图 1.1 KafkaProducer 消息架构图 1.2 KafkaProducer 消息架构分为两部分 第一部分是KafkaProducer主线程 主要逻辑提供消息拦截器、序列化器、和分区器的默认实现和对外自定义扩展功能,已经将消息追加并缓存到累加器RecordAccumulator…

NeurIPS 2022 | 涨点神器!利用图像辅助三维点云分析的训练新范式

原文链接:https://www.techbeat.net/article-info?id4212 作者:颜旭 点云作为一种基本的三维表征形式,活跃在自动驾驶、机器人感知等多种任务上。尽管三维点云分析在近年来取得了良好的发展,但由于点云其本身往往是无序、无纹理以…

OpenCV笔记--人脸识别算法Eigenfaces和Fisherfaces

目录 1--前言 2--处理ORL数据集 3--Eigenfaces复现过程 4--Fisherfaces复现过程 5--分析 1--前言 ①SYSU模式识别课程作业 ②配置:基于Windows11、OpenCV4.5.5、VSCode、CMake(参考OpenCV配置方式) ③原理及源码介绍:Face…

云栖探馆!云小宝首秀遇上老司机小龙,猜猜谁赢了?

为啥人人都喜欢秋天呢?因为我们打喷嚏都是“爱秋”啊~ 为啥大家会来云栖大会呢?因为云栖大会让我们在一“栖”啊~ 2022云栖大会龙蜥峰会,小龙来啦~! ​ 去年,小龙作为萌新来到云栖大会&#…

归并排序.

归并排序介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用金典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个答案"修补"在一起,即分而治之) 归并排序的思想示…

为什么程序员会秃头?盘点程序员糟心的几大因素

程序员与脱发似乎存在某种必然的逻辑连接,程序员秃头已经成为大家心中的思维定势。 一提到程序员,难免会想起来java, c, python以及无休止的debug环节,不难想象经常会有程序员跳楼自杀的情况。因为实在是生存不易&…