文章首发于微信公众号《有三AI》

【AI白身境】一文览尽计算机视觉研究方向

今天是新专栏《AI白身境》的第10篇,所谓白身,就是什么都不会,还没有进入角色。

相信看了前面的几篇文章后很多朋友已经等不及快速入行了,今天就来介绍一下计算机视觉的各大研究方向及其特点

所谓计算机视觉,即compute vision,就是通过用计算机来模拟人的视觉工作原理,来获取和完成一系列图像信息处理的机器。计算机视觉属于机器学习在视觉领域的应用,是一个多学科交叉的研究领域,涉及数学,物理,生物,计算机工程等多个学科,由此也可以想象到计算机视觉的研究范围非常广,也是图像,语音,自然语言处理领域中从业人数最多的。

作者 | 言有三

编辑 | 言有三

01 图像分类

1.1 基本概念

图像分类是计算机视觉中最基础的一个任务,也是几乎所有的基准模型进行比较的任务,从最开始比较简单的10分类的灰度图像手写数字识别mnist,到后来更大一点的10分类的cifar10和100分类的cifar100,到后来的imagenet,图像分类任务伴随着数据库的增长,一步一步提升到了今天的水平。

现在在imagenet这样的超过1000万图像,2万类的数据集中,计算机的图像分类水准已经超过了人类。

图像分类,顾名思义,就是一个模式分类问题,它的目标是将不同的图像,划分到不同的类别,实现最小的分类误差。

总体来说,对于二分类的问题,图像分类可以分为跨物种语义级图像分类,子类细粒度图像分类,以及实例级图像分类三大类别。

传统机器学习方法:

通过各种经典的特征算子+经典分类器组合学习,比如HoG+SVM。

深度学习方法

各种分类网络,最为大家熟知的就是ImageNet竞赛了。

2012年Alexnet诞生,意味着GPU训练时代的来临。

Alexnet是第一个真正意义上的深度网络,与LeNet5的5层相比,它的层数增加了3 层,网络的参数量也大大增加,输入也从32变成了224。

2014年VGG诞生,它共包含参数约为550M。全部使用3*3*的卷积核*和2*2的最大池化核,简化了卷积神经网络的结构。VGG很好的展示了如何在先前网络架构的基础上通过增加网络层数和深度来提高网络的性能,网络虽然简单,但是却异常的有效,在今天VGG仍然被很多的任务选为基准模型。

同一年GoogleNet诞生,也被成为Inception Model,它的核心是Inception Module。一个经典的inception 结构,包括有四个成分,1*1卷积,3*3 卷积, 5*5 卷积,3*3 最大池化,最后对运算结果进行通道上组合,可以得到图像更好的表征。自此,深度学习模型的分类准确率已经达到了人类的水平(5%~10%)。

2015年,ResNet被提出。ResNet以 3.57%的错误率表现超过了人类的识别水平,并以152层的网络架构创造了新的模型记录。由于resnet采用了跨层连接的方式,它成功的缓解了深层神经网络中的梯度消散问题,为上千层的网络训练提供了可能。

2016年ResNeXt诞生,101层的ResNeXt可以达到ResNet152 的精确度,却在复杂度上只有后者的一半,核心思想为分组卷积。即首先将输入通道进行分组,经过若干并行分支的非线性变换,最后合并。

在resnet基础上,密集连接的densenet将前馈过程中将每一层与其他的层都连接起来。对于每一层网络来说,前面所有网络的特征图都被作为输入,同时其特征图也都被其他网络层作为输入所利用。

2017年,也是imagenet图像分类比赛的最后一年,senet获得了冠军。这个结构,仅仅使用了“特征重标定”的策略来对特征进行处理,也就是通过学习获取每个特征通道的重要程度,根据重要性去抑制或者提升相应的特征。

1.2 方向特点

图像分类的比赛基本落幕,也接近算法的极限。但是在实际的应用中却面临着比比赛中更加复杂,比如样本不均衡,分类界面模糊,未知类别等。如果想了解更多,请查看往期文章。

【技术综述】你真的了解图像分类吗?

02 目标检测

2.1 基本概念

分类任务给出的是整张图片的内容描述,而目标检测任务则关注图片中特定的目标。

检测任务包含两个子任务,其一是这一目标的类别信息和概率,它是一个分类任务。其二是目标的具体位置信息,这是一个定位任务。

