改变你对世界看法的五大计算机视觉技术

简介: 本文主要介绍计算机视觉中主要的五大技术,分别为图像分类、目标检测、目标跟踪、语义分割以及物体分割。针对每项技术都给出了基本概念及相应的典型方法,简单通俗、适合阅读。

计算机视觉是当前最热门的研究之一,是一门多学科交叉的研究,涵盖计算机科学(图形学、算法、理论研究等)、数学(信息检索、机器学习)、工程(机器人、NLP等)、生物学(神经系统科学)和心理学(认知科学)。由于计算机视觉表示对视觉环境及背景的相对理解,很多科学家相信,这一领域的研究将为人工智能行业的发展奠定基础。

那么,什么是计算机视觉呢?下面是一些公认的定义:

1.从图像中清晰地、有意义地描述物理对象的结构(Ballard & Brown,1982);

2.由一个或多个数字图像计算立体世界的性质(Trucco & Verri,1998);

3.基于遥感图像对真实物体和场景做出有用的决定(Sockman & Shapiro,2001);

那么,为什么研究计算机视觉呢?答案很明显,从该领域可以衍生出一系列应用程序,比如:

1.人脸识别:人脸检测算法,能够从照片中认出某人的身份;

2.图像检索:类似于谷歌图像使用基于内容的查询来搜索相关图像,算法返回与3.查询内容最佳匹配的图像。

4.游戏和控制:体感游戏;

5.监控:公共场所随处可见的监控摄像机,用来监视可疑行为;

6.生物识别技术:指纹、虹膜和人脸匹配是生物特征识别中常用的方法;

7.智能汽车:视觉仍然是观察交通标志、信号灯及其它视觉特征的主要信息来源;

正如斯坦福大学公开课CS231所言,计算机视觉任务大多是基于卷积神经网络完成。比如图像分类、定位和检测等。那么,对于计算机视觉而言,有哪些任务是占据主要地位并对世界有所影响的呢?本篇文章将分享给读者5种重要的计算机视觉技术,以及其相关的深度学习模型和应用程序。相信这5种技术能够改变你对世界的看法。

1.图像分类

90d0388945ee6ef166c7eb22648e6785cda01191

图像分类这一任务在我们的日常生活中经常发生,我们习惯了于此便不以为然。每天早上洗漱刷牙需要拿牙刷、毛巾等生活用品,如何准确的拿到这些用品便是一个图像分类任务。官方定义为:给定一组图像集,其中每张图像都被标记了对应的类别。之后为一组新的测试图像集预测其标签类别,并测量预测准确性。

如何编写一个可以将图像分类的算法呢?计算机视觉研究人员已经提出了一种数据驱动的方法来解决这个问题。研究人员在代码中不再关心图像如何表达,而是为计算机提供许多很多图像(包含每个类别),之后开发学习算法,让计算机自己学习这些图像的特征,之后根据学到的特征对图像进行分类。

鉴于此,完整的图像分类步骤一般形式如下:

1.首先,输入一组训练图像数据集;

2.然后,使用训练集训练一个分类器,该分类器能够学习每个类别的特征;

3.最后,使用测试集来评估分类器的性能,即将预测出的结果与真实类别标记进行比较;

对于图像分类而言,最受欢迎的方法是卷积神经网络(CNN)。CNN是深度学习中的一种常用方法,其性能远超一般的机器学习算法。CNN网络结构基本是由卷积层、池化层以及全连接层组成,其中,卷积层被认为是提取图像特征的主要部件,它类似于一个“扫描仪”,通过卷积核与图像像素矩阵进行卷积运算,每次只“扫描”卷积核大小的尺寸,之后滑动到下一个区域进行相关的运算,这种计算叫作滑动窗口

887c0342151b1ec5698f4847e8befa155746b20b

从图中可以看到,输入图像送入卷积神经网络中,通过卷积层进行特征提取,之后通过池化层过滤细节(一般采用最大值池化、平均池化),最后在全连接层进行特征展开,送入相应的分类器得到其分类结果。

大多数图像分类算法都是在ImageNet数据集上训练的,该数据集由120万张的图像组成,涵盖1000个类别该数据集也可以称作改变人工智能和世界的数据集。ImagNet 数据集让人们意识到,构建优良数据集的工作是 AI 研究的核心,数据和算法一样至关重要。为此,世界组织也举办了针对该数据集的挑战赛——ImageNet挑战赛。

第一届ImageNet挑战赛的第一名是由Alex Krizhevsky(NIPS 2012)获得,采用的方法是深层卷积神经网络,网络结构如下图所示。在该模型中,采用了一些技巧,比如最大值池化、线性修正单元激活函数ReLU以及使用GPU仿真计算等,AlexNet模型拉开了深度学习研究的序幕。自从AlexNet网络模型赢得比赛之后,有很多基于CNN的算法也在ImageNet上取得了特别好的成绩,比如ZFNet(2013)GoogleNet(2014)VGGNet(2014)ResNet(2015)以及DenseNet(2016)等。

32f9f776d0b6062068029bd2c235d55b01b5c1ce

2.目标检测

0e129ebe9208fb00a45d79bc1d4f36a4db3d5e3b

目标检测通常是从图像中输出单个目标的Bounding Box(边框)以及标签。比如,在汽车检测中,必须使用边框检测出给定图像中的所有车辆。

之前在图像分类任务大放光彩的CNN同样也可以应用于此。第一个高效模型是R-CNN(基于区域的卷积神经网络),如下图所示。在该网络中,首先扫描图像并使用搜索算法生成可能区域,之后对每个可能区域运行CNN,最后将每个CNN网络的输出送入SVM分类器中来对区域进行分类和线性回归,并用边框标注目标。

323572d390b81a517ea3c58efbfd008cd2255d0e

本质上,是将物体检测转换成图像分类问题。但该方法存在一些问题,比如训练速度慢,耗费内存、预测时间长等。

为了解决上述这些问题,Ross Girshickyou提出Fast R-CNN算法,从两个方面提升了检测速度:1)在给出建议区域之前执行特征提取,从而只需在整幅图像上运行一次CNN;2)使用Softmax分类器代替SVM分类器;

79d0db2a3e9bc635557049605d5d1131d6e6f99e

虽然Fast R-CNN在速度方面有所提升,然而,选择搜索算法仍然需要大量的时间来生成建议区域。为此又提出了Faster R-CNN算法,该模型提出了候选区域生成网络(RPN),用来代替选择搜索算法,将所有内容整合在一个网络中,大大提高了检测速度和精度。

e8e85e386b5ae0ba3c07707d2a933b6c5c0554e7

近年来,目标检测研究趋势主要向更快、更有效的检测系统发展。目前已经有一些其它的方法可供使用,比如YOLO、SSD以及R-FCN等。

3.目标跟踪

e1da52c05717b2e48502c77e1739509fc168e0a5

目标跟踪是指在给定场景中跟踪感兴趣的具体对象或多个对象的过程。简单来说,给出目标在跟踪视频第一帧中的初始状态(如位置、尺寸),自动估计目标物体在后续帧中的状态。该技术对自动驾驶汽车等领域显得至关重要。

根据观察模型,目标跟踪可以分为两类:产生式(generative method)和判别式(discriminative method)。其中,产生式方法主要运用生成模型描述目标的表观特征,之后通过搜索候选目标来最小化重构误差。常用的算法有稀疏编码(sparse coding)、主成分分析(PCA)等。与之相对的,判别式方法通过训练分类器来区分目标和背景,其性能更为稳定,逐渐成为目标跟踪这一领域的主要研究方法。常用的算法有堆栈自动编码器(SAE)卷积神经网络(CNN)等。

使用SAE方法进行目标跟踪的最经典深层网络是Deep Learning Tracker(DLT),提出了离线预训练和在线微调。该方法的主要步骤如下:

1.先使用栈式自动编码器(SDAE)在大规模自然图像数据集上进行无监督离线预训练来获得通用的物体表征能力。

