精华内容
下载资源
问答
  • 计算机视觉研究方向

    千次阅读 2020-08-06 12:09:44
    所谓计算机视觉,即compute vision,就是通过用计算机来模拟人的视觉工作原理,来获取和完成一系列图像信息处理的机器。计算机视觉属于机器学习在视觉领域的应用,是一个多学科交叉的研究领域,涉及数学,物理,生物...

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

    1.图像分类

    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。全部使用33的卷积核和22的最大池化核,简化了卷积神经网络的结构。VGG很好的展示了如何在先前网络架构的基础上通过增加网络层数和深度来提高网络的性能,网络虽然简单,但是却异常的有效,在今天VGG仍然被很多的任务选为基准模型。

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

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

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

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

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

    1.2 方向特点

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

    2.目标检测

    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的提取,速度更快,但是必定会损失信息和精度。

    2.3 方向特点

    目标检测方向有一些固有的难题,比如小脸,遮挡,大姿态。
    在这里插入图片描述
    而在方法上,多尺度与级联网络的设计,难样本的挖掘,多任务loss等都是比较大的研究小方向。

    3.图像分割

    3.1 基础概念

    图像分割属于图像处理领域最高层次的图像理解范畴。所谓图像分割就是把图像分割成具有相似的颜色或纹理特性的若干子区域,并使它们对应不同的物体或物体的不同部分的技术。这些子区域,组成图像的完备子集,又相互之间不重叠。
    在这里插入图片描述
    在这里插入图片描述
    在图像处理中,研究者往往只对图像中的某些区域感兴趣,在此基础上才有可能对目标进行更深层次的处理与分析,包括对象的数学模型表示、几何形状参数提取、统计特征提取、目标识别等。

    传统方法:

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

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

    深度学习方法:

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

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

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

    在这里插入图片描述

    3.2 方向特点

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

    多尺度与上下文信息:

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

    CRF:

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

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

    4.目标跟踪

    4.1 基本概念

    目标跟踪,指的其实就是视频中运动目标的跟踪,跟踪的结果通常就是一个框。目标跟踪是视频监控系统中不可缺少的环节。
    在这里插入图片描述
    根据目标跟踪方法建模方式的不同,可以分为生成式模型方法与判别式模型方法。

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

    生成类方法:

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

    判别类方法:

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

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

    4.2 方向特点

    目标跟踪有一些难点:

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

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

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

    5.图像滤波与降噪

    5.1 基本概念

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

    降噪可以应用于图像增强和美颜等领域。
    在这里插入图片描述
    传统方法:

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

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

    深度学习方法:

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

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

    5.2 方向特点

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

    6.图像增强

    6.1 基本概念

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

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

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

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

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

    传统方法:

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

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

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

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

    深度学习方法:

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

    6.2 方向特点

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

    7.风格化

    7.1 基本概念

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

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

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

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

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

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

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

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

    7.2 方向特点

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

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

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

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

    8.三维重建

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

    9.图像检索

    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的原理很简单,它包括两个网络,一个生成网络,不断生成数据分布。一个判别网络,判断生成的数据是否为真实数据。

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

    10.2 方向特点

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

    展开全文
  • 计算机视觉研究方向进展

    千次阅读 2018-12-25 13:49:15
    会议论文比期刊论文更重要的原因是:(1)因为机器学习、计算机视觉和人工智能领域发展非常迅速,的工作层出不穷,如果把论文投到期刊上,一两年后刊出时就有点out了。因此大部分最新的工作都首先发表在顶级会议上...

    最新计算机视觉动态哪里看?

    1 背景

    会议论文比期刊论文更重要的原因是:(1)因为机器学习、计算机视觉和人工智能领域发展非常迅速,新的工作层出不穷,如果把论文投到期刊上,一两年后刊出时就有点out了。因此大部分最新的工作都首先发表在顶级会议上,这些顶级会议完全能反映“热门研究方向”、“最新方法”。(2)很多经典工作大家可能引的是某顶级期刊上的论文,这是因为期刊论文表述得比较完整、实验充分。但实际上很多都是在顶级会议上首发。比如PLSA, Latent Dirichlet Allocation等。(3)如果注意这些领域大牛的pulications,不难发现他们很非常看重这些顶级会议,很多人是80%的会议+20%的期刊。即然大牛们把最新工作发在顶级会议上,有什么理由不去读顶级会议?

    2 顶级会议

    2.1 三大CV顶级会议

    作为刚入门的CV新人,有必要记住计算机视觉方面的三大顶级国际会议:ICCV,CVPR和ECCV,统称为ICE。

    • CV的全称是International Comference on Computer Vision,正如很多和他一样的名字的会议一行,这样最朴实的名字的会议,通常也是这方面最nb的会议。ICCV两年一次,与ECCV正好错开,是公认的三个会议中级别最高的。它的举办地方会在世界各地选,上次是在北京,下次在巴西,2009在日本。iccv上的文章看起来一般都比较好懂,我是比较喜欢的。
    • CVPR的全称是International Conference on Computer Vision and Pattern Recogintion。这是一个一年一次的会议,举办地从来没有出过美国,因此想去美国旅游的同学不要错过。正如它的名字一样,这个会上除了视觉的文章,还会有不少模式识别的文章,当然两方面的结合自然也是重点。
    • ECCV的全称是Europeon Conference on Computer Vision,是一个欧洲的会议。虽然名字不是International,但是会议的级别不比前面两个差多少。欧洲人一般比较看中理论,但是从最近一次会议来看,似乎大家也开始注重应用了,oral里面的demo非常之多,演示效果很好,让人赏心悦目、叹为观止。不过欧洲的会有一个不好,就是他们的人通常英语口音很重,有些人甚至不太会说英文,所以开会和交流的时候,稍微有些费劲。

    总的来说,以上三个会议是做计算机视觉人必须关注的会议,建议每一期的oral都要精读,poster挑自己相关的仔细看看。如果有好的进一步的想法,可以马上发表,因为他们已经是最新的了,对他们的改进通常也是最新的。同时如果你做了类似的工作,却没有引用这些会议的文章,很有可能会被人指出综述部分的问题,因为评审的人一般都是牛人,对这三个会议也会很关注的。

    ICCV/CVPR/ECCV三个顶级会议, 都在一流会议行列, 没有必要给个高下. 有些us的人认为ICCV/CVPR略好于ECCV,而欧洲人大都认为ICCV/ECCV略好于CVPR。

    笔者就个人经验浅谈三会异同, 以供大家参考和讨论. 三者乃cv领域的旗舰和风向标,其oral paper (包括best paper) 代表当年度cv的最高水准, 在此引用Harry Shum的一句话, 想知道某个领域在做些什么, 找最近几年此领域的proceeding看看就知道了. ICCV/CVPR由IEEE Computer Society牵头组织, ECCV好像没有专门负责的组织. CVPR每年(除2002年)都在美国开, ECCV每两年开一次,仅限欧洲, ICCV也是每两年一次, 各洲轮值. 基本可以保证每年有两个会议开, 这样研究者就有两次跻身牛会的机会.

    2.2 其他会议

    • 机器学习顶级会议:NIPS, ICML, UAI, AISTATS; (期刊:JMLR, ML, Trends in ML, IEEE T-NN)
    • 计算机视觉和图像识别:ICCV, CVPR, ECCV; (期刊:IEEE T-PAMI, IJCV, IEEE T-IP)
    • 人工智能:IJCAI, AAAI; (期刊AI)
    • 另外相关的还有SIGRAPH, KDD, ACL, SIGIR, WWW等。

    特别是,如果做机器学习,必须地,把近4年的NIPS, ICML翻几遍;如果做计算机视觉,要把近4年的ICCV, CVPR, NIPS, ICML翻几遍。

    3 论文下载

    以上期刊很多论文都可以在网上免费下载,在CV方面如:CVPapersNIPSJMLR(期刊)COLT和ICML(每年度的官网)

    参考文献

    展开全文
  • 计算机视觉新手指南

    千次阅读 2020-04-23 12:39:44
    使计算机或手机等机器看到周围环境的现象称为计算机视觉。机器仿生人眼的研究工作可以追溯到50年代,从那时起,我们已经走了很长一段路。计算机视觉技术已经通过不同的电子商务领域以及相机应用程序进入了我们的手机...

    通过机器的眼睛去探索

    • 如果我们想让机器学会思考,就需要教他们学会如何用视觉去看周围环境。—— 斯坦福大学AI实验室和斯坦福视觉实验室主任李飞飞

    使计算机或手机等机器看到周围环境的现象称为计算机视觉。机器仿生人眼的研究工作可以追溯到50年代,从那时起,我们已经走了很长一段路。计算机视觉技术已经通过不同的电子商务领域以及相机应用程序进入了我们的手机。 想一想当机器能够像人眼一样准确地看到周围环境时,机器还有什么是不可以做的。人眼是一个复杂的结构,它可以理解复杂的环境现象。同样的,可以让机器能够看到事物并使其具有足够的能力去理解它们所看到的内容,从而进一步对其进行分类,这项工作仍然是非常艰巨。 使用计算机视觉等效其准确性几乎与人眼相同的情况下,可以在眨眼间就进行数百万次计算。这不仅涉及到将图片转换为像素,还包括尝试通过这些像素去了解图片中的内容,接下来你将首先来了解如何从这些像素中提取信息并理解其代表的内容。

    那么,让我们了解一下机器如何去看(像人眼一样)? A. 用数字表示颜色:在计算机科学中,每种颜色都由指定的十六进制值来表示。机器通过这种编码方式,来了解图像像素是由什么颜色组成的。而作为人类,我们天生就拥有基因来区分不同色调。

    B. 图像分割:使计算机识别出相似的颜色组,然后分割图像,即将前景与背景区分开。颜色渐变技术被用来查找不同对象的边缘。

    C. 查找角点:分割后,查找图像中的某些特征,也称为角点(corners)。简而言之,算法会搜索以一定角度相交的线,并以一种颜色的阴影覆盖图像的特定部分。角点(也称为特征)构建基块,可帮助查找图像中包含的更详细信息。

    D. 查找纹理:确定图像中的纹理是正确识别图像的另一个重要因素。两个对象之间的纹理差异使机器正确地对对象进行更容易地分类。

    E. 做出猜测:执行上述步骤后,机器需要做出接近正确值的预测或者推断,并将图像与数据库中存在的图像进行匹配。 F. 最后,看大图!最后,一台机器会看到更大、更清晰的画面,并根据所提供的算法指令检查是否正确地识别了该画面。在过去的几年中,准确性得到了很大的提高,但是当机器被要求处理带有混合物体的图像时,机器仍然会犯错误。

    拥有计算机视觉研究小组的大学:

    美国大学

    卡内基梅隆大学机器人学院 加州大学洛杉矶分校 北卡罗来纳大学教堂山分校 华盛顿大学 加州大学伯克利分校 斯坦福大学 麻省理工学院 康奈尔大学 宾夕法尼亚大学 加州大学尔湾分校 哥伦比亚大学 伊利诺伊大学香槟分校 南加州大学 密西根大学 普林斯顿大学 罗切斯特大学 德克萨斯大学奥斯汀分校 马里兰大学学院公园 布朗大学 中央佛罗里达大学 纽约大学 密西根州立大学 麻省大学,阿默斯特 西北大学 加州大学圣地亚哥分校

    加拿大的大学:

    艾伯塔大学 多伦多大学 不列颠哥伦比亚大学 西蒙弗雷泽大学

    欧洲大学:

    INRIA法国 牛津大学 苏黎世联邦理工学院 德国马克斯·普朗克研究所 爱丁堡大学 萨里大学 弗莱堡大学 瑞典KTH 德累斯顿大学 达姆施塔特工业大学 瑞士EPFL 鲁汶大学 巴塞罗那计算机视觉中心 瑞士IDIAP 伦敦帝国理工学院 海德堡国际机场 曼彻斯特大学 波恩大学 亚琛工业大学 阿姆斯特丹大学 慕尼黑工业大学 捷克技术大学 剑桥大学 格拉茨 IST奥地利 伦敦玛丽皇后大学 苏黎世大学 代尔夫特大学 利兹大学 伯尔尼大学 隆德大学 意大利特伦托大学 意大利佛罗伦萨大学 斯图加特大学 萨尔大学 巴黎中央学校 巴黎理工学院 奥卢大学 卡尔斯鲁厄理工学院

    如果你是计算机视觉领域的新手,可以在下面找到一系列初学者需要了解的基础知识点。

    A.初学者水平 数学:

    图像处理:

    B.高级水平

    要获得有关理论和技术(尤其是算法)的实践知识,请从计算机视觉的角度开始学习OpenCV:

    提示:使用C,C ++,Python进行编程时,我们使用OpenCV库进行计算机视觉的相关实践任务。在MATLAB中进行编程时,我们使用计算机视觉系统工具箱(https://in.mathworks.com/products/computer-vision.html?s_tid=gn_loc_drop) 。 同样,如果你使用其他语言编程,则还需要更多的开源库。

    你还应该了解领域中科学研究的关键工作,在这里你可以从中学习它们:

    必读书籍清单包括:

    入门级:

    1. 计算机视觉:算法与应用
    2. 计算机视觉:现代方法David A. Forsyth,Jean Ponce
    3. 计算机视觉中的多视图几何。作者:Richard Hartley,Andrew Zisserman

    高级水平—走向深度学习

    1. Michael Nielsen的“神经网络和深度学习”在线书;这是一个非常棒而温和的介绍:神经网络和深度学习
    2. Ian Goodfellow,Yoshua Bengio和Aaron Courville撰写的深度学习书

    当机器可以感觉到你的情绪时会发生什么?点击链接观看视频 https://youtu.be/QFk3e5PcK7s

    TED观看演讲:

    1. 李飞飞:我们如何教计算机理解图片
    2. BlaiseAgüera和Arcas:PhotoSynth如何连接世界图像
    3. 浅川千惠子:新技术如何帮助盲人探索世界
    4. 詹妮弗·希利:如果汽车可以说话,则事故可以避免
    5. 戈兰·莱文(Golan Levin):回望你的艺术
    6. Paul Debevec:制作真实照片的数字脸动画
    7. 戈兰·莱文:软件艺术

    在线课程:

    入门级:

    高级水平—走向深度学习

    讲座课程:

    全球项目

    a. 微软计算机科学家和研究人员正在努力“解决”癌症

    另一种让你自己了解计算机视觉领域正在进行的研究的方法是跟随作者并阅读他们在顶级会议上的论文,如CVPR、ICCV、ECCV、BMVC。

    与专家的对话

    以下交谈摘录是我与两位对计算机视觉领域充满热情的专家交谈的。

    与Devi Parikh教授的对话| Facebook AI Research的客座研究员| 佐治亚理工学院(以前是弗吉尼亚理工学院)助理教授

    计算机视觉是人工智能的一个子领域,其目标是构建可复制人脑视觉的智能计算机。机器学习是教机器学习的通用术语,但是计算机视觉专门处理视觉数据。在机器学习中,我们更多地使用了统计工具,而计算机视觉同时使用了统计工具和非统计工具。例如,计算机视觉领域的3D重建任务中使用机器学习工具的频率要比图像分类和对象识别等技术要低。许多计算机视觉任务都有其自己的需求,我们为此开发了特定的机器学习工具。 对于任何想开始学习该领域的学生,我建议他们通过研究人员的网页来选择他们感兴趣的问题来学习。大多数情况下,人们都在研究最前沿的问题,这些问题可以从该网页获得可用的标准数据集。他们可以选择一个研究问题,一个数据集以及一个他们可能想使用的库,然后动手去做。 在攻读硕士或博士学位的学生,我通常会去寻找有责任心,积极性和决心的来作为我的学生。为了使你的基本概念清晰明了,可以尝试阅读研究论文,尝试了解全世界研究人员正在研究的AI前沿问题。

    B.与Richa Agrawal的对话 | 宾夕法尼亚大学校友| Whodat的计算机视觉研究工程师

    我毕业于斋浦尔MNIT,在那学习期间,我与Robotics研究组取得了联系,我们合作实现了一些项目,然后参加IIT Roorkee的国家级比赛并赢得了比赛,这段经验极大地鼓舞了我。完成学士学位后,我开始在Yahoo工作,我意识到这不是我想要做的事,因此去了宾夕法尼亚大学攻读硕士学位。攻读硕士学位的这段时间,我通过学习不同的课程探索了不同的研究领域,并最终决定将计算机视觉作为我的主要研究方向。毕业后,我在美国的一家初创公司工作,并希望在印度寻找计算机视觉的就业机会。在Whodat(一家基于Bangalore的计算机视觉初创公司)中,我们使用增强现实和可视化技术对图像进行研究处理。比如,你打算为自己的房屋购买家具,你针对家庭的布局环境去商店后选择了一家家具店,但在家具交付后,常常会出现家具太大或太小的问题,现在没有什么技术可以解决该问题。我们正在尝试通过构建一个解决方案来帮助你,该解决方案可以使商店的家具在你家中进行可视化布置。这将使你能够做出更好的决定,并轻松地购买物品。 在学习时,很多时候我无法尽力而为,经常感到沮丧,但后来朋友的建议来了。他告诉我-“只有少数人(不到0.1%)能够做到这一点(在国外读硕士和在计算机视觉等技术领域有如此研究),并且而你正是其中之一。而且你如果加倍努力,你自己可以做到其它人做不到的东西。

    对于学生入门的一些建议,在与其他学院同龄人的交谈之后,我建议你参加比赛和黑客马拉松。重要的是要找到自己的兴趣,而不是在自己不喜欢的地方工作。例如,计算机视觉在印度是一个广阔的领域,在印度有广阔的发展空间,在这个领域,你所需要的只是一架已经开始渗透到更小的城市的相机。因此,计算机视觉的未来绝对是光明的。

    原文链接:https://medium.com/readers-writers-digest/beginners-guide-to-computer-vision-23606224b720

    欢迎关注磐创AI博客站: http://panchuang.net/

    OpenCV中文官方文档: http://woshicver.com/

    欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/

    展开全文
  • 计算机视觉方向简介 | 图像拼接

    千次阅读 2019-07-15 18:05:22
    计算机视觉方向简介 | 图像拼接

    作者戴金艳,公众号:计算机视觉life, 编辑部成员.首发原文链接计算机视觉方向简介 | 图像拼接

    简介

    图像拼接是将同一场景的多个重叠图像拼接成较大的图像的一种方法,在医学成像、计算机视觉、卫星数据、军事目标自动识别等领域具有重要意义。图像拼接的输出是两个输入图像的并集。通常用到五个步骤:

    265.png

    特征提取 Feature Extraction:在所有输入图像中检测特征点图像配准 Image Registration:建立了图像之间的几何对应关系,使它们可以在一个共同的参照系中进行变换、比较和分析。大致可以分为以下几个类

    1. 直接使用图像的像素值的算法,例如,correlation methods
    2. 在频域处理的算法,例如,基于快速傅里叶变换(FFT-based)方法;
    3. 低水平特征的算法low level features,通常用到边缘和角点,例如,基于特征的方法,
    4. 高水平特征的算法high-level features,通常用到图像物体重叠部分,特征关系,例如,图论方法(Graph-theoretic methods)

    图像变形 Warping:图像变形是指将其中一幅图像的图像重投影,并将图像放置在更大的画布上。图像融合 Blending图像融合是通过改变边界附近的图像灰度级,去除这些缝隙,创建混合图像,从而在图像之间实现平滑过渡。混合模式(Blend modes)用于将两层融合到一起。

    特征点提取

    特征是要匹配的两个输入图像中的元素,它们是在图像块的内部。这些图像块是图像中的像素组。对输入图像进行Patch匹配。具体解释如下: 如下图所示,fig1和fig2给出了一个很好的patch匹配,因为fig2中有一个patch看起来和fig1中的patch非常相似。当我们考虑到fig3和fig4时,这里的patch并不匹配,因为fig4中有很多类似的patch,它们看起来与fig3中的patch很相似。由于像素强度很相近,所以无法进行精确的特征匹配,为了给图像对提供更好的特征匹配,采用角点匹配,进行定量测量。角点是很好的匹配特性。在视点变化时,角点特征是稳定的。此外,角点的邻域具有强度突变。利用角点检测算法对图像进行角点检测。角点检测算法有Harris角点检测算法、SIFT特征点检测算法((Scale Invariant Feature Transform),FAST算法角点检测算法,SURF特征点检测算法(Speeded-up robust feature)

    Harris角点检测算法

    Harris算法是一种基于Moravec算法的点特征提取算法。1988年C. Harris 和 M.J Stephens设计了一种图像局部检测窗口。通过在不同的方向上移动少量窗口,可以确定强度的平均变化。我们可以通过观察小窗口内的强度值很容易地识别角点。在移动窗口时,平坦区域在所有方向上均不会显示强度的变化。边缘区域在沿边缘方向强度不会发生变化。对于角点,则在各个方向上产生显著强度变化。Harris角点探测器给出了一种检测平坦区域、边缘和角点的数学方法。Harris检测的特征较多,具有旋转不变性和尺度变异性。位移$[u, v]$下的强度变化:$$E(u,v)=∑_{x,y}w(x,y)[I(x u,y v)−I(x,y)]^2$$其中,$w(x,y)$是窗口函数,$I(x u,y v)$是移动后的强度,$I(x,y)$是单个像素位置的强度。

    Harris角点检测算法如下:

    1. 对图像中的每个像素点$(x,y)$计算自相关矩阵$M$(autocorrelation matrix M):
      $$M=sum{x,y} begin{bmatrix}I{x}^{2} & I{x}I{y}\ I{x}I{y} & I{y}^{2}end{bmatrix}$$其中$I{x},I_{y}$是$I(x,y)$的偏导数
    2. 对图像中的每个像素点做高斯滤波,获得新的矩阵$M$,离散二维零均值高斯函数为$$Gauss = exp(-u^2 v^2)/2delta^2$$
    3. 计算每个像素点(x,y)的角点度量,得到$$R=Det(M)-k*trace(M)$$,$k$ 的范围是$0.04≤k≤0.06$。
    4. 选择局部最大值点。Harris方法认为特征点与局部最大兴趣点的像素值对应。
    5. 设置阈值T,检测角点。如果 $R$ 的局部最大值高于阈值$T$,那么此点为角点。

    SIFT角点检测算法

    SIFT算法是尺度不变的特征点检测算法,可用于识别其他图像中的相似目标。SIFT的图像特征表示为关键点描述符(key-point-descriptors)。在检查图像匹配时,将两组关键点描述符作为输入提供给最近邻搜索(Nearest Neighbor Search,NNS),并生成一个紧密匹配的关键点描述符(matching key-point-descriptors)。

    Blog_1-s2.0-S1047320315002059-gr5.jpgSIFT的计算分为四个阶段:

    1. 尺度空间构造(Scale-space construction)
    2. 尺度空间极值检测(Scale-space extrema detection)
    3. 关键点定位(key-point localization)
    4. 方向分配(orientation assignment)和关键点描述符定义(defining key-point descriptors)

    第一阶段确定潜在的兴趣点。它利用高斯函数的差分(difference of Gaussian function,DOG)搜索所有尺度和图像位置。第一阶段中发现的所有兴趣点的location和scale是确定的。根据关键点的稳定性来选择关键点。一个稳定的关键点能够抵抗图像失真。在方向分配环节,SIFT算法计算稳定关键点周围梯度的方向。根据局部图像梯度方向,为每个关键点分配一个或多个方向。对于一组输入帧,SIFT提取特征。图像匹配使用Best Bin First(BBF)算法来估计输入帧之间的初始匹配点。为了去除不属于重叠区域的不需要的角,使用RANSAC算法。它删除图像对中的错误匹配。通过定义帧的大小、长度和宽度来实现帧的重投影。最后进行拼接,得到最终的输出拼接图像。在拼接时,检查场景每帧中的每个像素是否属于扭曲的第二帧。如果是,则为该像素分配来自第一帧的对应像素的值。SIFT算法既具有旋转不变性,又具有尺度不变性。SIFT非常适合于高分辨率图像中的目标检测。它是一种鲁棒的图像比较算法,虽然速度较慢。SIFT算法的运行时间很大,因为比较两幅图像需要更多的时间。

    FAST 算法

    FAST是Trajkovic和Hedley在1998年创建的角点检测算法。对于FAST,角点的检测优于边缘检测,因为角点有二维强度变化,容易从邻近点中区分出来。适用于实时图像处理应用程序。

    FAST角点探测器应该满足以下要求

    1. 检测到的位置要一致,对噪声变化不敏感,对同一场景的多幅图像不能移动。
    2. 准确;检测到的角点应该尽可能接近正确的位置。
    3. 速度;角落探测器应该足够快。

    原理:首先围绕一个候选角点选择16个像素点。如果其中有n(n一般为12)个连续的像素都比候选角点加上一个阈值要高,或者比候选角点减去一个阈值要低,那么此点即为角点(如图4所示)为了加快FAST算法的速度,通常会使用角点响应函数( corner response function, CRF)。该函数根据局部邻域的图像强度给出角点强度的数值。对图像进行CRF计算,并将CRF的局部最大值作为角点,采用多网格(multi-grid)技术提高了算法的计算速度,并对检测到的假角点进行了抑制。FAST是一种精确、快速的算法,具有良好的定位(位置精度)和较高的点可靠性。FAST的角点检测的算法难点在于最佳阈值的选择。

    SURF算法

    Speed-up Robust Feature(SURF)角点探测器采用三个特征检测步骤;检测(Detection)、描述(Description)、匹配(Matching),SURF通过考虑被检测点的质量,加快了位移的检测过程。它更注重加快匹配步骤。使用Hessian矩阵和低维描述符来显著提高匹配速度。SURF在计算机视觉社区中得到了广泛的应用。SURF在不变特征定位上十分有效和鲁棒

    图像配准

    在特征点被检测出来之后,我们需要以某种方式将它们关联起来,可以通过NCC或者SDD(Sum of Squared Difference)方法来确定其对应关系。

    归一化互相关(normalized cross correlation,NCC)

    互相关的工作原理是分析第一幅图像中每个点周围的像素窗口,并将它们与第二幅图像中每个点周围的像素窗口关联起来。将双向相关性最大的点作为对应的对。

    基于图像强度值计算在两个图像中的每个位移(shifts)的“窗口”之间的相似性

    $$NCC(u)=frac{sumi[I1(xi)-bar{I1}][I_2(x_i u)-bar{I_2}] }{sqrt{sum_i[I_1(x_i)-bar{I_1}]^2[I_2(x_i u)-bar{I_2}]^2} }$$其中,$bar{I1},bar{I2}是窗口的平均值图像$$bar{I1}=frac{1}{N}sum i I1(xi)$$bar{I2}=frac{1}{N}sum i I2(xi u)$$I1(x,y)$和$I2(x,y)$分别是两张图片。$xi=(xi,y_i)$ 是窗口的像素坐标,$u=(u,v)$ 是通过NCC系数计算出的位移或偏移。NCC系数的范围为$[-1,1]$。 NCC峰值相对应的位移参数表示两个图像之间的几何变换。此方法的优点是计算简单,但是速度特别慢。此外,此类算法要求源图像之间必须有显著的重叠。

    互信息(Mutual Information, MI)

    互信息测量基于两个图像之间共享信息数量的相似性。

    两个图像$I1(X,Y)$与$I2(X,Y)$之间的MI以熵表示:

    $$MI(I1,I2)=E(I1) E(I2)−E(I1,I2)$$其中,$E(I1)$ 和$E(I2)$分别是$I1(x,y)$和$I2(x,y)$的熵。$E(I1,I2)$表示两个图像之间的联合熵。$$E(I1)=−∑gp{I1}(g)log(p{I1}(g))$$$g$是$I1(x,y)$可能的灰度值,$p{I1}(g)$是$g$的概率分布函数$$E(I1,I2)=−∑{g,h}p{I1,I2}(g,h)log(p{I1,I_2}(g,h))$$

    然而,从图中我们可以看到,许多点被错误地关联在一起。1093303-20170822154344449-509144423.png

    计算单应矩阵

    单应矩阵估计是图像拼接的第三步。在单应矩阵估计中,不属于重叠区域的不需要的角被删除。采用RANSAC算法进行单应。

    随机样本一致算法RANSAC(random sample consensus)

    RANSAC算法从可能含有异常值的观测数据集中拟合数学模型,是一种鲁棒参数估计的迭代方法。该算法是不确定性的,因为它只在一定的概率下产生一个合理的结果,随着执行更多的迭代,这个概率会增加。RANSAC算法用于在存在大量可用数据外行的情况下以鲁棒的方式拟合模型。RANSAC算法在计算机视觉中有许多应用。20190610124718901.png

    RANSAC原理

    从数据集中随机选取一组数据并认为是有效数据(内点)来确定待定参数模型,以此模型测试数据集中的所有数据,满足该模型的数据成为内点,反之为外点(通常为噪声、错误测量或不正确数据的点),迭代执行,直到某一个参数模型得到的内点数最大,则该模型为最优模型。考虑如下假设:

    1. 参数可以从N个数据项中估计。
    2. 可用的数据项总共是M。
    3. 随机选择的数据项成为好模型的一部分的概率为$P_g$。
    4. 如果存在一个很好的拟合,那么算法在没有找到一个很好的拟合的情况下退出的概率是$P_{fail}$。

    RANSAC步骤

    1. 随机选取N个数据(3个点对)
    2. 估计参数x(计算变换矩阵H)
    3. 根于使用者设定的阈值,找到M中合适该模型向量x的的数据对总数量K( 计算每个匹配点经过变换矩阵后到对应匹配点的距离,根据预先设定的阈值将匹配点集合分为内点和外点,如果内点足够多,则H足够合理,用所有内点重新估计H)。
    4. 如果符合的数量K足够大,则接受该模型并退出
    5. 重复1-4步骤 L次
    6. 到这一步退出

    K有多大取决于我们认为属于合适结构的数据的百分比以及图像中有多少结构。如果存在多个结构,则在成功拟合后,删除拟合数据并重做RANSAC。

    迭代次数L可以用如下公式计算:$P_{fail} = L连续失败的概率$$P_{fail}=(给定试验失败的概率)L$$P_{fail}=(1 - 给定试验成功的概率)L$$P_{fail}=(1-(随机数据项符合模型的概率)N)L$$P_{fail}=(1-(Pg)^N)^L$$L = log(P_{fail})/log(1-(Pg)N)$

    优点:可以robust地估计模型参数缺点:迭代次数无上限,设置的迭代次数会影响算法时间复杂度和精确程度,并且需要预设阈值

    在执行RANSAC之后,我们只能在图像中看到正确的匹配,因为RANSAC找到了一个与大多数点相关的单应矩阵,并将不正确的匹配作为异常值丢弃

    单应矩阵(Homography)

    有了两组相关点,接下来就需要建立两组点的转换关系,也就是图像变换关系。单应性是两个空间之间的映射,常用于表示同一场景的两个图像之间的对应关系,可以匹配大部分相关的特征点,并且能实现图像投影,使一张图通过投影和另一张图实现大面积的重合。

    设2个图像的匹配点分别是$X=[x,y]^T$,$X'=[x',y']^T$,则必须满足公式:$$X'=HX$$且由于两向量共线,所以$$X'times HX = 0$$其中,$H$ 为8参数的变换矩阵,可知四点确定一个H$$begin{pmatrix}x' \y'\1 end{pmatrix} =begin{pmatrix}h{11} & h{12} & h_{13}\h{21} & h{22} & h_{23}\h{31} & h{32} & 1end{pmatrix}begin{pmatrix}x\y\1\end{pmatrix} $$

    令 $$h =(h11:h12:h13:h21:h22:h23:h31:h32:h33)T$$则有$$Bh=0$$N个点对给出2N个线性约束。$$underset{h}{min}║Bh║^2 ,║h║ = 1$$用RANSAC方法估算H:

    1. 首先检测两边图像的角点
    2. 在角点之间应用方差归一化相关,收集相关性足够高的对,形成一组候选匹配。
    3. 选择四个点,计算H
    4. 选择与单应性一致的配对。如果对于某些阈值:Dist(Hp、q) <ε,则点对(p, q)被认为与单应性H一致
    5. 重复34步,直到足够多的点对满足H
    6. 使用所有满足条件的点对,通过公式重新计算H

    图像变形和融合

    最后一步是将所有输入图像变形并融合到一个符合的输出图像中。基本上,我们可以简单地将所有输入的图像变形到一个平面上,这个平面名为复合全景平面。

    图像变形步骤

    1. 首先计算每个输入图像的变形图像坐标范围,得到输出图像大小,可以很容易地通过映射每个源图像的四个角并且计算坐标(x,y)的最小值和最大值确定输出图像的大小。最后,需要计算指定参考图像原点相对于输出全景图的偏移量的偏移量xoffset和偏移量yoffset。
    2. 下一步是使用上面所述的反向变形,将每个输入图像的像素映射到参考图像定义的平面上,分别执行点的正向变形和反向变形。

    1093303-20170822154403277-379911836.png平滑过渡(transition smoothing)图像融合方法包括 羽化(feathering), 金字塔(pyramid), 梯度(gradient)

    图形融合

    最后一步是在重叠区域融合像素颜色,以避免接缝。最简单的可用形式是使用羽化(feathering),它使用加权平均颜色值融合重叠的像素。我们通常使用alpha因子,通常称为alpha通道,它在中心像素处的值为1,在与边界像素线性递减后变为0。当输出拼接图像中至少有两幅重叠图像时,我们将使用如下的alpha值来计算其中一个像素处的颜色:假设两个图像 $I1,I2$,在输出图像中重叠;每个像素点$(x,y)$在图像$I_i(x,y)=(alpha iR,alpha iG,alpha iB,alpha j,)$,其中(R,G,B)是像素的颜色值,我们将在缝合后的输出图像中计算(x, y)的像素值:$$ [(α1R, α1G, α1B, α1) (α2R, α2G, α2B, α2)]/(α1 α2)$$.

    1093303-20170822154425449-1866547572.png7.png

    小结

    上述内容对一些常用的算法进行了简单的概述。Harris角点检测方法具有鲁棒性和旋转不变性。然而,它是尺度变化的。FAST算法具有旋转不变性和尺度不变性,且具有较好的执行时间。但是当有噪声存在时,它的性能很差。SIFT算法具有旋转不变性和尺度不变性,并且在有噪声情况下更有效。它具有非常明显的特征。然而,它受到光照变化的影响。该算法在执行时间和光照不变性方面具有较好的性能。

    参考

    1. OpenCV探索之路(二十四)图像拼接和图像融合技术
    2. Debabrata Ghosh,Naima Kaabouch. A survey on image mosaicing techniques[J]. Journal of Visual Communication and Image Representation,2016,34.[地址](http://ijarcet.org/wp-content/uploads/IJARCET-VOL-2-ISSUE-2-365-369.pdf)
    3. 图像拼接综述
    展开全文
  • 目标检测是计算机视觉和数字图像处理的一个热门方向,广泛应用于机器人导航、智能视频监控、工业检测、航空航天等诸多领域,通过计算机视觉减少对人力资本的消耗,具有重要的现实意义。因此,目标检测也就成为了近年...
  • 讲真在计算机这个庞大的体系下挑选出一个方向来确实蛮难,自己挑来挑去,有种乱花渐欲迷人眼的感觉,不过就目前自己的兴趣、性格和学习能力,远景规划来看,计算机视觉这个方向目前来看对我自己来说确实是一个十分...
  • 计算机视觉方向数据集(转)

    千次阅读 2018-08-20 15:35:55
     ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是美国斯坦福的计算机科学家李飞飞模拟人类的识别系统建立的。能够从图片识别物体。目前已经包含14197122张图像,是已知的最大的图像...
  • 计算机视觉(Computer Vision,简称CV)方向是一个非常有前途的方向,有关CV的会议和期刊因此也有很多,这里我介绍三个CV方向的顶级会议和两个顶级期刊。 CV方向的顶级会议包括国际计算机视觉大会(IEEE ...
  • 计算机视觉入门系列(一) 综述

    万次阅读 多人点赞 2020-12-16 04:42:36
    因此准备写一个计算机视觉方面的入门文章,一来是时间长了以后为了巩固和温习一下所学,另一方面也希望能给入门的同学们介绍一些经验,还有自然是希望各位牛人能够批评指正不吝赐教。由于临近大四毕业,更新的时间...
  • 计算机视觉方向好的博客整理

    千次阅读 2013-07-01 10:59:19
    提示:本文为笔者原创,转载请注明出处:blog.csdn.net/carson2005 以下链接是本人整理的关于计算机视觉(ComputerVision, CV)相关领域的网站链接,其中有CV牛人的主页,CV研究小组的主页,CV领域的paper,代码,CV...
  • 计算机视觉入门

    万次阅读 多人点赞 2018-05-18 21:42:00
    目录简介方向热点简介计算机视觉(Computer Vision)又称为机器视觉(Machine Vision),顾名思义是一门“教”会计算机如何去“看”世界的学科。在机器学习大热的前景之下,计算机视觉与自然语言处理(Natural ...
  • 计算机视觉方向简介 | 从全景图恢复三维结构 计算机视觉方向简介 | 阵列相机立体全景拼接 计算机视觉方向简介 | 单目微运动生成深度图 计算机视觉方向简介 | 深度相机室内实时稠密三维重建 计算机视觉方向简介 |...
  • 【AI白身境】计算机视觉都有哪些研究方向

    万次阅读 多人点赞 2019-03-01 07:22:52
    【AI白身境】一文览尽计算机视觉研究方向 今天是专栏《AI白身境》的第10篇,所谓白身,就是什么都不会,还没有进入角色。 相信看了前面的几篇文章后很多朋友已经等不及快速入行了,今天就来介绍一下计算机视觉的...
  • 最新计算机视觉学习路线教程

    千次阅读 2020-05-12 15:14:53
    这篇文章主要是基于我自己的经验,侧重于计算机视觉学习资源的介绍,如果大家按照这个路线去学,相信这将在很大程度上促进提高你的计算机视觉知识水平。 在开始学习计算机视觉之前,我们先来了解有关机器学习和...
  • 计算机视觉基本研究方向

    千次阅读 2013-10-29 10:27:36
    图像显著性是图像中重要的视觉特征,体现了人眼对图像的某些区域的重视程度 自从1998年Itti的工作以来,产生了大量的显著性映射方法,图像显著性也广泛应用于图像压缩、编码、图像边缘和区域加强、显著性目标分割和...
  • 计算机视觉如何入门

    万次阅读 多人点赞 2017-12-23 19:54:56
    这里有你要入门计算机视觉,需要了解的一些基础知识、参考书籍、公开课。 当前计算机视觉作为人工智能的一个分支,它不可避免的要跟深度学习做结合,而深度学习也可以说是融合到了计算机视觉、图像处理,包括我们说...
  • 如何学习计算机视觉

    万次阅读 多人点赞 2017-12-22 19:07:50
    (有关计算机视觉入门的其它只是,可以阅读另一篇文章计算机视觉入门必读)这两年,计算机视觉似乎火了起来,计算机视觉的黄金时代真的到来了吗?生物医学、机械自动化、土木建筑等好多专业的学生都开始研究其在各自...
  • 主要区分:图像分类、目标检测、语义分割、实例分割、全景分割
  • 计算机视觉中的Transformer

    千次阅读 多人点赞 2021-01-14 15:12:44
    导读 将Transformer应用到CV任务中现在越来越多了,这里整理了一些相关的进展给...随着出现了越来越高效的结构,计算机视觉和自然语言处理越来越收敛到一起,使用Transformer来完成视觉任务成为了一个的研究方向,.
  • 计算机视觉前沿技术探索

    千次阅读 2018-11-24 09:10:29
    计算机视觉前沿技术探索   摘要:计算机视觉与最前沿技术如何结合? 计算机视觉软件正在改变行业,使用户的生活变得不仅更容易,而且更有趣。作为一个有潜力的领域,计算机视觉已经获得了大量的投资。北美计算机...
  • 最新计算机视觉动态哪里看?

    千次阅读 2018-08-19 14:25:58
    会议论文比期刊论文更重要的原因是:(1)因为机器学习、计算机视觉和人工智能领域发展非常迅速,的工作层出不穷,如果把论文投到期刊上,一两年后刊出时就有点out了。因此大部分最新的工作都首先发表在顶级会议上...
  • 计算机视觉入门指南

    千次阅读 多人点赞 2019-11-13 18:47:28
    首先简单自我介绍一下,本科渣211,目前某985研一在读,做的是计算机视觉(CV)方向,目前CV方向人数过于饱和,找工作已是神仙打架,如果学不精很容易成为半吊子,对于即将入坑的童鞋们,还是劝大家慎重哦,不过对于...
  • 计算机视觉

    千次阅读 2015-11-09 22:32:35
    计算机视觉】Canny Edge边缘检测器 2013年10月13日机器学习计算机视觉smallroof 引言  Canny提出一种的边缘检测方法[1][2],它对受白噪声影响的阶跃型边缘是最优的。整个Canny边缘检测器算法分成四...
  • 计算机视觉综述

    千次阅读 2018-05-03 14:39:45
    因此准备写一个计算机视觉方面的入门文章,一来是时间长了以后为了巩固和温习一下所学,另一方面也希望能给入门的同学们介绍一些经验,还有自然是希望各位牛人能够批评指正不吝赐教。由于临近大四毕业,更新的时间...
  • 点击上方“3D视觉工坊”,选择“星标”干货第一时间送达整理:3D视觉工坊 | 来源:知乎https://www.zhihu.com/question/330153893/answer/1...
  • CV:人工智能之计算机视觉方向的简介(CV发展史+常用数据集+CV职位)、传统方法对比CNN类算法、计算机视觉八大应用(知识导图+经典案例)之详细攻略 目录 计算机视觉方向的简介 1、计算机视觉的研究方向 1.1、...
  • 人体骨骼关键点检测是计算机视觉的基础性算法之一,在计算机视觉的其他相关领域的研究中都起到了基础性的作用,如行为识别、人物跟踪、步态识别等相关领域。具体应用主要集中在智能视频监控,病人监护系统,人机交互...
  • 计算机视觉""范式: Transformer

    千次阅读 2020-10-16 21:01:00
    而Transformer在CV领域反响平平,一度认为不适合CV领域,直到最近计算机视觉领域出来几篇Transformer文章,性能直逼CNN的SOTA,给予了计算机视觉领域的想象空间。 本文不拘泥于Transformer原理和细节实现(知乎有很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,232
精华内容 22,892
关键字:

计算机视觉新方向