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


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


计算机视觉是目前深度学习领域最热门的研究领域之一 。 它位于许多学术科目的交汇点 , 如计算机科学(图形学 , 算法 , 理论 , 系统 , 建筑) , 数学(信息检索 , 机器学习) , 工程学(机器人学 , 语音 , 自然语言处理 , 图像处理) , 物理学(光学) , 生物学(神经科学)和心理学(认知科学) 。 由于计算机视觉代表了对视觉环境及其背景的相对理解 , 许多科学家认为 , 该领域由于其跨域掌握为人工智能铺平了道路 。
那么什么是计算机视觉?以下是一些正式的教科书定义:
“从图像中构建明确 , 有意义的物理对象描述”(Ballard&Brown , 1982)
“从一个或多个数字图像计算3D世界的属性”(Trucco&Verri , 1998)
“根据感知的图像做出有关真实物体和场景的有用决策”(Sockman&Shapiro , 2001)
为何学习计算机视觉?最明显的答案是 , 从这一研究领域衍生出的快速增长的有用的应用集合 。 以下是其中的一小部分:
人脸识别:Snapchat和Facebook使用 面部检测 算法应用卷积核并在图片中识别出你 。
图像检索:Google图像使用基于内容的查询来搜索相关图像 。 算法分析查询图像中的内容 , 并根据最匹配的内容返回结果 。
游戏和控制:Microsoft Kinect是使用立体视觉的游戏中的一个很好的商业产品 。
监视:监控摄像机在公共场所无处不在 , 它用于检测可疑行为 。
生物识别:指纹 , 虹膜和面部匹配仍然是生物识别中的一些常用方法 。
智能汽车:视觉仍然是检测交通标志和信号灯以及其他视觉特征的主要信息来源 。
我最近完成了斯坦福大学关于使用卷积神经网络进行视觉识别的精彩CS231n课程 。 视觉识别任务 , 如图像分类 , 定位和检测 , 是计算机视觉的关键组成部分 。 神经网络和深度学习方法的最新发展极大地提高了这些最先进的视觉识别系统的性能 。 该课程是一个非凡的资源 , 它教会了我在顶端计算机视觉研究中使用深度学习架构的细节 。 在本文中 , 我想分享我学到的5种主要计算机视觉技术 , 以及使用每种技术主要的深度学习模型和应用 。
1--图像分类
图像分类的问题是这样的:给定一组单一类别标注的图像 , 要求我们对一组新的测试集预测这些类别并且测试预测的准确率 。 关于这个任务有很多挑战 , 包括视点变化 , 尺度变换 , 类内变化 , 图像变形 , 图像遮挡 , 条件 , 以及杂乱的背景 。
我们如何来编写一个能将图像分成不同类别的算法?计算机视觉研究人员已经提出一种数据驱动的方法来解决这个问题 。 他们不是试图直接在代码中指定每个感兴趣的图像类别 , 而是为计算机提供每张图像类的许多样本 , 然后开发学习算法 , 查看这些样本并了解每个类的视觉外观 。 换句话说 , 他们首先收集一个带标注图像的训练集 , 然后将它传给计算机去处理这个数据 。
鉴于这一事实 , 整个图像分类的过程可形式化如下:
我们的输入是一个训练集 , 包括N 个图像 , 用K 个不同的类别给每个图像进行标注 。
然后 , 我们用这个训练集来训练分类器以了解每个类别像什么 。
最后 , 我们通过让这个分类器预测一组它之前没见过的新的图像集来评估分类器的效果 。 然后我们将这些图像的真实标签与分类器预测的标签进行比较 。
卷积神经网络(CNNs)是用于图像分类最流行的架构 。 CNNs一个典型的用例是你传给这个网络图像 , 然后网络对这些数据分类 。 CNNs往往从输入”扫描器“ 开始 , 它不打算一次解析所有的训练数据 。 比如 , 输入一张100×100像素的图像 , 你不需要具有10,000节点的图层 。 相反 , 你会创建一个10×10大小的扫描输入层 , 你可以为图像的前10×10像素提供图像 。 通过该输入后 , 通过将扫描器向右移动一个像素 , 可以输入下一个10×10像素 。 这个技术称为滑动窗口 。

推荐阅读