计算机视觉是一个跨领域的交叉学科,包括计算机科学(图形、算法、理论、系统、体系结构),数学(信息检索、机器学习),工程学(机器人、语音、自然语言处理、图像处理),物理学(光学 ),生物学(神经科学)和心理学(认知科学)等等。那么什么是计算机视觉呢?这里给出了几个比较严谨的定义:
- “对图像中的客观对象构建明确而有意义的描述”(Ballard&Brown,1982)
- “从一个或多个数字图像中计算三维世界的特性”(Trucco&Verri,1998)
- “基于感知图像做出对客观对象和场景有用的决策”(Sockman&Shapiro,2001)
研究范畴
视觉识别是计算机视觉的关键组成部分,如图像分类、定位和检测。神经网络和深度学习的最新进展极大地推动了这些最先进的视觉识别系统的发展。下面介绍 5 种主要的计算机视觉技术:
- 图像分类
给定一组各自被标记为单一类别的图像,我们对一组新的测试图像的类别进行预测,并测量预测的准确性结果,这就是图像分类问题。图像分类问题需要面临以下几个挑战:
视点变化,尺度变化,类内变化,图像变形,图像遮挡,照明条件和背景杂斑
- 对象检测
识别图像中的对象这一任务,通常会涉及到为各个对象输出边界框和标签。这不同于分类/定位任务——对很多对象进行分类和定位,而不仅仅是对个主体对象进行分类和定位。在对象检测中,你只有 2 个对象分类类别,即对象边界框和非对象边界框。例如,在汽车检测中,你必须使用边界框检测所给定图像中的所有汽车。
- 目标跟踪
目标跟踪,是指在特定场景跟踪某一个或多个特定感兴趣对象的过程。传统的应用就是视频和真实世界的交互,在检测到初始对象之后进行观察。现在,目标跟踪在无人驾驶领域也很重要,例如 Uber 和特斯拉等公司的无人驾驶。
- 语义分割
计算机视觉的核心是分割,它将整个图像分成一个个像素组,然后对其进行标记和分类。特别地,语义分割试图在语义上理解图像中每个像素的角色(比如,识别它是汽车、摩托车还是其他的类别)。
- 实例分割
除了语义分割之外,实例分割将不同类型的实例进行分类,比如用 5 种不同颜色来标记 5 辆汽车。分类任务通常来说就是识别出包含单个对象的图像是什么,但在分割实例时,我们需要执行更复杂的任务。我们会看到多个重叠物体和不同背景的复杂景象,我们不仅需要将这些不同的对象进行分类,而且还要确定对象的边界、差异和彼此之间的关系!
典型应用
计算机视觉领域已经衍生出了一大批快速成长的、有实际作用的应用,例如:
- 人脸识别: Snapchat 和 Facebook 使用人脸检测算法来识别人脸。
- 图像检索:Google Images 使用基于内容的查询来搜索相关图片,算法分析查询图像中的内容并根据最佳匹配内容返回结果。
- 游戏和控制:使用立体视觉较为成功的游戏应用产品是:微软 Kinect。
- 监测:用于监测可疑行为的监视摄像头遍布于各大公共场所中。
- 生物识别技术:指纹、虹膜和人脸匹配仍然是生物识别领域的一些常用方法。
- 智能汽车:计算机视觉仍然是检测交通标志、灯光和其他视觉特征的主要信息来源。
前沿研究
- 超分辨率重建 (Image Super-Resolution)
- 图像着色 (Image Colorization)
- “看图说话” (Image Caption)
- 人像复原 (Sketch Inversion)
- 图像自动生成
参考文献
- 详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割…, by AI科技大本营
- 「无中生有」计算机视觉探奇, by 魏秀参