与计算机视觉领域里大部分的算法一样,目标检测也经历了从传统的人工设计特征和浅层分类器的思路(以),到大数据时代使用深度神经网络进行特征学习的思路

在传统方法时代,很多的任务不是一次性解决,而是需要多个步骤的。而深度学习时代,很多的任务都是采用End-To-End的方案,即输入一张图,输出最终想要的结果,算法细节和学习过程全部丢给了神经网络,这一点在物体检测这个领域,体现得尤为明显。

不管是清晰地分步骤处理,还是深度学习的end-to-end的方法,目标检测算法一定会有3个模块。第一个是检测窗口的选择,第二个是图像特征的提取,第三个是分类器的设计。

2.2 方法分类

传统机器学习方法:

以保罗·维奥拉和迈克尔·琼斯于2001年提出的维奥拉-琼斯目标检测框架为代表,这是第一篇基于Haar+Adaboost的检测方法,也是首次把检测做到实时的框架,此方法在opencv中被实现为cvHaarDetectObjects(),是opencv中最为人熟知的目标检测方法。速度非常快,检测召回率相对如今的算法较低。

深度学习方法:

仍然要解决区域选择、提取特征、分类回归三个问题。但是在演变过程中,却发展出了multi-stage和one-stage的方法。其中multi-stage方法,是分步骤完成上面的任务,甚至可能需要单独训练各个网络。而one-stage则是一步到位。

RCNN的框架是multi-stage方法的典型代表。它使用了Selective search先生成候选区域再检测,候选窗口的数量被控制在了2000个左右。选择了这些图像框之后,就可以将对应的框进行resize操作,然后送入CNN中进行训练。由于CNN非常强大的非线性表征能力,可以对每一个区域进行很好的特征表达,CNN最后的输出,使用多个分类器进行分类判断。该方法将PASCAL VOC上的检测率从 35.1% 提升到了53.7%,其意义与Alexnet在2012年取得分类任务的大突破是相当的,对目标检测领域影响深远。

随后Fast R-CNN提出RoIPooling从整图对应的卷积特征图选取区域特征,解决了重复提取特征的问题。Faster R-CNN则提出Region Proposal, anchors把一张图片划分成n*n个区域,每个区域给出9个不同ratio和scale的proposal,解决了重复提取候选proposal的问题。 RCNN系列在工业届应用非常广泛,因此从事目标检测的同学必须掌握。

除了multi-stage方法,还有one-stage方法。以YOLO为代表的方法,没有显式的候选框提取过程。它首先将图片resize到固定尺寸,将输入图片划分成一个7x7的网格,每个网格预测2个边框,对每一个网络进行分类和定位。YOLO方法也经过了许多版本的发展,从YOLO v2到YOLO v3。YOLO的做法是速度快,但是会有许多漏检,尤其是小的目标。所以SSD就在 YOLO的基础上添加了Faster R-CNN的Anchor 概念,并融合不同卷积层的特征做出预测。虽然YOLO和SSD系列的方法没有了region proposal的提取,速度更快,但是必定会损失信息和精度。

如果想了解更多,可以去阅读我们的往期文章。

【技术综述】一文道尽R-CNN系列目标检测

【技术综述】万字长文详解Faster RCNN源代码

2.3 方向特点

目标检测方向有一些固有的难题,比如小脸,遮挡,大姿态

而在方法上,多尺度与级联网络的设计,难样本的挖掘,多任务loss等都是比较大的研究小方向,咱们也写过一些文章,感兴趣的朋友可以去翻。

03 图像分割

3.1 基础概念

图像分割属于图像处理领域最高层次的图像理解范畴。所谓图像分割就是把图像分割成具有相似的颜色或纹理特性的若干子区域,并使它们对应不同的物体或物体的不同部分的技术。这些子区域,组成图像的完备子集,又相互之间不重叠。

在图像处理中,研究者往往只对图像中的某些区域感兴趣,在此基础上才有可能对目标进行更深层次的处理与分析,包括对象的数学模型表示、几何形状参数提取、统计特征提取、目标识别等。

传统方法:

图像分割问题最早来自于一些文本的分割,医学图像分割。在文本图像分割中,我们需要切割出字符,常见的问题包括指纹识别,车牌识别;由于这一类问题比较简单,因为基于阈值和聚类的方法被经常使用。

基于阈值和聚类的方法虽然简单,但因此也经常失效。以graphcut为代表的方法,是传统图像分割里面鲁棒性最好的方法。Graphcut的基本思路,就是建立一张图,其中以图像像素或者超像素作为图像顶点,然后移除一些边,使得各个子图不相连从而实现分割。图割方法优化的目标是找到一个切割,使得移除边的和权重最小。

深度学习方法:

全卷积神经网络(Fully connected Network)是第一个将卷积神经网络正式用于图像分割问题的网络。

一个用于分类任务的深度神经网络通过卷积来不断抽象学习,实现分辨率的降低,最后从一个较小的featuremap或者最后的特征向量,这个featuremap通常为5*5或者7*7等大小。而图像分割任务需要恢复与原尺度大小一样的图片,所以,需要从这个featuremap恢复原始图片尺寸,这是一个上采样的过程。由于这个过程与反卷积是正好对应的逆操作,所以我们通常称其为反卷积。

实际上并没有反卷积这样的操作,在现在的深度学习框架中,反卷积通常有几种实现方式,一个是双线性插值为代表的插值法,一个是转置卷积

3.2 方向特点

在基于深度学习的图像分割中,有一些比较关键的技术,包括反卷积的使用,多尺度特征融合,crf等后处理方法。

多尺度与上下文信息:

多尺度的信息融合可以从特征图,还可以直接采用多尺度的输入图像,不过这两者本质上没有太多的差异。使用金字塔的池化方案可实现不同尺度的感受野,它能够起到将局部区域上下文信息与全局上下文信息结合的效果。对于图像分割任务,全局上下文信息通常是与整体轮廓相关的信息,而局部上下文信息则是图像的细节纹理,要想对多尺度的目标很好的完成分割,这两部分信息都是必须的。

CRF:

由于经典的cnn是局部的方法,即感受野是局部而不是整个图像。另一方面,cnn具有空间变换不变性,这也降低了分割的边缘定位精度。针对cnn的这两个缺陷,crf可以进行很好的弥补。crf是一种非局部的方法,它可以融合context信息,Deeplab系列就使用了cnn加上全连接的crf的方式。

另一方面,前面我们说的图像分割,是属于硬分割,即每一个像素都以绝对的概率属于某一类,最终概率最大的那一类,就是我们所要的类别。但是,这样的分割会带来一些问题,就是边缘不够细腻,当后期要进行融合时,边缘过渡不自然。此时,就需要用到image matting技术。

更多请查看往期文章:

【技术综述】闲聊图像分割这件事儿

04 目标跟踪

4.1 基本概念

目标跟踪,指的其实就是视频中运动目标的跟踪,跟踪的结果通常就是一个框。目标跟踪是视频监控系统中不可缺少的环节。

根据目标跟踪方法建模方式的不同,可以分为生成式模型方法与判别式模型方法

生成式模型跟踪算法以均值漂移目标跟踪方法和粒子滤波目标跟踪方法为代表,判别式模型跟踪算法以相关滤波目标跟踪方法和深度学习目标跟踪方法为代表。

生成类方法:

在原始影像帧中对目标按指定的方法建立目标模型,然后在跟踪处理帧中搜索对比与目标模型相似度最高的区域作为目标区域进行跟踪。算法主要对目标本身特征进行描述,对目标特征刻画较为细致,但忽略背景信息的影响。在目标发生变化或者遮挡等情况下易导致失跟现象。

判别类方法:

通过对原始影像帧,对目标及背景信息进行区分建立判别模型,通过对后续影像帧搜索目标进行判别是目标或背景信息进而完成目标跟踪。

判别类方法与生成类方法的根本不同在于判别类方法考虑背景信息与目标信息区分来进行判别模型的建立,由于判别类方法将背景与目标进行区分,因此该类方法在目标跟踪时的表现通常更为鲁棒,目前已经成为目标跟踪的主流跟踪方式。判别类方法包括相关滤波,深度学习方法。

4.2 方向特点

目标跟踪有一些难点:

(1) 目标表征表达问题,虽然深度学习方法具有很强的目标表征能力,但是仍然容易受相似环境的干扰。

