> 本文介绍了计算机视觉的技术和应用,全文约` 3500 `字,阅读时间 `10 `分钟。
目录
- 什么是计算机视觉
- 计算机视觉的主要技术
- 计算机视觉技术的应用
人们可能没有意识到他们的视觉系统是如此强大。婴儿出生后几个小时就能认出母亲的样子;乒乓球运动员根据对手的细微动作判断发球方向。人接受信息中 `70%-80% `来自视觉信息,如果机器像人一样有视觉系统,机器需要“看懂”图像。
1. 什么是计算机视觉?
研究人员希望机器看起来像人类“看懂”图像,进而研究人类视觉系统,该系统包括眼球(接收光信号)、视网膜(光信号转换为电信号传输到大脑)、大脑皮层(提取电信号的有效特征并引导人们做出反应)。
为了使机器模拟人类视觉系统,研究人员使用相机模拟“眼球”获取图像信息;用数字图像处理模拟“视网膜”将模拟图像转换为数字图像,使计算机能够识别;使用计算机视觉模拟“大脑皮层”设计算法提取图像特征,进行识别和检测。机器模拟人类视觉系统是机器视觉,也称为计算机视觉(ComputerVision, CV),解决机器如何‘看懂’的图像。
![机器模拟人类视觉系统](https://files.mdnice.com/user/34281/89aa3e2f-27b1-41a7-a485-420cc324feb5.png)
2. 计算机视觉的主要技术
计算机视觉技术包括以下从简单到复杂的功能:
- 图像采集和处理——使用摄像头及其他类型的传感器采集真实世界中的三维场景,将其转化为视频。每段视频就是一系列的图像,而每个图像都是一个二维矩阵,矩阵里的每个点都代表人所能看到的颜色(这个点也就是所谓的“像素”)。
- 目标识别——对物体进行识别(例如识别出一只狗),并在此基础上掌握更多的细节特征(例如确认该狗为牧羊犬、毛色白色等)。
- 目标检测和图像分割——把图像划分为若干个不同区域和物体。
- 目标追踪——在视频中定位和跟踪物体。
- 动作识别——对动作和手势进行识别,如 Xbox 体感游戏中的舞蹈动作。
- 场景理解——对一个完整的场景(例如一只饥饿的狗正在盯着一根骨头)进行分析并理解,掌握其中复杂而微妙的关系。
- 生成式对抗网络(GAN)——其中的一个网络名为生成式网络,负责尝试生成一些看起来很真实的东西,另一个网络名为判别式网络,它会把生成式网络所合成的东西与真实的东西进行比较,确定生成式网络的输出是真是假,例如 Deepfake 换脸。
2.1 目标识别
目标识别用于解决“是什么”的问题。目标识别的典型应用是车牌号码识别、交通灯识别、图像识别等。
![车牌号识别](https://img-blog.csdnimg.cn/c1b42359f341497f9de566b9a35d0bb2.png)
目标识别的主要过程
对我们人类来说,我们可以毫不费力地区分猫和狗,因为当我们看到这些物体时,我们的大脑会从它们的基本特征中分离出来(圆头、尖耳朵等)。基本特征与物体的名称(标签)相对应,然后我们可以看到类似的物体来识别它们。
计算机也是如此。使用计算机完成图像分类时,大致可分为数据集采集、图像预处理、特征提取、分类器训练和模型评估。
图像预处理的目的是消除图像中无用的信息,恢复有用的信息,更有利于后续的特征提取。简单的图像特征提取是提取物体的颜色、轮廓等。分类器训练是匹配图像的特征和标签。当分类器训练完成之后,新图像输入到分类器中,查看分类效果,即模型评估。
2.2 目标检测
目标检测用来解决“在哪里”的问题,如输入一张图片,输出待检测目标的类别和所在位置的坐标(矩形框的坐标值表示)。
目标检测的典型应用在安防监控,有手机支付中的人脸检测;在智慧交通,有自动驾驶中的车辆检测;在智慧商超,有无人结账中的商品检测;在工业领域中,有钢材、轨道表面缺陷检测。
目标检测的主要流程
人类在看东西的时候,可以知道物体是什么和物体的位置。计算机视觉的初衷是让机器像人一样可以“看到”世界,机器是没有位置的感觉,而是通过矩形窗口在图片上滑动,获得物体的初始位置,再分析该窗口内的特征,是不是此物体。
早期,目标检测算法还没有使用深度学习,一般分为三个阶段:区域选取、特征提取、特征分类。
区域选取这一步是为了对物体进行定位,采用了滑动窗口的策略,物体在图像中的位置和大小是变化的,因而需要不同的矩形窗口的比例,再通过矩形窗口在图像中从左到右、从上到下的滑动,可以获得图像上任意位置不同大小的物体。特征提取和特征分类的阶段是找到物体的类别,跟图像分类一致。
基于深度学习的目标检测大致可以分为一阶段(One Stage)模型和二阶段(Two Stage)模型。
目标检测的一阶段模型是指没有独立地提取候选区域(Region Proposal),直接输入图像得到图中存在的物体类别和相应的位置信息。二阶段模型是有独立地候选区域选取,要先对输入图像筛选出可能存在物体的候选区域,然后判断候选区域中是否存在目标,如果存在输出目标类别和位置信息。
2.3 图像分割
图像分割根据图像的灰度、颜色、结构和纹理特征将图像分为几个具有相似性质的区域。与目标检测相比,图像分割更适合精细的图像识别任务、更准确的目标定位和图像的语义理解任务。
图像分割的典型应用在人像分割、卫星图像分析、自动驾驶中的车道线识别,医学图像诊断中的肿瘤边界提取等。
图像分割的主要流程
当人类看图像时,他们往往更关注图像中感兴趣的区域。这个区域通常被称为前景。例如,人像分割将图像中的人像与其背景分开。算法根据人像和背景的颜色和纹理来划分。
首先,通过分析找到人像和背景的颜色阈值;其次,将图像中的每个像素值与阈值进行比较,分为两类;最后,用阈值映射到原始图像获得人像。
在深度学习中,图像分割是一种端到端的像素级分类任务,即对图像中的每个像素进行分类,与分类模型不同的是,分割模型的输出是一个分割图。
2.4 人脸识别
人脸识别是一种生物特征识别技术,可以通过人脸图像所携带的生物特征信息来识别个人身份。一般来说,人脸识别包括构建人脸识别系统所使用的一系列相关技术,包括人脸图像采集、图像处理、人脸定位、身份确认、身份查询等。
人脸识别的主要流程
人脸识别的工作过程可分为以下步骤:
第一步是人脸图像采集,人脸识别系统将通过各种摄像头收集可见光图像、热成像图像、近红外图像等图像,也可以区分静态、动态等不同情况。
第二步是人脸检测,这里可以使用各种人脸检测模型来检测画面中的人脸,生成相应的人脸框,然后排除人脸框外的图像,专注于人脸框内图像的探索。
第三步是数据处理,相机拍摄的人脸可能有多个角度、表情、亮度等,需要通过光线补偿、灰度变化、直方图均衡化、归一化、几何校正、滤波以及锐化等方式处理人脸图像,便于人脸特征提取。
第四步是对人脸图片进行特征提取和分类,利用深度神经网络挖掘图片的深度特征,在特定维度上对深度特征进行分类,从而判断这个人是谁。
2.5 目标跟踪
目标跟踪是利用图像序列的上下文信息,对目标的外观和运动信息进行建模,从而对目标运动状态进行预测并标定目标位置。
目标跟踪典型应用在军事方面,有无人飞行器、精确制导、空中预警、战场监视等;在民用方面,包括移动机器人、智能视频监控、智能交通系统、人机交互、虚拟现实等。
目标跟踪的主要流程
目标跟踪的主要流程可以概括为:通过摄像头捕获图像序列,然后输入计算机计算出目标的位置,再根据目标相关的特征,将每一帧中的同一个目标关联起来从而得到目标运动的完整轨迹。
同一个目标关联起来的常用方法是将目标跟踪问题看作一个二分类问题,把图像分为前景(正样本)和背景(负样本),利用图像特征和分类方法,将目标从背景区域中区分出来,期间不断地在线更新分类器来估计目标的位置。
![车辆跟踪](https://img-blog.csdnimg.cn/f720ad40b6f64ebca55c68aa7e3288a7.gif)
2.6 生成对抗网络
生成对抗网络(GAN) 由两部分构成,一个是生成式网络 G(Generator),主要作用是生成假的样本,另一部分为判别式网络 D(Discriminator),主要作用是判断是否为可接受的生成数据。
GAN技术典型应用在视频、演讲和许多其他形式的内容之中,如让照片中的人物变年轻或者变老、为黑白电影及照片上色、让静态的画作(如《蒙娜丽莎》)动起来、提高分辨率、检测青光眼、预测气候变化带来的影响,甚至发现新药。
生成对抗网络的主要流程
在训练过程中,生成模型 G 的目标是尽量生成接近真实的样本去欺骗判别模型 D,而判别模型 D 的目标则是尽量把 G 的生成样本和真实样本区分开来,这样 G 和 D 构成一个动态的“博弈”。
GAN 评估所生成样本的质量,最开始生成的样本非常容易分辨,后来生成器渐渐的能够生成更为逼真的样本,则需要重新训练判别器,因此称为对抗。
最后博弈的结果是,G 生成的样本难以被 D 区分出来是生成的还是真实的,此时得到的生成模型,可以用来生成样本数据。
计算机视觉技术的应用
计算机视觉赋予机器视觉一让它们通过机器学习和深度学习算法“看到”和探索世界。这一强大的技术已迅速在多个行业中得到应用,并成为技术发展和数字化转型不可或缺的一部分。
在我们的生活这些技术的身影如下:
- 化身汽车上的“助理驾驶员”,监测人类驾驶员是否疲劳驾驶;
- 进驻无人超市(如天猫无人超市),通过摄像头自动识别顾客把商品放进购物车的过程;
- 为机场提供安全保障,用于清点人数,识别是否有恐怖分子出没;
- 姿态识别,开发Xbox舞蹈游戏,为用户的动作打分;
- 人脸识别,让用户“刷脸”解锁手机;
- 智能相机,iPhone的人像模式可以识别并提取前景中的人物,巧妙地让背景虚化,效果堪比单反相机;
- 应用于军事领域,将敌方士兵与平民区分开,或打造无人机和自动驾驶汽车。
- 对照片和视频进行智能编辑,比如美图秀秀等软件工具,在计算机视觉技术的支持下,可以实现优化抠图、去红眼、美化自拍等功能;
- 医学图像分析,比如检查判断肺部CT中是否有恶性肿瘤;
- 内容过滤,监测社交媒体上是否出现色情、暴力等内容;
- 根据一段视频内容搭配相关广告;
- 实现智能图像搜索,根据关键字或图像线索查找目标图像;
- 实现换脸术,把原视频中 A 的脸替换为 B 的脸。
参考资料
[1] 图来自:https://ai.baidu.com/
[2] 图来自:https://www.spiceworks.com/tech/artificial-intelligence/articles/what-is-computer-vision/
[3] 图来自: https://medium.com/analytics-vidhya/object-tracking-using-deepsort-in-tensorflow-2-ec013a2eeb4f
[4] 2D 计算机视觉:原理、算法及应用
[5] Python计算机视觉与深度学习实战
[6] 计算机视觉中的深度学习
[7] OpenCV 4机器学习算法原理与编程实战
[8] 自然语言理解与行业知识图谱:概念、方法与工程落地
[9] 生成对抗网络入门指南(第2版)
[10] AI未来进行式