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

文章目录

  • 一、计算机视觉
  • 二、计算机视觉与其它学科领域的关系
    • 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.hqwc.cn/news/538607.html

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

相关文章

【学一点RISC-V】RISC-V IMSIC

IMSIC RISC-V AIA 文档 第三章 Incoming MSI Controller (IMSIC) 传入 MSI 控制器(IMSIC)是一个可选的 RISC-V 硬件组件,与 hart 紧密相连,每个 hart 有一个 IMSIC。IMSIC 接收并记录 Hart 的传入消息信号中断 (MSI),并…

《深入解析 C#》—— C# 2 部分

文章目录 第二章 C# 22.1 泛型&#xff08;*&#xff09;2.2 default 和 typeof&#xff08;*&#xff09;2.3 可空值类型2.3.1 Nullable<T> 结构体&#xff08;framework 支持&#xff09;2.3.2 装箱&#xff08;CLR 支持&#xff09;2.3.3 “?”后缀&#xff08;语法支…

算法50:动态规划专练(力扣514题:自由之路-----4种写法)

题目: 力扣514 &#xff1a; 自由之路 . - 力扣&#xff08;LeetCode&#xff09; 题目的详细描述&#xff0c;直接打开力扣看就是了&#xff0c;下面说一下我对题目的理解: 事例1&#xff1a; 输入: ring "godding", key "gd" 输出: 4. 1. ring的第…

前端页面兼容pc和手机端设置,等比例缩小

html页面 <meta name"viewport" content"widthdevice-width, initial-scale0, user-scalableyes,shrink-to-fitno">vue 在public里面的index.html里面设置 <meta name"viewport" content"widthdevice-width,initial-scale1.0,use…

【单调栈】代码随想录算法训练营第五十九天 |503.下一个更大元素II, 42. 接雨水 (待补充)

503.下一个更大元素II 1、题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个…

IDC服务商趋势

市场前景与趋势 随着云计算和大数据的发展&#xff0c;行业市场的规模正在不断增长。企业对服务器设备的需求不断增加。同时&#xff0c;由于服务器设备的价格较高且维护成本较高&#xff0c;许多企业更倾向于将服务器设备托管给专业的服务提供商&#xff0c;以降低成本并提高…

宝妈在家带孩子还是出去工作?足不出户,两者如何兼顾?

我是电商珠珠 很多女性生完孩子之后&#xff0c;就在家当家庭主妇带孩子。部分人舍不得吃穿&#xff0c;把从老公那里要来的钱都给孩子买了东西。自己也想过要出去工作&#xff0c;但是空窗期太久&#xff0c;觉得自己什么都不会&#xff0c;没有企业会要。 前段时间有一个硕…

C++类和对象一

#include <iostream> using namespace std;//设计一个学生类 class CStudent {public: //公有成员void InputData(){cout << "请输入学号";cin >> sno;cout << "请输入姓名";cin >> sname;cout << "请输入分…

我把Spring Cloud的超详细资料介绍给你,面试官不会生气吧?geigei

Spring Cloud 五大组件 Eureka服务注册与发现 白嫖资料 服务治理 在传统的RPC远程调用框架中&#xff0c;管理每个服务与服务之间的依赖关系比较复杂&#xff0c;管理也复杂&#xff0c;所以需要使用服务治理&#xff0c;管理服务于服务之间依赖关系&#xff0c;可以实现服务…

6. 面向对象(重点)

1 面向对象 1.1 了解对象 学习面向对象编程都先我们需要先思考三个问题: 1.1.1 面向对象的好处? Java作者詹姆斯.高斯林说过**万物皆对象**汽车的数据可以找汽车对象处理手机数据可以找手机对象处理学生的数据可以找学生对象处理使用面向对象编程符合人类思维习惯, 就好比…

MISC-Catflag

前言 开始拿到这道题&#xff0c;以为是要识别文件类型&#xff0c;后面发现不是&#xff0c;kali识别为ascii文本文件。而用010editor打开&#xff0c;又是一堆看不懂的码 后面发现有很多重复内容1B 5B 43等等&#xff0c;再看题目type flag or cat flag可以联想linux的cat命…

月结常见工单异常情况处理

1. 上月已经结算的工单&#xff0c;本月打开投料或者报工&#xff0c;或者增加产出 或者撤销报工修正报工 如果针对结算的订单&#xff0c;打开重新投料。 月末对工单重新结算&#xff0c;转出差异 KKS2单个处理&#xff08;KKS1集中处理&#xff09; 差异计算 KO88单个结算…