【计算机视觉】一、计算机视觉概述

文章目录

  • 一、计算机视觉
  • 二、计算机视觉与其它学科领域的关系
    • 1、图像处理
    • 2、计算机图形学
    • 3、模式识别
    • 4、人工智能(AI)
    • 5、神经生理学与认知科学
  • 三、计算机视觉的应用
    • 1. 人脸识别
    • 2. 目标检测
    • 3. 图像生成
    • 4. 城市建模
    • 5. 电影特效
    • 6. 体感游戏动作捕捉
    • 7. 虚拟现实
  • 四、计算机视觉的意义
    • How?
    • 意义
  • 五、计算机视觉的发展历程
  • 六、实践
    • 1、OpenCV (C++/Python):
    • 2、MATLAB
    • 3、Python

  计算机视觉作为人工智能的重要组成部分和基础,正在为人工智能系统带来新的感知认知能力,是人工智能通往更高智能水平的关键一步。

在这里插入图片描述

一、计算机视觉

  • 模仿人类视觉系统
  • 如何使计算机从数字图像或视频中获得高层次的理解

  计算机视觉是人工智能的重要组成部分,是赋予机器自然视觉能力的学科,相当于是人工智能的大门。

  计算机视觉旨在模仿和实现人类视觉系统的功能,从而使计算机能够从数字图像或视频中获取高层次的理解和分析,比如识别物体、理解场景、检测动作等。这对于很多应用领域都具有重要意义,如机器人视觉、自动驾驶、医疗影像分析等。
  近年来,计算机视觉取得了长足进步,尤其是在深度学习等人工智能新技术的推动下,计算机视觉系统的性能不断提高,逐步向着人类水平迈进。不过,完全模拟和实现人类视觉的高级认知功能仍然是一个巨大挑战,需要计算机视觉与神经科学、认知科学等多学科深度交叉融合。

二、计算机视觉与其它学科领域的关系

  计算机视觉与其他许多学科领域存在紧密联系,相互借鉴、交叉渗透,这种跨学科的交叉正是推动计算机视觉不断发展的重要动力。我概括了一些主要的关联领域:

1、图像处理

  图像处理通常是把一幅图像变换成另外一幅图像,也就是说,图像处理系统的输入是图像,输出仍然是图像。

  图像处理是计算机视觉的基础,为后续的图像理解和分析提供前期处理。计算机视觉需要利用图像处理方法对原始图像数据进行增强、滤波、恢复等,以获取高质量图像。

2、计算机图形学

  通过几何基元,如线、圆和自由曲面,来生成图像。计算机视觉正好是解决相反的问题,即从图像中估计几何基元和其它特征.因此,计算机图形学属于图像综合,计算机视觉属于图像分析

  图形学着眼于根据几何模型生成图像,而视觉是从图像中提取几何和语义信息的相反过程。二者相辅相成,往往结合使用。

3、模式识别

  模式一般指一类事物区别于其它事物所具有的共同特征

  模式识别研究如何用数学模型来描述事物的内在规律,是计算机视觉任务的理论基础,如目标检测、分类等都需要借助模式识别方法。

4、人工智能(AI)

  涉及到智能系统的设计和智能计算的研究。在经过图像处理和图像特征提取过程后,接下来要用人工智能方法对场景特征进行表示,并分析和理解场景。人工智能有三个过程:感知、认知和行动

  人工智能为计算机视觉提供了大量智能算法,如机器学习、深度学习等,使计算机能够自主学习、推理和决策。视觉是人工智能感知世界的重要能力。

5、神经生理学与认知科学

  将人类视觉作为主要的研究对象。计算机视觉中已有的许多方法与人类视觉极为相似。许多计算机视觉研究者对研究人类视觉计算模型比研究计算机视觉系统更感兴趣,希望计算机视觉更加自然化,更加接近生物视觉。

  人类视觉系统设计给了计算机视觉极大的启发,很多生物视觉计算模型都被成功应用于视觉算法中,如卷积神经网络等。

三、计算机视觉的应用

  计算机视觉的应用领域十分广泛,下面我就根据自己的了解,对这些应用领域简要分析:

1. 人脸识别

  利用计算机视觉技术对人脸进行检测、识别和验证,在安全监控、刷脸支付、人员通行管理等领域有广泛应用。

2. 目标检测

  检测图像或视频中的特定目标物体,定位其位置,在机器人导航、无人驾驶、视频监控等场景中十分重要。

3. 图像生成

  依据文本描述或提示生成逼真图像,如最新的稳定扩散模型,在设计、虚拟现实等领域大有应用前景。

不同模型生成的母猪上树
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

重量级选手闪亮登场:
在这里插入图片描述

4. 城市建模

  通过航空影像或地面图像数据,重建出三维城市模型,用于城市规划、导航等。

5. 电影特效

  在特效合成、动作捕捉、虚拟场景构建等方面,计算机视觉扮演着重要角色。

6. 体感游戏动作捕捉

  通过计算机视觉识别人体动作,实现自然的人机交互,提升游戏体验。

7. 虚拟现实

  计算机视觉是虚拟现实系统的关键技术,用于三维重建、物体检测和跟踪等。

四、计算机视觉的意义

  • 自动识别图像或视频中的对象
  • 从视觉数据中提取出潜在信息
  • 使计算机看到/学习程序员没有告诉它们的东西
  • 用计算算法模仿人类的视觉感知
  • 训练计算机理解视觉世界
  • 通过视觉感知来认识世界

How?

  • 将图像转换为更易于理解的事物,例如距离、边缘、方向等
  • 从图像/视频中获取信息
  • 赋予计算机“眼睛”,像人类一样观察和识别
  • 教计算机通过图像解释和理解我们的世界

意义

  • 智能机器:能够模拟人类的功能,感知外部世界并有效解决人所能解决问 题的系统。

  • 在人类的感知器官中,视觉获取的信息量最大,大约80%,因此对于发展 智能机器而言,赋予机器以人类视觉功能是十分重要的。

  • 计算机视觉:研究用计算机来模拟生物外显或宏观视觉功能的技术学科。

  • 计算机视觉的任务是用图像创建或恢复现实世界模型,然后认知现实世界。

  • 具体来说,让计算机具有对周围世界的空间物体进行传感、抽象、判断的能力,从而达到识别、理解的目的。

五、计算机视觉的发展历程

  • 上世纪50年代,从统计模式识别开始,主要集中在二维图像分析与识别,主要应用包括字符识别、工件表面检测等等。
  • 上世纪60年代,拓展到三维结构,对物体的形状,物体的 空间关系进行描述。通过对积木世界的研究,引出了边缘、 角点等特征提取,图像明暗、纹理、运动以及成像几何等研究工作。
  • 上世纪70年代,Marr计算视觉理论,建立一个十分重要的理论框架。
    • 1982sMarr视觉计算理论——三种层次
      • 计算理论:(视觉)信息处理系统的计算(任务)目的 是什么?该问题的已知或可以施加的约束是什么?
      • 表示和算法:输入、输出和中间信息是如何表达的?使 用哪些算法来计算所期望的结果?
      • 硬件实现:表达和算法是如何映射到实际硬件即生物视 觉系统或特殊的硅片上的?相反地, 硬件的约束怎样才 能用于指导表达和算法的选择?
    • 随着计算机视觉中使用图形芯片(GPU)和多核结构日益增长, 这个问题再次变得相当重要。

在这里插入图片描述

六、实践

1、OpenCV (C++/Python):

  • 2D和3D特征工具包,用于图像处理

  • 自我运动估计,通过图像确定相机运动

  • 人脸识别系统

  • 手势识别

  • 人机交互(HCI)

  • 移动机器人应用

  • 运动理解

  • 物体检测

  • 图像分割和识别

  • 立体视觉:利用两个相机获取深度感知

  • 运动恢复(SFM)

  • 运动视频跟踪

  • 增强现实

2、MATLAB

  • 用于数值计算和科学计算

  • 统计分析和数据可视化

  • 图像处理和计算机视觉算法

  • 应用于信号处理和控制系统

  • 模拟系统设计和分析

  • 数据分析、建模和可视化

  • 测试和验证

  • 算法原型和分析

  • 应用程序部署

  • 报告生成和演示文稿

  • 并行计算设计

3、Python

  1. imutils具有一系列图像处理功能,如平移、旋转、调整大小、翻转等,并支持Matplotlib图像、OpenCV和Python本身的额外功能。

  2. OpenCV是一个主要针对实时计算机视觉的综合库,提供了许多基本功能,它被认为是一个用于图像处理的库。它效率高,使用实时图像处理。

  3. dlib是一个开源的C++库,实现了多种机器学习算法。虽然该库最初是用C++编写的,但它具有良好且易于使用的Python绑定。它广泛用于人脸检测和面部标志检测。

  4. scikit-learn是一个用于python编程语言的免费软件机器学习库。它具有各种分类、回归、聚类算法,包括支持向量机、随机森林、梯度提升、k-means和DBSCAN。它建立在Matplotlib、NumPy和 SciPy之上。

  5. scikit-image 是python编程语言的开源图像处理库。它包括分割、滤波变换、色彩空间操作、分析、形态学、特征检测等算法。它与Python数值和科学库NumPy和SciPy集成。
    scikit-image 是图像处理算法的集合。它是免费的,没有限制。它包含一些OpenCV没有的算法实现。

  6. TensorFlow
    TensorFlow是一个用于机器学习的端到端开源平台,它提供了一个全面、灵活的工具,库和社区资源。生态系统,使研究人员能够推动ML的最新发展,而开发人员则可以轻松构建和部署ML支持的应用程序。
    它是一个免费的开源软件库,用于跨一系列任务的数据流和可微分编程。它通常用于神经网络和Keras的计算后端。

  7. Keras
    Keras是一个用Python编写的开源神经网络库。它能够在TensorFlow、Microsoft Cognitive Toolkit、Theano或PaidML之上运行。

  8. mxnet
    mxnet是一个用于训练和部署神经网络的开源深度学习框架。它非常快速和高效。它能够跨多个GPU和多台机器进行分布式运行。

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

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

相关文章

java数据结构与算法刷题-----LeetCode47. 全排列 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 暴力回溯2. 分区法回溯 此题为46题的衍生题,在46题…

PHP极简网盘系统源码 轻量级文件管理与共享系统网站源码

PHP极简网盘系统源码 轻量级文件管理与共享系统网站源码 极简网盘是一个轻量级文件管理与共享系统,支持多用户,可充当网盘程序,程序无需数据库 安装步骤: 1.建议安装在apache环境下,并确保.htaccess可用 2.解压文件…

PHP序列化基础知识储备

一、序列化与反序列化 1、概念 PHP中的序列化是指将复杂的数据类型转换为可存储或可传输的字符串,而反序列化则是将这些字符串重新转换回原来的数据类型。 序列化通常使用 serialize() 函数完成,它可以将数组、对象、字符串等复杂数据类型压缩到一个字…

Infineon_TC264智能车代码初探及C语言深度学习(二)

本篇文章记录我在智能车竞赛中,对 Infineon_TC264 这款芯片的底层库函数的学习分析。通过深入地对其库函数进行分析,C语言深入的知识得以再次在编程中呈现和运用。故觉得很有必要在此进行记录分享一下。 目录 ​编辑 一、代码段分析 NO.1 指向结构体…

CSDN 编辑器设置图片缩放和居中

CSDN 编辑器设置图片缩放和居中 文章目录 CSDN 编辑器设置图片缩放和居中对齐方式比例缩放 对齐方式 Markdown 编辑器插入图片的代码格式为 ![图片描述](图片路径)CSDN 的 Markdown 编辑器中插入图片,默认都是左对齐,需要设置居中对齐的话,…

QTextToSpeech的使用——Qt

前言 之前随便看了几眼QTextToSpeech的帮助就封装使用了,达到了效果就没再管了,最近需要在上面加功能(变换语速),就写了个小Demo后,发现不对劲了。 出现的问题 场景 写了个队列添加到语音播放子线程中&a…

HTTPS基础

