【深度学习计算机视觉】06:目标检测内容集

news/2025/9/23 13:29:04/文章来源:https://www.cnblogs.com/tlnshuju/p/19107026

【深度学习计算机视觉】06:目标检测内容集

2025-09-23 13:24  tlnshuju  阅读(0)  评论(0)    收藏  举报

在这里插入图片描述

【作者主页】Francek Chen
【专栏介绍】⌈⌈PyTorch深度学习⌋⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重要的技术特征是具有自动提取特征的能力。神经网络算法、算力和数据是开展深度学习的三要素。深度学习在计算机视觉、自然语言处理、多模态数据分析、科学探索等领域都取得了很多成果。本专栏介绍基于PyTorch的深度学习算法实现。
【GitCode】专栏资源保存在我的GitCode仓库:https://gitcode.com/Morse_Chen/PyTorch_deep_learning。

文章目录

    • 一、下载数据集
    • 二、读取数据集
    • 三、演示
    • 小结


  目标检测领域没有像MNIST和Fashion-MNIST那样的小数据集。为了快速测试目标检测模型,我们收集并标记了一个小型数据集。首先,我们拍摄了一组香蕉的照片,并生成了1000张不同角度和大小的香蕉图像。然后,我们在一些背景图片的随机位置上放一张香蕉的图像。最后,我们在图片上为这些香蕉标记了边界框。

一、下载数据集

  包含所有图像和CSV标签文件的香蕉检测数据集可以直接从互联网下载。

%matplotlib inline
import os
import pandas as pd
import torch
import torchvision
from d2l import torch as d2l
#@save
d2l.DATA_HUB['banana-detection'] = (
d2l.DATA_URL + 'banana-detection.zip',
'5de26c8fce5ccdea9f91267273464dc968d20d72')

二、读取数据集

  通过read_data_bananas函数,我们读取香蕉检测数据集。该数据集包括一个的CSV文件,内含目标类别标签和位于左上角和右下角的真实边界框坐标。

