收集数据集以训练自定义模型的 5 种方法

news2024/11/20 9:12:18

来源:投稿 作者:王同学
编辑:学姐

在过去的十年中,深度学习技术在计算机视觉领域中的应用逐年增加。其中当属「行人检测」「车辆检测」最为火爆,其原因之一就是「预训练模型」「可复用性」

由于深度学习技术在这些应用场景上取得的卓越效果,企业现在已经开始使用深度学习来解决自己的问题。

但是,如果可用的预训练模型不适合你的应用场景,这时你们会怎么解决呢?

一个预先训练的模型能够检测到苹果,但它肯定不能区分“好苹果”和“烂苹果”,因为它从未“被教过”这样做。

那么如果遇到了这种情况「你会怎么做呢?」

“获得大量的好苹果和烂苹果的图像,并训练一个自定义检测模型!”

在创建一个好的自定义检测模型时,一个常见的挑战就是「数据问题」。深度学习模型需要大量的数据来训练它们的算法——正如我们在MaskRCNNYOLOUNet等模型中看到的那样,这些模型都是在现有的大型数据集COCOImageNet上训练得到的。

如何获取用于训练自定义检测模型的数据?

在这篇文章中,我们将探讨收集数据集来训练自定义检测模型的5种方法。

1. 公开可用的开放标记数据集

如果你比较幸运,你可能会在互联网上获得你想要的已标记数据集。以下是几个可供你选择的计算机视觉领域图像数据集。

  • 「ImageNet」

ImageNet是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家模拟人类的识别系统建立的。能够从图片识别物体。ImageNet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。ImageNet中目前共有 14,197,122幅图像,总共分为21,841个类别,通常我们所说的 ImageNet 数据集其实是指 ISLVRC2012 比赛用的子数据集,其中 train1,281,167 张照片和标签,共1000类,大概每类1300张图片,val50,000副图像,每类50 个数据,test100,000副图片,每类100个数据。

  • 「MS COCO」

COCO数据集是微软团队发布的一个可以用来图像recognition+segmentation+captioning 数据集,该数据集收集了大量包含常见物体的日常场景图片,并提供像素级的实例标注以更精确地评估检测和分割算法的效果,致力于推动场景理解的研究进展。依托这一数据集,每年举办一次比赛,现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务,是继ImageNet Chanllenge以来最有影响力的学术竞赛之一。

COCO的检测任务共含有80个类,在2014年发布的数据规模分train/val/test分别为80k/40k/40k,学术界较为通用的划分是使用train35kval子集作为训练集(trainval35k),使用剩余的val作为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。除此之外,COCO官方也保留一部分test数据作为比赛的评测集。

  • 「Google Open Image」

Open Image是谷歌团队发布的数据集。 它包含了190万张图片上600个物体类别的16M个边界框,使其成为现有的最大的带有物体位置注释的数据集。这些方框主要是由专业注释者手工绘制的,以确保准确性和一致性。这些图像非常多样化,通常包含有多个物体的复杂场景(平均每张图像8.3个)。

  • 「MNIST 手写数据集」

「MNIST 手写数据集:」该数据集总共有 70,000 张手写数字图像,是 NIST 提供的更大数据集的子集。数字已进行大小规范化,并在固定大小的图像中居中。

  • 「DOTA」

    DOTA是遥感航空图像检测的常用数据集,包含2806张航空图像,尺寸大约为4k×4k,包含15个类别共计188282个实例,其中14个主类,small vehiclelarge vehicle都是vehicle的子类。其标注方式为四点确定的任意形状和方向的四边形。航空图像区别于传统数据集,有其自己的特点,如:尺度变化性更大;密集的小物体检测;检测目标的不确定性。数据划分为1/6验证集,1/3测试集,1/2训练集。目前发布了训练集和验证集,图像尺寸从800×8004000×4000不等。

2. 爬取网络图像

另一种选择是在网络上进行图像搜索,并手动选择图像进行下载。由于需要大量数据,因此此方法效率不高。

值得注意的是,网络上的图像可能受版权保护。记得在使用图像之前检查图像的版权。

或者你可以写一个程序来爬取网络并下载你想要的图像。同样需要注意检查每个图像的版权。

3. 拍摄

如果找不到所需物体的图像,可以通过拍照来收集它们。这可以手动完成,即通过自己拍摄每张图像或通过雇用其他人为你拍摄。

收集真实世界图像的另一种方法是在你的场景中安装编程的摄像机,以便自动收集图像。

4. 数据增强

我们知道深度学习模型需要大量的数据。当你只有一个小数据集时,可能不足以训练一个好的模型。在这种情况下,你可以使用数据增强来生成更多训练数据。

几何变换(如翻转、裁剪、旋转和平移)是一些常用的数据增强技术。应用图像数据增强不仅可以通过创建变体来扩展数据集,还可以减少过拟合。

左边是狗的原始图像,右边是水平翻转的图像

猫的原始和随机裁剪图像

猫的原始和旋转图像

网球的原始和翻译图像

5. 数据生成

有时可能无法获得真实数据。在这种情况下,可以生成合成数据来训练自定义检测模型。由于其成本相对较低,合成数据生成的使用在机器学习中一直在不断增加。

生成对抗网络 (GAN) 是用于合成数据生成的众多技术之一。GAN是一种生成建模技术,其中从数据集创建人工实例的方式保留了原始集的相似特征。

总结

收集训练数据集是训练你自定义检测模型的第一步。在这篇文章中,我们研究了用于收集图像数据的一些技术,包括搜索开源数据集、爬取网络、手动拍摄或使用程序拍摄、使用数据增强技术以及生成合成数据集。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“深度学习”获取经典书籍PDF+课程

码字不易,欢迎大家点赞评论收藏!

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

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

相关文章

Pandas+Pyecharts | 新冠疫情数据动态时序可视化

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 按月统计数据 🏳️‍🌈 3. Pyecharts数据可视化3.1 疫情动态时序地图3.2 疫情动态时序折线图3.3 疫情动态时序柱状图3.4 疫情动态…

Maven中scope(作用范围)详解

目录 一、依赖传递二、依赖范围三、依赖范围对传递依赖的影响四、依赖调节五、可选依赖六、排除依赖七、依赖归类八、依赖管理 一、依赖传递 Maven 依赖传递是 Maven 的核心机制之一,它能够一定程度上简化 Maven 的依赖配置。 如下图所示,项目 A 依赖于…

黄牛为什么能抢走“五月天”的门票?

目录 “史上最难抢票”的五月天演唱会 黄牛为什么能抢到票 黄牛抢票带来哪些坏影响 售票平台为什么挡不住黄牛? 管理上如何有效防控黄牛 技术上如何有效防黄牛 相关技术产品推荐 随着文娱活动的复苏,大量黄牛“卷土袭来”。顶象防御云业务安全情报…

【音视频处理】MP4、FLV、HLS适用范围,在线视频播放哪个更好

大家好,欢迎来到停止重构的频道。 我们之前讨论过直播协议,本期我们讨论在线点播的视频格式。 也就是网络视频文件、短视频常用的格式 如MP4、FLV、HLS等。 我们将详细讨论在线点播场景下,这些视频格式的优劣以及原因。 我们按这样的顺序…

分享几个冷门但实用的网站!

今天给大家推荐几个冷门但实用的网站,免费又好用对于打工人来讲十分友好。 Img Cleaner https://imgcleaner.com/ 一个免费的AI智能图片去水印网站,不用注册登录就可以使用,而且操作也比较简单,上传图片之后调整画笔大小&#xf…

小黑子—Java从入门到入土过程:第十章 - 多线程

Java零基础入门10.0 Java系列第十章- 多线程1. 初识多线程2. 并发和并行3. 多线程的实现方式3.1 一:继承Thread类方式实现3.2 二:实现Runnable接口的方式实现3.3 三:利用Callable接口和Future接口方式实现 4. 多线程中常见的成员方法4.1 线程…

❤ Manifest version 2 is deprecated, and support will be removed in 2023. See..

❤谷歌插件开发遇到的问题 开发谷歌插件提示: ❤js 开发谷歌插件提示 提示 Manifest version 2 is deprecated, and support will be removed in 2023. See… 当导入到chrome,提示如下错误: Manifest version 2 is deprecated, and suppo…

物联网:智慧城市还要做的事情