2.将预训练网络的编码部分与分类器相结合组成分类网络,然后利用从初始帧获得的正、负样本对网络进行微调,使其可以区分当前对象和背景。在跟踪过程中,选择分类网络输出得分最大的patch为最终预测目标。

3.模型更新策略采用限定阈值的方法。

fb1b2f4e5635bb9913d8988e93675ff8f6632aba

基于CNN完成目标跟踪的典型算法是FCNTMD Net

FCNT的亮点之一在于对ImageNet上预训练得到的CNN特征在目标跟踪任务上的性能做了深入的分析:

1.CNN的特征图可以用来做跟踪目标的定位;

2.CNN的许多特征图存在噪声或者和物体跟踪区分目标和背景的任务关联较小;

3.CNN不同层提取的特征不一样。高层特征更加抽象,擅长区分不同类别的物体,而低层特征更加关注目标的局部细节。

基于以上观察,FCNT最终提出了如下图所示的模型结构:

1.对于Conv4-3Con5-3采用VGG网络的结构,选出和当前跟踪目标最相关的特征图通道;

2.为了避免过拟合,对筛选出的Conv5-3和Conv4-3特征分别构建捕捉类别信息GNet和SNet;

3.在第一帧中使用给出的边框生成热度图(heap map)回归训练SNet和GNet;

4.对于每一帧,其预测结果为中心裁剪区域,将其分别输入GNetSNet中,得到两个预测的热图,并根据是否有干扰来决定使用哪个热图。

2628e68e8fbf5c25bc3282b756f4f26432aec2fd

区别与FCNT,MD Net使用视频中所有序列来跟踪它们的运动。但序列训练也存在问题,即不同跟踪序列与跟踪目标完全不一样。最终MD Net提出多域的训练思想,网络结构如下图所示,该网络分为两个部分:共享层和分类层。网络结构部分用于提取特征,最后分类层区分不同的类别。

a688d33dc278a5e15a835af1c38b2ce57164b3f0

4.语义分割

43c2efa6e180d1210a8bda24dd9225b2a9c1f4a6

计算机视觉的核心是分割过程,它将整个图像分成像素组,然后对其进行标记和分类。语言分割试图在语义上理解图像中每个像素的角色(例如,汽车、摩托车等)。

CNN同样在此项任务中展现了其优异的性能。典型的方法是FCN结构如下图所示。FCN模型输入一幅图像后直接在输出端得到密度预测,即每个像素所属的类别,从而得到一个端到端的方法来实现图像语义分割。

0f08b706df4999e3fef21afeb39571ff1e183748

与FCN上采样不同,SegNet将最大池化转移至解码器中,改善了分割分辨率。提升了内存的使用效率。

234fed484de89848cd85d2fb8befb82b4801a077

还有一些其他的方法,比如全卷积网络、扩展卷积,DeepLab以及RefineNet等。

5.物体分割

物体分割与语义分割有所不同,物体分割不仅需要对图像中不同的对象进行分类,而且还需要确定它们之间的界限、差异和关系。

3ec82aee602d96de1527f7ffaacaeadab0a3b959

CNN在此项任务中同样表现优异,典型算法是Mask R-CNN。Mask R-CNN在Faster R-CNN的基础上添加了一个分支以输出二元掩膜。该分支与现有的分类和边框回归并行,如下图所示:

e3932b664cbfcf6ef6b015fadeae36f7942f1404

Faster-RCNN在物体分割任务中表现不好,为了修正其缺点,Mask R-CNN提出了RolAlign层,通过调整Rolpool来提升精度。从本质上讲,RolAlign使用双线性插值避免了取整误差,该误差导致检测和分割不准确。

一旦掩膜被生成,Mask R-CNN结合分类器和边框就能产生非常精确的分割:

4ad789fd6b39e025ce02a32198f6be39401ba402

结论

以上五种计算机视觉技术可以帮助计算机从单个或一系列图像中提取、分析和理解有用信息。此外,还有很多其它的先进技术等待我们的探索,比如风格转换、动作识别等。希望本文能够引导你改变看待这个世界的方式。

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

