深度学习目标检测入门实战

深度学习目标检测入门实战

  • 一、什么是目标检测
  • 二、目标检测常用的数据集(开源)
    • (一)VOC数据集
      • (1)背景知识
      • (2)数据集的下载
      • (3)VOC2007 数据集的标注
      • (4)VOC2012 数据集的标注
    • (二)COCO 数据集
      • (1)背景知识
      • (2)数据集的下载
      • (3)COCO2017 数据集的标注
  • 三、如何标注自己的数据集
    • (一)MakeSense(在线)
    • (二)CVAT(在线)(强推!)
    • (三)Labelimg(虚拟环境)
    • (四)精灵标注助手(本地)
  • 四、如何用Pytorch读取COCO数据集
  • 五、如何用自己的数据集标注成COCO的数据格式

一、什么是目标检测

(一)目标检测:位置 + 类别
主流的目标检测,都是矩阵框的形式输出
在这里插入图片描述

人脸检测:目标-人脸
文字检测:目标-文字

(二)语义分割:更高精度
在这里插入图片描述


二、目标检测常用的数据集(开源)

(一)VOC数据集

官网:http://host.robots.ox.ac.uk/pascal/VOC/

(1)背景知识

  • 很多领域数据集的开源往往都伴随着竞赛的产生,VOC就是PASCAL竞赛中所使用的数据集
    比赛形式:
    在这里插入图片描述
    在这里插入图片描述

数据集在这里插入图片描述
评分系统在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • VOC 2005 ~ 2012 发展历史在这里插入图片描述
    在这里插入图片描述
    所以大家更偏向于使用 VOC2007、VOC2012 数据集

(2)数据集的下载

强烈建议把数据集链接复制到迅雷中下载!!!
除了原始官方的下载路径,还有P2P资源,其他人下载此文件,迅雷开着,也愿意分享,我们就可以从这些地方获得资源,可大大提升下载速度

法一:用VOC官网

  1. 进入不同年份的竞赛
    在这里插入图片描述
  2. 在 Development Kit 中下载
    在这里插入图片描述
    法二:用Pytorch中的库
    在这里插入图片描述
    在这里插入图片描述

这里我们就以下载 VOC2007 和VOC2012为例
在这里插入图片描述
.tar是Linux上面的压缩格式,右键解压即可
在这里插入图片描述

(3)VOC2007 数据集的标注

  • VOC2007中的文件
    在这里插入图片描述
  • Annotations:其文件夹底下包含了.xml 文件,描述了图片的各种信息,特别是目标的位置坐标
    在这里插入图片描述
  • ImageSets:主要关注Main文件夹底下的内容,里面的文件包含了不同类别目标的训练/验证数据集图片名称
    在这里插入图片描述
    在这里插入图片描述
  • JPEGImages:原图片
    在这里插入图片描述
  • SementationClass/Object:用于语义分割,我们不关注
    在这里插入图片描述

(4)VOC2012 数据集的标注

会发现文件夹的结构目录和 VOC2007 的一样,唯一不同的可能就是文件夹中图片的命名方式:年份_图片标号

在这里插入图片描述

  • 对于先前以2008年为分界线,数据集不同的解释
    在这里插入图片描述
  • 复习解读
    在这里插入图片描述

(二)COCO 数据集

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

(1)背景知识

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

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

Download
在这里插入图片描述

我们常用的数据集是 COCO2017

(2)数据集的下载

在这里插入图片描述
Train Images 和 Val Images 是一样的目录结构,训练数据集太大了,这里就只下验证集和标注

在这里插入图片描述

(3)COCO2017 数据集的标注

  • val2017文件夹下
    在这里插入图片描述
  • annotations文件夹下
    在这里插入图片描述
    从instances_val2017.json 中截取的一部分在这里插入图片描述
    在这里插入图片描述
  • 格式化代码的方法
    在这里插入图片描述

三、如何标注自己的数据集

(一)MakeSense(在线)

链接:https://www.makesense.ai/
在这里插入图片描述
1. 上传图片
在这里插入图片描述
2. 打标
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3. 导出
在这里插入图片描述

  • 导出成 VOC 格式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 导出成 YOLO 格式
    在这里插入图片描述
    在这里插入图片描述

4. 用 AI 标注的方法(这个网站这个功能加载的好慢)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)CVAT(在线)(强推!)

官网:https://www.cvat.ai/,可以进行多人协作,可以更好的处理大型项目,推荐!
1. 创建Project
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 创建task

在这里插入图片描述

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

在这里插入图片描述
3. 进入task中打标
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4. 导出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5. 下载到本地打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

另:

  • 从这里导出task和在打标界面导出效果相同
    在这里插入图片描述
  • CVAT还支持将整个项目直接导出
    在这里插入图片描述