目录 HTTPS简介 HTTP与HTTPS的区别 CA证书 案例 服务器生成私钥与证书 查看证书和私钥存放路径 Cockpit(图像化服务管理工具) HTTPS简介 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密&…

C++——类和对象(1)

1. 面向对象和面向过程对比 当涉及到编程范式时,两个主要的方法是面向对象编程(Object-Oriented Programming,OOP)和面向过程编程(Procedural Programming)。这两种编程范式在解决问题和组织代码时有着不同…

COX回归影响因素分析的基本过程与方法

在科学研究中,经常遇到分类的结局,主要是二分类结局(阴性/阳性;生存/死亡),研究者可以通过logistic回归来探讨影响结局的因素,但很多时候logistic回归方法无法使用。如比较两种手段治疗新冠肺炎…

Annaconda环境下ChromeDriver配置及爬虫编写

Anaconda环境的chromedriver安装配置_anaconda 配置chromedriver-CSDN博客 Chromedriver驱动( 121.0.6167.85 ) - 知乎 下载好的驱动文件解压,将exe程序复制到Annaconda/Scripts目录以及Chrome/Application目录下 注意要提前pip install selenium包才能运行成功&a…

BEV系列一:BEV介绍和常用BEV算法简介

BEV系列一:BEV介绍和常用BEV算法简介 自动驾驶最全学习资料获取:链接

Linux操作系统——线程概念

1.什么是线程? 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行,本质是在进程地址空间内运行在Linux系统中&#x…

openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断

文章目录 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断242.1 SQL自诊断242.1.1 告警场景242.1.2 规格约束 openGauss学习笔记-242 openGauss性能调优-SQL调优-典型SQL调优点-SQL自诊断 SQL调优是一个不断分析与尝试的过程:试跑Query&…

【Qt】常用控件或属性(1)

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、QWidget属性一览 二、控件button、属性enabled(可用状态) 三、属性geometry(修改位置和尺寸) 1、QRect类型的结…

微信小程序之tabBar

1、tabBar 如果小程序是一个多 tab 应用&#xff08;客户端窗口的底部或顶部有 tab 栏可以切换页面&#xff09;&#xff0c;可以通过 tabBar 配置项指定 tab 栏的表现&#xff0c;以及 tab 切换时显示的对应页面。 属性类型必填默认值描述colorHexColor是tab 上的文字默认颜色…

Leetcode 3.14

Leetcode hot100 二叉树1.二叉树的层序遍历2.验证二叉搜索树3.二叉树的右视图 二叉树 1.二叉树的层序遍历 二叉树的层序遍历 二叉树的层序遍历可以用先进先出的队列来实现。 将每一层的所有node都添加到队列中&#xff0c;记录下当前队列的长度&#xff0c;即该层的元素数量&…

『 Linux 』进程替换( Process replacement ) 及 简单Shell的实现(万字)

文章目录 &#x1f984; 进程替换&#x1f9a9; execl()函数&#x1f9a9; execlp()函数&#x1f9a9; execle()函数&#x1f9a9; execv()函数&#x1f9a9; execvp()函数&#x1f9a9; execvpe()函数&#x1f9a9; execve()函数 &#x1f984; 简单Shell命令行解释器的实现&a…

【漏洞复现】ChatGPT-Next-Web SSRF漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

Python-sklearn-diabetes项目实战

目录 1 下载数据集和预处理 1.1 加载/下载数据集 1.2 数据可视化 1.3 数据清洗 1.4 特征工程 1.5 构建特征集和标签集 1.6 拆分训练集和测试集 2 训练模型 2.1 选择算法和确定模型 2.2 训练拟合模型 3 评估并优化模型性能 本文以糖尿病数据集diabetes为基础进行线性…

【Node.js从基础到高级运用】十一、构建RESTful API

在本篇博客中&#xff0c;我们将综合之前讨论的内容&#xff0c;深入探索如何使用Node.js构建一个RESTful API。我们将重点讨论设计合理的API端点&#xff0c;展示如何通过代码实现这些端点&#xff0c;并指导如何使用Postman测试我们的API&#xff0c;确保其按预期工作。 前提…