作者信息

James Le,软件工程师、数据科学家、产品经理。

个人主页:https://jameskle.com/

本文由阿里云云栖社区组织翻译文章原标题《The 5 Computer Vision Techniques That Will Change How You See The World》,作者:James Le,译者:海棠,审阅:Uncle_LLD

文章为简译,更为详细的内容,请查看原文

 

 

相关文章
|
6月前
|
机器学习/深度学习 计算机视觉
AIGC核心技术——计算机视觉(CV)预训练大模型
【1月更文挑战第13天】AIGC核心技术——计算机视觉(CV)预训练大模型
606 3
AIGC核心技术——计算机视觉(CV)预训练大模型
|
6月前
|
算法 自动驾驶 安全
计算机视觉(CV)技术的优势和挑战
计算机视觉(CV)技术的优势和挑战
147 0
|
29天前
|
机器学习/深度学习 人工智能 机器人
计算机视觉技术介绍
【10月更文挑战第14天】 计算机视觉技术介绍
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与计算机视觉的结合:技术趋势与应用
深度学习与计算机视觉的结合:技术趋势与应用
157 9
|
3月前
|
监控 算法 自动驾驶
计算机视觉的实践与挑战:技术深度剖析
【8月更文挑战第21天】计算机视觉技术作为人工智能的璀璨明珠,正逐步深入到我们生活的各个方面,带来前所未有的便利和变革。然而,随着技术的不断发展,我们也面临着诸多挑战和问题。未来,我们需要不断推动技术创新和跨学科合作,加强数据安全和隐私保护,提升算法的鲁棒性和可解释性,以应对这些挑战并推动计算机视觉技术的持续发展。让我们共同努力,探索计算机视觉技术的广阔天地,为创造一个更加智能、安全和美好的世界而不懈努力。
|
3月前
|
传感器 自动驾驶 安全
计算机视觉在自动驾驶中的应用:技术解析与未来展望
【8月更文挑战第4天】自动驾驶依托计算机视觉实现环境感知与决策,通过目标检测、跟踪及车道识别等技术保障行车安全与效率。面对数据处理、场景理解等挑战,未来技术将持续优化,深化智能驾驶体验,引领交通行业变革。
|
3月前
|
机器学习/深度学习 并行计算 算法
Ebsynth:利用图像处理和计算机视觉的视频风格转换技术工具
EbSynth 是一款基于视频风格转换技术的工具,专注于将静态艺术风格应用到视频中的每一帧,使视频具有独特的艺术效果。它利用图像处理和计算机视觉技术,将用户提供的参考图像或绘画风格转换为视频效果。
110 2
|
4月前
|
机器学习/深度学习 人工智能 监控
计算机视觉技术在安防领域的应用深度解析
【7月更文挑战第28天】计算机视觉技术作为人工智能领域的重要分支,在安防领域的应用前景广阔。通过不断提升技术性能和解决实际应用中的问题,计算机视觉技术将进一步提升安防工作的效率和准确性,为公共安全和社会稳定贡献更大的力量。
|
4月前
|
机器学习/深度学习 传感器 人工智能
高效能计算机视觉技术在工业自动化中的应用与发展
随着工业自动化的迅速发展,高效能计算机视觉技术正成为关键驱动力。本文探讨了计算机视觉在工业自动化中的重要性,以及其应用和未来发展趋势。通过深入分析现有技术和案例研究,展示了计算机视觉如何提升生产效率、质量控制和安全性,并展望了其在智能制造中的潜力。 【7月更文挑战第13天】
69 1
|
5月前
|
机器学习/深度学习 算法 计算机视觉
计算机视觉是一门研究如何使计算机“看”的技术,其目标是让计算机能够像人类视觉一样理解和解释视觉信息。
计算机视觉是一门研究如何使计算机“看”的技术,其目标是让计算机能够像人类视觉一样理解和解释视觉信息。

热门文章

最新文章