【深度学习: 计算机视觉】如何改进计算机视觉数据集

在这里插入图片描述

【深度学习: 计算机视觉】如何改进计算机视觉数据集

    • 训练模型并评估性能
    • 确定数据集需要改进的原因和位置
    • 收集或创建新的图像或视频数据
    • 重新训练机器学习模型并重新评估,直到达到所需的性能标准

机器学习算法需要大量数据集来训练、提高性能并生成组织所需的结果。

数据集是计算机视觉应用程序和模型运行的燃料。数据越多越好。这些数据应该是高质量的,以确保人工智能项目获得最佳的结果和产出。

获取训练机器学习模型所需数据的最佳方法之一是使用开源数据集。

幸运的是,数据科学家可以使用数百个高质量、免费和大量的开源数据集来训练算法生成的模型。

根据您的行业和用例,一些最流行的机器学习和计算机视觉数据集包括:

保险: Car Damage Assessment Dataset;
体育: Multiview Football Dataset I & II (from KTH), and the OpenTTGames Dataset;
SAR(合成孔径雷达)机器学习数据集: xView and xView3‍, both from the Copernicus Sentinel-1 mission of the European Space Agency (ESA), and the EU Copernicus Constellation;
智能城市和自动驾驶汽车(自动驾驶汽车)数据集: BDD100K and The KITTI Vision Benchmark Suite
零售商和制造商: RPC-Dataset Project ‍
医疗和保健: The Cancer Imaging Archive (TCIA)‍ and the NIH Chest X-Rays (on Kaggle)
开放数据集聚合器: Kaggle and OpenML

在本教程中,我们将仔细研究改进用于训练模型的开源数据集所需采取的步骤。

训练模型并评估性能

如果您使用的是公共开源数据集,则图像和视频很可能已经被注释和标记。出于所有意图和目的,这些数据集尽可能接近模型就绪。

使用公共数据集是启动和运行概念验证 (POC) 训练模型的一种有用的捷径。让您距离运行经过全面测试的生产模型又近了一步。

然而,在将这些数据集输入机器学习模型之前,您需要:

  • 确保数据与您的项目目标一致。
  • 确保注释(边界框、图像分割等)和元数据是高质量的,具有足够的模式和对象类型。
  • 检查是否有足够的图像或视频来减少偏差(例如,就医学成像数据集而言,种族、性别、年龄组以及患有或不患有所研究疾病的患者的分布是否足够广泛?)
  • 不同条件下是否有足够的图像或视频(例如,明亮与黑暗、白天与夜晚、阴影与无阴影)

在这里插入图片描述

在 Encord Active 中检查标签质量

现在您已经获得了数据并检查了它是否合适,您可以开始训练机器学习模型来执行计算机视觉任务。

对于每个训练任务,您可以针对特定目标设置机器学习模型。例如,“识别 2000 年至 2010 年生产的黑色福特汽车。”

为了训练该模型,您可能需要向模型展示数以万计的汽车图像或视频。训练数据中应该有足够的示例,以便它可以积极地识别对象“X”;在本例中:黑色福特汽车,并且仅限于特定年份之间制造的汽车。

同样重要的是,训练数据中有数千个非福特汽车的示例,即相关对象。

要训​​练机器学习或 CV 模型,您需要向模型展示足够多的对象示例,这些对象与其训练识别的对象相反。因此,在此示例中,数据集应包含大量不同颜色、品牌和型号的汽车图像。

机器学习和计算机视觉算法只有在显示足够广泛的与相关目标对象形成对比的图像和视频时才能有效地进行训练。确保您使用的任何公共开源数据集也受益于广泛的环境因素(例如光明和黑暗、白天和黑夜、阴影以及其他所需的变量)非常有用。

一旦开始训练模型,您的团队就可以开始评估其性能。

不要期望从第一天起就能获得高性能的输出。您很有可能运行 100 个训练测试,但只有 30% 的得分足够高,足以获得有关如何将其中一两个模型转变为工作生产模型的宝贵见解。

训练模型失败是计算机视觉项目中自然而正常的一部分。

确定数据集需要改进的原因和位置

现在您已经开始训练在此数据集上使用的机器学习模型(或多个模型),结果将开始出现。

这些结果将向您展示模型失败的原因和位置。别担心,数据科学家、数据运营和机器学习专家都知道,失败是过程中不可避免且正常的部分。

