计算机视觉发展历程及其所面临的任务

这篇文章主要讲述(1)计算机视觉的技术发展历程、(2)人工智能的几代革命、(3)计算机视觉所面临的几大任务,(4)最后介绍学习或者从事计算机视觉领域所面临的电脑硬件配置、GPU配置问题。

1.计算机视觉有怎样的发展历程?

  • 20世纪50年代,主题针对于二维图像的分析和识别;
  • 20世纪60年代,开创了三维视觉理解为目的的研究;
  • 20世纪70年代,出现课程和明确理论体系;
  • 20世纪80年代 ,独立学科形成,理论从实验室走向应用;
  • 20世纪90年代,特征对象识别开始成为重点;
  • 21世纪初,图像特征工程,出现真正拥有标注的高质量数据集;
  • 2010年-至今 深度学习在视觉中的流行,在应用上百花齐放;

想要详细了解计算机视觉的历史发展历程,请访问原文:

https://zhuanlan.zhihu.com/p/142927311

说到计算机视觉的发展历程,不得不说华人科学家李飞飞在这个领域做出的贡献。在2009年,李飞飞教授等在CVPR2009上发表了一篇名为《ImageNet: A Large-Scale Hierarchical Image Database》的论文,发布了ImageNet数据集,改变了人们对数据集在计算机视觉中的认识,人们真正开始意识到数据集的重要程度,就像算法一样重要"。

在2012年,深度学习模型应用在ImageNet图像竞赛中以碾压性夺冠,也就是通过这个竞赛以及发表的论文,深度学习这个术语被明确提出来,人们见识到深度学习模型的性能很好,因此深度学习模型(或者说是卷积神经网络,简称CNN)从那之后到现在都是计算机视觉领域经典模型。

2.人工智能历经哪几代革命?

人工智能按大体方向来看,已经历经三代人工智能系统,分别如下:

计算机视觉发展历程及其所面临的任务

(1)第一代人工智能

知识 + 算法 + 算力。第一代人工智能是依赖知识体系来构建人工智能系统的,或者通俗一点来理解,就是依赖专业人士、有行业研究经验来生产推理和构建的专家系统。

(2)第二代人工智能

数据 + 算法 + 算力。第二代人工智能是我们今天广泛应用的,从第一代依赖专家到第二代依赖数据中的规律来识别事物的各种行为。

(3)第三代人工智能

知识 + 数据 + 算法 + 算力。第三代人工智能是综合了第一代、第二代人工智能的特点,兼顾了第一代的专家知识推理,以及结合了第二代的数据的信息和规律。强化学习等这些都是第三代人工智能的研究对象。

现在来看,我们很多学生或者从业人员主要还是接触第二代人工智能比较多,第三代人工智能的技术还在不断的研究和突破中,相对来说还不够第二代人工智能成熟和广泛使用。

3.计算机视觉面临着哪些任务?

在说这个话题之前,我们不妨来思考一下,我们通过眼睛看到某个事物到做出相对应的目标决策是怎样的呢?

计算机视觉发展历程及其所面临的任务

假如,小明走在路上,突然看到一个水洼坑,小明会避开水洼坑从旁边走过去,为什么呢?

这问题看似是个小儿科问题,其实在今天的计算机视觉里面,这个例子将是一个充满大学问的问题。

首先,分析小明为什么会避开?

在小时候或者成长过程中,小明他妈妈可能带他出去逛街的时候,恰逢最近下雨,路上的水洼坑很多,然后小明的妈妈告诉小明说:明明,这水洼坑很脏,以后碰到就要避开,不要踩上去,以免弄脏你的鞋子。

大学问来了,拆解问题:

  1. 看到水洼坑——>[获取信息]
  2. 水洼坑——>[实际画面场景]
  3. 妈妈告诉小明这个水洼坑不能踩——>[这是一个答案]

小明会避开水洼坑,是因为这个场景画面他见过,并且妈妈告诉他,这是不能踩的。究其原因是小明从妈妈那里学习到这个不能踩的知识,因此小明做出避开水洼坑的这个决策。

知道问题(特征),也知道答案(标签),这在机器学习里面属于有监督学习算法,小明的这种能力就是一种在妈妈监督教育下获取到的答案和经验,这是典型的有监督学习。

最后引论到计算机视觉的任务:

从上面趣味案例可以知道,计算机视觉也要类似人类先获取信息、分析和学习场景信息,最后做出决策。

  • 计算机视觉如何获取信息?
计算机视觉发展历程及其所面临的任务

传感器,更加直观理解的是摄像头,通过摄像头拍摄画面场景图像、视频。

  • 如何让机器知道某个画面场景是什么事物,能不能踩?

这个问题相当于数据标注,针对这个场景,给它打上对应的标签,比如上面的水洼坑画面,就给它标注"水洼坑",如果是平地画面,那么就给它标注“平地”,如果是“弯道”画面,那么就给它标注“弯道”。能不能踩,这个就根据我们标注的画面与其对应的标签添加到算法模型中,让模型学习和训练,以此来识别到底能不能踩?


计算机视觉任务?

  1. 图像/视频处理

(1)因为计算机智能识别0、1这些数字,所以要将非结构化的图像或者视频进行结构化,通俗来讲就是将图像进行数字向量化,转换成0~255之间的像素值矩阵。

(2)常见的图像/视频处理模块有:PIL、OpenCV等

2.图像标注

(1)这是人工智能必不可少的环节,所谓人工智能就是初步先手工标注和设计标签,然后才能实现智能。

(2)图像标注要根据不同细分领域进行针对性的数据标签,比如对于图像分类任务,只需要标注对应图像的类别标签即可。但是对于目标检测任务来讲,不仅要标签类别标签,还需要把需要识别的对象用矩形框给框出坐标来。

3.算法模型之类

可以分为传统算法和深度学习算法。现在计算机视觉领域主要是以卷积神经网络(CNN)为主要的深度学习模型。这些技术在后续章节中再详细讲述,现在不做展开细讲。

4.计算机视觉需要需要哪些硬件环境?

从事这个领域的工程师都知道,这些领域是非常消耗算力的,电脑硬件性能不好或者服务器不给力,你根本跑不动模型。可能在校学生做的项目还是轻量级,可能对这个问题没有很深的体会,如果你是从事或者准备往这个方向发展的同学或同行,你必须要有一个还说的过去的显卡,比如GTX1080Ti、GTX1650,或者更高配置的显卡或服务器。不然你很能学习这个领域的,深一点的模型跑不动,或者能跑的动的模型,又要等个半天一天这样,这样学习和成长效率太低了。看个人情况,能有高性能显卡当然是最好的,现在这些模型非常依赖算力。深度学习的GPU环境配置,到后续再手把手教大家如何安装和使用。

部分知识参考于网络,如有侵权请联系删除。

今天是计算机视觉的第2篇文章,后续持续讲述整个计算机视觉的项目开发流程及其对应的技术和理论认知,如果你对这个感兴趣,欢迎关注 ——> 【数据与算法时代】,觉得不错,可以点个赞哦!


分享到:


相關文章: