这5种计算机视觉技术,刷新你的世界观


这5种计算机视觉技术,刷新你的世界观

文章插图
计算机视觉是目前深度学习领域最热门的研究领域之一 。它位于许多学术科目的交汇点,如计算机科学(图形学,算法,理论,系统,建筑),数学(信息检索,机器学习),工程学(机器人学,语音,自然语言处理,图像处理),物理学(光学) ,生物学(神经科学)和心理学(认知科学) 。由于计算机视觉代表了对视觉环境及其背景的相对理解,许多科学家认为,该领域由于其跨域掌握为人工智能铺平了道路 。
那么什么是计算机视觉?以下是一些正式的教科书定义:
“从图像中构建明确,有意义的物理对象描述”(Ballard&Brown,1982)
“从一个或多个数字图像计算3D世界的属性”(Trucco&Verri,1998)
“根据感知的图像做出有关真实物体和场景的有用决策”(Sockman&Shapiro,2001)
为何学习计算机视觉?最明显的答案是,从这一研究领域衍生出的快速增长的有用的应用集合 。以下是其中的一小部分:
人脸识别:Snapchat和Facebook使用 面部检测 算法应用卷积核并在图片中识别出你 。
图像检索:Google图像使用基于内容的查询来搜索相关图像 。算法分析查询图像中的内容,并根据最匹配的内容返回结果 。
游戏和控制:Microsoft Kinect是使用立体视觉的游戏中的一个很好的商业产品 。
监视:监控摄像机在公共场所无处不在,它用于检测可疑行为 。
生物识别:指纹,虹膜和面部匹配仍然是生物识别中的一些常用方法 。
智能汽车:视觉仍然是检测交通标志和信号灯以及其他视觉特征的主要信息来源 。
我最近完成了斯坦福大学关于使用卷积神经网络进行视觉识别的精彩CS231n课程 。视觉识别任务,如图像分类,定位和检测,是计算机视觉的关键组成部分 。神经网络和深度学习方法的最新发展极大地提高了这些最先进的视觉识别系统的性能 。该课程是一个非凡的资源,它教会了我在顶端计算机视觉研究中使用深度学习架构的细节 。在本文中,我想分享我学到的5种主要计算机视觉技术,以及使用每种技术主要的深度学习模型和应用 。
1--图像分类
这5种计算机视觉技术,刷新你的世界观

文章插图
图像分类的问题是这样的:给定一组单一类别标注的图像,要求我们对一组新的测试集预测这些类别并且测试预测的准确率 。关于这个任务有很多挑战,包括视点变化,尺度变换,类内变化,图像变形,图像遮挡,条件,以及杂乱的背景 。
我们如何来编写一个能将图像分成不同类别的算法?计算机视觉研究人员已经提出一种数据驱动的方法来解决这个问题 。他们不是试图直接在代码中指定每个感兴趣的图像类别,而是为计算机提供每张图像类的许多样本,然后开发学习算法,查看这些样本并了解每个类的视觉外观 。换句话说,他们首先收集一个带标注图像的训练集,然后将它传给计算机去处理这个数据 。
鉴于这一事实,整个图像分类的过程可形式化如下:
我们的输入是一个训练集,包括N 个图像,用K 个不同的类别给每个图像进行标注 。
然后,我们用这个训练集来训练分类器以了解每个类别像什么 。
最后,我们通过让这个分类器预测一组它之前没见过的新的图像集来评估分类器的效果 。然后我们将这些图像的真实标签与分类器预测的标签进行比较 。
卷积神经网络(CNNs)是用于图像分类最流行的架构 。CNNs一个典型的用例是你传给这个网络图像,然后网络对这些数据分类 。CNNs往往从输入”扫描器“ 开始,它不打算一次解析所有的训练数据 。比如,输入一张100×100像素的图像,你不需要具有10,000节点的图层 。相反,你会创建一个10×10大小的扫描输入层,你可以为图像的前10×10像素提供图像 。通过该输入后,通过将扫描器向右移动一个像素,可以输入下一个10×10像素 。这个技术称为滑动窗口 。
这5种计算机视觉技术,刷新你的世界观

文章插图
然后,通过卷积层而不是正常层馈送输入数据 。每个节点仅仅关注与自身相邻的部分 。这些卷积层随着网络的变深也趋于收缩,主要是通过输入的易分解因素 。除了卷积层,它们通常还具有特征池化层 。池化是一个过滤细节的方法:常见的池化技术是最大池化,我们采用2×2像素,并传递具有最大量特定属性的像素 。
目前大多数图像分类技术都是在ImageNet上面训练的,它是一个约120万个高分辨率的训练图像的数据集 。测试图像不显示初始注释(没有分割或者标签),并且算法必须生成指定图像中存在的对象的标签 。Oxford、INRIA、XRCE 等机构的领先计算机视觉小组用已有的最好计算机视觉方法应用于这个数据集 。通常,计算机视觉系统是复杂的多级系统,往往需要在早期阶段通过手动调试优化参数 。