目录
[1. 什么是计算机视觉](#1. 什么是计算机视觉)
[2. 计算机视觉的主要任务及应用](#2. 计算机视觉的主要任务及应用)
[2.1 图像分类](#2.1 图像分类)
[2.1.1 图像分类的主要流程](#2.1.1 图像分类的主要流程)
[2.2 目标检测](#2.2 目标检测)
[2.2.1 目标检测的主要流程](#2.2.1 目标检测的主要流程)
[2.3 图像分割](#2.3 图像分割)
[2.3.1 图像分割的主要流程](#2.3.1 图像分割的主要流程)
[2.4 人脸识别](#2.4 人脸识别)
[2.4.1 人脸识别的主要流程](#2.4.1 人脸识别的主要流程)
[2.5 目标跟踪](#2.5 目标跟踪)
[2.5.1 目标跟踪的主要流程](#2.5.1 目标跟踪的主要流程)
[2.6 生成对抗网络](#2.6 生成对抗网络)
[2.6.1 生成对抗网络的基本思想](#2.6.1 生成对抗网络的基本思想)
1. 什么是计算机视觉
研究者为了让机器像人一样"看懂"图像,研究了人类视觉系统,该系统包含眼球(接收光信号)、视网膜(光信号转换为电信号,传输到大脑)、大脑皮层(提取电信号中的有效特征,引导人做出反应)。为了让机器模拟人类视觉系统,研究者用摄像头模拟"眼球"获得图像信息;用数字图像处理模拟"视网膜"将模拟图像变成数字图像,让计算机能识别;用计算机视觉模拟"大脑皮层",设计算法提取图像特征,做识别检测等任务。机器模拟人类视觉系统便是机器视觉,也称计算机视觉(Computer Vision, CV),是在解决机器如何'看'的问题。
2. 计算机视觉的主要任务及应用
计算机视觉应用非常广泛,有图像分类(Image Classification)、目标检测(Object Detection)、图像分割(Image Segmentation)、人脸检测与识别 (Face Detection and Recognition)、OCR(Optical Character Recognition,光学字符识别)等。
2.1 图像分类
图像分类是计算机视觉领域的基础任务,也是应用比较广泛的任务。图像分类用来解决"是什么"的问题,如给定一张图片,用标签描述图片的主要内容。图像分类的典型应用是车牌号码识别、交通灯识别、图像识别等。
图1:车牌号识别
2.1.1 图像分类的主要流程
对于我们人类来说,可以毫不费力分辨猫、狗,是因为我们看见这些物体时,脑中会抽离出它们的基本特征(圆鼓鼓的头、尖尖的耳朵等),基本特征与物体的名称(标签)对应,再看到类似的物体,便可以识别它们。
对于计算机也是一样的,在使用计算机完成图像分类,大致可分为数据集采集、图片预处理、特征提取、分类器训练、模型评估。
图片预处理的目的是为消除图片中无用的信息,恢复有用的信息,更利于后续的特征提取的环节。简单的图像特征提取是提取物体的颜色、物体的轮廓等。分类器训练是将图像的特征与标签进行匹配。当分类器训练好之后,新的图片输入到分类器,查看分类的效果,便是模型评估。
2.2 目标检测
目标检测是最常见的计算机应用之一。目标检测用来解决"在哪里"的问题,如输入一张图片,输出待检测目标的类别和所在位置的坐标(矩形框的坐标值表示)。目标检测应用在姿态估计、车辆检测、人脸检测、口罩佩戴检查等。
图2:车辆检测
2.2.1 目标检测的主要流程
人类在看东西的时候,可以知道物体是什么和物体的位置。例如我们看到桌子上有一副眼镜,可以知道眼镜在桌子的什么位置,也可以知道那是一副眼镜。计算机视觉的初衷是让机器像人一样可以"看到"世界,机器是没有位置的感觉,而是通过矩形窗口在图片上滑动,获得物体的初始位置,再分析该窗口内的特征,是不是此物体。
早期,目标检测算法还没有使用深度学习,一般分为三个阶段**:区域选取、特征提取、特征分类**。区域选取这一步是为了对物体进行定位,采用了滑动窗口的策略,物体在图像中的位置和大小是变化的,因而需要不同的矩形窗口的比例,再通过矩形窗口在图像中从左到右、从上到下的滑动,可以获得图像上任意位置不同大小的物体。特征提取和特征分类的阶段是找到物体的类别,跟图像分类一致。
2.3 图像分割
图像分割是计算机视觉领域的重要研究方向之一,它根据图片的灰度、颜色、结构和纹理等特征将图像分成若干具有相似性质的区域。与目标检测相比较,图像分割更适用于精细的图像识别任务,更加精确的目标定位、以及图像的语义理解任务。图像分割的典型应用是卫星图像分析、自动驾驶,医学图像诊断等。
图3:人像分割
2.3.1 图像分割的主要流程
当我们人类在看图像的时候,往往对图像中感兴趣的区域关注大,这个区域通常称为感兴趣区域或是前景,如图3中的人像分割将图片中的前景与其背景分开。算法根据前景和背景的颜色、纹理的不同来分割图像,首先通过分析找到前景和背景的颜色阈值;其次将图像中的每个像素值与阈值比较,分为两类;最后与原图映射获得前景。
常规的图像分割算法有基于阈值的分割、基于边缘检测的分割、区域生长算法、GrabCut 和分水岭算法等。在深度学习中,图像分割是一种端到端的像素级分类任务,就是给定一张图片,对图片上的每一个像素分类,可以按照分类模型的思路来做,不同的是,分割模型的输出是一张分割图。
2.4 人脸识别
人脸识别是一类十分热门的计算机技术研究领域,属于生物特征识别技术,可通过人脸图像所携带的生物特征信息来对人进行个体身份识别。从广义上来说,人脸识别包含构建人脸识别系统中所用到的一系列相关技术,包括人脸图像采集、图像处理、人脸定位、身份确认、身份查询等;而狭义的人脸识别则特指通过人脸图像进行身份确认的技术或系统。人脸识别通常也叫人像识别、面部识别等。
图4:人脸识别
2.4.1 人脸识别的主要流程
对于我们人类来说,要想认出身边的一个人,首先需要睁眼,扭过头,看到他的脸,在看到他的脸之后,我们可能还要将他戴的帽子、眼镜排除,然后就可以根据他的长相在脑子里飞速搜索有没有认识的和这个长相相似的人,最后确定他到底是谁。
对于计算机也是一样的,在使用计算机完成人脸识别的时候,工作流程可分为如下几个步骤:
- 第一步就是人脸图像采集,也就是 "睁开眼,扭过头"。人脸识别系统将通过各种各样的摄像头采集可见光图像、热成像图像、近红外图像等多种图像,并且还可以有静态、动态等不同情况作为区分。
- 第二步就是人脸检测,也就是"看到他的脸"。这里可以使用各种人脸检测模型对画面中的人脸进行检测,生成对应的人脸框,之后就可以将人脸框以外的图像排除,专注于对人脸框内图像的探索。
- 第三步就是数据处理。摄像头所拍摄的人脸可能有多种角度、表情、亮度等,需要通过例如光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等方式对人脸图像进行处理,使其更能表现出系统所要的人脸特征。
- 第四步就是对人脸图片进行特征提取和分类,例如使用深度神经网络挖掘图片的深层特征,并在特定维度上对深层特征进行分类,即可判断这个人是谁。
2.5 目标跟踪
目标跟踪是利用图像序列的上下文信息,对目标的外观和运动信息进行建模,从而对目标运动状态进行预测并标定目标位置。目标跟踪是计算机视觉中一个课题,具有重要的理论研究意义和应用价值,在智能视频监控系统、智能人机交互、智能交通和视觉导航系统等方面具有广泛应用。
2.5.1 目标跟踪的主要流程
目标跟踪的主要流程可以概括为:通过摄像头捕获图像序列,然后输入计算机计算出目标的位置,再根据目标相关的特征,将每一帧中的同一个目标关联起来从而得到目标运动的完整轨迹。
同一个目标关联起来的常用方法是将目标跟踪问题看作一个二分类问题,把图像分为前景图像(正样本)和背景图像(负样本),利用最适合实际场景的图像特征和最佳的分类方法,将目标从背景区域中区分出来,期间不断地在线更新分类器来估计目标的位置。
2.6 生成对抗网络
生成对抗网络(Generative Adversarial Network, GAN)是由Ian Goodefellow等人提出的无监督学习方法**,能够建模高维复杂的数据分布,巧妙地利用"对抗"的思想学习生成式模型**。GAN 的很多衍生模型已经在一定程度上解决了特定场景中的图像生成问题。此外,诸如文本到图像的生成、图像到图像的生成等应用研究。
图5:图像到图像的生成(风格变化)
2.6.1 生成对抗网络的基本思想
GAN 由两部分构成,
- 一个是生成模型 G(Generator),主要作用是生成假的样本
- 另一部分为判别模型 D(Discriminator),主要作用是判断是否为可接受的生成数据。
在训练过程中,生成模型 G 的目标是尽量生成接近真实的样本去欺骗判别模型 D,而判别模型 D 的目标则是尽量把 G 的生成样本和真实样本区分开来,这样 G 和 D 构成一个动态的"博弈"。
GAN 评估所生成样本的质量,最开始生成的样本非常容易分辨,后来生成器渐渐的能够生成更为逼真的样本,则需要重新训练判别器,因此称为对抗。最后博弈的结果是,G 生成的样本难以被 D 区分出来是生成的还是真实的,此时得到的生成模型,可以用来生成样本数据。