没有失败,机器学习模型就不可能取得进步。

首先,预期故障率较高,或者至少准确率相对较低,例如 70%。

使用这些数据创建反馈循环,以便您可以更清楚地确定提高成功率所需的内容。例如,您可能需要:

  • 更多图片或视频;
  • 特定类型的图像或视频,以提高效率输出和准确性(有关这方面的更多信息,请查看我们关于数据增强的博客);
  • 图像或视频数量的增加会导致结果更加平衡,例如减少偏见。

接下来,这些结果常常会产生另一个问题:如果我们需要更多数据,我们可以从哪里获得?

收集或创建新的图像或视频数据

大规模解决问题通常涉及使用大量高质量数据来训练机器学习模型。如果您可以从开源或专有数据集访问所需的数据量,则继续为模型提供数据 - 并相应地调整数据集标签和注释 - 直到它开始生成您需要的结果。

但是,如果这是不可能的,并且您无法从其他开源的真实数据集中获取所需的数据,那么还有另一种解决方案。

例如,如果您需要数千张车祸或火车脱轨的图像或视频怎么办?

您认为存在多少不经常发生的事情的图像和视频?即使确实发生了,这些边缘情况也并不总是能在图像或视频中清晰地捕捉到。

在这些场景中,您需要合成数据。

有关更多信息,请参阅综合训练数据简介

计算机生成图像 (CGI)、3D 游戏引擎(例如 Unity 和 Unreal)以及生成对抗网络 (GAN) 是创建团队训练计算机视觉模型所需的逼真合成图像或视频的最佳来源。

还可以选择购买合成数据集。如果您没有时间/预算来等待生成定制图像和视频。无论哪种方式,当您的机器学习团队尝试解决困难的边缘情况并且没有足够的原始数据时,始终可以创建或购买一些可以提高训练模型准确性的合成数据。

重新训练机器学习模型并重新评估,直到达到所需的性能标准

在这里插入图片描述

评估 Encord 中的模型性能

现在您已经获得了足够的数据来继续训练和重新训练模型,应该可以开始实现您所需的性能和准确性标准。假设初始结果为 70%,一旦结果在 90-95%+ 范围内,那么您的模型就朝着正确的方向发展!

继续测试和实验,直到可以开始对模型的准确性进行基准测试。

一旦准确性结果足够高,偏差评级足够低,并且结果与模型的目标一致,那么您就可以将工作模型投入生产。

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

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

相关文章

基于SpringBoot+Vue的高校在线答疑管理系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 二、开发技术与环…

springwebflux高性能服务

场景: 分别使用springwebmvc 使用tomcat (tomcat 9)和springwebflux 做一个简单的接口 ,该接口返回一个随机数 压测环境: 4C 8G ECS 使用tomcat 压测结果 Max 抖动的厉害 保持压测的参数不变 使用webflux 压测结果 …

Power Designer的使用 创建数据库表模型

几年前用过PowerDesigner,好几年没用,有点忘记了,在这里记个笔记,需要的时候翻一翻 PowerDesigner版本16.5 下面的例子是以MySQL数据库为准 生成C#实体类 一 安装 1.1 安装 不让放网盘链接,审核通不过。。。。 …

react 之 zustand

zustand可以说是redux的平替 官网地址:https://zustand-demo.pmnd.rs/ 1.安装 npm i zustand2.基础使用 // zustand import { create } from zustand// 1. 创建store // 语法容易出错 // 1. 函数参数必须返回一个对象 对象内部编写状态数据和方法 // 2. set是用来…

Maven高级知识——分模块开发、继承与聚合

