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

news2024/9/24 13:25:46

文章目录

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

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

相关文章

Android 仿天通卫星对准(卫星在圆形卫星轨道上转动)效果实现

效果图 View源码 package com.android.circlescalebar.view;import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics…

linux对于文件操作其他命令

tac,与cat不同,tac可以倒序查看文件内容 管道符,可以将第一条命令的结果当作第二条命令的输入 more分屏显示文件内容 head,可以查看文件前多少行,tail可以查看文件后多少行

JavaEE之多线程(创建线程的五种写法)详解

😽博主CSDN主页: 小源_😽 🖋️个人专栏: JavaEE 😀努力追逐大佬们的步伐~ 目录 1. 前言 2. 操作系统"内核" 3. 创建线程的五种写法 (我们重点要掌握最后一种写法!!) 3.1 继承 Thread, 重写 run 3. 2 实现 Runnabl…

SpringBoot Servlet容器启动解析

介绍 容器架构 容器处理请求 容器启动全局流程解析 启动前准备 WebServer创建入口 WebServer创建 Servlet启动 Web容器工厂类加载解析 Web容器个性化配置 属性注入 工厂类初始化 BeanPostProcessor方法实现 定制化流程 面试题 请描述下Servlet容器启动流程?介绍下…

最新android icon和splashScreen适配兼容至2024android

android在12做了splashScreen的变动,即,android12有自带的screenSplash过渡,不论你是否自己有变化,都会插入该动画。 android8做了icon的巨大变动。13做了图标的主题兼容。 一、icon制作 制作 使用android自带的工具&#xff0…

Modbus -tcp协议使用第二版

1.1 协议描述 1.1.1 总体通信结构 MODBUS TCP/IP 的通信系统可以包括不同类型的设备: (1)连接至 TCP/IP 网络的 MODBUS TCP/IP 客户机和服务器设备; (2)互连设备,例如:在 TCP/IP…

外包干了5天,技术明显退步。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

C# Onnx yolov8 building segmentation

目录 效果 模型信息 项目 代码 下载 C# Onnx yolov8 building segmentation 效果 模型信息 Model Properties ------------------------- date:2023-12-22T10:51:07.627471 author:Ultralytics task:segment license:AGPL-…

HBase分布式数据库的原理和架构

一、HBase简介 HBase是是一个高性能、高可靠性、面向列的分布式数据库,它是为了在廉价的硬件集群上存储大规模数据而设计的。HBase利用Hadoop HDFS作为其文件存储系统,且Hbase是基于Zookeeper的。 二、HBase架构 *图片引用 Hbase采用Master/Slave架构…

YOLOv9(3):YOLOv9损失(Loss)计算

1. 写在前面 YOLOv9的Loss计算与YOLOv8如出一辙,仅存在略微的差异。多说一句,数据的预处理和导入方式都是一样的。因此如果你已经对YOLOv8了解的比较透彻,那么对于YOLOv9你也只是需要多关注网络结构就可以。 YOLOv9本身也是Anchor-Free的&a…

彩虹外链网盘界面UI美化版超级简洁好看

彩虹外链网盘界面UI美化版 彩虹外链网盘,是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可支持文本、图片、音乐、…

机试:成绩排名

问题描述: 代码示例: #include <bits/stdc.h> using namespace std;int main(){cout << "样例输入" << endl; int n;int m;cin >> n;int nums[n];for(int i 0; i < n; i){cin >> nums[i];}// 排序for(int i 0; i < n; i){//…

Leetcode 3.14

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

Java操作Sql语句 出现迭代死循环 (Bug排查)

目录 1. 问题所示2. 原理分析3. 解决方法4. 彩蛋1. 问题所示 Java执行Sql语句来查询一些数据的时候 虽说数据量很大,但是查询过程中一直迭代查询 截图如下所示: 2. 原理分析 至于迭代死循环,可能是不满足的条件也进入查询(本身我的数据量就很大) 主要可能引起的两个原…

创新发展,探索智慧园区平台架构设计与实现

随着信息技术的快速发展&#xff0c;智慧园区平台作为集成物联网、大数据、人工智能等技术的综合性服务平台&#xff0c;正逐步成为推动企业数字化转型的重要驱动力。本文将深入探讨智慧园区平台的架构设计思路、关键技术和应用场景&#xff0c;助力读者了解如何打造智慧化、协…

【洛谷 P8637】[蓝桥杯 2016 省 B] 交换瓶子 题解(贪心算法)

[蓝桥杯 2016 省 B] 交换瓶子 题目描述 有 N N N 个瓶子&#xff0c;编号 1 ∼ N 1 \sim N 1∼N&#xff0c;放在架子上。 比如有 5 5 5 个瓶子&#xff1a; 2 , 1 , 3 , 5 , 4 2,1,3,5,4 2,1,3,5,4 要求每次拿起 2 2 2 个瓶子&#xff0c;交换它们的位置。 经过若干次…

linux查看服务器登录成功和登录失败的命令

last 查看成功登录服务器的信息&#xff0c;包括ip&#xff0c;时间&#xff0c;登录用户&#xff0c;时长。lastb 查看登录服务器失败的信息。 last命令实例&#xff1a; 其他参数&#xff1a; -a&#xff1a;把从何处登入系统的主机名称或ip地址&#xff0c;显示在最后一行…

sqllab第十一关通关笔记

知识点&#xff1a; 发现登录框就可以尝试注入登录框一般都是字符型注入通过注入可以获取其他表的信息绕过手段 单引号闭合联合注入也可以进行错误注入 首先看界面是一个登录框&#xff1b;通过admin admin登录进去&#xff0c;发现页面会把用户名和密码的登录信息打印出来&am…

Node.js入门基础—day01

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;给自己一个梦想&#xff0c;给世界一个惊喜。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章目录 初识node.js什…

sqllab第二十一关通关笔记

知识点&#xff1a; 错误注入 最大长度为32超过需要利用截取函数分段读取cookie注入base64加密会保留符号的原始属性 通过admin admin进行登录发现和第二十关显示的内容一样&#xff0c;猜测应该还是cookie注入&#xff1b; 直接截取带有cookie的数据包&#xff0c;发现uname…