计算机视觉概述:视觉任务+场景领域+发展历程+典型任务

一、什么是计算机视觉

  • 定义:计算机视觉(Computer vision)是⼀⻔研究如何使机器“看”的科学,更 进⼀步的说,就是指⽤摄影机和计算机代替⼈眼对⽬标进⾏识别、跟踪和测量 等,⽤计算机处理成为更适合⼈眼观察或传送给仪器检测的图像。

比如下图,做到的不仅仅是检测到图像前景中有四个⼈、⼀条街道和⼏辆⻋。除了这些基本信息,⼈类还能够看出图像前景中的⼈正在⾛路,其中⼀⼈⾚脚,我们甚⾄知道他们是谁。我们可以理性地推断出图中⼈物没有被⻋撞击的危险,⽩⾊的⼤众汽⻋没有停好。⼈类还可以描述图中⼈物的穿着,不⽌是⾐服颜⾊,还有材质与纹理。⼈类能够理解和描述图像中的场景。

1.2 区分计算机视觉与其相关领域


计算机视觉,图像处理,图像分析,机器⼈视觉和机器视觉是彼此紧密关联的学科。

1、计算机视觉的研究很⼤程度上针对图像的内容。如果你翻开带有上⾯这些名字的教材,你会发现在技术和应⽤领域上他们都有着相当⼤部分的重叠。这表明这些学科的基础理论⼤致是相同的,甚⾄让⼈怀疑他们是同⼀学科被冠以不同的名称。然⽽,各研究机构,学术期刊,会议及公司往往把⾃⼰特别的归为其中某⼀个领域,于是各种各样的⽤来区分这些学科的特征便被提了出来。下⾯将给出⼀种区分⽅法,尽管并不能说这⼀区分⽅法完全准确。

2、图像处理旨在处理原始图像以应⽤某种变换。其⽬标通常是改进图像或将其作为某项特定任务的输⼊,⽽计算机视觉的⽬标是描述和解释图像。例如,降噪、对⽐度或旋转操作这些典型的图像处理组件可以在像素层⾯执⾏,⽆需对图像整体具备全⾯的了解。


3、机器视觉主要是指⼯业领域的视觉研究,例如⾃主机器⼈的视觉,⽤于检测和测量的视觉。这表明在这⼀领域通过软件硬件,图像感知与控制理论往往与图像处理得到紧密结合来实现⾼效的机器⼈控制或各种实时操作。

1.2 计算机视觉应用方向

⽬前CV公司⽐较集中的技术赛道有:⼈脸识别、⾃动驾驶、医疗图像等,但⽬前⽽⾔,商业化落地最快的还是⼈脸识别及其业务相关的⼀些技术,⽐如银⾏会⽤到⼈脸和⾃然场景下的OCR(⽂字识别),还有浸⼊式⼤数据⻛控,安防会⽤到⼈脸、⼈体、⻋辆与⼤数据分析等。

1.2.1 行为跟踪

实体零售店利⽤计算机视觉算法和摄像头,了解顾客及其⾏为。计算机视觉算法能够识别⼈脸,确定⼈物特征,如性别或年龄范围。此外,零售店还可以利⽤计算机视觉技术追踪顾客在店内的移动轨迹,分析其移动路线,检测⾏⾛模式,并统计零售店店⾯受到⾏⼈注意的次数。

添加视线⽅向检测后,零售店能够回答这⼀重要问题:将店内商品放在哪个位置可以提升消费者体验,最⼤化销售额。计算机视觉还是开发防盗窃机制的强⼤⼯具。⼈脸识别算法可⽤于识别已知的商店扒⼿,或检测出某位顾客将商品放⼊⾃⼰的背包。

1.2.2 医疗行业

在医疗⾏业中现有计算机视觉应⽤的数量⾮常庞⼤。毫⽆疑问医疗图像分析是最著名的例⼦它可以显著提升医疗诊断流程。此类系统对 MRI 图像、CT 扫描图像和 X 光图像进⾏分析找出肿瘤等异常或者搜索神经系统疾病的症状。在很多情况下图像分析技术从图像中提取特征从⽽训练能够检测异常的分类器。但是⼀些特定应⽤需要更细化的图像处理。

例如对结肠镜检查图像进⾏分析时分割图像是必要的这样才能找出肠息⾁防⽌结直肠癌。

