图像处理中二阶矩不变性

2016-11-30 09:07:05 App_12062011 阅读数 8349
  • 轮廓匹配

    掌握OpenCV核心模块,熟练使用相关API 理解各个API背后的相关算法原理,每个参数意义 有能力解决使用应用场景问题,大量工程代码经验分享 掌握图像处理与视频分析,图像分析与测量编码与开发技巧

    95人学习 贾志刚
    免费试看

这个论文不知道作者转自哪里,暂时就写博客作者地址吧:http://blog.chinaunix.net/uid-24517893-id-3140811.html

摘  要  针对模式识别中二维物体的形状识别问题,以二值图像中的物体形状为主要研究对象,依次从特征提取、分类器设计两个主要层面对形状识别方法进行了全面综述,并分析了国内外研究现状,特别是近年来所取得的最新研究成果。最后,指出了目前存在的问题以及今后的研究方向。

关键词  物体形状识别;特征提取;分类器设计

中图法分类号  TP391.41

Comparison on methods of 2D object shape recognition

Abstract: In view of two-dimensional object shape recognition question in pattern recognition, the object shape in binary image was taken as the main research object. It summarizes the shape recognition methods based on the contour, the region and the neural network separately, furthermore, analyzes the situation of present research in domestic and foreign simultaneously, especially obtained the newest research results in recent years. Finally, the paper points out the current question existed as well as the direction of future research.

Key words: Object shape recognition; feature extraction; classifier design

 

物体的形状识别[1]是 模式识别中一个基本问题,也是一个重要问题,其广泛应用于图像分析、计算机视觉和目标识别等领域。人类可以很容易地识别物体的形状,但是对于计算机来说, 自动识别任意物体的形状却相当困难。物体的形状是人的视觉系统分析和识别物体的基础。一般来说,我们对物体的识别更注重于它们的形状,而物体的纹理、颜色 次之,因此如何表示形状以及比较形状间的差异在机器视觉的应用和研究领域具有非常重要的意义。

物体形状识别一般包括图像中的物体在旋转、缩放、平移、扭曲、遮挡、仿射、射影变换下以及在含噪声图像中通过提取物体的形状识别物体。由于该问题在研究上的复杂性和实现起来的困难性,大多数的研究报道的方法仅针对上述变换的一种或其中几种进行讨论。

目前对物体的形状识别的表示和描述国内外已经提出了多种方法。本文以下的部分组织如下:第1节介绍特征提取;第2节介绍分类器设计;第3节给出了仿真实验结果;最后作出总结。

1  特征提取

在物体识别中,由于图像本身的原始数据量相当大。如果把所有的原始特征都送往分类器,会使得分类器异常复杂同时计算量巨大。因此,需要对物体形状进行分解产生基元并对其符号化,形成特征矢量或符号串、关系图,从而产生代表对象的模式,这个过程被称为特征提取。

1.1 简单几何不变性

利用各种几何不变性对物体进行识别也提出了多种方法:

利用角点特征[2],它通常定义为在图像边界上曲率足够高的点。角点特征具有平移、旋转、缩放不变性。它只适用于物体边界角点多且能代表物体形状的特征点的物体。

用等价曲线类[3]来表示形状,这 种形状的表示方法具有平移、旋转、缩放不变的特性。它是利用形状边界点的极半径的变化是否一致来判断它们是否属于同一类型。它具有对边界的扰动不敏感,不 受形状大小、位置以及方向的影响。它要根据形状的大小以及实际精度的需要来选定合适尺度,过大会使执行过程中引入冗余的计算,减慢执行速度,而太小会使识 别精度太粗,从而导致误识,因此选择合适的尺度是此方法的关键。

隐含多项式曲线[4]对物体描述有许多良好的性质,基于高次隐含多项式曲线获得的不变量对物体的识别有较好的鲁棒性,能够克服噪音的影响,并且能识别出部分遮挡的目标物体,但是,隐含多项式曲线不变量的寻找较为困难。

另外还有基于曲率函数法[5],物体的轮廓由它们的曲线函数表示;利用弧长和切线角[6]识别物体等等。

利用几何不变性来进行物体识别,对于具有某种特殊特征的物体来说,容易实现,但是对轮廓的描述太抽象,无法实现准确的识别或检索。

1.2 高斯描述子

高斯描述子[7]是一种基于边界的形状特征,具有识别或匹配率高,相对于平移、旋转、缩放不变、计算量小、对适度的边缘变动和噪声不敏感以及适用范围广等优点。

后来,文献[8]又对高斯描述子进行了推广,提出了局部高斯描述子,将它应用于物体形状识别获得了更高的识别率。但是无论是高斯描述子还是改进了的局部高斯描述子,它们都不具有仿射不变性,有待于进一步的改进。

1.3 傅立叶描述子

傅立叶描述子[9]具有简单、高效的特点,已经成为识别物体形状的重要方法之一。它的基本思想是:假定物体的形状是一条封闭的曲线,沿边界曲线上的一个动点p(l)的坐标变化x(l)+jy(l) ( p(l)坐标用复数形式表示) 是一个以形状边界周长为周期的函数。 这个周期函数可以展开成傅立叶级数形式表示。傅立叶级数中的一系列系数是直接与边界曲线的形状有关的, 称为傅立叶描述子。当系数项取到足够阶次时,它可以将物体的形状信息完全提取并恢复出来。

傅 立叶描述子是物体形状边界曲线的傅立叶变换系数,它是物体边界曲线信号的频域分析结果。根据傅立叶变换的性质,傅立叶描述子与形状尺度、方向和起始点有 关。因此为了识别具有旋转、平移和尺度不变性的形状,需对傅立叶描述子进行归一化。总之,傅立叶描述子方法是利用图像轮廓进行识别的,只适用于封闭边界, 而且不能反映区域内部特征,面对较复杂的图像,图像中有多个目标的或者轮廓不明显的图像,这种方法识别效果不理想。

1.4 小波描述子

   小波变换[10-11]具有空间-频 率局部性、方向性、多分辨率性等优点,在信号处理、图像处理、模式识别等众多领域得到应用。小波变换属于多分辨率变换,它在不同尺度上对图像分解。应用小 波进行轮廓表示时,需要选择小波系数的限制级数来描述轮廓,并且要对小波系数进行归一化,从而达到平移、缩放、旋转不变性的要求。称这些小波系数为小波描 述子,它弥补了傅立叶变换的一些缺陷。在物体形状识别上,单一的小波变换是基于边界的,计算量大。

以上提到的四种方法都是基于边界的。在基于边界的物体形状识别方法中,由于轮廓的检测、表示和后续计算常常不稳定,在应用中一般难以获得理想效果。如何克服现有基于边界的特征表示的困难,并提出稳定可行的新方法,是图像形状表示和识别领域中一个具有挑战性的问题。

1.5 骨架化的方法

骨架化方法[12]的核心思想是使用物体的中轴或骨架的拓扑关系来描述其形状。它能够用于识别旋转、平移、缩放的物体,且抗噪。骨架化方法的缺点在于骨架本身并不容易得到,稳定性也不理想,尤其对于形状比较复杂的物体更是如此。

1.6 矩不变量

矩不变量是指物体图像经过平移、旋转以及缩放变换仍然不变的矩特征量。利用矩不变量进行物体形状识别是模式识别中的一种重要方法。Hu[13]在1961年首先提出了连续函数矩的定义和关于矩的基本性质,证明了有关矩的平移、旋转以及缩放不变性等性质,具体给出了具有平移、旋转和缩放不变性的七个不变矩的表达式。Hu建立的矩不变式,需要目标区域的所有像素参与计算,尽管有些学者研究了矩的快速算法,但它们还是相当耗时的。Li[14]利用Fourier-Mellin变换的不变性推导出一种构造任意阶矩不变量的方法,并指出Hu’s矩不变量就是它的一个特例。Teague[15]建议利用正交多项式构造正交矩来克服Hu’s矩不变量包含大量冗余信息的缺点。正交矩在信息冗余度、图像表达以及在识别效果方面比其它类型的矩要好。Zernike 矩就是一种正交的不变量,由于它具有正交基,并且容易构造高阶矩,因而被广泛采用。在基于区域的Hu矩不变量的基础上,又对矩进行了推广[16]构造了一些新的矩不变量,如轮廓矩不变量[17]、极半径不变矩[18]、相对边界矩[19]等。以上的矩特征都是在整个图像空间中计算的,得到的是图像的全局特征,容易受到噪声的干扰。而且只适用于具有明显差异的图像,因而提高对相近物体的区分能力成为解决此类问题的关键。

以 上提到的两种方法都是基于区域的,基于区域的表示法和图像的灰度值密切相关,易于受到非均匀光照等因素的影响,而且由于计算面向整个区域,计算量很大。从 另一方面来说,由于它考虑物体的内部结构,比基于边界的方法包含了更多的物体形状的信息,因此它又比较稳定且识别率高。

1.7 小波矩

结合矩特征和小波特征而成的小波矩[20-21]既反映了图像的全局信息,又反映了图像的局域性信息。该算法不但解决了图像识别中特征量随图像旋转、平移和缩放而变化的问题,而且提高了对近似物体的识别能力,且具有较强的鲁棒性, 大大地加强了对图像精细程度的分析能力。它具有识别率高,尤其是在相似物体差别小的情况下,抗噪性强等优点,但是它不能识别具有遮挡、扭曲的物体。

1.8 独立分量分析(ICA)[22]

   设有n类待识别物体,经ICA预处理的同类物体图像像素排成n维行向量,对于k个同类训练样本,组成k*n矩阵。设这组观测信号是由d个独立分量线性混合而成。对此矩阵进行独立分量分析,分离出d独立分量,由这些独立分量构成特征空间的一组基,这d个基向量张成的子空间就形成了描述第i类物体的特征空间。由于共有n类物体,可以得到n组独立分量构成的特征空间,并且每组基描述了相应物体类的特征。

ICA在小样本训练的情况下,具有快速提取样本特征的能力,能够识别具有缺失和变形的物体图像,并且对噪声干扰不敏感,这在目标识别的实际应用中是很重要的。

1.9 主分量分析(PCA)[23]

在图像识别领域中,设输入的原始数据x的维数是N,希望通过预处理得到M()维数据y,如果不加任何限制条件,仅对x进行简单的截断,那么所引起的均方误差将等于舍弃的各分量方差之和。为此,希望得到一个线性变换W,使得对Wx的截断在最小均方误差下为最优,这就要求被舍弃的分量具有较低的方差,而保留的分量具有较高的方差,PCA正是寻找这个线性变换的方法。它是基于K-L分解,其目的是在数据空间中找一组向量以尽可能地解释数据的方差,通过一个特殊的向量矩阵,将数据从原来的高维空间投影到一个低维的向量空间中,降维后保存了数据的主要信息,从而使数据更易于处理。

PCA在最小均方误差的意义下是最优变换,它在消除模式特征之间的相关性,突出其差异性方面可达到最优效果。但PCA法提取的图像特征不具备位移、尺度及旋转等的不变性。PCA识别过程中整幅图像所有象素都参与了运算,比较适合进行较复杂的图像识别,但要求图像大小一致。

1.10圆周分解的方法

   圆周分解法[24]可视为对传统基于边界方法的扩展,既保留了这类方法在细节描述方面的优势,又将它们的描述范围从边界扩展到整个形状区域,因而可以视为基于边界和基于区域的方法的结合。

圆周分解法对全局和局部的信息都有很强的描述能力,该方法具有平移、旋转、缩放不变性,并对形变、遮挡以及随机噪声有良好的抵抗能力,但不适用于扭曲物体形状的识别且识别率并不是很好。

1.11Radon变换

Radon变换[25-26]是计算图像f(x,y)沿着一个指定角度方向投影的变换方法。在指定的方向上投影,就是二维函数在该方向上的线积分,也可理解为图像顺时针旋转角度后在水平轴上的投影。它由于其固有的抗噪性能好的优点,在带有噪声源的环境中应用它作为图像分析的一种有效方法是十分有利的。

图像经Radon变换后,主要优点是可以把识别问题从二维降到一维,这样便可当作一维信号来处理,大大提高了处理速度,并且提取的图像特征具有旋转、平移和缩放不变性,但是在经处理后一般需要与小波、矩等技术结合实用才会更有效。

2 分类器设计

在d 维特征空间已经确定的前提下,分类器设计问题是一个选择什么准则,使用什么方法,将已确定的d维特征空间划分成决策域的问题。设计分类精度高、误识率低、可靠性好的分类器是识别的最终目的。

2.1 BP神经网络

BP神经网络[27]是模式识别分类中使用最广的神经网络模型,有隐含层的网络可完成多维空间的任意分割。BP网络采取误差反向传播学习算法,广泛应用于函数逼近、模式识别、分类、数据压缩等方面。它 是一种具有三层或三层以上的多层神经网络,每一层都由若干个神经元组成。它按有教师学习方式进行训练,当一对学习模式提供给网络后,其神经元的激活值将从 输入层经各中间层向输出层传播,在输出层的各神经元输出对应于输入模式的网络响应。然后,按减少希望输出与实际输出误差的原则,从输出层经各中间层、最后 回到输入层修正各连接权。

BP算 法本质上是一种局部寻优的方法,其收敛过程存在着两个很大的缺陷:一是收敛速度慢,二是存在“局部极小点”问题。在学习过程中,有时会出现当学习反复进行 到一定次数后,虽然网络的实际输出与希望输出还存在很大的差距,但无论在如何学习下去,网络全局误差的减少速度都变得很缓慢,或者根本不再变化,这种现象 是因网络收敛于局部极小点所致。如果适当改进BP网络中间层的单元个数,或者给每个连接权加上一个很小的随机数,都有可能使收敛过程避开局部极小点。

2.2 遗传BP神经网络[28-29]

由于BP神经网络算法采用的是梯度下将法,因而易陷入局部极小并且训练时间较长。遗传算法(GA)采用启发式搜索技术寻找最优解,具有鲁棒性好、搜索效率高、对目标函数限制少、易于采用并行机并行高速运算等优点。遗传BP网络算法综合了遗传算法的全局优化和神经网络的并行计算等特点,可克服遗传算法最终进化至最优解较慢和神经网络易陷入局部解的缺陷,具有较好的全局性和收敛速度。

此算法的基本思想是:首先由GA求解优化问题,由于GA是同时搜索解空间的一群点,并构成不断进化的群体序列,因而在进化一定的代数后,可以同时得到一些具有全局性的好点,从这些好点出发,再分别用神经网络求解,进而得到全局优化解。

2.3 小波神经网络

小波神经网络[30-31]是一种以小波基函数为神经元激励函数的前馈网络,它既可看作是一种以小波函数为基底的函数连接型网络,也可认为是径向基函数网络的推广。

小波神经网络模型包括输入层、输出层和隐层。隐层包含两种节点:小波基节点和尺度函数节点。小波神经网络是基于小波分析而构成的神经网络,它充分利用小波变换的良好的局部化性质并结合神经网络的自学习功能,因而具有较强的逼近、容错能力,它避免了BP神经网络结构设计的盲目性和局部最优等非线性优化问题,大大简化了训练,具有较强的函数学习能力。它具有良好的时频定位特性,将其应用于物体形状识别比传统的神经网络有更好的识别效果,但其受噪声影响。

2.4 自组织竞争人工神经网络(SCNN)

SCNN[32]基于生物神经细胞的“侧抑制”结构,由单层神经网络组成,其输入节点与输出节点之间为全连接。因为网络在学习过程中的竞争特性表现在输出层上,所以,其输出层也称为竞争层,竞争网络的激活函数为二值型函数。SCNN采用科荷伦学习规则进行训练,它能够对输入模式进行自组织训练和判断,并最终将各类目标进行识别和分类。

它可以克服BP网络不易收敛、学习时间长等缺点,进行识别时训练和识别是同时完成的,具有实时性,有很高的效率。

2.5 卷积神经网络(CNNS)

CNNS[33]是近年来一种专门应用在二维图像处理、模式识别和机器视觉领域中的方法。