#@save
def read_data_bananas(is_train=True):
"""读取香蕉检测数据集中的图像和标签"""
data_dir = d2l.download_extract('banana-detection')
csv_fname = os.path.join(data_dir, 'bananas_train' if is_train
else 'bananas_val', 'label.csv')
csv_data = pd.read_csv(csv_fname)
csv_data = csv_data.set_index('img_name')
images, targets = [], []
for img_name, target in csv_data.iterrows():
images.append(torchvision.io.read_image(
os.path.join(data_dir, 'bananas_train' if is_train else
'bananas_val', 'images', f'{img_name
}')))
# 这里的target包含(类别,左上角x,左上角y,右下角x,右下角y),
# 其中所有图像都具有相同的香蕉类(索引为0)
targets.append(list(target))
return images, torch.tensor(targets).unsqueeze(1) / 256

  通过使用read_data_bananas函数读取图像和标签,以下BananasDataset类别将允许我们创建一个自定义Dataset实例来加载香蕉检测数据集。

#@save
class BananasDataset
(torch.utils.data.Dataset):
"""一个用于加载香蕉检测数据集的自定义数据集"""
def __init__(self, is_train):
self.features, self.labels = read_data_bananas(is_train)
print('read ' + str(len(self.features)) + (f' training examples' if
is_train else f' validation examples'))
def __getitem__(self, idx):
return (self.features[idx].float(), self.labels[idx])
def __len__(self):
return len(self.features)

  最后,我们定义load_data_bananas函数,来为训练集和测试集返回两个数据加载器实例。对于测试集,无须按随机顺序读取它。

#@save
def load_data_bananas(batch_size):
"""加载香蕉检测数据集"""
train_iter = torch.utils.data.DataLoader(BananasDataset(is_train=True),
batch_size, shuffle=True)
val_iter = torch.utils.data.DataLoader(BananasDataset(is_train=False),
batch_size)
return train_iter, val_iter

  让我们读取一个小批量,并打印其中的图像和标签的形状。图像的小批量的形状为(批量大小、通道数、高度、宽度),看起来很眼熟:它与我们之前图像分类任务中的相同。标签的小批量的形状为(批量大小,mmm,5),其中mmm是数据集的任何图像中边界框可能出现的最大数量。

  小批量计算虽然高效,但它要求每张图像含有相同数量的边界框,以便放在同一个批量中。通常来说,图像可能拥有不同数量个边界框;因此,在达到mmm之前,边界框少于mmm的图像将被非法边界框填充。这样,每个边界框的标签将被长度为5的数组表示。数组中的第一个元素是边界框中对象的类别,其中-1表示用于填充的非法边界框。数组的其余四个元素是边界框左上角和右下角的(xxxyyy)坐标值(值域在0~1之间)。对于香蕉数据集而言,由于每张图像上只有一个边界框,因此m=1m=1m=1

batch_size, edge_size = 32, 256
train_iter, _ = load_data_bananas(batch_size)
batch = next(iter(train_iter))
batch[0].shape, batch[1].shape

在这里插入图片描述

三、演示

  让我们展示10幅带有真实边界框的图像。我们可以看到在所有这些图像中香蕉的旋转角度、大小和位置都有所不同。当然,这只是一个简单的人工数据集,实践中真实世界的数据集通常要复杂得多。

imgs = (batch[0][0:10].permute(0, 2, 3, 1)) / 255
axes = d2l.show_images(imgs, 2, 5, scale=2)
for ax, label in zip(axes, batch[1][0:10]):
d2l.show_bboxes(ax, [label[0][1:5] * edge_size], colors=['w'])

在这里插入图片描述

小结

  • 我们收集的香蕉检测数据集可用于演示目标检测模型。
  • 用于目标检测的数据加载与图像分类的数据加载类似。但是,在目标检测中,标签还包含真实边界框的信息,它不出现在图像分类中。

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

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

相关文章

建个网站平台需要多少钱如何搭建一个购物网站

多媒体标签 1 图片标签2 音频标签3 视频标签 1 图片标签 img(重点) 图片标签,用于在页面上引入图片 代码 <!-- src用于定义图片的连接 title用于定义鼠标悬停时显示的文字 alt用于定义图片加载失败时显示的提示文字 --> <img src"路径" title"悬停显…

网站建设标语文案怎么做网站导航条

Irvine的书使用MASM作为参考汇编程序 .作者正在谈论MASM operators 1 - 这些运营商仅为了我们人类的利益而受到支持 .它们让我们对立即数和常量执行算术&#xff0c;但它们使用的表达式必须最终在汇编时解析为一个值 .aConstant EQU 35mov edx, NOT 1 ;Same as mov edx, 0fffff…

北滘企业网站开发html网站设计源码

1. 认识网页 网页主要由文字、图像和超链接等元素构成。当然&#xff0c;除了这些元素&#xff0c;网页中还可以包含音频、视频以及Flash等。 2. 浏览器&#xff08;显示代码&#xff09; 浏览器是网页显示、运行的平台&#xff0c;常用的浏览器有IE、火狐&#xff08;Firefox…

做兼职的网站都有哪些工作内容潍坊专业联轴器收购价格

2024.1.14 题目来源我的题解方法一 双指针&#xff08;快慢指针&#xff09; 题目来源 力扣每日一题&#xff1b;题序&#xff1a;83 我的题解 方法一 双指针&#xff08;快慢指针&#xff09; 因为题目中的链表已经是升序排列&#xff0c;因此使用两个指针&#xff0c;分别…

网站的流量怎么赚钱嘉兴网站建设模板网站

这篇文章是关于历史经验以及最近应用的性能优化技术的。 几年前&#xff0c;我在特定的应用程序中发誓&#xff0c;我不得不发现隐藏在真正聪明的工程“技术”之下的无证行为。 它是一个典型的用于发票的单片Java EE应用程序。 最好忘记确切的代码&#xff0c;但是我记得开发人…

福州专业网站建设服务商网页设计与制作教程电子书

原标题&#xff1a;PPT新功能&#xff01;竟然还能用来制作H5最近几年随着移动端的快速发展&#xff0c;我们获取信息的途径更加便捷了&#xff0c;我们几乎每天都会刷微博、看朋友圈。而在众多的信息传递中&#xff0c;H5页面成了最受大众欢迎的形式。所谓的H5&#xff0c;简单…

营销型网站建设试卷织梦后台怎么换网站模板

近几个月来&#xff0c;我们一直看到一小部分但持续的操作失败&#xff0c;并带有一个奇怪的异常– org.springframework.jdbc.CannotGetJdbcConnectionException –“无法获得JDBC连接&#xff1b; 嵌套异常是java.sql.SQLException&#xff1a;客户端尝试检出Connection的尝试…

医院网站规划方案中南建设网官方网站

使用python的人都知道range()函数很方便&#xff0c;今天再用到他的时候发现了很多以前看到过但是忘记的细节。 这里记录一下range(),复习下list的slide&#xff0c;最后分析一个好玩儿的冒泡程序。 这里记录一下&#xff1a; >>> range(1,5) #代表从1到5(不包含5)[1,…

c语言数组与指针

c语言里面的指针,有两个能力,一个是具备存储地址的能力,就跟普通变量一样,定义指针后,例如,int p就是说p是一个指针变量,加上点数组的概念的情况下,同时它也是一个数组p[0],那=就可以推导出来P+1=p[1],对这个指…

开发微信机器人/微信协议/个人微信api接口

开发微信机器人/微信协议/个人微信api接口 WTAPI开放平台是基于微信开放平台的二次封装API服务,开发者可以使用本服务来处理微信中的各种事件,并可以通过后台调用对应的 API 来驱动微信自动执行任务,如自动收发消息…

网站建设佛山上海专业的网络推广

一&#xff0c;开发环境 操作系统&#xff1a;windows10, windows11, linux, mac等。开发工具&#xff1a;Qt, vscode, visual studio等开发语言&#xff1a;c 二&#xff0c;功能需求 1. 图书信息管理&#xff1a; 这个功能的主要任务是保存和管理图书的所有信息。这应该包…

二维差分模板

int dif[1005][1005]; void solve(){int n,m,a,b;cin>>n>>m>>a>>b;rep(i,0,n+1)rep(j,0,m+1)dif[i][j]=0;vector<vector<int>>g(n+1,vector<int>(m+1));rep(i,1,n)rep(j,1,…

深入解析:frp实现内网穿透,公网服务器或云服务器配置frps,本地内网配置frpc

深入解析:frp实现内网穿透,公网服务器或云服务器配置frps,本地内网配置frpcpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fa…

HDFS读写机制深度解析:分布式存储的核心奥秘 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么样增加网站权重上海工商网官网登录

一、Pyinstaller简介 PyInstaller将Python应用程序冻结(打包)独立可执行文件中。它可以构建较小的可执行文件,它是完全多平台的,并且使用OS支持来加载动态库,从而确保完全兼容。 二、Pyinstaller安装 1、下载安装 首先安装“pip install pywin32” 其次“pip install …

python做网站挣钱如何知道网站开发语言

到软件园这边已经好几个月了&#xff0c;以前.Net的相关的一些东西都慢慢的没怎么接触了。而我去一直在关心相关的东西。以前订阅的一些东西还是很有用的&#xff0c;收集一些相关的资料&#xff0c;也了解一些相关的培训信息。值得欣慰的是&#xff0c;很多培训都是在软件园这…

现在c 做网站用什么焦作网站设计

前期准备(1)专业版Pycharm(社区版没有deployment功能)&#xff0c;学生&#xff0c;教师可申请免费专业版&#xff0c;详情可看我的博客。(2)可通过SSH连接Ubuntu服务器&#xff0c;并且服务器安装了Python解释器。部署本地Pycharm项目到Ubuntu服务器1.点击Tools - Deployment …

比较专业的建设网站的公司网站架构设计师面试技巧

目录 一、问题描述 二、解决方案 1、理论知识 &#xff08;1&#xff09;.iml 文件 &#xff08;2&#xff09;.idea文件 2、操作环境 3、操作步骤 &#xff08;1&#xff09;找到【Maven】工具按钮 &#xff08;2&#xff09;点图标&#xff0c;重复导入maven项目&am…

dw如何制作自己的网站源码屋官网

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

电话网站源码wordpress做站群

大模型日报 2024-06-16 大模型资讯 大模型产品 MARS5 TTS&#xff1a;开源高拟真语音合成 摘要: MARS5 TTS是一款开源语音合成模型&#xff0c;能以2-3秒音频为参考&#xff0c;在140多种语言中复制高难度场景&#xff0c;如体育解说、电影和动漫等。 AI工具首发平台&#xff1…