当前位置: 首页 > news >正文

什么是计算机视觉,计算机视觉的主要任务及应用

目录

1. 什么是计算机视觉

2. 计算机视觉的主要任务及应用

2.1 图像分类

2.1.1 图像分类的主要流程

2.2 目标检测

2.2.1 目标检测的主要流程

2.3 图像分割

2.3.1 图像分割的主要流程

2.4 人脸识别

2.4.1 人脸识别的主要流程

对于我们人类来说,要想认出身边的一个人,首先需要睁眼,扭过头,看到他的脸,在看到他的脸之后,我们可能还要将他戴的帽子、眼镜排除,然后就可以根据他的长相在脑子里飞速搜索有没有认识的和这个长相相似的人,最后确定他到底是谁。

2.5 目标跟踪

2.5.1 目标跟踪的主要流程

2.6 生成对抗网络

2.6.1  生成对抗网络的基本思想


1. 什么是计算机视觉

研究者为了让机器像人一样“看懂”图像,研究了人类视觉系统,该系统包含眼球(接收光信号)、视网膜(光信号转换为电信号,传输到大脑)、大脑皮层(提取电信号中的有效特征,引导人做出反应)。为了让机器模拟人类视觉系统,研究者用摄像头模拟“眼球”获得图像信息;用数字图像处理模拟“视网膜”将模拟图像变成数字图像,让计算机能识别;用计算机视觉模拟“大脑皮层”,设计算法提取图像特征,做识别检测等任务。机器模拟人类视觉系统便是机器视觉,也称计算机视觉(Computer Vision, CV),是在解决机器如何‘看’的问题。

2. 计算机视觉的主要任务及应用

计算机视觉应用非常广泛,有图像分类(Image Classification)、目标检测(Object Detection)、图像分割(Image Segmentation)、人脸检测与识别 (Face Detection and Recognition)、OCR(Optical Character Recognition,光学字符识别)等。

2.1 图像分类

图像分类是计算机视觉领域的基础任务,也是应用比较广泛的任务。图像分类用来解决“是什么”的问题,如给定一张图片,用标签描述图片的主要内容。图像分类的典型应用是车牌号码识别、交通灯识别、图像识别等。

图片

图1:车牌号识别

2.1.1 图像分类的主要流程

对于我们人类来说,可以毫不费力分辨猫、狗,是因为我们看见这些物体时,脑中会抽离出它们的基本特征(圆鼓鼓的头、尖尖的耳朵等),基本特征与物体的名称(标签)对应,再看到类似的物体,便可以识别它们。

对于计算机也是一样的,在使用计算机完成图像分类,大致可分为数据集采集、图片预处理、特征提取、分类器训练、模型评估。

图片预处理的目的是为消除图片中无用的信息,恢复有用的信息,更利于后续的特征提取的环节。简单的图像特征提取是提取物体的颜色、物体的轮廓等。分类器训练是将图像的特征与标签进行匹配。当分类器训练好之后,新的图片输入到分类器,查看分类的效果,便是模型评估。

2.2 目标检测

目标检测是最常见的计算机应用之一。目标检测用来解决“在哪里”的问题,如输入一张图片,输出待检测目标的类别和所在位置的坐标(矩形框的坐标值表示)。目标检测应用在姿态估计、车辆检测、人脸检测、口罩佩戴检查等

图片

图2:车辆检测

2.2.1 目标检测的主要流程

人类在看东西的时候,可以知道物体是什么和物体的位置。例如我们看到桌子上有一副眼镜,可以知道眼镜在桌子的什么位置,也可以知道那是一副眼镜。计算机视觉的初衷是让机器像人一样可以“看到”世界,机器是没有位置的感觉,而是通过矩形窗口在图片上滑动,获得物体的初始位置,再分析该窗口内的特征,是不是此物体。

早期,目标检测算法还没有使用深度学习,一般分为三个阶段:区域选取、特征提取、特征分类。区域选取这一步是为了对物体进行定位,采用了滑动窗口的策略,物体在图像中的位置和大小是变化的,因而需要不同的矩形窗口的比例,再通过矩形窗口在图像中从左到右、从上到下的滑动,可以获得图像上任意位置不同大小的物体。特征提取和特征分类的阶段是找到物体的类别,跟图像分类一致。