大多数分类方式都是基于特征的,这就意味着在进行分辨前必须提取某些特征。然而,显示的特征提取并不容易,在一些应用问题中也并非总是可靠的。CNNS分 类器可避免显示特征提取,可隐式地从训练数据中进行学习。它通过结构重组和减少权值将特征提取功能融合进多层感知机。某一层的输出,即特征图,构成下一层 的输入,与同一特征图关联的神经元分享共同的一组权值(也即卷积核函)。在最后一层,特征图被一通常是全连通的单层感知机分类。这使得它有别于其它基于神 经网络的分类器,而且它可以直接运作于灰度图像,使其能够直接用于处理物体图像的分类。

2.6 支持向量机(SVM)

   SVM[34-35]是 一种基于结构风险最小化原理的机器学习方法,它利用核函数将输入向量映射到一个高维特征空间,然后在该空间中构造一个最优超平面来逼近分类函数。它的基本 思想可以概括为:首先通过非线性变换将输入空间变换到一个高维空间,然后在这个新空间中求取最优线性分类面,这种非线性变换是通过定义适当的内积函数实现 的。

SVM克 服了神经网络许多固有的缺陷,如容易出现过学习或陷入局部极小等,对小样本数据的数据分析具有出色的学习能力和推广能力。它对于物体的平移和旋转有很好的 识别率,并且具有较强的鲁棒性,但对于缩放物体的识别率有所下将。对于大数据的物体识别分类问题,如何提高它的数据处理的实时性、缩短训练样本的时间,仍 是它亟待解决的问题。

3 仿真实验

   在Matlab 7的环境下进行了部分方法的仿真实验:用小波矩进行特征提取;针对小波矩特征维数较高的特点,本文采用徐旭东[36]提出的结合分散度和顺序前进法的特征选择方法;分别用BP神经网络(BP)、遗传BP神经网络(GABP)作为分类器。本实验选择两类二值飞机图像用于识别,如图1所示F1、F2,图像大小均为512*512像素,格式为bmp。其中每类飞机均取不同平移、缩放、旋转变换下共40幅图像,接着从每类飞机中选取三种几何变换下的各10幅分别加入均值为0,方差分别为0.01、0.05、0.1的高斯噪声共60幅。因此本实验共得到100幅图像,其中20幅(每类选取10幅)未加入噪声的图像用于训练,其它80幅用于测试。

总结

    本 文从特征提取和分类器设计两个方面介绍了物体形状识别的各种方法,每种方法都引用了一定的参考文献,因此本文省去了相关方法的公式,只说明了相关方法在识 别物体时的思路和优缺点。通过以上的介绍可知,到目前为止,仍没有一种普遍通用的方法能够在各种环境下识别物体。这些方法只有在特定的条件下才能够识别相 对应的物体,并且大部分方法并不是由单一的一种技术来实现。更重要的是,所有的算法都有待于改进,以使它们能够适应普遍的场合和提高识别率以及能够识别三 维物体。由于轮廓的检测、表示常常使基于边界的方法不稳定;由于计算面向整个区域,使基于区域的方法的计算量很大;而神经网络是一种智能化的方法,它的很多技术发展还不成熟。所以,今后的主要工作是不断完善和改进这些方法。

    对于在物体识别方面的初学者来说,本文很有参考价值。

参考文献

[1] 丁险峰,吴洪,张宏江,马颂德.形状匹配综述[J].自动化学报,2001,27(5):678-694.

[2]  Mehrotra R,Nichani S.Corner detection[J].Pattern Recogni tion, 1990,23(11):1223-1233.

[3] 陈孝春,叶懋冬,倪臣敏.一种形状识别的方法[J].模式识别与人工智能,2006,9(6):758-763.

[4] 吴刚,李道伦.基于隐含多项式曲线仿射不变量的目标识别[J].电子学报,2004,32(12):1987-1992.

[5] Bandera A, Urdiales C. 2D object recognition based on curvature functions obtained from local histograms of the contour chain code[J]. Pattern Recognition Letters,1999,20(1)4955.

[6] Dong Xu,Wenli Xu. Description and recognition of object contours using arc length and tangent orientation[J]. Pattern Recognition Letters ,2005,26(7):855-864.

[7] 刘亦书,利用高斯描绘子进行字符识别[J].计算机应用,2006,26(11):2778-2780.

[8] 刘亦书.区域高斯描绘子及其在物体识别中的应用[J].计算机工程与设计,2007,28(15):3650-3652.

[9] 王涛,刘文印,孙家广,张宏江.傅立叶描述子识别物体的形状[J].计算机研究与发展,2002,39(12):1714-1719.

[10] Tieng QM,Boles WW.Recognition of 2D object contours using the wavelet transform zero-crossing representation[J] .IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997,19(8):910-916.

 [11] 潘泓,夏良正.具有平移、尺度和旋转不变性的小波变换[J].信号处理,2004,20(2):147-152.

[12] Cecilia DR.Recognition of shapes by attributed skeletal graphs[J]. Pattern Recognition,2004,37(1):21-31.

[13] Hu MK.Visual pattern recognition by moment invariants[J]IEEE Transactions on Information Theory,1962,8(2):179-18.

 [14] Li Y.Refarming the theory of invariant moments for pattern recognition[J].Pattern Recognition,1992,25(7):723-730.

[15] Teagure MR. Image analysis via the general theory of moments[J].Journal of the Optical Society of America,1979,70(8):920-930.

[16] 刘进,张天序.图像不变矩的推广[J].计算机学报,2004,27(5):668-674.