目录 一、分模块设计与开发 1.1 不分模块的问题 1.2 分模块设计 二、 继承与聚合 2.1 继承 2.1.1 继承关系 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 三、Maven打包方式(jar、w…

应对手机数据丢失的5大安卓数据恢复软件

我们都去过那里。您的手机上的数据丢失了,现在无法恢复。这尤其令人恐惧,因为我们的手机上都有如此多的信息。从图片、应用程序、个人信息,甚至是来自可能已不复存在的亲人的短信和语音邮件。这种情况确实发生了,而且也不仅仅是An…

Leetcode—382. 链表随机节点【中等】(水塘抽样法)

2024每日刷题(一零九) Leetcode—382. 链表随机节点 算法思想 我们可以在初始化时,用一个数组记录链表中的所有元素,这样随机选择链表的一个节点,就变成在数组中随机选择一个元素 实现代码 /*** Definition for si…

STM32--USART串口(1)串口协议

一、通信接口 全双工:通信双方能够同时进行双向通信; 半双工:通信双方能够进行双向通信,但不能同时通信; 单工:只能从一个设备到另一个设备; 同步:接收方可以在时钟信号的指引下进…

线性代数:矩阵的秩

目录 一、矩阵的子式 二、矩阵的秩 三、重要性质定理推论 一、矩阵的子式 二、矩阵的秩 三、重要性质定理推论

031-安全开发-JS应用WebPack打包器第三方库JQuery安装使用安全检测

031-安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测 #知识点: 1、三方库-JQuery-使用&安全 2、打包器-WebPack-使用&安全 演示案例: ➢打包器-WebPack-使用&安全 ➢第三方库-JQuery-使用&安全 #为什么…

dubbo+sentinel最简集成实例

说明 在集成seata后,下面来集成sentinel进行服务链路追踪管理~ 背景 sample-front网关服务已配置好 集成 一、启动sentinel.jar 1、官网下载 选择1:在本地启动 nohup java -Dserver.port8082 -Dcsp.sentinel.dashboard.serverlocalhost:8082 -Dp…

开源项目TARZAN-NAV | 基于springboot的现代化导航网站系统

TARZAN-NAV 导航网站 一个基于 Spring Boot、MyBatis-Plus、h2database、ehcache、Docker、websocket等技术栈实现的导航网站系统,采用主流的互联网技术架构、全新的UI设计、支持一键源码部署,拥有完整的仪表板、导航管理,用户管理、评论管理…

real-time-emotion-detection 排坑记录

real-time-emotion-detection 排坑记录 任务踩坑回顾CV2包版本问题症状描述解决方法 模型文件路径问题症状描述解决办法 tensorflow版本问题症状描述解决办法 其他 任务 我之前跑了一个CNN情绪识别的开源代码,现在我想尝试把他用到我的另一个项目里。但当时那个项目…

使用MATLAB驱动USRP-N320实现OFDM自收自发

文章目录 前言一、收发代码二、截取一帧 OFDM三、执行主函数四、运行结果五、资源自取 前言 本文作为实验结果记录及测试,方便后面回顾所做的工作。本文基于一台电脑和一台 USRP 设备实现了 OFDM 自发和自收功能 一、收发代码 ofdm_tx_rx_test.m 核心代码&#x…

2024年美赛数学建模F题思路分析 - 减少非法野生动物贸易 (1)

# 1 赛题 问题F:减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c…

paddle环境安装

一、paddle环境安装 如pytorch环境安装一样,首先在base环境下创建一个新的环境来安装paddlepaddle框架。首先创建一个新的环境名叫paddle。执行如下命令。 conda create -n paddle python3.8创建好了名叫paddle这个环境以后,进入到这个环境中&#xff…

ubuntu 安装 kvmQemu no active connection to install on

更新 apt sudo apt update检查虚拟化是否开启 0 不开,其余数字表示开启,开不开都可以,不开性能弱,只能跑 x86 系统 egrep -c (vmx|svm) /proc/cpuinfo安装 sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virt…

用【Java】调用百度千帆大模型并提供流式接口【SSE】响应

代码参考: 千帆API流式调用:PHP、JS、Nodejs、Python、Java、C# 、Go流式示例代码 - 百度智能云千帆社区本文旨在提供一个全面的指南,涵盖了在PHP、JS、Nodejs、Python、Java、C# 中流式调用千帆API的关键技巧和最佳实践。不论您是初学者还是…

React18构建Vite+Electron项目以及打包

一.先创建项目 cnpm create vite 选择React > JavaScript >cd react_vite > cnpm i >npm run dev 二.安装Electron依赖 指定版本相对稳定 cnpm i electron19.0.10 -D cnpm i vite-plugin-electron0.9.3 -D cnpm i electron-builder23.0.1 -D三.创建electron目录…

前端面试拼图-数据结构与算法

摘要:总结一些前端算法题,持续更新! 一、数据结构与算法 时间复杂度-程序执行时需要的计算量(CPU) 空间复杂度-程序执行时需要的内存空间 前端开发:重时间,轻空间 1.把一个数组旋转k步 arr…