(2) 目标快速运动,由于很多跟踪的物体都是高速运动,因此既要考虑较大的搜索空间,也要在保持实时性的前提下减小计算量。

(3) 变形,多尺度以及遮挡问题,当目标发生很大的形变或者临时被遮挡如何保持跟踪并且在目标重新出现时恢复跟踪。

05 图像滤波与降噪

5.1 基本概念

现实中的数字图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像。减少数字图像中噪声的过程称为图像降噪,有时候又称为图像去噪。

降噪可以应用于图像增强和美颜等领域。

传统方法:

传统降噪算法根据降噪的原理不同可分为基于邻域像素特征的方法,基于频域变换的方法,和基于特定模型的方法。

基于空域像素特征的方法,是通过分析在一定大小的窗口内,中心像素与其他相邻像素之间在灰度空间的直接联系,来获取新的中心像素值的方法,因此往往都会存在一个典型的输入参数,即滤波半径r。此滤波半径可能被用于在该局部窗口内计算像素的相似性,也可能是一些高斯或拉普拉斯算子的计算窗口。在邻域滤波方法里面,最具有代表性的滤波方法有以下几种:算术均值滤波与高斯滤波,统计中值滤波,双边滤波,非局部平均滤波方法,BM3D算法。

深度学习方法:

在2012年,随着Alexnet的出现,深度学习做去噪的工作取得了一些进展,可以达到和BM3D差不多的水平。对于仿真的噪声和固定的噪声,深度学习已经可以很好的去除,达到或超过传统领域里最好的算法。

利用卷积神经网络去除噪声的原理很简单,输入是一张有噪声的图,标签是一张无噪声的图,输出是一张降噪后的图,损失函数是无噪声groundtruth与网络输出的L2距离,网络通常就是与图像分割算法一样的网络,卷积+与之对称的反卷积。

5.2 方向特点

降噪的研究聚焦在真实数据的去噪声,因为真实世界的噪声不符合高斯加性噪声的假设,而且是依赖于信息本身的。不过,真实噪声图像和相应的无噪声图像获取是非常困难,慢慢的也有了一些benchmark,大家以后关注我们就知道了。

06 图像增强

6.1 基本概念

图像增强,即增强图像中的有用信息,改善图像的视觉效果。

图像增强实际上包含了很多的内容,上面的降噪也属于其中,只是因为降噪多了美颜这一个应用单独拿出来说一下。

对比度增强,用于扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,可用于改善图像的识别效果,满足某些特殊分析。

超分辨,使图像变得更加清晰,可以用于视频的传输先进行降采样,再进行升采样,即降低了传输成本,又增加了视觉效果。

图像修复,重建图像和视频中丢失或损坏的部分,也被称为图像插值或视频插值,主要是替换一些小区域和瑕疵,如photoshop中的印章工具。随着发展,已经从原先针对划痕、污点等的修复到现在对图像、视频中文字、物体等的移除,比如水印等。

传统方法:

传统的方法就是一个预定义好的非线性变换,主要有三大类方法,一类是点操作,一类是直方图操作,一类是Retinex理论。

点操作也被称为直接对比度增强,将每个像素独立操作,包括对数变化,指数变化,负图像,阈值化等。我们熟知的gamma变换如下,可以进行不同形状的映射。

直方图操作也被称为间接对比度增强,包括直方图均衡,直方图匹配等。直方图均衡化通常用来增加图像的全局对比度,尤其是当图像中主体和背景对比度相当接近的时候。直方图均衡化的效果就是让直方图更均衡的分布,这种方法对于背景和前景都太亮或者太暗的图像非常有用,通常是曝光过度或者曝光不足的图片。

Retinex理论,即颜色恒常知觉的计算理论,Retinex是一个合成词,它的构成是retina(视网膜)+cortex(皮层),它将图像认为是reflectance和illumination的点乘,理论基础是在不同的照明条件下,物体的色彩不受光照非均性的影响是恒定的,而物体的颜色是由物体对长波、中波和短波光线的反射能力决定的而不是由反射光强度的绝对值决定。

深度学习方法:

以增强对比度为例,深度学习方法使用了CNN来进行非线性变换的学习,而且通常不仅仅局限在对比度增强,经常会同时学习到降噪。深度学习的方法有两种,一种是采用成对的图片训练,比如pix2pix,learning in the dark,缺点是没有普适性,只能对所实验的数据集有用。一种是不需要成对图片训练,只需要好图,比如WESPE,常配合GAN使用。

6.2 方向特点

一个图像增强任务,传统方法需要分别进行降噪,颜色校正,对比度增强等各种操作,而深度学习算法的好处就是end-to-end输出,将整个流程丢给了网络。目前图像增强相对于前面的一些方向还是一个蓝海,覆盖的方向和应用非常广,有精力的朋友可以好好研究。

07 风格化

7.1 基本概念

图像风格化之所以引起我们的注意,完全是因为2015年的一个研究,可以将任意的图像转换为梵高的画作风格。 也是得益于深度学习技术的发展,传统的方法做不到这么好的效果。而随着美图秀秀,天天P图等app层出不穷的滤镜,风格化已经成为了单独的一个研究领域。

图像风格化是一个综述性的技术应用,为了简单起见,就理解为艺术类滤镜把,它指通过算法,将数码相机拍摄的照片,变成绘画、素描等艺术类的非数码相机效果,是后期程度最深的操作,将彻底改变相片的风格。

深度学习方法:

以A Neural Algorithm of Artistic Style 论文发表为起始,Prisma滤镜为典型代表。虽然风格迁移技术的发展日新月异,但是最革命性的还是该文章的方法,这是德国图宾根大学的研究,它通过分析某种风格的艺术图片,能将图片内容进行分离重组,形成任意风格的艺术作品,最开始的时候需要将近一个小时来处理。

就是把一幅图作为底图,从另外一幅画抽取艺术风格,重新合成新的艺术画,可以参考上面的图。

研究者认为,图片可以由内容层(Content)与风格层(Style)两个图层描述,相互分离开。在图像处理中经常将图像分为粗糙层与细节层,即前者描述图像的整体信息,后者描述图像的细节信息,具体可以通过高斯金字塔来得到。

卷积神经网络的各个神经元可以看做是一个图像滤波器,而输出层是由输入图像的不同滤波器的组合,深度由浅到深,内容越来越抽象。

底层信息重建,则可以得到细节,而从高层信息重建,则得到图像的”风格“。因此,可以选择两幅图像,一幅构建内容信息,一幅构建风格信息,分别进行Content重建与Style 重建。通过将内容与风格组合,可以得到新的视觉信息更加有意思的图像,如计算机油画,这就是它的基本原理。方法的核心在于损失函数的设计,包括内容损失和风格损失

内容损失在像素空间,要求风格化后的图能够保证内容的完整性。风格损失使用vgg特征空间的gram矩阵,这样就有了较高的抽象层级,实践结果表明可以很好的捕捉风格。

7.2 方向特点

如今风格化方法在很多地方都有应用,比如大家熟悉的变脸等。方法也演变成了几个方向;

(1)单模型单风格,即一个网络只能做一种风格化。

(2)单模型多风格,即一个网络可以实现多种风格,比(1)实用的多。

(3)单模型任意风格,即一个网络可以任意风格,视输入图像而定,这是最好的,更多的研究我们以后会开专题。

08 三维重建

8.1 基本概念

什么是三维重建呢?广义上来说,是建立真实世界的三维模型。随着软硬件的成熟,在电影,游戏,安防,地图等领域,三维重建技术的应用越来越多。目前获取三维模型的方法主要包括三种,手工建模,仪器采集与基于图像的建模

(1) 手工建模作为最早的三维建模手段,现在仍然是最广泛地在电影,动漫行业中应用。顶顶大名的3DMax就是典型代表,当然了,它需要专业人士来完成。

(2) 由于手工建模耗费大量的人力,三维成像仪器也得到了长期的研究和发展。基于结构光(structured light)和激光扫描技术的三维成像仪是其中的典型代表。这些基于仪器采集的三维模型,精度可达毫米级,是物体的真实三维数据,也正好用来为基于图像的建模方法提供评价数据库。由于仪器的成本太高,一般的用户是用不上了。

(3) 基于图像的建模技术(image based modeling),顾名思义,是指通过若干幅二维图像,来恢复图像或场景的三维结构,这些年得到了广泛的研究。

我们这里说的三维重建,就特指基于图像的三维重建方法,而且为了缩小范围,只说人脸图像,并简单介绍其中核心的3DMM模型。

3DMM模型:

人脸三维重建方法非常多,有基于一个通用的人脸模型,然后在此基础上进行变形优化,会牵涉到一些模板匹配,插值等技术。有基于立体匹配(各种基于双目,多目立体视觉匹配)的方法,通过照相机模型与配准多幅图像,坐标系转换,获取真实的三维坐标,然后进行渲染。有采用一系列的人脸作为基,将人脸用这些基进行线性组合的方法,即Morphable models方法。

其中,能够融会贯通不同传统方法和深度学习方法的,就是3D Morphable Models系列方法,从传统方法研究到深度学习。

它的思想就是一幅人脸可以由其他许多幅人脸加权相加而来,学过线性代数的就很容易理解这个正交基的概念。我们所处的三维空间,每一点(x,y,z),实际上都是由三维空间三个方向的基量,(1,0,0),(0,1,0),(0,0,1)加权相加所得,只是权重分别为x,y,z。

转换到三维空间,道理也一样。每一个三维的人脸,可以由一个数据库中的所有人脸组成的基向量空间中进行表示,而求解任意三维人脸的模型,实际上等价于求解各个基向量的系数的问题。

每一张人脸可以表示为:

形状向量Shape Vector:S=(X1,Y1,Z1,X2,Y2,Z2,...,Yn,Zn)

纹理向量Texture Vector:T=(R1,G1,B1,R2,G2,B2,...,Rn,Bn)

而一张任意的人脸,其等价的描述如下:

其中第一项Si,Ti是形状和纹理的平均值,而si,ti则都是Si,Ti减去各自平均值后的协方差矩阵的特征向量。 基于3DMM的方法,都是在求解α,β这一些系数,当然现在还会有表情,光照等系数,但是原理都是通用的。

原理就说到这里,我们以后会专门讲述。

8.2 方向特点

人脸的三维建模有一些独特的特点。

(1)预处理技术非常多,人脸检测与特征点定位,人脸配准等都是现在研究已经比较成熟的方法。利用现有的人脸识别与分割技术,可以缩小三维人脸重建过程中需要处理的图像区域,而在有了可靠的关键点位置信息的前提下,可以建立稀疏的匹配,大大提升模型处理的速度。

(2)人脸共性多。正常人脸都是一个鼻子两只眼睛一个嘴巴两只耳朵,从上到下从左到右顺序都不变,所以可以首先建立人脸的参数化模型,实际上这也是很多方法所采用的思路。

人脸三维重建也有一些困难。

(1)人脸生理结构和几何形状非常复杂,没有简单的数学曲面模型来拟合。

(2)光照变化大。同一张脸放到不同的光照条件下,获取的图像灰度值可能大不一样的,这些都会影响深度信息的重建。

(3)特征点和纹理不明显。图像处理最需要的就是明显的特征,而光滑的人脸除了特征关键点,很难在脸部提取稠密的有代表性的角点特征。这个特点,使得那些采用人脸配准然后求取三维坐标的方法面临着巨大的困难。

09 图像检索

9.1 基本概念

图像检索的研究从20世纪70年代就已经开始,在早期是基于文本的图像检索技术(Text-based Image Retrieval,简称TBIR),利用文本来描述图像的特征,如绘画作品的作者、年代、流派、尺寸等。随着计算机视觉技术的发展,90年代开始出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,也就是基于内容的图像检索(Content-based Image Retrieval,简称CBIR)技术,本小节的图像检索就特指基于内容的图像检索。

基于内容的图像检索也经历了传统方法和深度学习方法两个主要阶段,传统的基于内容的图像检索通常包括以下流程:

预处理,通常包括一些图像归一化,图像增强等操作。特征提取,即提取一些非常鲁棒的图像特征,比如SIFT,HoG等特征。特征库就是要查询的库,库中不存储图像而是存储特征,每一次检索图像完成特征提取之后,就在特征库中进行匹配和相似度计算。索引就是在某种相似性度量准则下计算查询向量到特征库中各个特征的相似性大小,最后按相似性大小进行高效的排序并顺序输出对应的图片。

图像检索的中最复杂的一步就是检索,在这一步完成验证过程。

最简单的方法就是暴力(brute-force) 搜索方法(又称线性扫描),即逐个与数据库中的每个点进行相似性计算然后进行排序,这种简单粗暴的方式虽然很容易实现,但是会随着数据库的大小以及特征维度的增加其搜索代价也会逐步的增加,从而限制在数据量小的小规模图像数据库,在大规模图像库上这种暴力搜索的方式不仅消耗巨大的计算资源,而且单次查询的响应时间会随着数据样本的增加以及特征维度的增加而增加,为了降低搜索的空间的空间复杂度与时间复杂度,研究者们提出了很多高效的检索技术,其中最成功的大家也最熟悉到方法是基于哈希的图像检索方法

深度学习在图像检索里面的作用就是把表征样本的特征学习好,就够了。

9.2 方向特点

图像检索系统具有非常大的商业价值,从搜索引擎的以图搜图,到人脸验证和识别系统,到一些搜索排序系统(比如基于美学的摄影图库)。由于图像特征的学习是一个通用的研究方向,因此更多的在于设计高效的检索系统。

10 GAN

10.1 基本概念

GAN,即Generative adversarial net,被誉为新的深度学习,涉及的研究非常多,可以单列为一个方向,一个经典的网络结构如下。

GAN的原理很简单,它包括两个网络,一个生成网络,不断生成数据分布。一个判别网络,判断生成的数据是否为真实数据。

上图是原理展示,黑色虚线是真实分布,绿色实线是生成模型的学习过程,蓝色虚线是判别模型的学习过程,两者相互对抗,共同学习到最优状态。

关于GAN的基础,我们以前已经写过相关的内容,大家去看就可以了。

【技术综述】有三说GANs(上)

10.2 方向特点

作为新兴和热门方向,GAN包含的研究方向非常的广,包括GAN的应用,GAN的优化目标,GAN的模型发展,GAN的训练技巧,GAN的理论分析,GAN的可视化等等,以后等着我们的分享即可。

最后发个通知,2019年有三AI学习季划之“春季计划”开始了,目标就是掌握计算机视觉的各项技能,欢迎参与。

2019年有三AI“春季”划,给我一个荣耀,还你一生荣耀

总结

深度学习彻底点燃和推进了计算机视觉各大领域的研究,这是个可以投以终身的行业,希望你会喜欢,别忘了持续关注我们噢。

下期预告:下一期我们讲AI在当前工业界的应用。

转载文章请后台联系

侵权必究

AI白身境系列完整阅读:

第一期:【AI白身境】深度学习从弃用windows开始

第二期:【AI白身境】Linux干活三板斧,shell、vim和git

第三期:【AI白身境】学AI必备的python基础

第四期:【AI白身境】深度学习必备图像基础

第五期:【AI白身境】搞计算机视觉必备的OpenCV入门基础

第六期:【AI白身境】只会用Python?g++,CMake和Makefile了解一下

第七期:【AI白身境】学深度学习你不得不知的爬虫基础

第八期: 【AI白身境】深度学习中的数据可视化

第九期:【AI白身境】入行AI需要什么数学基础:左手矩阵论,右手微积分

第十期:【AI白身境】一文览尽计算机视觉研究方向

第十一期:【AI白身境】AI+,都加在哪些应用领域了

第十二期:【AI白身境】究竟谁是paper之王,全球前10的计算机科学家

AI初识境系列完整阅读

第一期:【AI初识境】从3次人工智能潮起潮落说起

第二期:【AI初识境】从头理解神经网络-内行与外行的分水岭

第三期:【AI初识境】近20年深度学习在图像领域的重要进展节点

第四期:【AI初识境】激活函数:从人工设计到自动搜索

第五期:【AI初识境】什么是深度学习成功的开始?参数初始化

第六期:【AI初识境】深度学习模型中的Normalization,你懂了多少?

第七期:【AI初识境】为了围剿SGD大家这些年想过的那十几招

第八期:【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?

第九期:【AI初识境】如何增加深度学习模型的泛化能力

第十期:【AI初识境】深度学习模型评估,从图像分类到生成模型

第十一期:【AI初识境】深度学习中常用的损失函数有哪些?