上图是观察胸腔元素所需的图像分割结果。该系统分割每个重要部分并着⾊:肺动脉(蓝⾊)、肺静脉(红⾊)、纵膈(⻩⾊)和横膈(紫⾊)。⽬前⼤量此类应⽤已经投⼊使⽤如估计产后出⾎量、量化冠状动脉钙化情况、在没有 MRI 的情况下测定⼈体内的⾎流量。
但是医疗图像并⾮计算机视觉在医疗⾏业中唯⼀的⽤武之地。⽐如计算机视觉技术为视障⼈⼠提供室内导航帮助。这些系统可以在楼层平⾯图中定位⾏⼈和周围事物等以便实时提供视觉体验。视线追踪和眼部分析可⽤于检测早期认知障碍如⼉童⾃闭症或阅读障碍这些疾病与异常注视⾏为⾼度相关。

1.2.1 自动驾驶

你是否思考过,⾃动驾驶汽⻋如何「看」路?计算机视觉在其中扮演核⼼⻆⾊,它帮助⾃动驾驶汽⻋感知和了解周围环境,进⽽恰当运⾏。计算机视觉最令⼈兴奋的挑战之⼀是图像和视频⽬标检测。这包括对不同数量的对象进⾏定位和分类,以便区分某个对象是交通信号灯、汽⻋还是⾏⼈,如下图所示:

 此类技术,加上对来⾃传感器和/或雷达等来源的数据进⾏分析,使得汽⻋能够看⻅。

二、计算机视觉任务

2.1 计算机视觉发展历程

  • 1、1963年,Larry Roberts发表了(可能是)CV领域的第一篇专业论文,用以对简单几何体进行边缘提取和三维重建。1966年,麻省理工学院(MIT)发起了一个夏季项目,目标是搭建一个机器视觉系统,完成模式识别(pattern recognition)等工作。
    • 从现在来看,当时的目标确实定的过大,以至于到了50多年后的今天为止,即使CV领域有了数以千计的科学工作者,仍然无法建立起整个机器视觉系统。
  • 2、七十年代,同样是在MIT,学者David Marr发表的著作《Vision》从严谨又长远的角度给出了CV的发展方向和一些基本算法,其中不乏现在为人熟知的“图层”的概念、边缘提取、三维重建等。

    • 整个60年代到80年代,虽然CV的概念已经提出了20年,但是与“识别”相关的工作进展得并不顺利。除了上述些许学者们点燃的星星之火,很难看到太多突破性的方法和文献。因此人们开始思考:如果图像识别太困难了,那为什么不先试试图像分割呢?
  • 3、1999年David Lowe提出了尺度不变特征变换(SIFT, Scale-invariant feature transform)目标检测算法,用于匹配不同拍摄方向、纵深、光线等图片中的相同元素。

    • (1)2001年,在互联网泡沫的大背景下,CV领域却发展得风生水起,并再次取得重大突破性进展:Paul Viola和Michael Johns使用Adaboost算法实现了实时性的人脸检测。而这一技术仅在5年后就被富士胶片公司(Fujifilm)用于产品中——首个带有实时人脸检测功能的照相机。
    • (2)同一时期,Lazbnik, Schmid 和 Ponce等人提出了空间金字塔匹配算法(SPM, Spatial Pyramid Matching),具有开创性地将图片进行分块和特征提取,以验证图片间的相似度。Dalal和Triggs等人提出了进行人物识别的HoG特征(Histogram of Gradient)。2009年,Felzenswalb, McAllester和Ramanan等人提出了可变形部件模型(DPM, Deformable Parts Model)。
  • 4、随着互联网的不断发展,学习计算机视觉可用的图片资源越来越多
    • (1)Everingham等人在2006年至2012年间搭建了一个大型图片数据库,供机器识别和训练,称为PASCAL Visual Object Challenge,该数据库中有20种类别的图片,每种图片数量在一千至一万张不等。
    • (2)后来Li Fei-fei等人搭建了图像数据库ImageNet,总计两万两千种类别,和一千四百余万张图片。通过训练ImageNet所给出的数据集,识别错误率正逐年下降,并在2015年就已经低于了正常人类的错误率。图中值得注意的是,在2012年,识别错误率突然下降了近10个百分点,这得益于卷积神经网络(CNN,Convolutional Neural Network)的运用,或者更为大家所知晓的概念就是——深度学习(Deep Learning)。CNN在识别错误率上远低于同年的其他模型,这标志着以深度学习为核心的CV时代正式开启。

2.2.2 典型的计算机视觉任务

计算机视觉基于大量不同任务,并组合在一起实现高度复杂的应用。计算机视觉中最常见的任务是图像和视频识别,涉及确定图像包含的不同对象。

  • 四大主要任务

    • 图像分类
    • 目标检测
    • 目标分割
    • 目标追踪
  • 1、图像分类

计算机视觉中最知名的任务可能就是图像分类了,它对给定图像进行分类。我们看一个简单的二分类例子:我们想根据图像是否包含旅游景点对其进行分类。假设我们为此任务构建了一个分类器,并提供了一张图像(见下图)。