摘要:本文简介关于智慧城市,还有哪些需要做的事情。 1.传统城市需要向智慧城市转型 传统的城市中心已被证明不足以满足社会当前和未来的各种需求,这增加了应用智慧城市理念的需求。智慧城市可以对健康、交通、休闲和工业等多个领域产生重大…

VLC可见光通信:2、高速LED驱动电路

背景 在VLC可见光通信中,需要高速的控制LED的通断,因此需要高速LED驱动电路。 文中出现的低压是指24V电压以下,中压是指24V~60V电压,高压是指60V ~ 160V。 低速是指500KHZ以下,高速是指2MHZ。 小功率是指20W以下,大功率指20W~100W。 低压小功率LED低速&高速:20W、…

你是时候拥抱chatgpt了

随着chatgpt热度不断上升,chatgpt已经广泛应用到各个行业了,很多人都感觉自己地位受到威胁,有人预测chatgpt会取代80%程序员的工作,我也用了chatgpt有几个月了,不得不说是真的牛逼。我甚至用它写了一个python的聊天脚本…

MapReduce计算广州2022年每月最高温度

目录 数据集 1.查询地区编号 2.数据集的下载 编写MapReduce程序输入格式 输出格式 Mapper类 确定参数 代码 Reducer类 思路 代码 Runner类 运行结果 数据集 1.查询地区编号 NCDC是美国国家气象数据中心的缩写,是一个负责收集、存储和分发全球气象和气…

C#中将32位二进制转换为float【Real】十进制类型

已知一个32位二进制字符串,转换为float【Real】十进制。 参考本人一篇博客 float数转二进制 C#关于32位浮点数Float(Real)一步步按位Bit进行解析_real32位浮点数_斯内科的博客-CSDN博客 现在是32位二进制转化为十进制浮点数,C#有…

电动汽车入网技术(V2G)调度优化(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 近年来我国电动汽车行业飞速发展,其中电动汽车入网技术(vehicle-to-grid,V2G)在…

RapidScada Linux安装教程

官方安装步骤:在 Linux上安装 - Rapid SCADA,安装过程中遇到一些坑,记录详细步骤。 官方推荐的Ubuntu,未测试Centos 1. 安装ASP.Net运行环境(Runtime) 下载地址:下载 .NET 6.0 (Linux、macOS 和 Windows)&a…

selenium还能这么玩:连接已经存在的浏览器

测试和爬虫对selenium并不会陌生,现有的教程已经非常多。但是因为 selenium 封装的方法比较底层,所以灵活性非常高,我们可以基于这种灵活性来实现非常丰富的定制功能。 这篇文章介绍一个操作,可以让 selenium 连接我们手动打开的…

AI绘画-Midjourney基础2-超强二次元风格模型 niji 5

niji 模型是 mj 的一种模型,可以生成二次元风格的图片。 在控制台输入 /settings 指令,进入设置页面。 选择第二行的 Niji version 5 模型,就可以创作二次元风格的图片了! 一、expressive 风格 expressive 风格是 niji 5 模型的默认风格。 Step into the world :: of a …

14个最佳创业企业WordPress主题

要创建免费网站?从易服客建站平台免费开始 500M免费空间,可升级为20GB电子商务网站 创建免费网站 您网站的设计使您能够展示产品的独特卖点。通过正确的主题,您将能够解释为什么客户应该选择您的品牌而不是其他品牌。 在本文中&#xff0…

信息(文档)和配置管理

信息(文档) 配置管理 小改动增加Y的值,大改动增加X的值 配置控制

jRebel实现热部署以及云热部署

idea使用jRebel教程很多,不再累述 服务器部署jRebel 1.下载激活工具(github,别忘了加速):下载链接 因为是linux,固下载下方资源 放进服务器执行下方命令运行,port就是端口号,看着改,我用的888…

什么是GHZ?炫云到底是怎么收费的?

作为一家云渲染“老牌”服务商,炫云的行业资历无疑是悠久的。在广大用户的支持与认可下,炫云砥砺前行迎来蓬勃发展。注册用户体量的剧增,为炫云带来了更多新面孔。在客服汇总的新用户常见问题里,有关“GHZ”与“收费”的字眼出现频…