2.3 图像分割

图像分割是计算机视觉领域的重要研究方向之一,它根据图片的灰度、颜色、结构和纹理等特征将图像分成若干具有相似性质的区域。与目标检测相比较,图像分割更适用于精细的图像识别任务,更加精确的目标定位、以及图像的语义理解任务。图像分割的典型应用是卫星图像分析、自动驾驶,医学图像诊断等。

图片

图3:人像分割

2.3.1 图像分割的主要流程

当我们人类在看图像的时候,往往对图像中感兴趣的区域关注大,这个区域通常称为感兴趣区域或是前景,如图3中的人像分割将图片中的前景与其背景分开。算法根据前景和背景的颜色、纹理的不同来分割图像,首先通过分析找到前景和背景的颜色阈值;其次将图像中的每个像素值与阈值比较,分为两类;最后与原图映射获得前景。

常规的图像分割算法有基于阈值的分割、基于边缘检测的分割、区域生长算法、GrabCut 和分水岭算法等。在深度学习中,图像分割是一种端到端的像素级分类任务,就是给定一张图片,对图片上的每一个像素分类,可以按照分类模型的思路来做,不同的是,分割模型的输出是一张分割图。

2.4 人脸识别

人脸识别是一类十分热门的计算机技术研究领域,属于生物特征识别技术,可通过人脸图像所携带的生物特征信息来对人进行个体身份识别。从广义上来说,人脸识别包含构建人脸识别系统中所用到的一系列相关技术,包括人脸图像采集、图像处理、人脸定位、身份确认、身份查询等;而狭义的人脸识别则特指通过人脸图像进行身份确认的技术或系统。人脸识别通常也叫人像识别、面部识别等。

图片

图4:人脸识别

2.4.1 人脸识别的主要流程

对于我们人类来说,要想认出身边的一个人,首先需要睁眼,扭过头,看到他的脸,在看到他的脸之后,我们可能还要将他戴的帽子、眼镜排除,然后就可以根据他的长相在脑子里飞速搜索有没有认识的和这个长相相似的人,最后确定他到底是谁。

对于计算机也是一样的,在使用计算机完成人脸识别的时候,工作流程可分为如下几个步骤:

  1. 第一步就是人脸图像采集,也就是 “睁开眼,扭过头”。人脸识别系统将通过各种各样的摄像头采集可见光图像、热成像图像、近红外图像等多种图像,并且还可以有静态、动态等不同情况作为区分。
  2. 第二步就是人脸检测,也就是“看到他的脸”。这里可以使用各种人脸检测模型对画面中的人脸进行检测,生成对应的人脸框,之后就可以将人脸框以外的图像排除,专注于对人脸框内图像的探索。
  3. 第三步就是数据处理。摄像头所拍摄的人脸可能有多种角度、表情、亮度等,需要通过例如光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等方式对人脸图像进行处理,使其更能表现出系统所要的人脸特征。
  4. 第四步就是对人脸图片进行特征提取和分类,例如使用深度神经网络挖掘图片的深层特征,并在特定维度上对深层特征进行分类,即可判断这个人是谁。

2.5 目标跟踪

目标跟踪是利用图像序列的上下文信息,对目标的外观和运动信息进行建模,从而对目标运动状态进行预测并标定目标位置。目标跟踪是计算机视觉中一个课题,具有重要的理论研究意义和应用价值,在智能视频监控系统、智能人机交互、智能交通和视觉导航系统等方面具有广泛应用。

2.5.1 目标跟踪的主要流程

目标跟踪的主要流程可以概括为:通过摄像头捕获图像序列,然后输入计算机计算出目标的位置,再根据目标相关的特征,将每一帧中的同一个目标关联起来从而得到目标运动的完整轨迹。

同一个目标关联起来的常用方法是将目标跟踪问题看作一个二分类问题,把图像分为前景图像(正样本)和背景图像(负样本),利用最适合实际场景的图像特征和最佳的分类方法,将目标从背景区域中区分出来,期间不断地在线更新分类器来估计目标的位置。