我们要得出这张建筑图片是否是埃菲尔铁塔。
 

  • 2、目标检测
    •  目标检测通常是从图像中输出单个目标的Bounding Box(边框)以及标签

我们想象一个同时包含定位和分类的动作,对一张图像中的所有感兴趣对象重复执行该动作,这就是目标检测。该场景中,图像中的对象数量是未知的。因此,目标检测的目标是找出图像中的对象,并进行分类。

在这个密集图像中,我们可以看到计算机视觉系统识别出大量不同对象:汽车、人、自行车,甚至包含文本的标志牌。这个问题对人类来说都算困难的。一些对象只显示出一部分,因为它们有一部分在图像外,或者彼此重叠。此外,相似对象的大小差别极大。目标检测的一个直接应用是计数,它在现实生活中应用广泛,从计算收获水果的种类到计算公众集会或足球赛等活动的人数,不一而足。

  • 3、语义分割(Semantic Segmentation)

我们可以把实例分割看作是目标检测的下一步。它不仅涉及从图像中找出对象,还需要为检测到的每个对象创建一个尽可能准确的掩码。

你可以从上图中看到,实例分割算法为四位披头士成员和一些汽车创建掩码(不过该结果并不完整,尤其是列侬)。

还有实例分割与语义分割有所不同,物体分割不仅需要对图像中不同的对象进行分类,而且还需要确定它们之间的界限、差异和关系。

  • 4、目标追踪
     

目标追踪旨在追踪随着时间不断移动的对象,它使用连续视频帧作为输入。该功能对于机器人来说是必要的,以守门员机器人举例,它们需要执行从追球到挡球等各种任务。目标追踪对于自动驾驶汽车而言同样重要,它可以实现高级空间推理和路径规划。类似地,目标追踪在多人追踪系统中也很有用,包括用于理解用户行为的系统(如零售店的计算机视觉系统),以及在游戏中监控足球或篮球运动员的系统。

  • 其他任务技术:
    • 图像标注 (Image Captioning)
      • 图像标注是一项引人注目的研究领域,它的研究目的是给出一张图片,你给我用一段文字描述它。(根据图片生成描述文字)
    • 图像生成(Image Generator):文字转图像
    • 超分辨率、风格迁移、着色
      • 超分辨率指的是从低分辨率对应物估计高分辨率图像的过程,以及不同放大倍数下图像特征的预测,这是人脑几乎毫不费力地完成的。最初的超分辨率是通过简单的技术,如bicubic-interpolation和最近邻。在商业应用方面,克服低分辨率限制和实现“CSI Miami”风格图像增强的愿望推动了该领域的研究。
      • 风格转换:作为一个主题,一旦可视化是相当直观的,比如,拍摄一幅图像,并用不同的图像的风格特征呈现。
      • 着色:是将单色图像更改为新的全色版本的过程。最初,这是由那些精心挑选的颜色由负责每个图像中的特定像素的人手动完成的。2016年,这一过程自动化成为可能,同时保持了以人类为中心的色彩过程的现实主义的外观。
    • 行为识别
      • 行为识别的任务是指在给定的视频帧内动作的分类,以及最近才出现的,用算法预测在动作发生之前几帧的可能的相互作用的结果。
    • 人体姿势估计
      • 人体姿势估计试图找出人体部位的方向和构型。 2D人体姿势估计或关键点检测一般是指定人体的身体部位,例如寻找膝盖,眼睛,脚等的二维位置。

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

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

相关文章

数据结构之图:有向图的介绍与实现,Python代码实现——25

有向图的介绍 引入 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前学习的无向图,最大的区别就在于连接是具有方向的…

图像分类_01图像分类简介:挑战+近邻分类器+CIFAR-10数据集概述

2.1.1 图像分类 任务目的:对输入的图像赋予一个标签,这个标签在指定类别集合中。 下面这个例子中,图像分类模型拍摄一张图像并将概率分配给4个标签{cat,dog,hat,mug}。如图所示,请记住&#xf…

数据结构之图:有向图的拓扑排序,Python代码实现——26

有向图的拓扑排序 拓扑排序介绍 什么是拓扑排序? 一个有向图的拓扑排序(Topological sort 或 Topological ordering)是根据其有向边从顶点U到顶点V对其所有顶点的一个线性排序举个例子:让一个拓扑排序的图中的所有顶点代表某项…

图像分类_02神经网络(NN)简介:定义+ 感知机+历史

2.2.1 什么是神经网络 人工神经网络( Artificial Neural Network, 简写为ANN)也简称为神经网络(NN)。是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的 计算模型…

图像分类_03分类器及损失:线性分类+ SVM损失+Softmax 分类+交叉熵损失

