2019-09-05 17:19:53 Wing_Ming 阅读数 195
  • 基于深度学习的计算机视觉: 原理与实践 (下部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    1798 人正在学习 去看看 白勇

深度学习在图像处理领域中的应用综述》部分概念解读:

1.特征表达/提取方法->特征学习

图像特征是指图像的原始特性或属性,可以分为视觉特征或统计特征。视觉特征主要是人的视觉直觉感受的自然特征(图像的颜色、纹理和形状);统计特征是指需要通过变换或测量才能得到的人为特征(频谱、直方图等)。

常见特征提取方法:

  • LBP算法(Local Binary Patterns):一种用来描述图像局部纹理特征的算子,具有灰度不变性。

    其主要思想是在目标像素周围定义一个3x3的窗口,以目标像素为阈值,将相邻的8个像素的灰度值与目标像素进行对比,大于目标像素标记为1,小于等于则标记为0。每个窗口都可以产生一个8位的二进制数,这样就得到了目标像素的LBP值。然后计算每个区域的直方图,然后对该直方图进行归一化处理。最后将得到的每个区域的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量。然后便可利用SVM或者其他机器学习算法进行分类。

  • HOG特征提取算法(Histogram of Oriented Gradient):在一幅图像中,图像的表象和形状能够被边缘或梯度的方向密度分布很好的表示,具有几何和光学不变性。

    其主要思想是将图像灰度化,采用Gamma校正法对输入图像进行颜色空间的标准化以调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;计算图像每个像素的梯度,将图像划分成小区域,统计每个区域的梯度直方图,将每几个区域组成一个批次,一个批次内所有区域的特征串联起来便得到该批次的HOG特征。将图像内的所有批次的HOG特征串联起来就可以得到该图像的HOG特征。这个就是最终的可供分类使用的特征向量了。

  • SIFT算子(Scale-invariant feature transform):通过求一幅图中的特征点及其有关尺寸和方向的描述子得到特征并进行图像特征点匹配,具有尺度不变性和旋转不变性。

    其主要思想是首先生成尺度空间->检测尺度空间极值点->去除不好的特征点->为每个关键点指定方向参数->生成关键点描述子->根据SIFT进行图像的匹配。

2.图像识别or图像取证

图像识别技术的过程分为信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。模式识别是指对表示事物或现象的不同形式的信息做分析和处理从而得到一个对事物或现象做出描述、辨认和分类等的过程,其主要分为三种:统计模式识别、句法模式识别、模糊模式识别。

图像取证不同于图像识别的地方在于识别是区分图像内容里的差异,肉眼可以察觉到,而取证则是区分图像中以微弱信号存在的操作指纹,类间形态的差异微乎其微,所以对于图像取证问题一般的深度学习模型不能胜任。图像取证的性质必然决定了网络输入的改变, 只有放大了想要提取的指纹特征,深度学习模型才能更好地充当一个特征提取和分类器。 

相关研究:https://blog.csdn.net/qq_35509823/article/details/86505661

3.Degradation退化

随着网络结构的加深,带来了两个问题:一是消失/爆炸梯度,导致了训练十分难收敛,这类问题能够通过正则化和归一化解决;另一个是被称为degradation的退化现象。对合适的深度模型继续增加层数,模型准确率会下滑,训练误差和测试误差都会很高。其实当BN出现之后,梯度消失和爆炸的问题已经基本上被解决了,但是网络层数加深之后还是会出现效果差的情况,ResNet主要解决的是网络的退化问题。

解释1:网络越深,反传回来的梯度相关性越来越差,最后接近白噪声。我们认为图像具有局部相关性,因此梯度应该也具有类似的相关性,这样的更新才有意义,如果接近白噪声,那其实就可以认为做随机扰动。自然效果就越来越差了。解释2:引入残差之后对参数的变化更加的敏感。原本的网络只是学习一个从输入到输出的映射,现在学习的是输入和输出之间的差值。解释3:现在我们要训练一个深层的网络,它可能过深,假设存在一个性能最强的完美网络N,与它相比我们的网络中必定有一些层是多余的,那么这些多余的层的训练目标是恒等变换,只有达到这个目标我们的网络性能才能跟N一样。对于这些需要实现恒等变换的多余的层,要拟合的目标就成了H(x)=x,在传统网络中,网络的输出目标是F(x)=x,这比较困难,而在残差网络中,拟合的目标成了x-x=0,网络的输出目标为F(x)=0,这比前者要容易得多。解释4:类似LSTM的思想,加入一个进位闸,让数据能够传到后面去,不至于由于网络越来越深,到了后面学习不到有效的特征了。所以加入一个快捷键,让数据一直往下传,让每一层都能读到有效的特征。

4.降维

计算机的图像识别技术是一个异常高维的识别技术。不管图像本身的分辨率如何,其产生的数据经常是多维性的,这给计算机的识别带来了非常大的困难。想让计算机具有高效地识别能力,最直接有效的方法就是降维。降维分为线性降维和非线性降维。常见的线性降维方法有主成分分析(PCA)/线性奇异分析(LDA),它们简单、易于理解。但是通过线性降维处理的是整体的数据集合,所求的是整个数据集合的最优低维投影。经过验证,这种线性的降维策略计算复杂度高而且占用相对较多的时间和空间,因此就产生了基于非线性降维的图像识别技术,它是一种极其有效的非线性特征提取方法。此技术可以发现图像的非线性结构而且可以在不破坏其本征结构的基础上对其进行降维,使计算机的图像识别在尽量低的维度上进行,这样就提高了识别速率。例如人脸图像识别系统所需的维数通常很高,其复杂度之高对计算机来说无疑是巨大的“灾难”。由于在高维度空间中人脸图像的不均匀分布,使得人类可以通过非线性降维技术来得到分布紧凑的人脸图像,从而提高人脸识别技术的高效性。

5.R-CNN

物体检测算法中常用到的几个概念:Bounding Box:bbox是包含物体的最小矩形,该物体应在最小矩形内部。物体检测中关于物体位置的信息输出是一组(x,y,w,h)数据,其中x,y代表着bbox的左上角或其他固定点,对应的w,h表示bbox的宽和高。一组(x,y,w,h)唯一确定一个定位框。Intersection over Union(IoU):对于两个区域R和R′,两个区域的重叠程度记为overlap。在训练网络的时候,我们常依据侯选区域和标定区域的IoU值来确定正负样本。非极大值抑制(Non-Maximum Suppression,NMS):就是把不是极大值的抑制掉,在物体检测上,就是对一个目标有多个标定框,使用极大值抑制算法滤掉多余的标定框。

R-CNN(即Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。R-CNN基于CNN,线性回归,和SVM等算法,实现目标检测技术。物体检查系统可以大致分为四步进行:
获取输入图像->提取约2000个候选区域->将候选区域输入CNN网络(候选图片需缩放)->将CNN的输出输入SVM中进行类别的判定

6.目标检测

即找出图像中所有感兴趣的目标,确定它们的位置和大小,是机器视觉领域的核心问题之一。由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的干扰,目标检测一直是机器视觉领域最具有挑战性的问题。目标检测要解决的核心问题是:目标可能出现在图像的任何位置,可能有各种不同的大小,可能有各种不同的形状。

计算机视觉中关于图像识别有四大类任务:
分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。
定位-Location:解决“在哪里?”的问题,即定位出这个目标的的位置。
检测-Detection:解决“是什么?在哪里?”的问题,即定位出这个目标的的位置并且知道目标物是什么。
分割-Segmentation:分为实例分割和场景分割,解决“每一个像素属于哪个目标物或场景”的问题。

7.四元数

四元数是用于表示旋转的一种方式,是简单的超复数,都是由实数加上三个虚数单位 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 = -1, i^0 = j^0 = k^0 = 1 , 每个四元数都是 1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bi+ cj + dk,其中a、b、c 、d是实数。

对于i、j、k本身的几何意义可以理解为一种旋转,其中i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转,j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转,k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。

2017-06-28 16:45:52 likely_zhao 阅读数 13773
  • 基于深度学习的计算机视觉: 原理与实践 (下部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    1798 人正在学习 去看看 白勇

简介

本文参考了三篇深度学习在医学图像处理中的三篇综述性的文章,旨在对于深度学习和医学图像相结合的现有情况做一个小总结,并探讨一下未来的一些发展趋势和自身的一些思考

医学影像深度学习工具

深度学习模型


在医学影像处理中使用的到的深度学习的模型框架主要有:

  • SAE(stack auto-encoder)
无监督学习方案,逐层训练,得到特征描述为主
  • RBM(restricted Boltzmann machine)
无监督学习方案,与SAE 类似
  • CNN(convolutional neural network)
卷积神经网络,使用最为广泛,可以用来提取图片特征或者直接完成分类检测等任务
  • RNN(recurrent neural network)
循环神经网络,用来获取时序上的信息,在CT等逐行扫描图像中使用
  • U-net (with a single downsampling stage)
类似于带short-cut的全卷机网络,用来融合不同尺度的图像的特征
  • FCNN(fully convolutional neural network)
全卷机网络,可以获取与原图相同分辨率的图片,常用于分割等任务
  • FRCNN(Faster Region-proposal based neural network)

一种快速的深度学习检测网络框架,分为rpn 和 rcnn 两层,用于检测图像中的多种物体

深度学习框架

  • caffe
  • tensorflow
  • torch
  • Theano

暂时没有使用到的深度学习技术

* VAE

* GAN

State of Arts


深度学习在医学图像领域的一些限制

  • 缺少高质量的标注的训练样本,因此训练出来的模型可能是过拟合的或者说推广性不好,因此需要将的到的模型放在各种情况下测试推广性[^doc3]
  • 深度学习得到的模型是一个黑盒子,无法解释其有效性,在一些特殊的情况下会出现非常奇怪无法解释的问题,因此在医疗行业中的接受度也是一个问题[^doc3]
  • 在商业系统中使用临床上的图片资料会存在法律和伦理上的问题而不使用这样的样本无法进一步的提高深度学习模型的水平[^doc3]

一些自己的思考

2D VS 3D

从文献综述来看,大部分的工作都是基于2D图像的,其实在医学图像中,CT 和 MRI都是3D的数据2D化的结果,在医疗图像处理的算法中3D重建等等也是非常重要的一大类算法,但是现有的基于3D的算法一来耗时比较高,二来并没有比基于2D的算法提高很多,使用2D还是3D是一个值得思考的问题。

Feature vs Result

从文献综述中来看,稍微久远一些的算法就是把CNN当作是一个特征提取的算子获得图像的描述特征而最新的一些方法直接将CNN的结果就作为最终的输出结果来使用, 这里喔感觉直接使用CNN的输出作为结果,会涉及到文献中所说的黑盒子的限制,可解释型一般是比较差的,而作为特征来使用解释性可能会好一些,因为后续的一些后处理中可以增加的规则类的比较多,解释性会更佳

过滤 vs 诊断

一直以来作者觉得在医疗行业中,计算机能做的最大的贡献就是帮助医生做大量医学影像的过滤工作,至于使用诊断上最多也只是一个辅助的诊断工具,而机器学习到达了深度学习的时代,有些本来以为不太可能的任务都被深度学习算法一个一个的攻克了,在未来的工作做,计算机深度学习是不是可能独立的进行本属于医生独享的诊断工作我还是不得而知,然后我们可以知道的是,技术的发展使得过滤的正确率大大的提高,极大的提高生产的效率,这一方面是肯定有助于医疗行业的,相应深度学习在医疗领域的前景还是很广阔的。








Refs:
  • A Survey on Deep Learning in Medical Image Analysis
  • Deep Learning in Medical Image Analysis
  • Deep Learning in Medical Imaging: General Overview
  • Volumetric ConvNets with Mixed Residual Connections for Automated Prostate Segmentation from 3D MR Images
  • DEEP LEARNING BASED CANCER METASTASES DETECTION
  • Proceedings of MICCAI-BRATS 2016
2019-02-17 21:23:25 honyniu 阅读数 1419
  • 基于深度学习的计算机视觉: 原理与实践 (下部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    1798 人正在学习 去看看 白勇


(这里主要是记录一下自己看论文的思路和过程,目前时间不是很充足,有些写到一半,后面有时间会继续更新)

图像局部特征

传统的特征提取和特征描述方式,比如SIFT、SURF和ORB等,需要人工去手动提取特征点,然后设计特征描述符。目前随着深度学习的发展,越来越多的工作尝试使用学习的方式来提取特征点或者是计算特征点的描述符,后面会介绍一下相关的工作。
最近有很多的相关工作,想直接获取原文链接的同学,这里整理了一些可以参考(会同步更新的):基于学习方式的图像局部特征

相关工作

GeoDesc

GeoDesc 论文详解

SuperPoint

SuperPoint 论文详解

HardNet

HardNet 论文详解

L2-Net

L2-Net 论文详解

LIFT

LIFT 论文详解

评价指标和数据集

局部特征评价指标

局部特征评价指标

HPatches

HPatches 数据集和评价指标

Brown

Brown 数据集和评价指标

总结对比

下面简单列举从14年来使用深度学习方法来提取特征点或者是计算特征点的描述符的工作。下面列举的方法的相关信息以及论文和代码链接都进行了整理,在链接可以找到。
传统方法我这里就不说明和列举了,有兴趣的可以自己去网上查询,资料很多的

提取 描述符
GeoDesc N Y
LF-Net
SIPS
DOAP
SuperPoint Y Y
AffNet
HardNet N Y
Spread-out
DeepCD
Quad-networks
L2-Net N Y
UCN
LIFT Y Y
DeepPatchMatch
DeepBit
TFeat
PN-Net
DeepDesc
DeepCompare
TILDE
MatchNet
2018-06-19 13:24:32 hanss2 阅读数 4345
  • 基于深度学习的计算机视觉: 原理与实践 (下部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    1798 人正在学习 去看看 白勇

本文很多图片显示错误,正在修复中。。。。。。


这里写图片描述

一些惨不忍睹的错误:

这里写图片描述


一点随想

事实上做深度学习的端到端映射做多了,就知道这里面新花样并不多,在网络结构上巧妙一点,或者说用多个映射来做结构上的创新,是比较常见的。(这让人想起了所谓的数据结构头脑风暴:说的是面试问题的解答不外乎是”堆”,”栈”,”队列”,”链表”的东拼西凑尝试解决,而此处的”堆”,”栈”,”队列”,”链表”变成了”CNN”,”RNN”,”LSTM”,”GAN”等等罢了。)


快速入门

我建议看如下两篇:
看图说话的AI小朋友——图像标注趣谈(上)
看图说话的AI小朋友——图像标注趣谈(下)


seq2seq模型

(这一段参考”Image Caption浅谈”)在正式介绍image caption之前,需要谈谈机器翻译领域大名鼎鼎的seq2seq模型,思考这样一个问题,在翻译的时候,不同语言表达同样意思的时候,可能长度不一致,那么翻译模型如何解决这个问题呢?

seq2seq打破了固定输入输出的模型,seq2seq模型是以编码(Encode)和解码(Decode)架构方式。Encoder通过学习输入,将其编码成一个固定大小的状态向量S,继而将S传给Decoder,Decoder再通过对状态向量S的学习来进行输出。具体实现就是用RNN(LSTM)对输入进行编码,得到固定长度的状态向量,再用RNN(LSTM)进行解码,框架如下图所示:
这里写图片描述

具体最早适用于机器翻译:
这里写图片描述

现在要谈谈什么叫注意力机制? Attention-based mechanism:

以英语-法语翻译为例,给定一对输入序列“they are watching”和输出序列“Ils regardent”,解码器在时刻1可以使用更多编码了“they are”信息的背景向量来生成“Ils”,而在时刻2可以使用更多编码了“watching”信息的背景向量来生成“regardent”。这看上去就像是在解码器的每一时刻对输入序列中不同时刻分配不同的注意力。这也是注意力机制的由来。(参考博客文章:”Seq2seq模型及注意力机制”)

这里写图片描述


各种方法图解

利用BRNN与RCNN做视觉与语言数据的对齐:

这里写图片描述

带有视觉标记的自适应 Attention 模型(Adative Attention Model with a Visual Sentinel),在每一个 time step,模型决定更依赖于图像还是 Visual Sentinel。其中,visual sentinel 存放了 decoder 已经知道的信息。

这里写图片描述

(参考“看图说话的AI小朋友”)

百度研究院的m-RNN模型,模型的输入是图像和与图像对应的标注语句(比如在上图中,这个语句就可能是a man at a giant tree in the jungle)。其输出是对于下一个单词的可能性的分布;模型在每个时间帧都有6层:分别是输入层、2个单词嵌入层,循环层,多模型层和最后的Softmax层;循环层的维度是256维,在其中进行的是对t时刻的单词表达向量w(t)t1时刻的循环层激活数据r(t1)的变换和计算,具体计算公式是:r(t)=f2(Urr(t1)+w(t))

其中,函数f2(.)ReLU,这个非线性激活函数在本专栏的CS231n笔记系列中已经详细介绍过,这里略过。而Ur是为了将r(t1)映射到和w(t)同样的向量空间中所做的变换;512维的多模型层连接着模型的语言部分和图像部分。图像部分就是上图中绿色虚线包围的部分,其本质是利用深度卷积神经网络来提取图像的特征。在该文中,使用的是大名鼎鼎的AlexNet的第七层的激活数据作为特征数据输入到多模型层,如此就得到了图像特征向量I。而语言部分就是包含了单词嵌入层和循环层;

这里写图片描述

NIC模型:2014年11月,谷歌的Vinyals等人发布了论文《Show and Tell: A Neural Image Caption Generator》,推出了NIC(Neural Image Caption)模型。

这里写图片描述

图像特征部分是换汤不换药:我们可以看见,图像经过卷积神经网络,最终还是变成了特征数据(就是特征向量)出来了。唯一的不同就是这次试用的CNN不一样了,取得第几层的激活数据不一样了,归根结底,出来的还是特征向量;但是!图像特征只在刚开始的时候输入了LSTM,后续没有输入,这点和m-RNN模型是不同的!单词输入部分还是老思路:和m-RNN模型一样,每个单词采取了独热(one-hot)编码,用来表示单词的是一个维度是词汇表数量的向量。向量和矩阵We相乘后,作为输入进入到LSTM中。使用LSTM来替换了RNN。LSTM是什么东西呢,简单地来说,可以把它看成是效果更好RNN吧。为什么效果更好呢?因为它的公式更复杂哈哈?(并不是)。如果知友对LSTM的细节感兴趣,想要理解LSTM。

《What Value Do Explicit High Level Concepts Have in Vision to Language Problems?》这篇论文中的模型:通过实验回答了论文题目本身提出的这个问题:在视觉到语言问题(比如图像标注)中,明确的高等级概念到底有没有价值?

直接把用CNN提取的图像特征数据扔进RNN的方法寻求的是从图像特征直接到文本,而不是先将其用更高等级的语义概念进行表达。于是作者们在当前的CNN+RNN模型中,增加了一个高等级的语义概念表达,结果发现这么一改,结果很好,出现了很大的提升。这就说明,之前稀里糊涂地把图像特征直接扔进RNN并不是一个好办法,将图像特征用高等级的语义概念表达后再输入RNN会更好!

这里写图片描述

  • 在语言模型部分使用的是LSTM,这一点和之前的模型没有太大区别。针对3各不同的任务(图像标注、单个单词问答,语句问答)分别实际了3个语言模型部分,这里我们只关注第一个图像标注任务。
  • 改进重在视觉部分:请往上看看之前的m- RNN和NIC模型,在他们的视觉部分,图像的处理是相对简单的:图像输入CNN,然后从CNN靠后的层中取出激活数据,输入到RNN即可。然而在这里,我们看到情况变复杂了。
  • 首先预训练一个的单标签的CNN(蓝色虚线中),然后把该CNN的参数迁移到下方多标签的CNN中(红色虚线中),并对多标签的CNN做精细调整(fine-tune)。
  • 图像输入到红色虚线中的CNN,输出的是一个有高等级语义概念和对应概率的向量,并将这个向量作为语言部分LSTM的输入。

也就是说,输入LSTM的不是一个不知道到底是什么的浮点数向量了,而是我们可以理解的语义概念的概率的向量

属性预测部分:该论文最有价值的部分,还是在它的图像分析部分中如何从图像到属性的实现,这是它的核心创新点.首先拿一个用ImageNet预训练好的VGGNet模型作为初始模型。然后再用MS COCO这样的有多标签的数据集来对这个VGGNet做精细调整(fine-tune)。精细调整具体怎么做呢?就是将最后一个全连接层的输出输入到c分类的softmax中。c=256代表的是词汇表的数量。然后使用逐元素的逻辑回归作为损失函数:

这里写图片描述

对于一张输入的图像,要将其分割成不同的局部。刚开始的时候是计划分割出上百个局部窗口,后来感到计算起来太耗费时间,就采取了归一化剪枝的算法将所有的方框分从m个簇,然后每个簇中保留最好的k个方框,最后加上原图,得到mk+1个建议方框,将对应的局部输入到网络中。在使用中,作者令m=10k=5


未完待续。。。

2019-11-24 10:34:57 weixin_43090400 阅读数 27
  • 基于深度学习的计算机视觉: 原理与实践 (下部)

    本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。 基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。 本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。 通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。 本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。 本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

    1798 人正在学习 去看看 白勇

Learning Local Image Descriptors with Deep Siamese and Triplet Convolutional Networks by Minimising Global Loss Functions(2016CVPR)

当前状况是:

  1. 使用 Triplet 网络比 Siamese 有更好的分类效果,但在局部图像描述子方面未被证实,论文提出采用 Triplet 网络进行局部图像描述。
  2. Siamese 和 Triplet 容易陷入过拟合,论文提出了一种全局损失函数,提高泛化能力。
  3. 论文验证了triplet网络比siamese网络产生更加精确的embedding,同时证明了triplet + global loss = best embedding.

Local image descriptor 重点是优化过程,最小化相似3-D location 表达之间的差异distance,最大化不同3-D location 表达之间的差异。
全局损失函数:最小化属于同一类和属于不同类的特征的距离的方差,并最小化属于同一类的特征的距离的均值,最大化不同类图像块特征的均值。

在这里插入图片描述
Metric Learning
见《机器学习》3.4,线性判别分析(LDA)
K近邻的优化,相当于Softmax损失最小化。奇异值分解,线性变换(降维映射)。
将线性变换延伸至非线性,这时就可以使用Siamese网络学习,甚至triplet网络。

siamese和triplet网络含有大量参数,需要采样大量样本来训练。然而采样所有的图像对不可能的,并且其中绝大多数都是简单样本!所以可选的方案是采样策略。必须足够小心,因为在困难样本上关注太多又会导致过拟合,所以这其实很棘手。为此作者提出了这个全局损失函数。这个函数主要为了避免欠采样(太多简单样本)或者过采样(太多困难样本)问题。

  • TNet,TLoss:triplet net+triplet loss、输出feature embedding
  • TNet,TGLoss:triplet net+triplet loss&global loss、输出feature embedding
  • SNet,GLoss:siamese net+global loss、输出pairwise similarity estimator
  • CS SNet,GLoss:central-surrond siamese net+global loss、输出pairwise similarity estimator

输出pairwise similarity的siamese结构要优于输出feature embedding的triplet网络,但siamese成对的输入在测试时比较复杂。siamese测试一对图像需要经过全连接得到一个0-1之间的概率值,而对于特征向量来说可以直接利用余弦内积得到相似度,因为这些向量都被l2 -norm为1了,所以得到的也是0-1之间的概率。但是有的方法中triplet更优于siamese,跟网络结构、损失函数、优化策略等等都有关系。

详见:SNet解读

Magazine [31] 局部Fisher判别分析用于降维
Book [20] 描述子学习 for 全方位图像匹配 (嵌入空间的Pairwise结构)
2005CVPR [5] 局部判别嵌入及其变体(LDE算法,用于实现高维数据的特征提取与低维嵌入,可以很好地实现数据的降维)
2015IEEE [32] 增强型二进制描述子(BinBoost,boosted binary hash function)
2014IEEE [28] 用凸优化学习局部特征
Magazine [3] Discriminative learning of local image descriptors
Book [10] 用 Deep ConvNets 判别式无监督学习 (多分类 损失最小化)
Book [18] 用 Deep ConvNets 进行图像分类
2010CVPR [4] 用非线性特征提取算子来自动设计局部特征描述的特征空间。
2015CVPR [12] unifying feature and metric learning for patch matching(Siamese Network)
2014CVPR [33] Learning Fine-grained Image Similarity with Deep Ranking(triplet Network)
2015CVPR [35] 用于目标识别和3D姿态估计的特征描述(triplet 建立描述子估计姿态)
2015CVPR [36] Learning to compare image patches via convolutional neutral network(Siamese Network)

没有更多推荐了,返回首页