2.6 生成对抗网络

生成对抗网络(Generative Adversarial Network, GAN)是由Ian Goodefellow等人提出的无监督学习方法,能够建模高维复杂的数据分布,巧妙地利用“对抗”的思想学习生成式模型。GAN 的很多衍生模型已经在一定程度上解决了特定场景中的图像生成问题。此外,诸如文本到图像的生成、图像到图像的生成等应用研究。

图片

图5:图像到图像的生成(风格变化)

2.6.1  生成对抗网络的基本思想

GAN 由两部分构成,

  • 一个是生成模型 G(Generator),主要作用是生成假的样本
  • 另一部分为判别模型 D(Discriminator),主要作用是判断是否为可接受的生成数据。

在训练过程中,生成模型 G 的目标是尽量生成接近真实的样本去欺骗判别模型 D,而判别模型 D 的目标则是尽量把 G 的生成样本和真实样本区分开来,这样 G 和 D 构成一个动态的“博弈”

GAN 评估所生成样本的质量,最开始生成的样本非常容易分辨,后来生成器渐渐的能够生成更为逼真的样本,则需要重新训练判别器,因此称为对抗。最后博弈的结果是,G 生成的样本难以被 D 区分出来是生成的还是真实的,此时得到的生成模型,可以用来生成样本数据。

相关文章:

什么是计算机视觉,计算机视觉的主要任务及应用

目录 1. 什么是计算机视觉 2. 计算机视觉的主要任务及应用 2.1 图像分类 2.1.1 图像分类的主要流程 2.2 目标检测 2.2.1 目标检测的主要流程 2.3 图像分割 2.3.1 图像分割的主要流程 2.4 人脸识别 2.4.1 人脸识别的主要流程 对于我们人类来说,要想认出身边…...

网易24届内推

【网易】2024届网易互联网秋季校园招聘内推开始啦!给你分享我的专属内推邀请函:https://bole.campus.163.com/campus/home?projectId55&type99&isShare1&boleId7b842acc7c2b42db&boleType2&signatured5f2a3dc23bed70777a8be1a14b49…...

redis 应用 4: HyperLogLog

我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? img 如果统计 PV 那非常好办,给每个网页一…...

进程的挂起状态

进程的挂起状态详解 当我们谈论操作系统和进程管理时,我们经常听到进程的各种状态,如“就绪”、“运行”和“阻塞”。但其中一个不那么常被提及,但同样重要的状态是“挂起”状态。本文将深入探讨挂起状态,以及为什么和在何时进程…...

idea 链接mysql连不上

打开文件 C:\Program Files\JetBrains\IntelliJ IDEA 2023.2.1\jbr\conf\security\java.security修改内容 搜索:jdk.tls.disabledAlgorithms 修改 链接地址 在链接后面添加 ?useSSLfalse jdbc:mysql://127.0.0.1:3306/db_admin3?useSSLfalse...

Ubuntu 启动出现grub rescue

​ 一,原因 原因:出现 “grub rescue” 错误通常表示您的计算机无法正常引导到操作系统,而是进入了 GRUB(Grand Unified Bootloader)紧急模式。这可能是由于引导加载程序配置错误、硬盘驱动器损坏或其他引导问题引起…...

go中runtime包里面的mutex是什么?runtime.mutex解析

其实在看go源码的时候,发现除了sync包里有个mutex以外,runtime包里也有一个mutex,这个mutex在runtime很多地方都在用。 这个runtime包里面的mutex的结构如下: 目录: /runtime/runtime2.go 代码: type mutex struct …...

VScode 调试python程序,debug状态闪断问题的解决方法

0. Few words 之前一直在VSCode中debug C和Python的程序没出过闪断的问题,但是最近在另一台电脑上debug,同样的方法,设置launch.json和CMakeList加debug状态等等操作,如我另一篇blog写的一样,可以点这里查看。 但是&a…...

飞桨中的李宏毅课程中的第一个项目——PM2.5的预测