[17] 刘亦书,杨力华,孙倩.轮廓矩不变量及其在物体形状识别中的应用[[J].中国图象图形学报,2004,9(3):308-313.

[18] 曹茂永,孙农亮,郁道银.用于模式识别的极半径不变矩[J].计算机学报,2004,27(6):860-864.

[19] 李丽宏,苗敬利,王静爽,安庆宾.相对边界矩在模式识别中的应用[J].微计算机信息,2005,21(7):3-4.

[20] Dinggan S,Horace H S Ip.Discriminative wavelet shape descriptors for recognition of 2-D patterns[J]. Pattern Recognition,1999,32(2):151-165.

[21] 张虹,陈文楷.一种基于小波矩的图像识别方法[J].北京工业大学学报,2004,30(4):427-431.

[22] 芮挺,沈春林,Qi Tian,丁健..基于ICA的特征不变性目标识别[J].小型微型计算机系统,2005,26(3):505-50.8

[23] 董火明,高隽,胡良梅,董文雯.基于主分量分析的形状特征提取及识别研究[J].合肥工业大学学报(自然科学版),2003,26(2):176-179.

[24] 王逸飞,陈雁秋.用于二维形状描述圆周分解法[J].计算机科学,2006,33(11):228-233.

[25] 王耀明,严炜,俞时权.基于Radon变换的图像矩特征抽取及其在图像识别中的应用[J].计算机工程,2001,27(2):82-84.

[26] 李军宏,潘泉,张洪才,崔建锋,崔培玲.基于Radon变换的图像识别研究[J],计算机应用研究,2004,21(5):207-209.

[27] 张华,张淼,刘魏,孟祥增.基于BP神经网络的图像形状识别.计算机科学,2006,33(1):269-271.

[28] Maniezzo V. Genetic evolution of the topology and weightdistribution of neural network[J].IEEE Transactions on  Neural Networks,1994,5(1):39-53.

[29]  郭晓婷,朱岩.基于遗传算法的进化神经网络[J].清华大学学报(自然科学版),2000,40(10):116-119.

[30]  Zhang Qinghua,Benveniste.A Wavelet network[J].IEEE Trans on Neural Networks,1992,3(6):889-898.

[31] 王阿明,刘天放,王绪.用于图像与模式识别的小波神经网络模型[J].中国矿业大学学报,2002,31(5):382-385.

[32] 袁宝玺,冯大毅,杨百愚.基于小波矩和SCNN的多目标图像识别[J].计算机工程与应用,2006,42(17):90-93.

[33] 李葆青.基于卷积神经网络的模式分类器[J].大连大学学报,2003,24(2):19-23.

[34] 范劲松,陶卿,方廷健.基于统计学习理论优化感知器的遗传算法[J].模式识别与人工智能,2001,14(2):211-215.

[35] 张学工.关于统计学习理论与支持向量机[J].自动化学报,2000,26(1):32-42.

[36] 徐旭东,周源华.基于小波不变矩的模式识别方法[J].红外与毫米波学报,2000,19(3):215-218.

2016-04-26 14:07:03 Real_Myth 阅读数 3689
  • 轮廓匹配

    掌握OpenCV核心模块,熟练使用相关API 理解各个API背后的相关算法原理,每个参数意义 有能力解决使用应用场景问题,大量工程代码经验分享 掌握图像处理与视频分析,图像分析与测量编码与开发技巧

    95人学习 贾志刚
    免费试看

随笔分类 - 图像处理/图像增强等

图像增强; 图像复原; 图像重建; 图像分割; 图像特效; 图像匹配; 图像形态学处理; 图像几何处理; 图像正交变换; 人工智能; 跟踪;
摘要: 这种检测可以做宽动态的检测,也可应用稳像算法我们实现了拉普拉斯方差算法,该算法提供给我们一个浮点数来代表具体图像的“模糊度”。该算法快速,简单且易于使用——用拉普拉斯算子与输入图像做卷积然后计算方差即可。如果方差低于预定义阈值,图像就被标记为“模糊”。还可以用fft 计算高频区域来判别http:...阅读全文
posted @ 2015-12-19 16:56 midu 阅读(26) | 评论 (0) 编辑
摘要: http://www.3dov.cn/html/c/37/index.htmlhttp://news.ifeng.com/a/20151117/46275220_0.shtml磁力矩阵http://finance.ifeng.com/a/20151117/14072754_0.shtml阅读全文
posted @ 2015-11-18 14:18 midu 阅读(21) | 评论 (0) 编辑
摘要: -------------------author:pkf---------------------------qq:1327706646--------------------------------------time:2015-11-9附录:http://blog.csdn.net/carso...阅读全文
posted @ 2015-11-09 17:54 midu 阅读(32) | 评论 (0) 编辑
摘要: http://www.upano.cn/#360度无死角直播1080p 30fpshttp://search.jd.com/Search?keyword=sdi%E9%87%87%E9%9B%86%E5%8D%A1&enc=utf-8&suggest=1.def.0&wq=sdi%20ca&pvid...阅读全文
posted @ 2015-11-03 18:26 midu 阅读(22) | 评论 (0) 编辑
摘要: 白噪声是指功率谱密度在整个频域内均匀分布的噪声。 所有频率具有相同能量的随机噪声称为白噪声。白噪声或白杂讯,是一种功率频谱密度为常数的随机信号或随机过程。换句话说,此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的...阅读全文
posted @ 2015-05-15 11:42 midu 阅读(81) | 评论 (0) 编辑
摘要: 在图像处理中,局部算法一般来说,在很大程度上会获得比全局算法更为好的效果,因为他考虑到了图像领域像素的信息,而很多局部算法可以借助于直方图获得加速。同时,一些常规的算法,比如中值滤波、最大值滤波、最小值滤波、表面模糊等等都可以通过局部直方图进行加速。而传统的获取局部直方图计算量很大,特别是半径增加时...阅读全文
posted @ 2015-04-20 20:25 midu 阅读(39) | 评论 (0) 编辑
摘要: http://blog.csdn.net/supplychain/article/details/8765808阅读全文
posted @ 2015-03-17 22:37 midu 阅读(15) | 评论 (0) 编辑
摘要: 基于SURF特征的图像与视频拼接技术的研究和实现(一) 一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的《基于SURF特征的图像与视频拼接技术的研究和实现》,条理清晰、内容完整、实现的技术具有市场价值。因此定下决心以这篇论文为基础脉络,结合实际情况,进行“基于SURF特征的图像与...阅读全文
posted @ 2015-03-17 12:08 midu 阅读(338) | 评论 (0) 编辑
摘要: (1)DDE应用背景(2)DDE算法简介(3)DDE 实现(4)DDE 总结和不足----------author:pkf-----------------time:2-9----------------------qq:1327706646(1)DDE应用背景 关于图像的增强,无数种方法,有线性...阅读全文
posted @ 2015-02-09 17:07 midu 阅读(94) | 评论 (0) 编辑
摘要: (1)应用背景(2)主要降噪算法原理(3)算法流程(4)算法实现(5)------------author:pkf-------------------time:2-6---------------------------qq:1327706646(1)应用背景 基于8148的音频alsa 采集,...阅读全文
posted @ 2015-02-06 14:15 midu 阅读(211) | 评论 (0) 编辑
摘要: http://v.ku6.com/special/show_1924328/L1VdU0V4ry6f_FU5.html阅读全文
posted @ 2015-01-12 23:58 midu 阅读(10) | 评论 (0) 编辑
摘要: 一、原理介绍 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几个方面:摄相机的标定、传感器图像畸变校...阅读全文
posted @ 2015-01-07 20:33 midu 阅读(232) | 评论 (0) 编辑
摘要: 前几天写了一个可以玩儿光剑的程序,个人觉得很酷这个程序你完全可以在自己电脑上玩玩,很有星球大战中Jedi的感觉在程序中,本没必要使用opencv,但尝试把opencv和mfc dialog结合一下,于是最终实现方式如下:opencv采集图像,mfc双缓冲显示,gdi+显示光剑图片opencv和mfc...阅读全文
posted @ 2014-12-08 02:27 midu 阅读(34) | 评论 (0) 编辑
摘要: -----------------------------author:midu---------------------------qq:1327706646------------------------datetime:2014-12-08 02:29http://www.computer.o...阅读全文
posted @ 2014-12-07 23:03 midu 阅读(45) | 评论 (0) 编辑
摘要: http://blog.csdn.net/masibuaa/article/details/9246493#comments阅读全文
posted @ 2014-12-03 12:25 midu 阅读(48) | 评论 (0) 编辑
摘要: 梯度求法和sobel之类的算子雷同,甚至更简单,就是一个离散差分,不清楚的童鞋可以百度,一大堆资料呢,从源码也可清晰的看出原理。// 方向导数,求梯度/* * @parameter sz: 图像大小 * @parameter pGray: 图像灰度值 * @parameter p...阅读全文
posted @ 2014-12-03 11:44 midu 阅读(20) | 评论 (0) 编辑
摘要: 在图像中,边缘可以看做是位于一阶导数较大的像素处,因此,我们可以求图像的一阶导数来确定图像的边缘,像sobel算子等一系列算子都是基于这个思想的。但是这存在几个问题:1. 噪声的影响,在噪声点处一阶导数也会取极大值 2. 求解极大值的复杂性所以,有了使用二阶导数的方法。这里主要考虑LoG算子,即高斯...阅读全文
posted @ 2014-12-02 15:45 midu 阅读(35) | 评论 (0) 编辑
摘要: http://www.cvpapers.com/cvpr2014.html吴佳俊楼天城阅读全文
posted @ 2014-12-02 14:35 midu 阅读(36) | 评论 (0) 编辑
摘要: 卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊、高斯模糊、锐化、Sobel、拉普拉斯、prewitt边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现。只不过由于这些算法的卷积矩阵的特殊性,一般不会直接实现它,而是通过一些优化的手段让计算量变小。但是有些情况下卷积矩阵...阅读全文
posted @ 2014-11-27 20:24 midu 阅读(29) | 评论 (0) 编辑
摘要: 申明:本文非笔者原创,原文转载自:http://blog.csdn.net/onezeros/article/details/6342661两组图像:左边较暗,右边较亮第一行是原图像,他们下面是用四种算法处理的结果依次为:1.一种混合算法2.msr,multi-scale retinex3.msrc...阅读全文
posted @ 2014-11-27 01:08 midu 阅读(71) | 评论 (0) 编辑
摘要: 一、Mat类型:矩阵类型,Matrix。在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。Mat有3个重要的方法:1、Mat mat = imread(const String* filename); 读取图像2、imshow(const st...阅读全文
posted @ 2014-11-21 20:56 midu 阅读(47) | 评论 (0) 编辑
摘要: http://chyyeng.blog.163.com/blog/static/16918230201211632135456/阅读全文
posted @ 2014-11-21 20:53 midu 阅读(130) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_9c3fc0730100yzwt.html 很全http://www.xuebuyuan.com/593449.htmlcvrepeat()以平铺的方式进行数组复制;http://blog.csdn.net/anqier1009/arti...阅读全文
posted @ 2014-11-20 20:47 midu 阅读(23) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_722122880101gyxb.html 实现1http://blog.sina.com.cn/s/blog_722122880101g4hm.html 原理简介http://blog.sina.com.cn/s/blog_722122...阅读全文
posted @ 2014-11-20 15:35 midu 阅读(8) | 评论 (0) 编辑
摘要: http://blog.csdn.net/xiaowei_cqu/article/details/24745945 小魏北大阅读全文
posted @ 2014-11-20 13:38 midu 阅读(18) | 评论 (0) 编辑
摘要: http://www.yxkfw.com/?p=7810 很有意思的全方位滤波应用https://developer.nvidia.com/sites/default/files/akamai/gameworks/CN/CGDC14/OpenGL_4.x_for_Mobile_Games_CN.pd...阅读全文
posted @ 2014-11-19 20:31 midu 阅读(40) | 评论 (0) 编辑
摘要: 今天偶然在接触导向滤波的时候,在实现里面的boxfilter 盒子滤波是,有人提到integral image 积分图像,积分图像和盒子滤波很相似,积分图像就是将原图像的左边+上边的像素和。(1)boxfilter(2)integral image(1)boxfilter 1.boxfilter的...阅读全文
posted @ 2014-11-19 18:17 midu 阅读(12) | 评论 (0) 编辑
摘要: /**** method to remove noise from the corrupted image by gaussian filter value* @param corrupted input grayscale binary array with corrupted info ---y...阅读全文
posted @ 2014-11-19 17:37 midu 阅读(5) | 评论 (0) 编辑
摘要: OpenCV的一些操作,如生成随机矩阵,高斯矩阵,矩阵相乘之类的/*功能:说明矩阵的一些操作方法*/#include "cv.h"//该头文件包含了#include "cxcore.h"#include "highgui.h"#include void PrintMat(CvMat *A); // ...阅读全文
posted @ 2014-11-18 22:36 midu 阅读(27) | 评论 (0) 编辑
摘要: 继www.gfsoso.com后又一个 www.aol.com阅读全文
posted @ 2014-11-18 18:21 midu 阅读(3) | 评论 (0) 编辑
摘要: //pYUV为422,yuv为420/*ok!* brief:pyuv is yuv422sp srcIn, and yuv is yuv420p desOut*/intYUV422To420(unsignedchar*pYUV,unsignedchar*yuv,intlWidth,intlHeig...阅读全文
posted @ 2014-11-16 22:54 midu 阅读(47) | 评论 (0) 编辑
摘要: 概论: ZD鱼眼图像变形校正算法,理论上相对比较简单,各种具体典型算法也存在一定的不足。球面坐标定位展开算法是一种粗略的校正方法,最终的处理效果不够理想。多项式坐标变换算法是一种典型的校正算法,针对鱼眼镜头,往往需要5次多项式,同时需要N个控制点,计算量非常巨大,难于用于实时系统。而且控制点的合理...阅读全文
posted @ 2014-11-14 11:54 midu 阅读(326) | 评论 (0) 编辑
摘要: 卷积是一种线性运算,图像处理中常见的mask运算都是卷积,广泛应用于图像滤波。castlman的书对卷积讲得很详细。高斯变换就是用高斯函数对图像进行卷积。高斯算子可以直接从离散高斯函数得到:for(i=0; i<N; i++){for(j=0; j<N; j++){g[i*N+j]=exp(-((i...阅读全文
posted @ 2014-11-11 20:52 midu 阅读(18) | 评论 (0) 编辑
摘要: 图像处理之高斯一阶及二阶导数计算图像的一阶与二阶导数计算在图像特征提取与边缘提取中十分重要。一阶与二阶导数的作用,通常情况下:一阶导数可以反应出图像灰度梯度的变化情况二阶导数可以提取出图像的细节同时双响应图像梯度变化情况常见的算子有Robot, Sobel算子,二阶常见多数为拉普拉斯算子,如图所示:...阅读全文
posted @ 2014-11-11 12:18 midu 阅读(93) | 评论 (0) 编辑
摘要: http://blog.csdn.net/jia20003/article/details/18850079阅读全文
posted @ 2014-11-11 12:04 midu 阅读(24) | 评论 (0) 编辑
摘要: (1)拉普拉斯理论(2)拉普拉斯算子(3)拉普拉斯实现--------------------------------------(1)拉普拉斯理论 http://course.cug.edu.cn/pic_ana/wangluoketang/Chapter04/4.2.2.htmhttp://b...阅读全文
posted @ 2014-11-10 21:12 midu 阅读(63) | 评论 (0) 编辑
摘要: 从昨天折腾到今天。再折腾下去我都要上主楼了大致和灰度图均衡是一样的,主要是不能像平滑什么的直接对R,G,B三个分量进行。这样出来的图像时没法看的。因此我们要对亮度进行均衡。而HSI彩色空间中的分量I代表图像的亮度,和图像的彩色信息无关,所以它是我们perfect的折腾对象。一、首先,就是把图像从RG...阅读全文
posted @ 2014-11-10 15:25 midu 阅读(17) | 评论 (0) 编辑
摘要: (1)灰度变换增强(2)直方图增强(3)图像锐化(4)频域增强(5)色彩增强--------------------------------------------------------(1)灰度变换增强(2)直方图增强(3)图像锐化 图像锐化的目的是为了突出图像的边缘信息,加强其图像的轮廓特征...阅读全文
posted @ 2014-11-10 15:03 midu 阅读(12) | 评论 (0) 编辑
摘要: http://blog.csdn.net/pamxy/article/details/8696591阅读全文
posted @ 2014-11-09 17:47 midu 阅读(12) | 评论 (0) 编辑
摘要: ()增强图片在百度网盘里面()处理http://bj3s.pku.edu.cn/activity/subjects/lesson6.pdfhttp://www.360doc.com/content/07/0219/04/16546_369705.shtmlhttp://www.qnr.cn/med/...阅读全文
posted @ 2014-11-07 15:27 midu 阅读(27) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/easymind223/archive/2013/02/14/2911170.html#3051619阅读全文
posted @ 2014-11-06 20:28 midu 阅读(1) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/WhyEngine/p/4059266.html阅读全文
posted @ 2014-10-29 15:48 midu 阅读(23) | 评论 (0) 编辑
摘要: #include #include #include #include #include //必须引此头文件void main(){//参数初始化定义IplImage* pFrame = NULL;IplImage* pFrImg = NULL;IplImage* pBkImg = NULL;CvC...阅读全文
posted @ 2014-10-29 15:44 midu 阅读(38) | 评论 (0) 编辑
该文被密码保护。
posted @ 2014-10-26 22:37 midu 阅读(2) | 评论 (0) 编辑
摘要: File: StudyRGB2Gray.txtName: 彩色转灰度算法彻底学习Author: zyl910Version: V1.0Updata: 2006-5-22一、基础 对于彩色转灰度,有一个很著名的心理学公式:Gray = R*0.299 + G*0.587 + B*0.114二、整数算...阅读全文
posted @ 2014-10-25 22:24 midu 阅读(20) | 评论 (0) 编辑
摘要: YUV与YCbCr的区别YUV色彩模型来源于RGB模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。应用:basic color model used in analogue color TV broadcasting。YCbCr模型来源于YUV模型。YCbCr is a scaled...阅读全文
posted @ 2014-10-25 19:15 midu 阅读(3) | 评论 (0) 编辑
摘要: http://blog.csdn.net/wangwanguo08/article/details/7535377阅读全文
posted @ 2014-10-23 13:44 midu 阅读(14) | 评论 (0) 编辑
摘要: http://blog.csdn.net/jianxiong8814/article/details/1563109http://blog.csdn.net/assuper/article/details/6937130 存在的bug 在dsphttp://bbs.csdn.net/topics/3...阅读全文
posted @ 2014-10-22 21:08 midu 阅读(43) | 评论 (0) 编辑
摘要: ()代码实现对原图进行高斯平滑,去除图像中的计算噪声void Bmp::MakeGauss(double sigma,double **pdKernel,int *pnWindowSize){//循环控制变量int i;//数组的中心点int nCenter;//数组的某一点到中心点的距离doubl...阅读全文
posted @ 2014-10-22 21:08 midu 阅读(83) | 评论 (0) 编辑
摘要: 第二个故事的主角是欧拉(Euler),拉普拉斯(Lapalace),勒让德(Legendre)和高斯(Gauss),故事发生的时间是十八世纪中到十九世纪初。十七、十八世纪是科学发展的黄金年代,微积分的发展和牛顿万有引力定律的建立,直接的推动了天文学和测地学的迅猛发展。当时的大科学家们都在考虑许多天文...阅读全文
posted @ 2014-10-22 20:32 midu 阅读(35) | 评论 (0) 编辑
摘要: http://netclass.csu.edu.cn/NCourse/hep013/gltj/3/gltj03040107.htm 华南理工学院课件阅读全文
posted @ 2014-10-22 20:30 midu 阅读(17) | 评论 (0) 编辑
摘要: 近日做铸件文字识别的项目,需要识别铸件上的字符和数字,找到开源的识别库Tesseract,下面简单记录下怎么使用。首先在项目主页http://code.google.com/p/tesseract-ocr/下载库和相应的字库。由于本人使用的是VS2010,其lib和include等库使用的VS200...阅读全文
posted @ 2014-10-22 20:11 midu 阅读(83) | 评论 (0) 编辑
摘要: http://www.ruanyifeng.com/blog/2013/03/similar_image_search_part_ii.html阅读全文
posted @ 2014-10-22 20:09 midu 阅读(18) | 评论 (0) 编辑
摘要: ()高斯理论简介()()代码实现四 使用高斯滤波器进行图像的平滑()高斯简介http://research.microsoft.com/en-us/um/people/kahe/eccv10/何凯明 matlab 实现http://www.ruanyifeng.com/blog/2012/11/ga...阅读全文
posted @ 2014-10-22 02:49 midu 阅读(69) | 评论 (0) 编辑
摘要: 像淘宝中的物品图片进行放大扫描效果:上图中图一为原图,现给定素材,需要将图像画城图二然后输出。现在问题是,给定的图像都是矩形,怎么将矩形的图片画到中间的那两个圆里面呢?http://download.csdn.net/detail/raistlic/5054386代码 http://bbs.csdn...阅读全文
posted @ 2014-10-22 02:45 midu 阅读(31) | 评论 (0) 编辑
摘要: YUV格式解析1(播放器——project2)根据板卡api设计实现yuv420格式的视频播放器打开*.mp4;*.264类型的文件,实现其播放。使用的视频格式是YUV420格式YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组中,通常是几个...阅读全文
posted @ 2014-10-22 02:39 midu 阅读(96) | 评论 (0) 编辑
摘要: argv分别为,可执行文件名、读入的原始图像、输出原始图像的灰度值、输出原始图像灰度值沿x轴方向的一阶微分、输出原始图像灰度值沿x轴方向的二阶微分。#include #include #include #include #include #pragma comment( lib, "opencv_h...阅读全文
posted @ 2014-10-22 02:31 midu 阅读(18) | 评论 (0) 编辑
摘要: 上一篇中,我是用一个RGB格式的纹理来存储每一帧的画面,其中纹理为m_FrameWidth * m_FrameHeight大小,这样,在内存中,就必须要先对YUV的数据进行排序,然后才能当做RGB的数据格式传给纹理内存。我们发现对一个很大帧的图片进行数据重新排序会花费很多时间,为了减少这个时间,当...阅读全文
posted @ 2014-10-22 02:27 midu 阅读(58) | 评论 (0) 编辑
摘要: 在进入频域变换之前, 我们还是轻松一下,再搞点平面上的变化来看看。这把选了一个双线性插值(Bilinear interpolation)来实现是源于看到了csdn上别人的问题, 权且实现一个函数,方便大家的使用吧。双线性插值简单的说,就是扩展了之后的图像像素坐标映射回原来的坐标空间的时候, 如果出现...阅读全文
posted @ 2014-10-22 02:01 midu 阅读(43) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_7221228801019yg2.htmlDSP6000图像位移与变形典型算法http://blog.csdn.net/anson2004110/article/details/9082831 boxfilter 块滤波原理http://...阅读全文
posted @ 2014-10-20 00:25 midu 阅读(28) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/xiaotie/archive/2012/03/25/2416267.html 如何自学图像处理http://www.cnblogs.com/xiaotie/archive/2009/12/20/1628415.html阿牛开源库http://code....阅读全文
posted @ 2014-10-18 20:53 midu 阅读(9) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/xiaotie/archive/2010/12/24/1916066.html阅读全文
posted @ 2014-10-17 13:40 midu 阅读(11) | 评论 (0) 编辑
摘要: 一些与图像或优化有关的网站和博客。图像处理的相关技术博客http://www.cnblogs.com/Imageshop/http://blog.csdn.net/housisong/category/325273.aspxhttp://www.cnblogs.com/xiaotie/categor...阅读全文
posted @ 2014-10-17 12:11 midu 阅读(5) | 评论 (0) 编辑
摘要: 本文涉及的很多算法,在网络上也有不少同类型的文章,但是肯定的一点就是,很多都是不配代码的,或者所附带的代码都是象征性的,速度慢,不优雅,不具有实用价值,本文努力解决这些问题。 文中各算法出现的顺序并不代表算法的优越性,仅仅是作者随机排布的而已。 2、基于RGB颜色空间的简单阈值肤色识别在human ...阅读全文
posted @ 2014-10-17 12:07 midu 阅读(22) | 评论 (0) 编辑
摘要: #include #include #include #include #include #define WIN_WIDTH 1//1~10,选择小波基double *Ld = new double[2*WIN_WIDTH]; //分解尺度函数double *Hd = new double[2*WI...阅读全文
posted @ 2014-10-17 12:06 midu 阅读(40) | 评论 (0) 编辑
摘要: int lineByte=(bmpWidth*biBitCount/8+3)/4*4这个公式怎么理解如下:这是计算位图每行占多少个字节;灰度图像(biBitCount=8)彩色图像(biBitCount=24)bmpWidth是位图的宽度,也就是每行有多少个像素块在计算机中如果你是整形 (n)除以(...阅读全文
posted @ 2014-10-17 00:45 midu 阅读(0) | 评论 (0) 编辑
摘要: 一、序言 陆陆续续的如果累计起来,我估计至少有二十来位左右的朋友加我QQ,向我咨询有关抠图方面的算法,可惜的是,我对这方面之前一直是没有研究过的。除了利用和Photoshop中的魔棒一样的技术或者Photoshop中的选区菜单中的色彩范围类似的算法(这两个我有何PS至少90%一致的代码)是实现简...阅读全文
posted @ 2014-10-16 18:35 midu 阅读(4) | 评论 (0) 编辑
摘要: 转自Codeprojecthttp://www.codeproject.com/dotnet/comparingimages.asp PublicEnumCompareResultciCompareOkciPixelMismatchciSizeMismatchEndEnumPublicSharedF...阅读全文
posted @ 2014-10-16 18:29 midu 阅读(32) | 评论 (0) 编辑
摘要: 1、图像对数增强 计算公式为:NewPixel=255/log(255)*log(OldPixel) 考虑到log(0)为负无穷大,对于图像来说这毫无意义,因此修改上述公式为: NewPixel=255/log(256)*log(OldPixel+1); 我们看下上述的公式的原理。根据增强前后的象素...阅读全文
posted @ 2014-10-16 18:28 midu 阅读(3) | 评论 (0) 编辑
摘要: 浏览了一下午的资料发现,大致的去雾算法现状是:(1)首选去雾算法暗通道(2)相关去雾优秀博客资源(3)cvpr 中的一些优秀论文(4)图书出版(5)相关去雾帖子(6)去雾暗通道算法代码(1)首选去雾算法暗通道给出6种有去雾功能的算法: 基于何凯明博士提出的暗通道去雾算法; 基于中值滤波(也可使用...阅读全文
posted @ 2014-10-16 18:24 midu 阅读(27) | 评论 (0) 编辑
摘要: http://blog.csdn.net/bweaglegao/article/details/8540860http://www.cnblogs.com/acloud/archive/2011/10/29/sws_scale.html阅读全文
posted @ 2014-10-08 16:50 midu 阅读(37) | 评论 (0) 编辑
摘要: Probability Theory概率论Trial试验intersection交union并frequency频率difference差additivity可加性complementation对立contain包含equivalent等价mean均值convolution[,kɔnvə'lu:ʃə...阅读全文
posted @ 2014-09-28 20:46 midu 阅读(36) | 评论 (0) 编辑
摘要: Inmathematics, amomentis, loosely speaking, a quantitative measure of the shape of a set of points. The "second moment", for example, is widely used a...阅读全文
posted @ 2014-09-28 20:45 midu 阅读(17) | 评论 (0) 编辑
摘要: k阶原点距和k阶中心距各是说明什么数字特征http://www.cnblogs.com/emanlee/archive/2011/04/25/2028628.html二阶中心距,也叫作方差,它告诉我们一个随机变量在它均值附近波动的大小,方差越大,波动性越大。方差也相当于机械运动中以重心为转轴的转动惯...阅读全文
posted @ 2014-09-28 20:44 midu 阅读(62) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/WhyEngine/category/531773.htmlhttp://www.cnblogs.com/WhyEngine/p/3998063.html阅读全文
posted @ 2014-09-28 20:32 midu 阅读(8) | 评论 (0) 编辑
摘要: 1. 矩的概念图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(图像描述量)来描述整个图像,这组数据越简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰。图像识别发展几十年,不断有新的特征提出,而图像不变矩就是其中一个。矩是概率与统计中的一个概念,是随机变量的一种数字特...阅读全文
posted @ 2014-09-28 20:30 midu 阅读(83) | 评论 (0) 编辑
摘要: 1. 什么是斑点斑点通常是指与周围有着颜色和灰度差别的区域。在实际地图中,往往存在着大量这样的斑点,如一颗树是一个斑点,一块草地是一个斑点,一栋房子也可以是一个斑点。由于斑点代表的是一个区域,相比单纯的角点,它的稳定性要好,抗噪声能力要强,所以它在图像配准上扮演了很重要的角色。同时有时图像中的斑点也...阅读全文
posted @ 2014-09-28 18:37 midu 阅读(82) | 评论 (0) 编辑
摘要: http://v.youku.com/v_show/id_XNzI0NTgzNDIw.html太搞笑了http://zhidao.baidu.com/link?url=5yG79pPiD0bBv1qkv4phua1ts4qowH2rXHjD9seeaiKGqyquwo0423kPOtlM4-tSgB...阅读全文
posted @ 2014-09-24 01:18 midu 阅读(3) | 评论 (0) 编辑
摘要: #include "stdio.h"#include "stdlib.h"#include "malloc.h"#include "string.h"#include "sys/timeb.h"#include "math.h"#include "inf.h"#define MIN(a,b) ((a...阅读全文
posted @ 2014-09-16 17:48 midu 阅读(18) | 评论 (0) 编辑
摘要: 在图像缩放,旋转等一些图像处理中,对图像进行插值是不可缺少的一个步骤,下面对一些常用的插值算法进行介绍:http://www.chinaai.org/ip/image-transform/interpolation.htmlsoeasy!1.最近邻插值这种插值方法是最简单的一种插值算法,图像输出的像...阅读全文
posted @ 2014-09-13 11:19 midu 阅读(30) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/BYTEMAN/archive/2012/07/21/2602181.htmlhttp://www.cnblogs.com/Imageshop/p/3907639.html中值滤波去雾算法http://blog.sina.com.cn/s/blog_8e...阅读全文
posted @ 2014-09-09 09:44 midu 阅读(22) | 评论 (0) 编辑
摘要: 概率论只不过是把常识用数学公式表达了出来。——拉普拉斯记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了——...阅读全文
posted @ 2014-09-05 20:51 midu 阅读(12) | 评论 (0) 编辑
摘要: https://github.com/hackeron/motion阅读全文
posted @ 2014-09-05 20:37 midu 阅读(15) | 评论 (0) 编辑
摘要: //写个简单的先练习一下,测试通过//k-均值聚类算法C语言版 #include #include #include #include #define TRUE 1 #define FALSE 0 int N;//数据个数 int K;//集合个数 int...阅读全文
posted @ 2014-09-05 20:36 midu 阅读(24) | 评论 (0) 编辑
摘要: 余弦计算相似度度量相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关...阅读全文
posted @ 2014-09-05 20:28 midu 阅读(69) | 评论 (0) 编辑
摘要: 常用相似性度量(距离 相似系数)在分类聚类算法,推荐系统中,常要用到两个输入变量(通常是特征向量的形式)距离的计算,即相似性度量.不同相似性度量对于算法的结果,有些时候,差异很大.因此,有必要根据输入数据的特征,选择一种合适的相似性度量方法.令X=(x1,x2,..,xn)T,Y=(y1,y2,.....阅读全文
posted @ 2014-09-05 18:28 midu 阅读(34) | 评论 (0) 编辑
摘要: 最近做一个加密算法遇到需要计算矩阵的逆,闲着无聊,记录一下,以后免得再麻烦。[cpp] view plaincopyprint?#include #include #include #define MAX 20 #define E 0.000000001 /** * 计算矩...阅读全文
posted @ 2014-09-05 15:33 midu 阅读(16) | 评论 (0) 编辑
摘要: 摘要在MATLAB环境下利用USB摄像头采集字符图像,读取一帧保存为图像,然后对读取保存的字符图像,灰度化,二值化,在此基础上做倾斜矫正,对矫正的图像进行滤波平滑处理,然后对字符区域进行提取分割出单个字符,识别方法一是采用模板匹配的方法逐个对字符与预先制作好的字符模板比较,如果结果小于某一阈值则结果...阅读全文
posted @ 2014-09-03 11:52 midu 阅读(85) | 评论 (0) 编辑
摘要: (一)高斯低通滤波去噪 高斯低通滤波器(Gaussian Low Pass Filter)是一类传递函数为高斯函数的线性平滑滤波器。又由于高斯函数是正态分布的密度函数。因此高斯低通滤波器对于去除服从正态分布(Normal distribution)的噪声非常有效。一维高斯函数和二维高斯函数 (高...阅读全文
posted @ 2014-09-03 11:50 midu 阅读(73) | 评论 (0) 编辑
摘要: 一、算法概述1、kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数据,对于新的数据则直接和训练数据匹配,如果存在相同属性的训练数据,则直接用它的分类来作为新数据的分类。这种方式有一个明...阅读全文
posted @ 2014-09-02 23:45 midu 阅读(1) | 评论 (0) 编辑
摘要: 提示:本文为笔者原创,转载请注明出处:blog.csdn.net/carson2005 以下链接是本人整理的关于计算机视觉(ComputerVision, CV)相关领域的网站链接,其中有CV牛人的主页,CV研究小组的主页,CV领域的paper,代码,CV领域的最新动态,国内的应用情况等等。打...阅读全文
posted @ 2014-09-02 22:43 midu 阅读(9) | 评论 (0) 编辑
摘要: http://blog.csdn.net/liu409075600/article/details/8907310阅读全文
posted @ 2014-09-02 09:35 midu 阅读(1) | 评论 (0) 编辑
摘要: 最近认真研究了一下算法导论里面的多项式乘法的快速计算问题,主要是用到了FFT,自己也实现了一下,总结如下。1.多项式乘法两个多项式相乘即为多项式乘法,例如:3*x^7+4*x^5+1*x^2+5与8*x^6+7*x^4+6*x^3+9两个式子相乘,会得到一个最高次数项为13的多项式。一般来说,普通的...阅读全文
posted @ 2014-09-02 09:32 midu 阅读(31) | 评论 (0) 编辑
摘要: 常用的分类算法主要有决策树,贝叶斯,KNN,SVM,神经网络以及基于规则的分类算法。本文主要对各种分类算法的特性做一下总结。1. 决策树算法决策树算法是一种构建分类模型的非参数方法,它不要求任何先验假设,不假定类和其他属性服从一定的概率分布。找到最佳决策树是NP完全问题,许多决策树算法都采取启发式的...阅读全文
posted @ 2014-09-02 09:12 midu 阅读(48) | 评论 (0) 编辑
摘要: 两个序列的N点循环卷积定义为10[()()]()(())NNNkhnxnhmxnm(0)nN从定义中可以看到,循环卷积和线性卷积的不同之处在于:两个N点序列的N点循环卷积的结果仍为N点序列,而它们的线性卷积的结果的长度为2N-1;循环卷积对序列的移位采取循环移位,而线性卷积对序列采取...阅读全文
posted @ 2014-08-31 23:04 midu 阅读(58) | 评论 (0) 编辑
摘要: 讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值滤波,中值滤波,最大最小值滤波,关于什么是卷积以及理解卷积在图像处理中作用参见这里–http://blog.csdn.net/jia20003/article/details/7038938均值滤波:均值滤波,是图像处理...阅读全文
posted @ 2014-08-31 22:59 midu 阅读(48) | 评论 (0) 编辑
摘要: 1、题目:一维小波变换,可多次分解2、原理:卷积核变为Daubechies正交小波基h[]和g[]的交替形式。增加了多次分解的功能。3、代码:[cpp]view plaincopy#include#include#include#defineLENGTH4096//信号长度/************...阅读全文
posted @ 2014-08-31 22:45 midu 阅读(39) | 评论 (0) 编辑
摘要: 1、题目:循环卷积2、代码:[cpp]view plaincopy/********************************************************************循环卷积*V0.1**输入参数:lpData,输入数据;DataLen,输入数据长度;Filte...阅读全文
posted @ 2014-08-31 22:44 midu 阅读(1) | 评论 (0) 编辑
摘要: 引用keendawn的高斯(核)函数简介1函数的基本概念所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数。 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远...阅读全文
posted @ 2014-08-31 22:40 midu 阅读(63) | 评论 (0) 编辑
摘要: 1、题目:分割图像,提取信封上的邮编。2、算法原理:原创:梁毅军(西安交大图像所,liang.yijun@live.cn)(1) 线框提取:输入f(x,y)为彩色图像,输出g(x,y)为灰色图像。g(x,y) = T[f(x,y).R, f(x,y).B, f(x,y).R] T为变换函数T(R, ...阅读全文
posted @ 2014-08-31 22:31 midu 阅读(21) | 评论 (0) 编辑
摘要: 图形图像处理-之-高质量的快速的图像缩放 中篇 二次线性插值和三次卷积插值HouSisong@GMail.com 2006255.12.13(2009.03.07 可以到这里下载缩放算法的完整的可以编译的项目源代码:http://blog.csdn.net/housisong/archive/200...阅读全文
posted @ 2014-08-31 22:26 midu 阅读(48) | 评论 (0) 编辑
摘要: 作者:阮一峰几周前,我介绍了相似图片搜索。这是利用数学算法,进行高难度图像处理的一个例子。事实上,图像处理的数学算法,已经发展到令人叹为观止的地步。Scriptol列出了几种神奇的图像处理算法,让我们一起来看一下。一、像素图生成向量图的算法数字时代早期的图片,分辨率很低。尤其是一些电子游戏的图片,...阅读全文
posted @ 2014-08-31 22:24 midu 阅读(43) | 评论 (0) 编辑
摘要: http://blog.csdn.net/arau_sh/article/details/6161770阅读全文
posted @ 2014-08-31 22:20 midu 阅读(11) | 评论 (0) 编辑
摘要: 转自http://www.cnblogs.com/Imageshop/archive/2011/11/10/2244664.html 要写好一个图像处理软件,仅靠自己看书是完全不够的,要多方面学习,借鉴前人的经验,要集思广益、多面出击。如今网络发达,图像学的资料其实也到处都是。只是往往个人能力或...阅读全文
posted @ 2014-08-31 22:16 midu 阅读(32) | 评论 (0) 编辑
摘要: 使用纹理滤波器进行分割就是利用图像中不同区域的纹理来对图像的区域进行划分。纹理是指一个物体上的颜色模式或者指物体表面的光滑程度。纹理描述图像中的区域特征,试图直观地定量描述诸如光滑、质地等参数。在遥感、医学图像处理和自动化侦查中,纹理分割图像有着很多的应用。利用纹理可以用来检测图像的边界,从而对图像...阅读全文
posted @ 2014-08-31 12:57 midu 阅读(13) | 评论 (0) 编辑
摘要: 进来需要用到此知识,突然发现记得很不牢固,温故而知新,先记录下,留待下次温故:原文地址:www.wzms.com/resource/downresource.asp?resourceid=8736极坐标变换公式极坐标系浙江省温州中学 孙军波教学目标:认识极坐标,能在极坐标中用极坐标刻画点的位置;体会...阅读全文
posted @ 2014-08-31 12:51 midu 阅读(59) | 评论 (0) 编辑
摘要: 时间戳的简单同步算法,便于进一步理解音视频同步概念:博文来源:stone_kingnet的专栏在发送方:对于相同时刻的音频/视频帧,打上相同的时间戳(系统时间)接收方:保存两个队列,audio/video分别用来存放还未播放的音频和视频1。当每接收到音频帧的时候,遍历此时的video队列,将此音频帧...阅读全文
posted @ 2014-08-31 12:47 midu 阅读(14) | 评论 (0) 编辑
摘要: QDF假设样本符合高斯分布,通过估计均值与协方差矩阵,训练分类器。但是由于特征维数较高,时空复杂度较高。(协方差矩阵的维数为 特征维数*特征维数)。而且协方差矩阵往往存在不满秩无法求逆的情况(样本数《特征维数)。MQDF主要有以下改进:1、在协方差矩阵的对角线上加一个小的常量,保证矩阵的满秩(非奇异...阅读全文
posted @ 2014-08-31 12:33 midu 阅读(190) | 评论 (0) 编辑
摘要: 协方差的定义对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给...阅读全文
posted @ 2014-08-31 12:30 midu 阅读(39) | 评论 (0) 编辑
摘要: 一、统计学的基本概念统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述:均值:标准差:方差:均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0, ...阅读全文
posted @ 2014-08-31 12:29 midu 阅读(48) | 评论 (0) 编辑
摘要: 方差:方差是变量与其平均值的平方和的算术平均值,例如: 有一组数据{4,5,6,7}, 平均值为:(4+5+6+7)/4=22/4=5.5 其方差为:[(4-5.5)2+(5-5.5)2+(6-5.5)2+(7-5.5)2]/4标准差:方差的开2次方 例如上面那组数据的标准差...阅读全文
posted @ 2014-08-31 12:24 midu 阅读(32) | 评论 (0) 编辑
摘要: http://blog.csdn.net/linuxcumt/article/details/8580123http://www.open-open.com/doc/view/ed3926107f60425aad2659e4bd73ca07阅读全文
posted @ 2014-08-31 01:57 midu 阅读(22) | 评论 (0) 编辑
摘要: http://blog.csdn.net/linuxcumt/article/details/8580112阅读全文
posted @ 2014-08-31 01:56 midu 阅读(19) | 评论 (0) 编辑
摘要: 个人接触机器视觉的时间不长,对于机器学习在目标检测的大体的框架和过程有了一个初步的了解,不知道对不对,如有错误,请各位大牛不吝指点。目标的检测大体框架:目标检测分为以下几个步骤:1、训练分类器所需训练样本的创建: 训练样本包括正样本和负样本;其中正例样本是指待检目标样本(例如人脸或汽车等),负样本指...阅读全文
posted @ 2014-08-31 00:39 midu 阅读(27) | 评论 (0) 编辑
摘要: http://wenku.baidu.com/link?url=4RzdmvP9sdaaUbnVEW4OyBD-g67wIOiJjKFF3Le_bu7hIiBS7I6hMcDmCXrQwsHvrsPvR4666J1qF1ff5JVvd2xL8rzL9N81qvL-1dwkiim特别说明一下,根据那本...阅读全文
posted @ 2014-08-31 00:00 midu 阅读(59) | 评论 (0) 编辑
摘要: 特征向量的几何意义长时间以来一直不了解矩阵的特征值和特征向量到底有何意义(估计很多兄弟有同样感受)。知道它的数学公式,但却找不出它的几何含义,教科书里没有真正地把这一概念从各种角度实例化地进行讲解,只是一天到晚地列公式玩理论——有个屁用啊。根据特征向量数学公式定义,矩阵乘以一个向量的结果仍是同维数的...阅读全文
posted @ 2014-08-30 23:51 midu 阅读(57) | 评论 (0) 编辑
摘要: 几种典型的仿射变换: public static AffineTransform getTranslateInstance(doubl仿射变换-例e tx, double ty) 平移变换,将每一点移动到(x+tx, y+ty),变换矩阵为: [ 1 0 tx ] [ 0 1 ty ] [...阅读全文
posted @ 2014-08-30 23:48 midu 阅读(45) | 评论 (0) 编辑
摘要: 戏说:卷积卷积 在图像中其实就是乘积 求和 替代 已达到 平滑或者过滤的效果参考公式xiaojiang同学,最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我...阅读全文
posted @ 2014-08-30 23:47 midu 阅读(22) | 评论 (0) 编辑
摘要: 1.向量的内积 即 向量的的数量积 定义:两个非零向量的夹角记为〈a,b〉,且〈a,b〉∈[0,π]。 定义:两个向量的数量积(内积、点积)是一个数量,记作a·b。若a、b不共线,则a·b=|a|·|b|·cos〈a,b〉;若a、b共线,则a·b=+-∣a∣∣b∣。 2.向量的外积 即 向量的向量积...阅读全文
posted @ 2014-08-30 23:45 midu 阅读(43) | 评论 (0) 编辑
摘要: 最小2乘法最小2乘法直线拟合在我们研究两个变量(x, y)之间的相互关系时,通常可以得到一系列成对的数据(x1, y1、x2, y2... xm, ym);将这些数据描绘在x -y直角座标系中(如图1),若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。Y计= a0+ a1X ...阅读全文
posted @ 2014-08-30 23:44 midu 阅读(32) | 评论 (0) 编辑
摘要: 一下有抄袭国外公开课嫌疑,我在网易公开课看过类似讲义曾经抛砖引玉议卷积。上文 《辐射、服碘、补盐、空袭和卷积》针对教学中难点,借用直观例子对卷积作了解释,初衷为抛砖引玉,结果是“抛斧引班”----抛出了斧头,引出了鲁班群体,好些朋友在科学博客上发了好博文,或观点高、或方法简,或分析深,或应用好;朋友...阅读全文
posted @ 2014-08-30 22:56 midu 阅读(65) | 评论 (0) 编辑
摘要: 头文件:/* * Copyright (c) 2008-2011 Zhang Ming (M. Zhang), zmjerry@163.com * * This program is free software; you can redistribute it and/or modify it * ...阅读全文
posted @ 2014-08-30 21:29 midu 阅读(30) | 评论 (0) 编辑
摘要: 灰度图像高斯平滑 图像平滑用于去除图像中的噪声。高斯平滑,就是将每个像素的灰度值用其领域的加权平均值代替。该算法简单,能够有效去除高斯噪声。 平滑模板:121242121http://blog.csdn.net/zssureqh/article/details/7631056指针非数组// 高斯...阅读全文
posted @ 2014-08-29 18:27 midu 阅读(6) | 评论 (0) 编辑
摘要: http://www.61ic.com/code/forumdisplay.php?fid=470&filter=0&orderby=lastpost&ascdesc=DESC&page=283阅读全文
posted @ 2014-08-29 16:55 midu 阅读(16) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/skyseraph/category/369219.html阅读全文
posted @ 2014-08-29 15:39 midu 阅读(17) | 评论 (0) 编辑
摘要: 一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496)二、MP4封装格式核心概念1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding o...阅读全文
posted @ 2014-08-29 15:22 midu 阅读(110) | 评论 (0) 编辑
摘要: http://blog.csdn.net/lzhq28/article/details/7847047http://blog.csdn.net/lishizelibin/article/details/4338111http://www.cnblogs.com/wubugui/p/4446230.h...阅读全文
posted @ 2014-08-29 13:17 midu 阅读(9) | 评论 (0) 编辑
摘要: http://blog.csdn.net/u013322443/article/details/27539919阅读全文
posted @ 2014-08-29 13:14 midu 阅读(8) | 评论 (0) 编辑
摘要: 常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。一 颜色特征(一)特点:颜色特征是一种全局特征,描 述了图像或图像区域所对应的景物的表面性质。一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。由于颜色对图像或图像区 域的方向、大小等变化不敏感,所以颜色特征不...阅读全文
posted @ 2014-08-29 12:37 midu 阅读(25) | 评论 (0) 编辑
摘要: /**************************************************主要功能:两路YUV4:2:0拼接一路左右半宽格式YUV视频参考资料:http://www.pudn.com/downloads271/sourcecode/multimedia/vfw/detai...阅读全文
posted @ 2014-08-29 11:57 midu 阅读(57) | 评论 (0) 编辑
摘要: 概要介绍傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。最初傅里叶分析是作为热过程的解析分析的工具被提出的.傅里叶变换属于谐波分析。傅里叶变换的逆变换容易求出,而且...阅读全文
posted @ 2014-08-28 21:24 midu 阅读(48) | 评论 (0) 编辑
摘要: http://bbs.csdn.net/topics/390211536http://blog.csdn.net/laviewpbt/article/details/14225413http://bbs.csdn.net/topics/390573504http://blog.csdn.net/la...阅读全文
posted @ 2014-08-25 23:54 midu 阅读(42) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_55954cfb0102en6c.html阅读全文
posted @ 2014-08-25 23:52 midu 阅读(16) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_61e884ef0100fg81.htmlhttp://blog.sina.com.cn/s/blog_50363a790100wtq5.html 卷积http://blog.sina.com.cn/s/blog_4aa4593d0101...阅读全文
posted @ 2014-08-25 23:44 midu 阅读(17) | 评论 (0) 编辑
摘要: http://blog.sina.com.cn/s/blog_764b1e9d0100rcg6.htmlhttp://blog.sina.com.cn/s/blog_8f27ff8d0101e7dv.htmlhttp://blog.sina.com.cn/s/blog_4aa4593d01014et...阅读全文
posted @ 2014-08-25 23:33 midu 阅读(9) | 评论 (0) 编辑
摘要: http://z.download.csdn.net/detail/wangfei0117/4408649http://download.csdn.net/detail/wanwenliang2008/1767686http://zhidao.baidu.com/question/50407836....阅读全文
posted @ 2014-08-16 20:51 midu 阅读(22) | 评论 (0) 编辑
摘要: 整个看FFT过程中复数一直很折磨我。原本的实数的东西通过复数表达很像旋转矩阵用quaternion来表达,尽管旋转vector还是要用matrix来做,但是通过用quaternion表达的旋转意义可以做插值等很多快速的操作,而且内存消耗也小,在做完这些操作之后再转成matrix用就好了。复数表达也是...阅读全文
posted @ 2014-08-16 20:33 midu 阅读(27) | 评论 (0) 编辑
摘要: 更复杂些的滤波算子一般是先利用高斯滤波来平滑,然后计算其1阶和2阶微分。由于它们滤除高频和低频,因此称为带通滤波器(band-pass filters)。在介绍具体的带通滤波器前,先介绍必备的图像微分知识。1 一阶导数连续函数,其微分可表达为,或 (1.1)对于离散情况(图像),其导数必须用差分方差...阅读全文
posted @ 2014-08-16 18:56 midu 阅读(22) | 评论 (0) 编辑
摘要: 定义在数学中,数量积(dotproduct;scalarproduct,也称为标量积、点积、点乘)是接受在实数R上的两个矢量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。两个矢量a=[a1,a2,…,an]和b=[b1,b2,…,bn]的点积定义为:a·b=a1b1+a2b2+……...阅读全文
posted @ 2014-08-13 20:49 midu 阅读(37) | 评论 (0) 编辑
摘要: 1.频域值得坐标轴1.在傅里叶变换中,低频主要决定图像在平滑区域中总体灰度级的现实,而高频决定图像细节部分,如边缘和噪声; 滤波器:使低频通过而使高频衰减的滤波器称为“低通滤波器”相反特性的滤波器 称为“高通滤波器” 被低通滤波的图像比原始图像少了一些尖锐的细节部分,因为高频部分已被衰减。同样,被...阅读全文
posted @ 2014-08-12 09:29 midu 阅读(27) | 评论 (0) 编辑
摘要: 我的车牌识别也是用的这个分类方法http://blog.csdn.net/yangtrees/article/details/7574123阅读全文
posted @ 2014-08-10 23:56 midu 阅读(14) | 评论 (0) 编辑
摘要: /*今天师弟来问我,CV的书里到处都是卷积,滤波,平滑……这些概念到底是什么意思,有什么区别和联系,瞬间晕菜了,学了这么久CV,卷积,滤波,平滑……这些概念每天都念叨好几遍,可是心里也就只明白个大概的意思,赶紧google之~ 发现自己以前了解的真的很不全面,在此做一些总结,以后对这种基本概念要深刻...阅读全文
posted @ 2014-08-10 23:45 midu 阅读(44) | 评论 (0) 编辑
摘要: 特征值与特征向量的求法设A为n阶方阵,如果数“ ”和n维列向量x使得关系式 成立,则称 为方阵A的特征值,非零向量x称为A对应于特征值“ ”的特征向量。详见1.3.5和1.3.6节:特征值分解问题。例1-89 求矩阵 的特征值和特征向量解:>>A=[-2 1 1;0 2 0;-4 1 3];>>[V...阅读全文
posted @ 2014-08-10 23:43 midu 阅读(46) | 评论 (0) 编辑
摘要: http://xtyxhcl.jpkc.zstu.edu.cn/list.asp?menuid=6浙江理工阅读全文
posted @ 2014-08-10 23:34 midu 阅读(10) | 评论 (0) 编辑
摘要: http://www.eefocus.com/article/08-03/34761s.html阅读全文
posted @ 2014-08-10 23:31 midu 阅读(15) | 评论 (0) 编辑
摘要: 卷积运算(Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表示函数f 与经过翻转和平移与g 的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是“滑动平均”的推广。假设: f(x),g(x)是R1上的两个可积函数,并且积分是存在的。这样,随着...阅读全文
posted @ 2014-08-10 17:57 midu 阅读(45) | 评论 (0) 编辑
摘要: 1.使用模板处理图像相关概念:模板:矩阵方块,其数学含义是一种卷积运算。卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别与卷积核(权矩阵)的每个元素对应相乘,所有乘积之和作为区域中心像素的新值。卷积核:卷积时使用到的权,用一个矩阵表示,该矩阵与使用的图像区域大小相同,其行、列都是奇...阅读全文
posted @ 2014-08-10 17:55 midu 阅读(38) | 评论 (0) 编辑
摘要: 1.使用模板处理图像相关概念: 模板:矩阵方块,其数学含义是一种卷积运算。 卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相 乘,所有乘积之和作为区域中心像素的新值。 卷积核:卷积时使用到的权用一个矩阵表示,该矩阵与使用的图像区域大小相同,其行、列...阅读全文
posted @ 2014-08-10 17:52 midu 阅读(74) | 评论 (0) 编辑
摘要: 真是惭愧,学《数字信号处理》好长时间了,也记住了傅里叶变换的公式,也会做FFT程序了,但是居然不知道傅里叶变换的意义何在!真是该!! 还好,算是搞明白了。抛开数学上的意义不说,单说一下实际的一些意义吧。傅里叶变换是将信号从时域转换到频域,这样在时域上一些交叉在一起的、看不出来的信号的特性,在频域上就...阅读全文
posted @ 2014-08-10 17:47 midu 阅读(222) | 评论 (0) 编辑
摘要: 废话不多说先列提纲: 0.概述-需求分析-功能描述-受限和缺点改进+知识点预备 1.泰勒级数和傅里叶级数的本质区别,泰勒展开 2. 函数投影和向量正交 3.两个不变函数求导是本身e^x,sinx,cosx也是为什么要傅里叶转换的原因! 4.傅里叶技术推到过程 5.附录参考资料 0....阅读全文
posted @ 2014-08-10 13:09 midu 阅读(232) | 评论 (0) 编辑
摘要: http://www.cnblogs.com/wuguanglei/p/3866583.htmlhttp://www.cnblogs.com/wuguanglei/p/3866583.htmlok?阅读全文
posted @ 2014-07-25 00:03 midu 阅读(11) | 评论 (0) 编辑
摘要: /********************************************************************************* 程序名称:快速傅里叶变换(FFT) ** 程序描述:本程序实现快速傅里叶变换 ** 程序作者:宋元瑞 ** 最后修改:2011年4月5...阅读全文
posted @ 2014-07-17 23:54 midu 阅读(37) | 评论 (0) 编辑
摘要: http://blog.csdn.net/zouwen198317/article/details/22792107http://blog.csdn.net/zouwen198317/article/details/6991876全景图拼接阅读全文
posted @ 2014-07-14 23:03 midu 阅读(25) | 评论 (0) 编辑
摘要: http://blog.csdn.net/shanghaiqianlun/article/details/11776707阅读全文
posted @ 2014-07-09 17:18 midu 阅读(19) | 评论 (0) 编辑
摘要: 汉邦高科任职要求:1. 电子工程、图像与信号处理、计算机等相关专业,本科及以上学历;2. 在数字图像处理、视频压缩等方面具有扎实的理论背景知识;3. 熟悉Sony、Panasonic、Aptina、OmniVision等常用CCD/CMOS芯片的成像原理及工作流程,至少在下述一个领域有1年以上研发经...阅读全文
posted @ 2014-07-07 20:15 midu 阅读(184) | 评论 (2) 编辑
摘要: 1.rgb2yuv422p代码的运算速度取决于以下几个方面1、 算法本身的复杂度,比如MPEG比JPEG复杂,JPEG比BMP图片的编码复杂。2、 CPU自身的速度和设计架构3、 CPU的总线带宽4、 您自己代码的写法将RGB格式的彩色图像先转换成YUV图像。图像转换的公式如下:Y = 0.299 ...阅读全文
posted @ 2014-06-20 00:25 midu 阅读(106) | 评论 (0) 编辑
摘要: invert:倒置,翻转曝光值=快门+光圈:曝光值每增加1将改变一挡曝光,也就是将曝光量减半,比如将曝光时间或光圈面积减半。这一点可能会引起迷惑。之所以是减少而不是增加,是因为曝光值反映的是相机拍摄参数的设置,而非底片的照度(这一点将在下一段中提到)。曝光值的增加对应于更快的快门速度和更大的f值。因...阅读全文
posted @ 2014-06-18 17:40 midu 阅读(29) | 评论 (0) 编辑
摘要: histogram-直方图阅读全文
posted @ 2014-06-18 15:18 midu 阅读(13) | 评论 (0) 编辑
摘要: 因为在研究车牌识别算法(plr),遇到了算法 处理的格式问题,可分三个常用格式:0:rgb1:bgr2:yuv422——需要注意的是,这里为啥选yuv422做识别,当然还可选yuv444,最坏打算可选yuv420,主要是考虑颜色识别效果 R代表红,red; G代表绿,green; B代表蓝,b...阅读全文
posted @ 2014-06-16 00:20 midu 阅读(175) | 评论 (0) 编辑
摘要: 把物体从世界坐标系转化到视点坐标系的矩阵称为视图矩阵。 下面我们先看下opengl视图矩阵的推导过程: 假设视点或camera的局部坐标系为UVN,UVN分别指向右方、上方和后方从而构成右手坐标系,视点则处于局部坐标系的原点位置。 就如opengl的函数OpenGL的gluLookAt(eyex,...阅读全文
posted @ 2014-06-16 00:09 midu 阅读(29) | 评论 (0) 编辑
摘要: Javascript生成二维码(QR)网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成。本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网站,虽然有服务器端缓存,毕竟需要大量的CPU运算时间,这或多或...阅读全文
posted @ 2014-05-22 22:35 midu 阅读(53) | 评论 (0) 编辑
摘要: 在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理、文本图片和验证码图片中字符的提取、车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等。较为常用的图像二值化方法有:1)全局固定阈值;2)局部自适应阈值;3)OTSU等。全局固定阈值很容易理解,就是对整幅图像都是用一个统一的阈值来进行二值化;局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。这样做的好处在于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的。亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。不同亮阅读全文
posted @ 2014-01-19 18:26 midu 阅读(211) | 评论 (0) 编辑
摘要: OpenCV1.0版本有windows,linux之分,笔者曾经一直使用Opencv1.0。这个版本在下载,安装之后,在\OpenCV\_make文件夹下面已经存在了一个opencv.dsw的工程文件,直接用VC6,或者,VisualStudio就可以打开该工程,从而可以进行相应的编译工作;而对于OpenCV2.0及以后的版本而言,就没有类似的工程文件了。这个时候,就需要你自己利用CMake工具来生成一个VisualStudio的工程文件了;本文就是教你如何来完成这一步。具体步骤如下:(1)下载CMake工具,可以直接去CMake的主页上下载http://www.cmake.org/;(2)按阅读全文
posted @ 2014-01-19 18:24 midu 阅读(63) | 评论 (0) 编辑
摘要: 从头再来(594169949)2014-1-1611:03:17请问有谁知道如何在每条曲线附近添加注释?a=ezplot('y-sin(x)*sin(2*x)')set(a,'color','r')holdonplot(x,sin(x),'k')holdonplot(x,-sin(x),'m-.')axis([0pi-11])阅读全文
posted @ 2014-01-16 23:09 midu 阅读(16) | 评论 (0) 编辑
摘要: http://cunix.net/?p=105阅读全文
posted @ 2014-01-07 00:10 midu 阅读(23) | 评论 (0) 编辑
摘要: 版本 v1.0,存在内存问题在 void v4l2_process_image(struct buffer buf)中对 v4l2 采集来的一帧进行处理,存在 struct buffer buf 中buffer 结构定义为:struct buffer {void * start;size_t length;};buffer.start 为 YUV422 格式数据的起始地址。有关 YUV 格式:YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将 YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存阅读全文
posted @ 2014-01-06 23:48 midu 阅读(57) | 评论 (0) 编辑
摘要: http://blog.csdn.net/liuhongxiangm/article/details/9135791http://blog.csdn.net/bluesky_sunshine/article/details/6074085v4l2+yuv420http://www.cnblogs.c...阅读全文
posted @ 2014-01-02 23:50 midu 阅读(13) | 评论 (0) 编辑
摘要: YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。 与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不阅读全文
posted @ 2014-01-01 21:13 midu 阅读(71) | 评论 (0) 编辑
摘要: //图像的熵=========================================================================================private void Menu_Entropy_Click(object sender, EventArgs e){if (curBitmap != null){//计算熵double entropy = GetEntropy(curBitmap, curBitmap.Width, curBitmap.Height);MessageBox.Show("图像:"+curFileName阅读全文
posted @ 2013-11-26 23:15 midu 阅读(130) | 评论 (0) 编辑
摘要: 参考文档:Adaptive Thresholding for the DigitalDesk.pdf Adaptive Thresholding Using the Integral Image.pdf一、问题的由来 一个现实: 当用照像机拍摄一副黑纸白字的纸张时,照相机获得的图像并不是真正的黑白图像。不管从什么角度拍摄,这幅图像实际上是灰度或者彩色的。除非仔细的设置灯光,否则照相机所拍摄的放在桌子上的纸张图像并不能代表原始效果。不像在扫描仪或打印机内部,想控制好桌子表面的光源是非常困难的。这个开放的空间可能会受到台灯、吊灯、窗户、移动的影子等影响。人类的视觉系统能自动补偿这些,...阅读全文
posted @ 2013-11-23 21:34 midu 阅读(150) | 评论 (0) 编辑
摘要: 因昨日写的匆忙,有不少错误,特重写并增加了适当的解释,并且觉得对于搞图像处理的朋友来说,这个可能在很多场合还是用得着的,因此删除了原随笔,又重新发布了下,非有意刷屏。原来一直认为彩色图像的去色算法没啥研究价值,网络上已经有很多类似的算法了,比如著名的Gray = R*0.299 + G*0.587 + B*0.114公式,或者LAB颜色通道的L值,HSL的L通道等等,直到最近看一些论文,发现原来也有很多人对这个过程进行过详细的研究和创新。在学习这些算法的同时,使我也认识到,任何你认为简单的东西在背后都有可能有着复杂的机理,只是你没有发现而已。 我先拿两个图片的例子来说明为什么要对彩图去色的过程阅读全文
posted @ 2013-11-23 21:11 midu 阅读(127) | 评论 (0) 编辑
2019-03-01 20:55:32 fjsd155 阅读数 2206
  • 轮廓匹配

    掌握OpenCV核心模块,熟练使用相关API 理解各个API背后的相关算法原理,每个参数意义 有能力解决使用应用场景问题,大量工程代码经验分享 掌握图像处理与视频分析,图像分析与测量编码与开发技巧

    95人学习 贾志刚
    免费试看

卷积神经网络CNN可谓是深度学习领域中较为成功的一种网络,计算机视觉一直是人工智能领域的先锋部队。ILSVRC(ImageNet Large Scale Visual Recognition Challenge),又称ImageNet比赛,是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一。ImageNet数据集是ILSVRC竞赛使用的是数据集,由斯坦福大学李飞飞教授主导,包含了超过1400万张全尺寸的有标记图片。ILSVRC中,从2010年到2017年出现了几次重要突破,从传统CV时代进入Deep Learning时代,再到超越人类水平。

由于深度学习技术的错误率已经低于人类视觉,继续举办ILSVRC已无意义,因此研究者的关注点由相当成熟的 image identification 转向尚待开发的 image understanding 。ILSVRC 2017 已是最后一届举办。2018年起由WebVision竞赛(Challenge on Visual Understanding by Learning from Web Data)接棒。WebVision所使用的dataset爬取自网络,未经人工处理,难度大,更加贴近实际运用场景。

正是因为ILSVRC 2012挑战赛上的AlexNet横空出世,使得全球范围内掀起了一波深度学习热潮。这一年也被称作“深度学习元年”。

历届冠军的表现如图(摘自:ILSVRC 歷屆的深度學習模型):

 

要对CNN进行总结梳理,不是一件简单的事情,多少需借鉴、引用网上的一些观点(曾妄图梳理DNN的知识体系,最终以多方引用而潦草应付hhh)。本文假定读者已具备图像处理(包括卷积操作)、机器学习(包括梯度下降法)、神经网络(包括BP算法)的基本知识,笔者力图按自己的理解梳理CNN的知识体系,若有错误,烦请指出匡正。

 

基础版的CNN

最早期的CNN叫LeNet(又叫LeNet-5),是Yann LeCun等人在1998年提出。LeNet-5 这个网络虽然很小,但是它包含了深度学习的基本模块。

卷积网络的三明治结构

卷积网络结构为“卷积层(CONV),非线性层(ReLU),池化层(POOL)” C-R-P周期循环,最后由全连接层(FC)输出结果。

 

注:实际应用的过程中常常不限于C-R-P循环,也有可能是C-C-R-P等等。

卷积层

此处不详述卷积的概念(诸如卷积定理等等),大致梳理如下。

        

基本概念

卷积核:又叫过滤器。其操作如图所示,采用“席卷而积”的形式(卷积核与原图像对应位置相乘所得积相加,并遍历全图),对图像进行“滤镜处理”。卷积核其实就是一组权值(比如:3*3卷积核就是9个权值参数),需要让机器自己学出各个参数的值。

通道Channel:通过设置不同的卷积核,可以过滤不同的局部特征(如横线、竖线等)。因此每次卷积通常会设置多个卷积核。

卷积核大小KernelSize:一般为(2n+1)*(2n+1)大小(n为自然数),通常使用的卷积核大小为3*3和5*5(K为3或5)。GoogleNet的Inception采用了多种size的卷积核,即每次卷积让机器自己去选择合适大小的卷积核,是一个比较巧妙的方法。

步长Stride:是指卷积核每次移动的格子数。通常为移动一个像素,即S=1。

填充Padding:由于一轮卷积操作后,将会丢失边界一圈的像素信息。因此通常会事先在原图像周围填充适当大小的像素,如填充一圈0或1(P=1)。

若原图大小为M0,卷积后所得图像大小为M1,则满足以下公式:M1=(M0+P*2-K)/S+1。

 

卷积网络的特性

卷积网络的特性:稀疏连接(局部连接)、权值共享(共用卷积核)、平移不变性(空间不变、尺度不变)。

如何去理解这些特性?

我们对一张图像的识别,会先判断局部是否具备某些特征,如果具备这些特征,我们需要量化出来具备这种的可能性有多大(强度有多大),而过滤器(卷积核)可以帮助我们实现这个任务。比如我们想判断图片的某个区域是否有个“转角形状”,就把过滤器(卷积核)放在那个区域,如果过滤结果(运算结果)比较大,就说明具有“转角形状”的可能性大(结果越大,形状越匹配)。这便是局部视野的思想,也叫局部连接。

我们的任务并不是判断某个区域有没有某种形状(比如“转角形状”),因为当那个形状稍微往任意方向平移后,我们这个过滤器就会判断失误,即使仅平移一个像素,过滤器的结果也会变小。最精确的做法是,我们需要在任意一个区域(也就是以所有像素点为中心的区域;当然要求不那么精确的时候,我们会加大步长 Stride)都进行相同的过滤运算(使用相同的卷积核,即使用相同的权值),这便是权值共享。

所谓的平移不变形,其实刚刚已经解释了,正是因为我们对任意一个区域都进行了相同的过滤运算,那么无论目标在空间上怎么平移,我们都能识别到,这就是空间上的平移不变形。另外,我们需要能够识别不同大小的某种形状(比如“大型的转角形状”),这个应该怎么实现呢?这种情况其实需要这么理解:在最初的几个卷积层,我们让机器学习成“下采样”的变换层(比如卷积核的的所有参数值都为1 [比如3*3卷积核就是9个1],并且采用Stride=2 ),其实就实现了缩放,而之后的小卷积核就能顺利识别出特定的形状了。这种思想其实也是“视野”的思想,识别较大的形状(或图案),我们需要较大的视野。

我们重新梳理一下“视野”的思想。实际上,当我们需要识别较复杂的图案时,我们可以先在较小的视野(前几层)里先识别出这个图案的各个部分,然后在较大的视野(之后的几层)里综合。这其实就是:某个“较大的局部”里同时具备哪些“较小局部的特征”的组合,并且这种特定组合满足特定的空间关系。可以类比第一层的理解,以3*3卷积核为例:在某个3*3的像素区域内,同时具备哪些“像素里有较高的颜色值”,并且这些特定像素满足特定的空间关系。我们可以看到,从第2层开始,对“局部特征提取”的理解,与第一层的理解几乎是等价的,可以用相同方式进行运算,即:都采用卷积运算。第一层和后面的几层,思想是相同的,唯一的不同在于,视野不同。越后面的层,视野越大,也就能识别出更宏观、更复杂的特征。

为什么3*3卷积可靠?因为一切复杂的图案都可以先分成9个部分(其实4个部分就够了,也就是2*2卷积核,但3*3更方便运算,且一般认为效率更高),也就化解成了分别识别这9个部分(分解成了9个子问题),递归处理各个部分即可。这个思路有点像分治算法。其实可以认为,卷积神经网络,就是分治算法的逆运算的一个典型案例。

 

多通道、多卷积核的卷积运算

之前我们的理解都是基于单通道、单卷积核。那么多通道、多卷积核是什么情况呢?

首先看看多通道的输入的情况。对于第一层来说,多通道就是指多个颜色通道(RGB对应了3个通道),对于之后的层来说,多通道就是指输入有多个特征图。对于同一个卷积核来说,我们需要对每个通道都进行卷积运算,然后将所有通道的运算结果相加,得到一张特征图,作为输出。比如需要是被出一个“X”,我们可以设计一个“对角线”卷积核;而图像中“X”的上面部分为红色,下面部分为绿色,若使用单通道,则无法识别出完整的“X”,此时如果将各个通道的结果相加汇总,则可以识别出目标。

然后看看多卷积核的情况。如果使用多个卷积核,都进行上述运算,则可以得到多张特征图的输出。特征图的数目,也就是下一层的通道数。为什么同一层需要多个卷积核,因为我们需要同时提取不同类型的“形状”。因此,指定某个层的输出通道数(输出特征图数目),也就指定了该层的卷积核数,也就等价于指定了该层需要提取的特征的种类数目。

注意两种说法。第一种说法:我们平时说卷积核是三维的,其实是“三维复制”的,我们为了方便运算,将二维的卷积核复制几层,就得到了三维卷积核(在不同通道上进行相同的卷积运算)。也就是说,同一个卷积层具有多个三维卷积核。第二种说法:三维的卷积核不是“复制而来的”,而是多个不同的卷积核组合而来,在这种说法下,同一层就是一个三维卷积核,卷积核的深度与输出通道数相等。两种说法是等价的,都没错,认真理解一下就知道了。为了避免概念混淆,之后的内容中,本文统一采用第二种说法来讲解。

 

1*1卷积核

在 ResNet 中,我们会遇到 1*1卷积核,如何理解这种卷积核呢?

1*1卷积核不影响图像的长宽尺寸,只影响深度。1*1卷积核并不是一层卷积核,而是有深度的,我们设置不同的深度(二维卷积核的个数),也就指定好了输出特征图的个数。因此1*1卷积核实际上对通道数进行了改变。但实际上并不只是仅仅改变了通道数,1*1卷积核之后还会接一个非线性变换,因此信息的变换并不单调,有时候也会产生有意义的特征提取操作。但是,一般不会连续串联两个1*1卷积核,因为特征提取是低效的,毕竟特征提取还是主要得依赖于3*3卷积核。

 

非线性层

又叫激活层,把卷积层输出结果做非线性映射。

CNN采用的激活函数一般为ReLU(Rectified Linear Unit,修正线性单元),它的特点是收敛快,求梯度简单,图像如下(小于0部分函数值为0,大于0部分为正比例函数)。ReLU是2012年AlexNet中开始使用,属于CNN进化的形式。ReLU这个激活层可以加速网络的训练,可以比sigmoid和tanh更利于梯度传播(sigmoid容易造成梯度消失。其实梯度消失也是与计算机的数值存储有关,当数字足够接近0时,计算机会直接判定为0)。

另外,我感觉,ReLU有一个自然的特性,就是可以过滤信号噪声。怎么理解这个信号噪声呢?比如我们要识别一个“转角形状”,采用“转角型”卷积核,卷积运算后,对于计算结果较大的区域,我们认为这个形状很可能存在,而对于计算结果较小的,那么基本认为该区域不存在这个形状,保留这个信号是没有必要的,保留下来反而成为噪声,此时用ReLU就正好可以直接过滤掉这种情况。但是有人说,ReLU只过滤负数值啊,其实在卷积运算是有偏置项的(w0常数项),并且卷积核里的数也可以为负数,比如设定“需要有像素的位置”为正数权值,“不需要有像素的位置”为负数权值。这些参数都是需要让机器自己去学习的。

非线性层的实践经验:
  ①不要用sigmoid!不要用sigmoid!不要用sigmoid!
  ② 首先试 ReLU,因为快,但要小心点
  ③ 如果2失效,请用Leaky ReLU或者Maxout
  ④ 某些情况下 tanh 倒是有不错的结果,但是很少

池化层

池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。

池化层用的方法有Max pooling 和 Average pooling,而实际用的较多的是Max pooling。前辈们的既往训练经验来看,Max pooling的效果更好。其实这也是符合特征提取的思路的,因为我需要知道某个区域里是否有某种特征(只要某个局部存在激活值 [ 像素值 ] 大于某个阈值,我们就认为很可能存在这种特征),而不需要知道某个区域内存在某个特征的平均概率(稍微琢磨下就能有这种感觉)。另外,ReLU其实也有这种“阈值”的思想,这些“简单哲学思想”都是相通的(效果好也是有原因的)。笔者喜欢把这种思想成为“CNN中的MAX思想”。

 

基本优化

防止过拟合

在机器学习中,防止过拟合也是一个非常重要的问题。最经典的是引入正则化(此处不赘述)、早停等方法,而深度学习中更常用的是Dropout策略(当然之后还有Batch Norm策略)。Dropout是借鉴bagging和ensembling思想,一个网络中集成多个网络,一般用在全连接层,防止网络过拟合,提升泛化性能。

在2012年,Alex、Hinton在其论文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用于防止过拟合(Dropout最早是Hilton在其另一篇论文中提出)。并且,这篇论文提到的AlexNet网络模型引爆了神经网络应用热潮,并赢得了2012年图像识别大赛冠军,使得CNN成为图像分类上的核心算法模型。

Dropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。

Dropout说的简单一点就是:我们在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征,如图所示。   
   

Dropout需要设置一个“屏蔽概率”P作为参数,一般设置为0.5或0.3。具体原理及实现,此处不展开。但注意,Dropout仅用于训练阶段,而测试阶段应恢复成标准网络。

 

优化算法

深度学习的优化算法主要有GD,SGD,Momentum,RMSProp、Adam和Adagrad算法等等。

 

GD和SGD是最基础的,此处不赘述。粗略讲讲其他几种优化方法。

Momentum算法借用了物理中的动量概念,它模拟的是物体运动时的惯性,即更新的时候在一定程度上保留之前更新的方向,同时利用当前batch的梯度微调最终的更新方向。这样一来,可以在一定程度上增加稳定性,从而学习地更快,并且还有一定摆脱局部最优的能力。

既往的方法中,对于每一个参数θi的训练都使用了相同的学习率α。Adagrad算法能够在训练中自动的对learning rate进行调整,对于出现频率较低参数采用较大的α更新;相反,对于出现频率较高的参数采用较小的α更新。因此,Adagrad非常适合处理稀疏数据。

RMSprop是Geoff Hinton提出的一种自适应学习率方法(调整学习率,我们常常希望学习率先大后小)。Adagrad会累加之前所有的梯度平方,而RMSprop仅仅是计算对应的平均值,因此可缓解Adagrad算法学习率下降较快的问题。

Adam(Adaptive Moment Estimation)是另一种自适应学习率的方法。它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。Adam结合了Momentum和RMSprop的优点。在计算资源足够时,推荐使用Adam算法

具体的每种优化方法的原理和实现,请自行寻找资料。上面两个动图体现的是各种方法的优化过程的形象展示。

 

CNN进化史

 ILSVR竞赛中历年的算法表现,即是一部CNN的进化史:LeNet → AlexNet → ZFNet → GoogLeNet → ResNet → SENet。此处主要介绍影响重大的几个:AlexNet,GoogLeNet与VGGNet,和ResNet。

AlexNet是Alex和Hinton等人在2012年提出的,在ILSVRC2012中赢得第一,CV领域从此进入深度学习时代。该模型由5层卷积层和3层全连接层组成,其中还有池化层。该论文中有很多观点和技巧直到今天依然有用或者启发人们。分组卷积、数据增强、Dropout、ReLU这些,基本成为构建卷积网络的必要模块。
   

 

VGGNet-16/19是牛津大学VGG提出,是基于网络加深会增强表征能力的思路,获得ILSVRC2014亚军。VGG16包含16层,VGG19包含19层。一系列的VGG在最后三层的全连接层上完全一样,整体结构上都包含5组卷积层,卷积层之后跟一个MaxPool。所不同的是5组卷积层中包含的级联的卷积层越来越多。不近网络层数加深,VGG在训练的过程中也比AlexNet收敛的要快一些。简而言之,VGG最大的特点就“更深”!

GoogLeNet是基于多尺度特征融合的思路,先设计Inception模块,后堆叠这些模块构成分类网络。论文中使用的辅助分类器(图中前两个黄色的矩形框)思路是为了解决深层网络网络难以训练的问题。Kaiming(ResNet的第一作者)总结了三点,第一点是Inception模块中的多分支(多种size的kernel);第二点是shortcuts:单独1*1卷积分支;第三点是bottlenecks:先进行1*1卷积降维,再升维。

ResNet由微软研究院Kaiming He等人提出,由Residual block构成。其通过使用ResNet Unit成功训练出了152层的神经网络,在ILSVRC2015中获得冠军。深度残差学习思想成为了学术界和工业界的标准。ResNet解决了深度学习中梯度消失这个大难题,使得深度大大加深,有效的上百层的网络成为现实,也进一步证明了“更深的网络确实能使模型的准确度更高”。下文将重点介绍ResNet的思想。

 

ResNet

残差网络已成为目前CNN的标配。DeepMind大名鼎鼎的AlphaZero亦采用了ResNet的策略。ResNet由微软研究院Kaiming He、Xiangyu Zhang、Shaoqing Ren和Jian Sun这4名华人提出。

ResNet的推广性非常好,甚至可以直接用到InceptionNet网络中。ResNet的主要思想是在网络中增加了直连通道,即Highway Network的思想。此前的网络结构是性能输入做一个非线性变换,而Highway Network则允许保留之前网络层的一定比例的输出。ResNet的思想和Highway Network的思想也非常类似,允许原始输入信息直接传到后面的层中。这样的话这一层的神经网络可以不用学习整个的输出,而是学习上一个网络输出的残差,因此ResNet又叫做残差网络。

我们知道,在计算机视觉里,特征的“等级”随增网络深度的加深而变高,研究表明,网络的深度是实现好的效果的重要因素。然而梯度消失/爆炸成为训练深层次的网络的障碍,导致无法收敛。VGG网络达到19层后再增加层数就开始导致分类性能的下降。而Resnet作者则想到了常规计算机视觉领域常用的residual representation的概念,并进一步将它应用在了CNN模型的构建当中,于是就有了基本的residual learning的block。它通过使用多个有参层来学习输入输出之间的残差表示,而非像一般CNN网络(如Alexnet/VGG等)那样使用有参层来直接尝试学习输入、输出之间的映射。

 

残差网络的确解决了退化的问题,在训练集和校验集上,都证明了的更深的网络错误率越小。

Identity Block和 Convolutional Block

根据输入x和子网络F(x)输出维度的不同,ResNet的模块设计(Skip Connetion 种类)可分为两种实现:Identity Block和Convolutional Block。

The idenetity block
当输入x和子网络F(x)输出维度相同时,可以直接将而二者进行相加,如下图所示。

上面那条路径就是shortcut或者说skip connection,下面是普通main path

The convolutional block
当输入x和子网络F(x)输出维度不同时,通过一个卷积将二者维度转换为相同,网络结构如图所示。

 

论文中有两种Identity Block的设计,如下图所示。在训练浅层网络的时候,我们选用左边这种,而如果网络较深(大于50层)时,会考虑使用右边这种(bottleneck),这两个设计具有相似的时间复杂度。

右边这种考虑到计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1, 如下图。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。

左边是一种简单的实现被称作building block,每个main path(原论文中称作plain network),这里有两层网络构成,都是 3 x 3 的卷积网络,第一个卷积之后紧跟着是一个Relu。
右边的网络是另一种实现,称作bottleneck building block,为什么称作bottleneck呢,因为这个plain network,前后两层用的是1 x 1卷积网络,这种卷积是最小、最细的结构,因此被称作bottleneck(个人见解)。这里 1 x 1卷积网络是用来降低和增加feature map维度。plain network中卷积之后(除了最后一个卷积)会跟着一个BN层,用来加速训练。

ResNet的架构

先看一张图和一个表

      

      

这两张图可以帮助我们直观理解ResNet的架构。第一张图的“34-layer residual”对应的就是下面表格。我们这里有“大层”和“小层”的区别,大层包含几个小层。比如上图中的不同颜色代表不同的“大层”,表格中的不同行代表不同的“大层”。图中的虚线表示convolutional block,实线表示idenetity blockconvolutional block可以出现图片尺寸的变换,而idenetity block则不会。由图可知,ResNet-34 其实的中间32层,其实只进行了3次尺寸的变换(图片的长和宽变换),一般这些convolutional block处于“大层”的第一层。另外,ResNet-50 中间的48层中,共出现了4个convolutional block,也就是那4个大层的第一小层。

 

Batch Normalization

这一部分摘自:Batch Normalization原理与实战详解深度学习中的Normalization,BN/LN/WN

Batch Normalization(简称Batch Norm或BN)是当前CNN中经常采用的技巧,本意是正规化(或数据归一化,区别于“正则化”),但是BN还具备防止过拟合的功能,采用BN技巧的网络甚至可以不使用Dropout策略。

问题的提出:

网络中层与层之间的关联性会导致如下的状况:随着训练的进行,网络中的参数也随着梯度下降在不停更新。一方面,当底层网络中参数发生微弱变化时,由于每一层中的线性变换与非线性激活映射,这些微弱变化随着网络层数的加深而被放大(类似蝴蝶效应);另一方面,参数的变化导致每一层的输入分布会发生改变,进而上层的网络需要不停地去适应这些分布变化,使得我们的模型训练变得困难。上述这一现象叫做Internal Covariate Shift。

Batch Normalization的原论文作者给了Internal Covariate Shift一个较规范的定义:在深层网络训练的过程中,由于网络中参数变化而引起内部结点数据分布发生变化的这一过程被称作Internal Covariate Shift。(具体的解释清参考原论文或网上其他资料)

Internal Covariate Shift (ICS)带来的问题:

(1)上层网络需要不停调整来适应输入数据分布的变化,导致网络学习速度的降低;

(2)网络的训练过程容易陷入梯度饱和区,减缓网络收敛速度。

解决ICS的两种思路:Whitening (白化) 和 Batch Normalization。白化是机器学习中的技巧,在深度网络中仍然存在缺陷(如反向传播是不一定可导),不是本文的重点,请自行查找资料。

在深度学习中,由于采用full batch的训练方式对内存要求较大,且每一轮训练时间过长;我们一般都会采用对数据做划分,用mini-batch对网络进行训练。因此,Batch Normalization也就在mini-batch的基础上进行计算。

      

Normalization 的通用公式:

      h=f(g*\frac{x-\mu}{\delta }+b)

围绕这一公式,有四种规范化方法。

(1)Batch Normalization —— 纵向规范化

Batch Normalization 于2015年由 Google 提出,开 Normalization 之先河。其规范化针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元 x_i 的均值和方差,因而称为 Batch Normalization。

相对于一层神经元的水平排列,BN 可以看做一种纵向的规范化。由于 BN 是针对单个维度定义的,因此标准公式中的计算均为 element-wise 的。

      

BN 独立地规范化每一个输入维度 x_i ,但规范化的参数是一个 mini-batch 的一阶统计量和二阶统计量。这就要求 每一个 mini-batch 的统计量是整体统计量的近似估计,或者说每一个 mini-batch 彼此之间,以及和整体数据,都应该是近似同分布的。分布差距较小的 mini-batch 可以看做是为规范化操作和模型训练引入了噪声,可以增加模型的鲁棒性;但如果每个 mini-batch的原始分布差别很大,那么不同 mini-batch 的数据将会进行不一样的数据变换,这就增加了模型训练的难度。

因此,BN 比较适用的场景是:每个 mini-batch 比较大,数据分布比较接近。在进行训练之前,要做好充分的 shuffle. 否则效果会差很多。

(2)Layer Normalization —— 横向规范化

层规范化就是针对 BN 的上述不足而提出的。与 BN 不同,LN 是一种横向的规范化,如图所示。它综合考虑一层所有维度的输入,计算该层的平均输入值和输入方差,然后用同一个规范化操作来转换各个维度的输入。

      

LN 针对单个训练样本进行,不依赖于其他数据,因此可以避免 BN 中受 mini-batch 数据分布影响的问题,可以用于 小mini-batch场景、动态网络场景和 RNN,特别是自然语言处理领域。此外,LN 不需要保存 mini-batch 的均值和方差,节省了额外的存储空间。

但是,BN 的转换是针对单个神经元可训练的——不同神经元的输入经过再平移和再缩放后分布在不同的区间,而 LN 对于一整层的神经元训练得到同一个转换——所有的输入都在同一个区间范围内。如果不同输入特征不属于相似的类别(比如颜色和大小),那么 LN 的处理可能会降低模型的表达能力。

(3)Weight Normalization —— 参数规范化

WN将规范化应用于线性变换函数的权重 \bold{w} ,这就是 WN 名称的来源。WN 提出的方案是,将权重向量 \bold{w} 分解为向量方向 \hat{\bold{v}} 和向量模 g 两部分。

      

BN 和 LN 是用输入的特征数据的方差对输入数据进行 scale,而 WN 则是用 神经元的权重的欧氏范式对输入数据进行 scale。虽然在原始方法中分别进行的是特征数据规范化和参数的规范化,但本质上都实现了对数据的规范化,只是用于 scale 的参数来源不同。

(4)Cosine Normalization —— 余弦规范化

CN本文不展开叙述,简单提一下。

CN 通过用余弦计算代替内积计算实现了规范化。但成也萧何败萧何。原始的内积计算,其几何意义是 输入向量在权重向量上的投影,既包含 二者的夹角信息,也包含 两个向量的scale信息。去掉scale信息,可能导致表达能力的下降,因此也引起了一些争议和讨论。具体效果如何,可能需要在特定的场景下深入实验。

 

从另一个角度来看,Normalization可也分为:BatchNorm(2015年)、LayerNorm(2016年)、InstanceNorm(2017年)和GroupNorm(2018年)。

将输入的图像shape记为[N, C, H, W](如图),这几个方法主要的区别就是在:

  • BatchNorm是在batch上,对NHW做归一化,对小batchsize效果不好;
  • LayerNorm在通道方向上,对CHW归一化,主要对RNN作用明显;
  • InstanceNorm在图像像素上,对HW做归一化,用在风格化迁移;
  • GroupNorm将channel分组,然后再做归一化。

 

BN的优势:

(1)BN使得网络中每层输入数据的分布相对稳定,加速模型学习速度

(2)BN使得模型对网络中的参数不那么敏感,简化调参过程,使得网络学习更加稳定

(3)BN允许网络使用饱和性激活函数(例如sigmoid,tanh等),缓解梯度消失问题

(4)BN具有一定的正则化效果

 

对于第二个优势的理解:其实可以画一个二维参数的损失函数图(第三维 [ 损失值 ] 用等高线表示),当不同变量的方差差距很大时,损失函数会显得很扁(很椭圆。当二者方差近似时接近正圆形)。由于梯度下降的方向是沿着切线的垂直方向,因此会先优先沿着短轴方向下降梯度,而长轴方向的下降比较慢,并且短轴方向会出现梯度下降的震荡效果,从而整体的梯度下降的效率很低。一个观点很重要:由于梯度下降的思想不可替代,因此很多优化都是围绕梯度下降来进行的。

 

基于如上技巧,最终ResNet的类型有如下几种:

附一张ResNet立体模式图:


 

 

参考治疗:

「Deep Learning」ILSVRC2012-2017图像分类经典卷积网络

ILSVRC 歷屆的深度學習模型

【深度学习】卷积神经网络的实现与理解

卷积神经网络CNN总结

resnet原理详解

Understanding Residual Network

Batch Normalization原理与实战

详解深度学习中的Normalization,BN/LN/WN

 

2017-08-21 10:48:01 muye_CSDN 阅读数 500
  • 轮廓匹配

    掌握OpenCV核心模块,熟练使用相关API 理解各个API背后的相关算法原理,每个参数意义 有能力解决使用应用场景问题,大量工程代码经验分享 掌握图像处理与视频分析,图像分析与测量编码与开发技巧

    95人学习 贾志刚
    免费试看

图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。


1 )图像变换:由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2 )图像编码压缩:图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
3 )图像增强和复原:图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。
4 )图像分割:图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
5 )图像描述:图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。
6 )图像分类(识别):图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
图像编辑
二值图像
一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。
灰度图像
灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。在某些软件中,灰度图像也可以用双精度数据类型(double)表示,像素的值域为[0,1],0代表黑色,1代表白色,0到1之间的小数表示不同的灰度等级。二值图像可以看成是灰度图像的一个特例。
索引图像
索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值,如某一像素的灰度值为64,则该像素就与MAP中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说,图像在屏幕上显示时,每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。索引图像的数据类型一般为8位无符号整形(int8),相应索引矩阵MAP的大小为256Ⅹ3,因此一般索引图像只能同时显示256种颜色,但通过改变索引矩阵,颜色的类型可以调整。索引图像的数据类型也可采用双精度浮点型(double)。索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。
RGB彩色图像
RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。
数字化图像数据有两种存储方式[6]:位图存储(Bitmap)和矢量存储(Vector)
我们平常是以图像分辨率(即像素点)和颜色数来描述数字图象的。例如一张分辨率为640*480,16位色的数字图片,就由2^16=65536种颜色的307200(=640*480)个素点组成。
位图图像:位图方式是将图像的每一个象素点转换为一个数据,当图像是单色(只有黑白二色)时,8个象素点的数据只占据一个字节(一个字节就是8个二进制数,1个二进制数存放象素点);16色(区别于前段“16位色”)的图像每两个象素点用一个字节存储;256色图像每一个象素点用一个字节存储。这样就能够精确地描述各种不同颜色模式的图像图面。位图图像弥补了矢量式图像的缺陷,它能够制作出色彩和色调变化丰富的图像,可以逼真地表现自然界的景象,同时也可以很容易地在不同软件之间交换文件,这就是位图图像的优点;而其缺点则是它无法制作真正的3D图像,并且图像缩放和旋转时会产生失真的现象,同时文件较大,对内存和硬盘空间容量的需求也较高。位图方式就是将图像的每一像素点转换为一个数据。如果用1位数据来记录,那么它只能代表2种颜色(2^1=2);如果以8位来记录,便可以表现出256种颜色或色调(2^8=256),因此使用的位元素越多所能表现的色彩也越多。通常我们使用的颜色有16色、256色、增强16位和真彩色24位。一般所说的真彩色是指24位(2^24)的位图存储模式适合于内容复杂的图像和真实照片。但随着分辨率以及颜色数的提高,图像所占用的磁盘空间也就相当大;另外由于在放大图像的过程中,其图像势必要变得模糊而失真,放大后的图像像素点实际上变成了像素“方格”。 用数码相机和扫描仪获取的图像都属于位图。
矢量图像:矢量图像存储的是图像信息的轮廓部分,而不是图像的每一个象素点。例如,一个圆形图案只要存储圆心的坐标位置和半径长度,以及圆的边线和内部的颜色即可。该存储方式的缺点是经常耗费大量的时间做一些复杂的分析演算工作,图像的显示速度较慢;但图像缩放不会失真;图像的存储空间也要小得多。所以,矢量图比较适合存储各种图表和工程
数据编辑
图像处理离不开海量、丰富的基础数据,包括视频、静态图像等多种格式,如Berkeley分割数据集和基准500 (BSDS500)、西门菲沙大学不同光照物体图像数据库、神经网络人脸识别数据、CBCL-MIT StreetScenes(麻省理工学院街景数据库)等。
数字化编辑
通过取样和量化过程将一个以自然形式存在的图像变换为适合计算机处理的数字形式。图像在计算机内部被表示为一个数字矩阵,矩阵中每一元素称为像素。图像数字化需要专门的设备,常见的有各种电子的和光学的扫描设备,还有机电扫描设备和手工操作的数字化仪。
图像编码编辑
对图像信息编码,以满足传输和存储的要求。编码能压缩图像的信息量,但图像质量几乎不变。为此,可以采用模拟处理技术,再通过模-数转换得到编码,不过多数是采用数字编码技术。编码方法有对图像逐点进行加工的方法,也有对图像施加某种变换或基于区域、特征进行编码的方法。脉码调制、微分脉码调制、预测码和各种变换都是常用的编码技术。
图像压缩编辑
由数字化得到的一幅图像的数据量十分巨大,一幅典型的数字图像通常由500×500或1000×1000个像素组成。如果是动态图像,其数据量更大。因此图像压缩对于图像的存储和传输都十分必要。
图像压缩有两类压缩算法,即无损压缩和有损压缩。最常用的无损压缩算法取空间或时间上相邻像素值的差,再进行编码。游程码就是这类压缩码的例子。有损压缩算法大都采用图像交换的途径,例如对图像进行快速傅里叶变换或离散的余弦变换。已作为图像压缩国际标准的JPEG和MPEG均属于有损压缩算法。前者用于静态图像,后者用于动态图像。它们都由芯片实现[2] 。
增强复原编辑
图像增强的目标是改进图片的质量,例如增加对比度,去掉模糊和噪声,修正几何畸变等;图像复原是在假定已知模糊或噪声的模型时,试图估计原图像的一种技术。
图像增强按所用方法可分成频率域法和空间域法。前者把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声[3] 。
早期的数字图像复原亦来自频率域的概念。现代采取的是一种代数的方法,即通过解一个大的方程组来复原理想的图片。
以提高图像质量为目的的图像增强和复原对于一些难以得到的图片或者在拍摄条件十分恶劣情况下得到的图片都有广泛的应用。例如从太空中拍摄到的地球或其他星球的照片,用电子显微镜或X光拍摄的生物医疗图片等。
图像增强 使图像清晰或将其转换为更适合人或机器分析的形式。与图像复原不同,图像增强并不要求忠实地反映原始图像。相反,含有某种失真(例如突出轮廓线)的图像可能比无失真的原始图像更为清晰。常用的图像增强方法有:①灰度等级直方图处理:使加工后的图像在某一灰度范围内有更好的对比度;②干扰抑制:通过低通滤波、多图像平均、施行某类空间域算子等处理,抑制叠加在图像上的随机性干扰;③边缘锐化:通过高通滤波、差分运算或某种变换,使图形的轮廓线增强;④伪彩色处理:将黑白图像转换为彩色图像,从而使人们易于分析和检测图像包含的信息。
图像复原 除去或减少在获得图像过程中因各种原因产生的退化。这类原因可能是光学系统的像差或离焦、摄像系统与被摄物之间的相对运动、电子或光学系统的噪声和介于摄像系统与被摄像物间的大气湍流等。图像复原常用二种方法。当不知道图像本身的性质时,可以建立退化源的数学模型,然后施行复原算法除去或减少退化源的影响。当有了关于图像本身的先验知识时,可以建立原始图像的模型,然后在观测到的退化图像中通过检测原始图像而复原图像。
图像分割将图像划分为一些互不重叠的区域,每一区域是像素的一个连续集。通常采用把像素分入特定区域的区域法和寻求区域之间边界的境界法。区域法根据被分割对象与背景的对比度进行阈值运算,将对象从背景中分割出来。有时用固定的阈值不能得到满意的分割,可根据局部的对比度调整阈值,这称为自适应阈值。境界法利用各种边缘检测技术,即根据图像边缘处具有很大的梯度值进行检测。这两种方法都可以利用图像的纹理特性实现图像分割。
形态学编辑
形态学一词通常指生物学的一个分支,它用于处理动物和植物的形状和结构。在数学形态学的语境中也使用该词来作为提取图像分量的一种工具,这些分量在表示和描述区域形状(如边界,骨骼和凸壳)时是很有用的。此外,我们还很关注用于预处理和后处理的形态学技术,如形态学滤波、细化和裁剪。
数学形态学的基本运算
数学形态学的基本运算有4个:腐蚀、膨胀、开启和闭合。数学形态学方法利用一个称作结构元素的”探针”收集图像的信息,当探针在图像中不断移动时,便可考察图像各个部分之间的相互关系,从而了解图像的结构特征。在连续空间中,灰度图像的腐蚀、膨胀、开启和闭合运算分别表述如下。
腐蚀
腐蚀“收缩”或“细化”二值图像中的对象。收缩的方式和程度由一个结构元素控制。数学上,A被B腐蚀,记为AΘB,定义为:
换言
腐蚀运算
腐蚀运算
之,A被B腐蚀是所有结构元素的原点位置的集合,其中平移的B与A的背景并不叠加。
膨胀
膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。结构元素通常用0和1的矩阵表示。数学上,膨胀定义为集合运算。A被B膨胀,记为A⊕B,定义为:
膨胀运算
膨胀运算
其中,Φ为空集,B为结构元素。总之,A被B膨胀是所有结构元素原点位置组成的集合,其中映射并平移后的B至少与A的某些部分重叠。这种在膨胀过程中对结构元素的平移类似于空间卷积。
膨胀满足交换律,即A⊕B=B⊕A。在图像处理中,我们习惯令A⊕B的第一个操作数为图像,而第二个操作数为结构元素,结构元素往往比图像小得多。
膨胀满足结合律,即A⊕(B⊕C)=(A⊕B)⊕C。假设一个结构元素B可以表示为两个结构元素B1和B2的膨胀,即B=B1⊕B2,则A⊕B=A⊕(B1⊕B2)=(A⊕B1)⊕B2,换言之,用B膨胀A等同于用B1先膨胀A,再用B2膨胀前面的结果。我们称B能够分解成B1和B2两个结构元素。结合律很重要,因为计算膨胀所需要的时间正比于结构元素中的非零像素的个数。通过结合律,分解结构元素,然后再分别用子结构元素进行膨胀操作往往会实现很客观的速度的增长。
开启
A被B的形态学开
开运算
开运算
运算可以记做A?B,这种运算是A被B腐蚀后再用B来膨胀腐蚀结果,即:
开运算的数学公式为:
其中
开运算
开运算
,∪{·}指大括号中所有集合的并集。该公式的简单几何解释为:A?B是B在A内完全匹配的平移的并集。形态学开运算完全删除了不能包含结构元素的对象区域,平滑了对象的轮廓,断开了狭窄的连接,去掉了细小的突出部分。
闭合
A被B形态学闭运算记做A·B,它是先膨胀后腐蚀的结果:
从几何学
闭运算
闭运算
上讲,A·B是所有不与A重叠的B的平移的并集。想开运算一样,形态学闭运算会平滑对象的轮廓。然后,与开运算不同的是,闭运算一般会将狭窄的缺口连接起来形成细长的弯口,并填充比结构元素小的洞。
基于这些基本运算可以推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括图像分割、特征提取、边界检测、图像降噪、图像增强和恢复等。
图像分析编辑
从图像中抽取某些有用的度量、数据或信息。目的是得到某种数值结果,而不是产生另一个图像。图像分析的内容和模式识别、人工智能的研究领域有交叉,但图像分析与典型的模式识别有所区别。图像分析不限于把图像中的特定区域按固定数目的类别加以分类,它主要是提供关于被分析图像的一种描述。为此,既要利用模式识别技术,又要利用关于图像内容的知识库,即人工智能中关于知识表达方面的内容。图像分析需要用图像分割方法抽取出图像的特征,然后对图像进行符号化的描述。这种描述不仅能对图像中是否存在某一特定对象作出回答,还能对图像内容作出详细描述。
图像处理的各个内容是互相有联系的。一个实用的图像处理系统往往结合应用几种图像处理技术才能得到所需要的结果。图像数字化是将一个图像变换为适合计算机处理的形式的第一步。图像编码技术可用以传输和存储图像。图像增强和复原可以是图像处理的最后目的,也可以是为进一步的处理作准备。通过图像分割得出的图像特征可以作为最后结果,也可以作为下一步图像分析的基础。
图像匹配、描述和识别对图像进行比较和配准,通过分制提取图像的特征及相互关系,得到图像符号化的描述,再把它同模型比较,以确定其分类。图像匹配试图建立两张图片之间的几何对应关系,度量其类似或不同的程度。匹配用于图片之间或图片与地图之间的配准,例如检测不同时间所拍图片之间景物的变化,找出运动物体的轨迹[4] 。
从图像中抽取某些有用的度量、数据或信息称为图像分析。图像分析的基本步骤是把图像分割成一些互不重叠的区域,每一区域是像素的一个连续集,度量它们的性质和关系,最后把得到的图像关系结构和描述景物分类的模型进行比较,以确定其类型。识别或分类的基础是图像的相似度。一种简单的相似度可用区域特征空间中的距离来定义。另一种基于像素值的相似度量是图像函数的相关性。最后一种定义在关系结构上的相似度称为结构相似度。
以图片分析和理解为目的的分割、描述和识别将用于各种自动化的系统,如字符和图形识别、用机器人进行产品的装配和检验、自动军事目标识别和跟踪、指纹识别、X光照片和血样的自动处理等。在这类应用中,往往需综合应用模式识别和计算机视觉等技术,图像处理更多的是作为前置处理而出现的。
多媒体应用的掀起,对图像压缩技术的应用起了很大的推动作用。图像,包括录像带一类动态图像将转为数字图像,并和文字、声音、图形一起存储在计算机内,显示在计算机的屏幕上。它的应用将扩展到教育、培训和娱乐等新的领域[5] 。

2017-04-20 13:56:22 chaipp0607 阅读数 13257
  • 轮廓匹配

    掌握OpenCV核心模块,熟练使用相关API 理解各个API背后的相关算法原理,每个参数意义 有能力解决使用应用场景问题,大量工程代码经验分享 掌握图像处理与视频分析,图像分析与测量编码与开发技巧

    95人学习 贾志刚
    免费试看

图像的hu矩是一种具有平移、旋转和尺度不变性的图像特征。

普通矩的计算:
f(x,y)的p+q阶原点矩可以表示为:
这里写图片描述

而数字图像是一个二维的离散信号,对上述公式进行离散化之后:
这里写图片描述
其中C与R分别表示图像的列与行。

各阶矩的物理意义:
0阶矩(m00):目标区域的质量
1阶矩(m01,m10):目标区域的质心
2阶矩(m02,m11,m20):目标区域的旋转半径
3阶矩(m03,m12,m21,m30):目标区域的方位和斜度,反应目标的扭曲

但是目标区域往往伴随着空间变换(平移,尺度,旋转),所以需要在普通矩的基础上构造出具备不变性的矩组—hu矩。

中心矩:构造平移不变性
由零阶原点矩和一阶原点矩,我们可以求得目标区域的质心坐标:
这里写图片描述
由求得的质心坐标,我们可以构造出中心矩:

这里写图片描述

由于我们选择了以目标区域的质心为中心构建中心矩,那么矩的计算时永远是目标区域中的点相对于目标区域的质心,而与目标区域的位置无关,及具备了平移不变性。

归一化中心矩:构造尺度不变性

为抵消尺度变化对中心矩的影响,利用零阶中心矩u00对各阶中心距进行归一化处理,得到归一化中心矩:

这里写图片描述

由上文可知,零阶矩表示目标区域的质量(面积),那么如果目标区域的尺度发生变化(缩小2倍),显然其零阶中心矩也会相应变小,使得矩具备尺度不变性。

hu矩:构造旋转不变性
利用二阶和三阶规格中心矩可以导出下面7个不变矩组(Φ1 Φ7),它们在图像平移、旋转和比例变化时保持不变。
这里写图片描述

Harris角点检测

阅读数 920