第十二期:【AI初识境】给深度学习新手开始项目时的10条建议

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【AI白身境】计算机视觉都有哪些研究方向相关推荐

  1. 【AI白身境】搞计算机视觉必备的OpenCV入门基础

    文章首发于微信公众号<有三AI> [AI白身境]搞计算机视觉必备的OpenCV入门基础 今天是新专栏<AI白身境>的第五篇. 曾经看过一个视频,树莓派自平衡机器人自动追着小球跑 ...

  2. 【AI白身境】一文览尽计算机视觉研究方向

    今天是新专栏<AI白身境>的第10篇,所谓白身,就是什么都不会,还没有进入角色. 相信看了前面的几篇文章后很多朋友已经等不及快速入行了,今天就来介绍一下计算机视觉的各大研究方向及其特点. ...

  3. 「AI白身境」一文览尽计算机视觉研究方向

    https://www.toutiao.com/a6694019704190665219/ 今天是新专栏<AI白身境>的第10篇,所谓白身,就是什么都不会,还没有进入角色. 相信看了前面的 ...

  4. 「AI白身境」究竟谁是paper之王,全球前10的计算机科学家

    https://www.toutiao.com/a6694021927259865611/ 今天是新专栏<AI白身境>的第十二篇,也是最后一篇了,作为最后一篇,我的想法是激励大家见贤思齐. ...

  5. 【AI白身境】深度学习中的数据可视化​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]深度学习中的数据可视化 今天是新专栏<AI白身境>的第八篇,所谓白身,就是什么都不会,还没有进入角色. 上一节我们已经讲述了如何 ...

  6. 【AI白身境】学深度学习你不得不知的爬虫基础​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]学深度学习你不得不知的爬虫基础 今天是新专栏<AI白身境>的第七篇,所谓白身,就是什么都不会,还没有进入角色. 对于深度学习,一 ...

  7. 【AI白身境】只会用Python?g++,CMake和Makefile了解一下​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]只会用Python?g++,CMake和Makefile了解一下 今天是新专栏<AI白身境>的第六篇,所谓白身,就是什么都不会, ...

  8. 【AI白身境】深度学习必备图像基础

    文章首发于微信公众号<有三AI> [AI白身境]深度学习必备图像基础 今天是新专栏<AI白身境>的第四篇,所谓白身,就是什么都不会,还没有进入角色. 我们已经说了linux基础 ...

  9. 【AI白身境】学AI必备的python基础​​​​​​​

    文章首发于微信公众号<有三AI> [AI白身境]学AI必备的python基础 今天是新专栏<AI白身境>的第三篇,所谓白身,就是什么都不会,还没有进入角色. 上一篇给大家介绍了 ...

最新文章

  1. Eclispse Che(2):启动Che服务,进入IDE界面
  2. php图片滑动代码,jQuery如何实现图片滑动效果
  3. 变压器相邻公交站 候车人提心吊胆[图]
  4. 【Qt】Qt之进程间通信(Windows消息)【转】
  5. luogu Cantor表
  6. java实现将图片读取成base64字符串,将base64字符串存储为图片。
  7. 初始化栈的代码_限定性数据结构-栈
  8. R-FCN算法及Caffe代码详解
  9. phpcms v9框架的目录结构分析
  10. 项目设计之----命令模式的利用
  11. python分布式定时任务_Python 定时任务框架 APScheduler 详解
  12. aliplayer隐藏工具条
  13. 深度学习技术在医疗领域的研究方向及应用
  14. GSM 网络系统介绍
  15. android 字体加粗
  16. 如何安装R以及RStudio?打开RStudio页面告诉你没安装R或者出现页面空白问题
  17. 学大伟业 Day 4 培训总结
  18. HTTP 204响应码【转】
  19. python给arcgis中图层字段批量赋值
  20. 银行核心系统-贷款系统【信贷系统】

热门文章

  1. Jove:@AlanCui 在手机上用QQ或GTalk来贴Fanfou吧, 不用敲空格或省略号. 好像你输入多少个中文字符就要补多少个空格...
  2. SMB交换机、接入交换机、汇聚交换机、核心交换机
  3. 提升策划能力提升的法宝
  4. 风力发电机组机械功率Pm与转子转速Wm关系(Matlab实现)
  5. C++ openCV 图像的读取、显示、保存、加权融合、改变对比度、修改色域
  6. SQL注入中的报错注入,updatexml(1,concat(0x7e,database(),0x7e),1)
  7. CentOS yum方式安装ffmpeg
  8. 口袋取球的取法问题(C++实现)
  9. Java顶级大神的面试经验,竟如此超越常理
  10. CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容