(三)Labelimg(虚拟环境)

(1)在虚拟环境中安装+启动

# 安装
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
# 启动
labelimg

(2)标注
在这里插入图片描述
(3)常见报错

QMimeDatabase: Error loading internal MIME dataAn error has been encountered at line

原因:直接使用了anaconda的base环境(python>3.10),安装labelimg。安装labelimg的python环境必须低于3.10,否则labelimg会出现闪退

(四)精灵标注助手(本地)

如果是自制数据集,担心自己数据集的安全性,可以考虑本地,但更推荐用网站在线标注
下载链接:http://www.jinglingbiaozhu.com/
在这里插入图片描述
1. 导入图片
在这里插入图片描述
2. 打标
在这里插入图片描述
在这里插入图片描述
3. 导出
在这里插入图片描述
4. 格式化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、如何用Pytorch读取COCO数据集

(1)准备工作
配环境
在这里插入图片描述
了解读取COCO数据集所用函数
在这里插入图片描述
(2)便调试边写代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

import torchvision
from PIL import ImageDraw# 路径的正确写法
# 1、加 r (加个 r 可代表不进行转义)   2、把 /写成 //   3、把 /写成 \
coco_dataset = torchvision.datasets.CocoDetection(root=r"D:\Python\COCO_Debug\val2017",annFile=r"D:\Python\COCO_Debug\annotations\instances_val2017.json")
image,info = coco_dataset[0]
# 想要画出框,要获得图片的 handler(句柄)
image_handle = ImageDraw.ImageDraw(image)
for annotation in info:x_min,y_min,width,height = annotation['bbox']image_handle.rectangle(((x_min,y_min),(x_min+width,y_min+height)))image.show()

五、如何用自己的数据集标注成COCO的数据格式

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

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

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

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

在这里插入图片描述

import torchvision
from PIL import ImageDraw# 路径的正确写法
# 1、加 r (加个 r 可代表不进行转义)   2、把 / 写 //   3、把 / 写成 \
coco_dataset = torchvision.datasets.CocoDetection(root=r"MyDataset",annFile=r"MyDataset/mydataset_coco/annotations/instances_default.json")
image,info = coco_dataset[0]
# 想要画出框,要获得图片的handler(句柄)
image_handle = ImageDraw.ImageDraw(image)
for annotation in info:x_min,y_min,width,height = annotation['bbox']image_handle.rectangle(((x_min,y_min),(x_min+width,y_min+height)))image.show()

为什么喜欢把数据集的标注导出成标准的数据集格式,就是为了方便我们使用这些API,后面写代码的时候,替换一下路径即可


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

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

相关文章

C++初学(4)

4.1、const限定符 如果程序在多个地方使用同一个常量,则需要修改该常量时,只需修改一个符号定义即可。前面介绍#define语句时说明过,C有更好的处理符号常量的方法,就是使用const关键字来修改变量声明和初始化。假设需要一个表示一…

【Python机器学习】朴素贝叶斯——基于贝叶斯决策理论的分类方法

k-近邻算法和决策树分类器有时会产生错误结果,这是可以要求分类器给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值 概率论是许多机器学习算法的基础,所以深刻理解这一主题就非常重要。有一些使用概率论进行分类的方法。首先是从一…

Godot入门 06死亡机制1.0版

限制相机的底部滚动极限,使用标尺工具量出距离,设置距离为100,并设置平滑停止。 添加新场景,添加节点Area2D,设置碰撞的物理层为2,改节点名为Killzone。 拖动Killzone场景到Game场景中。给Killzone添加Coll…

NameSilo域名注册和解析2024版教程(附优惠码)

上次给大家介绍了国外知名的域名注册商Dynadot,今天再给大家分享另一家国外知名的域名注册商NameSilo,同样性价比很高。使用本站提供的优惠码:ieearn.com,你还可以在首次注册购买域名时享受1美元的优惠: NameSilo简介…

语言模型及数据集

一、定义 1、语言模型的目标是估计序列的联合概率,一个理想的语言模型就能够基于模型本身生成自然文本。 2、对一个文档(词元)序列进行建模, 假设在单词级别对文本数据进行词元化。 3、计数建模 (1)其中…

大语言模型是什么,该如何去学习呢

什么是 LLM**?** LLM(大型语言模型, Large Lanage Modle)是一种计算机程序,它可以理解和生成类似人类的文本;它能够像我们人类一样阅读、写作和理解语言。你可以把它想象成一个超级聪明的博学的不知疲惫的24小时全年无休的助手。…

搭建规范化的vue2项目