所谓的激活函数,就是李宏毅老师讲到的sigmoid函数 和 hard sigmoid函数 ,ReLU函数那些 现在一点点慢慢探索,会成为日后想都做不到的经历,当你啥也不会的时候,才是慢慢享受探索的过程。 有一说一,用chatGP…...

Qt---对话框 事件处理 如何发布自己写的软件

目录 一、对话框 1.1 消息对话框(QMessageBox) 1> 消息对话框提供了一个模态的对话框,用来提示用户信息,或者询问用户问题并得到回答 2> 基于属性版本的API 3> 基于静态成员函数版本 4> 对话框案例 1、ui界面 …...

【C++】C++ 引用详解 ⑩ ( 常量引用案例 )

文章目录 一、常量引用语法1、语法简介2、常引用语法示例 二、常量引用语法1、int 类型常量引用示例2、结构体类型常量引用示例 在 C 语言中 , 常量引用 是 引用类型 的一种 ; 借助 常量引用 , 可以将一个变量引用 作为实参 传递给一个函数形参 , 同时保证该值不会在函数内部被…...

React原理 - React Reconciliation-下

目录 Fiber Reconciler 【react v16.13.1】 React Fiber需要解决的问题 React Fiber的数据结构 时间分片 Fiber Reconciler 的调度 双缓冲 池概念 小节 练习 Fiber Reconciler 【react v16.13.1】 Fiber 协调 优化了栈协调的事务性弊端引起的卡顿 React Fiber需要解决…...

YOLOv8超参数调优教程! 使用Ray Tune进行高效的超参数调优!

原创文章为博主个人所有,未经授权不得转载、摘编、倒卖、洗稿或利用其它方式使用上述作品。违反上述声明者,本站将追求其相关法律责任。 这篇博文带大家玩点新的东西,也是一直以来困扰大家最大的问题—超参数调优! 之前的 YOLOv5 我使用遗传算法做过很多次调优,实验一跑就…...

JVM运行时数据区