2.3.1 线性分类 2.3.1.1 线性分类解释 上图图中的权重计算结果结果并不好,权重会给我们的猫图像分配⼀个⾮常低的猫分数。得出的结果偏向于狗。 如果可视化分类,我们为了⽅便,将⼀个图⽚理解成⼀个⼆维的点,在下⾯坐标中显示如下…

数据结构之图:加权无向图与寻找最小生成树,Python——27

加权无向图与prim算法和Kruskal算法寻找最小生成树 加权无向图的介绍 引入 加权无向图是一种为每条边关联一 个权重值或 是成本的图模型。这种图能够自然地表示许多应用。在一副航空图中,边表示航线,权值则可以表示距离或是费用。在一副电路图中,边表示导线,权值则可能表示导…

图像分类_04神经网络最优化过程:反向传播+代码实现

logistic模型原理与推导过程分析(1)https://blog.csdn.net/qq_39237205/article/details/121031296https://blog.csdn.net/qq_39237205/article/details/121031296 logistic模型原理与推导过程分析(2)https://blog.csdn.net/qq_3…

数据结构之图:加权有向图与dijkstra算法找到最短路径,Python——28

加权有向图与dijkstra算法找到最短路径 加权有向图的构造 最短路径问题与最短路径树 最短路径问题(The shortest path problem)定义 最短路径可以是时间花费最短,也可以是距离最短,或是花费最少在图论中,最短路径问…

李沐动手学深度学习pytorch :问题:找不到d2l包,No module named ‘d2l’

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

解决loaded more than 1 DLL from .libs和No metadata found in lib\site-packages两个错误

### 卸载numpy pip uninstall numpy 解决No metadata found in lib\site-packages 去这个文件夹下找到numpy的两个文件夹 删除 然后重新输入pip install numpy

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘

启动数据库时报错,代码ERROR 2002 (HY000) 报错截图: 原因:网络环境发生改变,mysql配置文件中绑定的IP与现在系统的IP不一致 解决:修改配置文件中绑定的IP地址为本系统的IP地址 使用命令: sudo vi /etc/…

图像目标分割_1 概述

6.1.1 什么是目标分割 定义:在计算机视觉领域,图像分割(Object Segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)的过程。 图像分割的目的:简化或改变图像的表示形式&#xff0…

字符数组和strcpy

已知strcpy函数的原型是char *strcpy(char *strDest, const char *strSrc);,其中strDest是目的字符串,strSrc是源字符串。 (1)Write the function strcpy, dont call C/C string library.(不调用C/C的字符串库函数&…

Django开发中问题和报错集合

记录django项目开发过程中的遇到的问题,导致原因和已经奏效的解决方法 常见报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbc in position 852: invalid start byte 这个问题在一些电脑上做django开发时经常出现 要么是py文件运行是就报这个类似…

图像目标分割_2 FCN(Fully Convolutional Networks for Semantic Segmentation)

6.2.1 FCN 背景介绍 图像语义分割:给定一张图片,对图片上每一个像素点进行分类!但是与图像分类目的不同,语义分割模型要具有像素级的密集预测能力才可以。 6.2.2 FCN介绍 6.2.2.1 全卷积网络 全卷积网络,模型由卷积…

求4个数字组成的不重复三位数,Python简洁解法

求4个数字组成的不重复三位数,Python解法 题目要求: 求所有由5,6,7,8组成的数字不重复的三位数 不重复的三位数,即不能出现555,566这种 通过分析,可以使用画树的方法来确定要求的三位数的值与个数 按照上图所示可以确定由5&am…

图像目标分割_3 SegNet + U-Net

6.3.1 SegNet背景 SegNet的主要动机是场景理解的应用。 难点:因此它在设计的时候考虑了要在预测期间保证内存和计算时间上的效率。分割的任务其实应用非常地广,需要理解各个像素之间的关系,比如要区分出人行道和车行道,建筑物和…

MIPI屏数据发送命令解析

MIPI数组发送那里有一个数组,这个数组包含寄存器和寄存器的值: 相当于: 0XC480寄存器下参数0X9C; 0XFF00寄存器下参数0XFF,0XFF,0XFF; 0XC0B5 尝试一下寄存器 0x08 0x18 0x48 0x58 试一下能不能旋转

面向对象之类的内建函数

类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段、方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用。无论人或事物往往都有不按套路出牌的情况&…

图像目标分割_4 DeepLab-V1

6.4.1 DeepLab 背景 相比于传统的视觉算法(SIFT或HOG),Deep-CNN以其end-to-end方式获得了很好的效果。这样的成功部分可以归功于Deep-CNN对图像转换的平移不变性(invariance),这根本是源于重复的池化和下采样组合层。平移不变性增强了对数据分层抽象的能…