项目包含的库 Vue2VuexRouterEslintPrettier 环境 vue:2.6.14 eslint:7.32.0 prettier:2.4.1 eslint-plugin-prettier:4.0.0 eslint-plugin-vue:8.0.3 vue/cli:5.0.8 步骤 全局安装cli工具 npm in…

pdf转图片在线转换免费 pdf转图片在线免费 pdf转图片免费在线 工具软件操作步骤方法

pdf转jpg转换后的图片质量不高、排版混乱?PDF和JPG是我们日常工作中最常接触的两种文件格式。很多时候,我们需要将PDF文件转换为JPG格式,方便在不同场合中使用,而JPG是一种广泛使用的图片格式,它在图像质量和文件大小之…

在 LCD 上显示 png 图片-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

在 LCD 上显示 png 图片 PNG 简介 无损压缩:PNG 使用 LZ77 派生算法进行无损压缩,确保图像质量不受损,且压缩比高 体积小:通过高压缩比,PNG 文件体积小,适合网络传输 索引彩色模式:PNG-8 格式…

1. Vue3入门

文章目录 使用create-vue创建项目关键文件<script setup>语法糖组合式API - reactive和ref函数组合式API - computed组合式API - watch组合式API - 生命周期函数组合式API - 父子通信组合式API - 模版引用组合式API - provide和inject综合案例 使用create-vue创建项目 n…

鸿蒙HarmonyOS【应用开发五、布局使用】

✍️作者简介&#xff1a;小北编程&#xff08;专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a; 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&#x1f…

CogVideo 实测,智谱「清影」AI视频生成,全民免费,连 API 都开放了!

不得不说&#xff0c;AI 视频生成界最近非常火热~ 前有快手「可灵」开放内测&#xff0c;一下子带火了老照片修复&#xff0c;全网刷屏&#xff1a; 怕是你还没拿到内测资格&#xff0c;被称为 “国货之光” 的「可灵」就结束了免费无限量模式。每天只有66点的免费额度&#x…

【全国大学生电子设计竞赛】2023年H题

&#x1f970;&#x1f970;全国大学生电子设计大赛学习资料专栏已开启&#xff0c;限时免费&#xff0c;速速收藏~

鸿蒙华为登录(以及导航页面跳转)

//登录华为登录界面以及跳转 //切记一定要写路径&#xff0c;不写路径&#xff0c;容易报错&#xff0c;还有一定要记得导一下包&#xff08;Arouter&#xff09; //接下来是鸿蒙界面导航跳转 //进行跳转 TabContent组件不支持设置通用宽度属性&#xff0c;其宽度默认撑满Tab…

AI周报(7.21-7.27)

AI应用-一款能提供情绪价值的智能鸟类喂食器&#xff08;Bird Buddy&#xff09; 图像识别技术&#xff1a;Bird Buddy装备了图像识别技术&#xff0c;能够识别超过1000种鸟类&#xff0c;涵盖了常见的鸟类品种。这种技术能够在鸟类经过时&#xff0c;通过内置麦克风捕捉的声音…

ctfshow web入门 中期测评 web492--web502

web492 <?php include(render/render_class.php); include(render/db_class.php);$action$_GET[action]; if(!isset($action)){header(location:index.php?actionlogin);die(); }if($actioncheck){extract($_GET);if(preg_match(/^[A-Za-z0-9]$/, $username)){$sql &qu…

GUL图形化界面操作(下部)

目录 ​编辑 前言 Swing 窗口 注意点 新增的组件 进度条组件 开关按钮 多面板和分割面板 多面板 分割面板 ​编辑 选项窗口 对话框带三个选项是&#xff0c;否&#xff0c;取消。 对话框提示输入文本: 前言 修炼中&#xff0c;该篇文章为俺很久前的学习笔记 Swi…

【React】详解 Redux 状态管理

文章目录 一、Redux 的基本概念1. 什么是 Redux&#xff1f;2. Redux 的三大原则 二、Redux 的核心组件1. Store2. Action3. Reducer 三、Redux 的使用流程1. 安装 Redux 及其 React 绑定2. 创建 Action3. 创建 Reducer4. 创建 Store5. 在 React 应用中使用 Store6. 连接 React…

网络通信---UDP

前两天做了个mplayer项目&#xff0c;今日继续学习 网络内容十分重要&#xff01;&#xff01;&#xff01; 1.OSI七层模型 应用层:要传输的数据信息&#xff0c;如文件传输&#xff0c;电子邮件等&#xff08;最接近用户&#xff0c;看传输的内容类型到底是什么&#xff09; …

【资料分享】2024第三届钉钉杯大学生大数据挑战赛B题思路解析+双语言代码

2024钉钉杯大学生大数据挑战赛&#xff0c;B题解题思路和双语言代码分享&#xff0c;资料预览&#xff1a;