文章目录 JVM内存结构图1、运行时数据区域JDK 1.7JDK 1.81. 线程栈(虚拟机栈)2. 本地方法栈3. 程序计数器4. 方法区(元空间)5. 堆6、运行时常量池(Runtime Constant Pool)7、直接内存(Direct Me…...

第七章,相似矩阵及其应用,3-二次型、合同矩阵与合同变换

第七章,相似矩阵及其应用,3-二次型、合同矩阵与合同变换 二次型相关概念二次型二次型的标准形和规范形表示形式 合同矩阵与合同变换定义 合同合同矩阵的性质等价、相似、合同三种关系的对比等价相似合同 玩转线性代数(38)二次型概念、合同矩阵与合同变换…...

css学习7(盒子模型)

1、盒子模型图&#xff1a; Margin(外边距) - 清除边框外的区域&#xff0c;外边距是透明的。Border(边框) - 围绕在内边距和内容外的边框。Padding(内边距) - 清除内容周围的区域&#xff0c;内边距是透明的。Content(内容) - 盒子的内容&#xff0c;显示文本和图像。 <!DO…...

C++笔记之临时变量与临时对象与匿名对象

C笔记之临时变量与临时对象与匿名对象 code review! 文章目录 C笔记之临时变量与临时对象与匿名对象1.C中的临时变量指的是什么&#xff1f;2.C中的临时对象指的是什么&#xff1f;3.C中临时对象的作用是什么&#xff1f;什么时候要用到临时对象?4.给我列举具体的例子说明临…...

缓存技术(缓存穿透,缓存雪崩,缓存击穿)

大家好 , 我是苏麟 , 今天聊一聊缓存 . 这里需要一些Redis基础 (可以看相关文章等) 本文章资料来自于 : 黑马程序员 如果想要了解更详细的资料去黑马官网查看 前言:什么是缓存? 缓存,就是数据交换的 缓冲区 (称作Cache [ kʃ ] ),俗称的缓存就是缓冲区内的数据,是存贮数据的…...

实操教程 | 触发器实现 Apache DolphinScheduler 失败钉钉自动告警

作者 | sqlboy-yuzhenc 背景介绍 在实际应用中&#xff0c;我们经常需要将特定的任务通知给特定的人&#xff0c;虽然 Apache DolphinScheduler 在安全中心提供了告警组和告警实例&#xff0c;但是配置起来相对复杂&#xff0c;并且还需要在定时调度时指定告警组。通过这篇文…...

以“迅”防“汛”!5G视频快线筑牢防汛“安全堤”

近期&#xff0c;西安多地突发山洪泥石流灾害。防洪救灾刻不容缓&#xff0c;为进一步做好防汛工作&#xff0c;加强防洪调度监管&#xff0c;切实保障群众的生命财产安全&#xff0c;当地政府管理部门亟需拓展智能化技术&#xff0c;通过人防技防双保障提升防灾救灾应急处置能…...

jmeter 性能测试工具的使用(Web性能测试)

1、下载 该软件不用安装&#xff0c;直接解压打开即可使用。 2、使用 这里就在win下进行&#xff0c;图形界面较为方便   在目录apache-jmeter-2.13\bin 下可以见到一个jmeter.bat文件&#xff0c;双击此文件&#xff0c;即看到JMeter控制面板。主界面如下&#xff1a; 3、创…...

springboot整合第三方技术邮件系统

springboot整合第三方技术邮件系统&#xff0c;发邮件是java程序的基本操作&#xff0c;springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作&#xff0c;再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化…...

Python入门学习——Day2-变量和数据类型

一、Python 变量 在Python中&#xff0c;变量用于保存数据&#xff0c;方便程序对数据的处理和操作。下面是关于Python变量的一些重要概念&#xff1a; 变量命名规则&#xff1a; 变量名由字母、数字和下划线组成。变量名可以以字母或下划线开头&#xff0c;但不能以数字开头…...

Graylog 更改显示的时区(Display timezone)

每个 Graylog 用户都可以配置他们的显示时区。 这会更改用于查看日志消息的时区&#xff0c;但不会更改日志消息的原始时区。 默认情况下&#xff0c;Graylog 显示 UTC 格式的所有时间戳&#xff08;也就是 0:00&#xff09;。就像是下面这样 非Admin账户要更改时区&#xff1…...

【网络安全防护】上海道宁与Bitdefender帮助您构建弹性网络并降低安全运营成本

在网络的世界中 风险变得更加常见与复杂 企业需要从网络安全转向网络弹性 复杂的网络攻击已非常普遍 在面临攻击时 企业如何保持业务连续性&#xff1f; Bitdefender GravityZone将 风险分析、安全加固、威胁预防 检测和响应功能相结合 帮助您构建弹性网络 并降低安全…...

文心一言 VS CHATGPT

由于近几天来&#xff0c;我的手机短信不断收到百度公司对于“文心一言”大模型的体验邀请&#xff08;真是不胜其烦&#xff09;&#xff01;&#xff01;所以我就抱着试试看的态度点开了文心一言的链接&#xff1a;文心一言 目前看来&#xff0c;有以下两点与chatgpt是有比较…...

2023-09-01力扣每日一题

链接&#xff1a; 2240. 买钢笔和铅笔的方案数 题意&#xff1a; 一共total元&#xff0c;两种笔分别cost1和cost2元&#xff0c;求能买的的笔的所有情况&#xff0c;不要求花光钱 解&#xff1a; 枚举其中一个数字就行 实际代码&#xff1a; #include<bits/stdc.h&g…...

【Python】从入门到上头— IO编程(8)

文章目录 一.IO编程是什么二.文件读写1.读取文件2.file-like Object二进制文件字符编码 3.写文件file对象的常用函数常见标识符 三.StringIO和BytesIO1.StringIO2.BytesIO 四.操作文件和目录五.序列化和反序列化1.pickle.dumps()2.pickle.loads()3.JSON 一.IO编程是什么 IO在计…...

R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p33514 综合社会调查&#xff08;GSS&#xff09;是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来&#xff0c;GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 197…...

LeetCode 刷题第四轮 Offer I + 类型题

目录 剑指 Offer 04. 二维数组中的查找 剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈 剑指 Offer 10- I. 斐波那契数列 [类型&#xff1a;记忆优化 递归 / 动态规划] 剑指 Offer 10- II. 青蛙跳台阶问题 [类型&am…...