
- 所属学科
- 计算机科学
- 外文名
- image identification
- 中文名
- 图像识别
-
图像识别
2019-07-07 14:38:42图像识别主要用到了两个第三方的iOS框架:OpenCV和TesseractOCR,OpenCV用来做图像处理,定位到身份证号码的区域,TesseractOCR则是对定位到的区域内的内容进行识别。 OpenCV中的一些简单的处理图像的方法:灰度...图像识别主要用到了两个第三方的iOS框架:OpenCV和TesseractOCR,OpenCV用来做图像处理,定位到身份证号码的区域,TesseractOCR则是对定位到的区域内的内容进行识别。
OpenCV中的一些简单的处理图像的方法:灰度处理、二值化、腐蚀、边缘检测等等。Tesseract Open Source OCR Engine (main repository)- https://github.com/tesseract-ocr/tesseract
开源OCR识别彩票内容项目 LotteryHelper- https://github.com/MZCretin/LotteryHelper
图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。神经网络的图像识别技术和非线性降维的图像识别技术及图像识别技术的应用。
模式识别是人工智能和信息科学的重要组成部分。模式识别是指对表示事物或现象的不同形式的信息做分析和处理从而得到一个对事物或现象做出描述、辨认和分类等的过程。
计算机的图像识别技术就是模拟人类的图像识别过程。在图像识别的过程中进行模式识别是必不可少的。模式识别原本是人类的一项基本智能。模式识别主要分为三种:统计模式识别、句法模式识别、模糊模式识别。图像识别问题的数学本质属于模式空间到类别空间的映射问题。
图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,并对质量不佳的图像进行一系列的增强与重建技术手段,从而有效改善图像质量。-- 图像识别技术的过程分以下几步:信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。
1.信息的获取是指通过传感器,将光或声音等信息转化为电信息。也就是获取研究对象的基本信息并通过某种方法将其转变为机器能够认识的信息。
2.预处理主要是指图像处理中的去噪、平滑、变换等的操作,从而加强图像的重要特征。
3.特征抽取和选择是指在模式识别中,需要进行特征的抽取和选择。简单的理解就是我们所研究的图像是各式各样的,如果要利用某种方法将它们区分开,就要通过这些图像所具有的本身特征来识别,而获取这些特征的过程就是特征抽取。在特征抽取中所得到的特征也许对此次识别并不都是有用的,这个时候就要提取有用的特征,这就是特征的选择。特征抽取和选择在图像识别过程中是非常关键的技术之一,所以对这一步的理解是图像识别的重点。
4.分类器设计是指通过训练而得到一种识别规则,通过此识别规则可以得到一种特征分类,使图像识别技术能够得到高识别率。分类决策是指在特征空间中对被识别对象进行分类,从而更好地识别所研究的对象具体属于哪一类。预处理算法:滤波;图像增强;图像分割;预处理算法结果:构成训练样本和测试样本;
特征 提取:形状进行归一化处理;提取各阶矩特征值;特征值进行归一化处理;训练SVM得参数设计电气设备的分类器;神经网络图像识别技术是一种比较新型的图像识别技术,是在传统的图像识别方法和基础上融合神经网络算法的一种图像识别方法。
在对车牌上的字符进行识别的过程中就用到了基于模板匹配算法和基于人工神经网络算法。想让计算机具有高效地识别能力,最直接有效的方法就是降维。降维分为线性降维和非线性降维。例如主成分分析(PCA)和线性奇异分析(LDA)等就是常见的线性降维方法,它们的特点是简单、易于理解。
计算机的图像识别技术在公共安全、生物、工业、农业、交通、医疗等很多领域都有应用。例如交通方面的车牌识别系统;公共安全方面的人脸识别技术、指纹识别技术;农业方面的种子识别技术、食品品质检测技术;医学方面的心电图识别技术等。
图像识别技术是立体视觉、运动分析、数据融合等实用技术的基础,在导航、地图与地形配准、自然资源分析、天气预报、环境监测、生理病变研究等许多领域可广泛应用。图像识别主要包括有对模板库图像样本的训练和对待测试图像样本的分类识别两部分。样本图像训练的基本思想是将样本图像的特征所属的类别构成模板库;图像识别的基本思想是按照训练过程中的特征提取方法,提取待测样本的特征与模板库中的训练样本进行匹配,匹配程度最高的即为识别结果。
动态图像识别技术。
图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。图像识别是人工智能的一个重要领域。目前主要的图像识别方法有基于神经网络的图像识别方法、基于小波矩的图像识别方法等。作为图像识别技术的基础操作,通过对采集到的图像进行増强、恢复、边缘检测W及分割等预处理操作来提高图像的质量。
图像的增强主要通过对采集图像进行灰度变换、滤波、锐化等一系列操作,提髙图像质量及其视觉效果的清晰度,使图像能够更加适用于计算机的进一步分析和处理。
通常可将图像噪声大致分为高斯噪声、椒盐噪声和颗粒噪声H类U"。
常用的图像锐化算法有;梯度算子法、Roberts算子法、Sobel算子法、Prewitt算子法以及拉普拉斯算子法等。图像分割的基本思想是将图像分割成若干个互不相关的具有相似或一致性特征的目标区域。分割方法的选取取决于图像中目标的特征,这些特征可以是目标的颜色、几何形状、灰度值或者空间纹理等。
图像特征提取的基本思想是依据图像中目标的特性,将其分割为不同的子集后,提取出所需的图像目标特征,其目的在于求出对图像中目标的分类最为有效的特征,使识别的性能达到最佳。对于图像的识别来讲,提取出最能反映分类本质的图像特征以及如何提取这些特征是图像识别技术的关键。常见的特征提取法有基于颜色、纹理、形状以及空间关系等特征的提取方法。
图像的分类识别是区分并分离各个目标的过程。对目标进行分类识别的关键不仅取决于提取图像中目标特征的结果,更取决于识别算法的选取。分类识别算法的选取对最终识别结果的准确程度有着决定性的作用。目前常见的分类识别方法主要有模板匹配法、人工神经网络法和支持向量机法等。-- 基于SVM的图像识别主要分三步:
(1)构建训练样本集,利用SVM对样本的特征值进行训练,根据训练所得参数,构建基于SVM的识别分类器;
(2)将测试样本的特征值输入分类器中,得到属于各个目标分类后的概率;
(3)根据概率决定目标最终所属的类别,获得识别结果。图像的旋转和缩放容易引起图像的重采样和重量化。有两个最常见的大方向,一是2B的整体解决方案,二是2C的移动互联网应用。
一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰阶差做进一步识别处理,图像识别软件国外代表的有康耐视等,国内代表的有图智能等。机器视觉的应用领域也十分广泛,例如用于军事侦察、危险环境的自主机器人,邮政、医院和家庭服务的智能机器人。此外机器视觉还可用于工业生产中的工件识别和定位,太空机器人的自动操作等。机器的图像识别也是类似的,通过分类并提取重要特征而排除多余的信息来识别图像。
在“先验知识库”的方法中,事物的形状、颜色、表面纹理等特征受到视角和观察环境所影响,在不同角度、不同光线、不同遮挡的情况下会产生变化。因此,研究者的新方法是,通过局部特征的识别来判断事物,对事物建立一个局部特征索引,即使视角或观察环境发生变化,也能比较准确地匹配上。-- 图像识别过程
-
python人工智能-图像识别
2019-02-16 09:25:34一、安装库 首先我们需要安装PIL和pytesseract库。...pytesseract:图像识别库。 我这里使用的是python3.6,PIL不支持python3所以使用如下命令 pip install pytesseract pip install pillow 如果是p一、安装库
首先我们需要安装PIL和pytesseract库。
PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。
pytesseract:图像识别库。我这里使用的是python3.6,PIL不支持python3所以使用如下命令
pip install pytesseract pip install pillow
如果是python2,则在命令行执行如下命令:
pip install pytesseract pip install PIL
这时候我们去运行上面的代码会发现如下错误:
错误提示的很明显:
No such file or directory :"tesseract"这是因为我们没有安装tesseract-ocr引擎
二、tesseract-ocr引擎
光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等,即使没有推出单独的OCR产品,但是他们的研发团队早已掌握核心技术,将OCR功能植入了自身的软件系统。对于我们程序员来说,一般用不到那么高级的,主要在开发中能够集成基本的OCR功能就可以了。这两天我查找了很多免费OCR软件、类库,特地整理一下,今天首先来谈谈Tesseract,下一次将讨论下Onenote 2010中的OCR API实现。可以在这里查看OCR技术的发展简史。
Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。
数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。###安装tesseract-ocr引擎
brew install tesseract
然后我们通过
tesseract -v
看一下是否安装成成功tesseract 3.05.01 leptonica-1.75.0 libjpeg 9b : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
这时候我们运行上面代码会出现乱码
这是因为tesseract
默认只有语言包中没有中文包,如下图:
###安装tesseract-ocr语言包
我们去GitHub下载我们需要的语言包,这里我只下载了chi_tra.traineddata
和chi_sim.traineddata
github:tesseract-ocr/tessdata
然后放到/usr/local/Cellar/tesseract/3.05.01/share/tessdata
路径下面。可以通过
tesseract --list-langs
查看本地语言包:
可以通过
tesseract --help-psm
查看psm
0:定向脚本监测(OSD)
1: 使用OSD自动分页
2 :自动分页,但是不使用OSD或OCR(Optical Character Recognition,光学字符识别)
3 :全自动分页,但是没有使用OSD(默认)
4 :假设可变大小的一个文本列。
5 :假设垂直对齐文本的单个统一块。
6 :假设一个统一的文本块。
7 :将图像视为单个文本行。
8 :将图像视为单个词。
9 :将图像视为圆中的单个词。
10 :将图像视为单个字符。为什么这里要强调语言包和psm,因为我们在使用中会用到,
比如多个语言包组合并且视为统一的文本块将使用如下参数:
pytesseract.image_to_string(image,lang="chi_sim+eng",config="-psm 6")
这里我们通过+
来合并使用多个语言包。接下来我们看一下配置好一切的正确结果。
import pytesseract from PIL import Image image = Image.open("../pic/c.png") code = pytesseract.image_to_string(image,lang="chi_sim",config="-psm 6") print(code)
此时大公告成。
~~号外~~福利~~号外~~
程序员的福音: “老曾筋骨祛痛贴”,百年祖传配方,专治腰间盘、肩周、颈椎、坐骨神经、腰腿疼痛等,博主亲测效果非常棒,因长期久坐写代码,坐姿不规范导致脖子疼,腰椎疼,用过之后疼痛逐渐缓解,现在已无任何疼痛,用过后让你写代码一身轻松,so easy,妈妈再也不用担心我们写代码了。扫码下方二维码,关注公众号“伟大程序猿的诞生“,回复“膏药”领取优惠券,进行购买
扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~
公众号回复“资料获取”,获取更多干货哦~有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:
https://cloud.tencent.com/developer/support-plan?invite_code=ncnq0hloo5yw -
图像识别技术原理和神经网络的图像识别技术
2019-03-03 19:44:58图像识别技术是信息时代的一门...简单分析了图像识别技术的引入、其技术原理以及模式识别等,之后介绍了神经网络的图像识别技术和非线性降维的图像识别技术及图像识别技术的应用。从中可以总结出图像处理技术的应用...图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息。随着计算机技术的发展,人类对图像识别技术的认识越来越深刻。图像识别技术的过程分为信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。简单分析了图像识别技术的引入、其技术原理以及模式识别等,之后介绍了神经网络的图像识别技术和非线性降维的图像识别技术及图像识别技术的应用。从中可以总结出图像处理技术的应用广泛,人类的生活将无法离开图像识别技术,研究图像识别技术具有重大意义。
1图像识别技术的引入
图像识别是人工智能的一个重要领域。图像识别的发展经历了三个阶段:文字识别、数字图像处理与识别、物体识别。图像识别,顾名思义,就是对图像做出各种处理、分析,最终识别我们所要研究的目标。今天所指的图像识别并不仅仅是用人类的肉眼,而是借助计算机技术进行识别。虽然人类的识别能力很强大,但是对于高速发展的社会,人类自身识别能力已经满足不了我们的需求,于是就产生了基于计算机的图像识别技术。这就像人类研究生物细胞,完全靠肉眼观察细胞是不现实的,这样自然就产生了显微镜等用于精确观测的仪器。通常一个领域有固有技术无法解决的需求时,就会产生相应的新技术。图像识别技术也是如此,此技术的产生就是为了让计算机代替人类去处理大量的物理信息,解决人类无法识别或者识别率特别低的信息。
1.1图像识别技术原理
其实,图像识别技术背后的原理并不是很难,只是其要处理的信息比较繁琐。计算机的任何处理技术都不是凭空产生的,它都是学者们从生活实践中得到启发而利用程序将其模拟实现的。计算机的图像识别技术和人类的图像识别在原理上并没有本质的区别,只是机器缺少人类在感觉与视觉差上的影响罢了。人类的图像识别也不单单是凭借整个图像存储在脑海中的记忆来识别的,我们识别图像都是依靠图像所具有的本身特征而先将这些图像分了类,然后通过各个类别所具有的特征将图像识别出来的,只是很多时候我们没有意识到这一点。当看到一张图片时,我们的大脑会迅速感应到是否见过此图片或与其相似的图片。其实在“看到”与“感应到”的中间经历了一个迅速识别过程,这个识别的过程和搜索有些类似。在这个过程中,我们的大脑会根据存储记忆中已经分好的类别进行识别,查看是否有与该图像具有相同或类似特征的存储记忆,从而识别出是否见过该图像。机器的图像识别技术也是如此,通过分类并提取重要特征而排除多余的信息来识别图像。机器所提取出的这些特征有时会非常明显,有时又是很普通,这在很大的程度上影响了机器识别的速率。总之,在计算机的视觉识别中,图像的内容通常是用图像特征进行描述。
1.2模式识别
模式识别是人工智能和信息科学的重要组成部分。模式识别是指对表示事物或现象的不同形式的信息做分析和处理从而得到一个对事物或现象做出描述、辨认和分类等的过程。
计算机的图像识别技术就是模拟人类的图像识别过程。在图像识别的过程中进行模式识别是必不可少的。模式识别原本是人类的一项基本智能。但随着计算机的发展和人工智能的兴起,人类本身的模式识别已经满足不了生活的需要,于是人类就希望用计算机来代替或扩展人类的部分脑力劳动。这样计算机的模式识别就产生了。简单地说,模式识别就是对数据进行分类,它是一门与数学紧密结合的科学,其中所用的思想大部分是概率与统计。模式识别主要分为三种:统计模式识别、句法模式识别、模糊模式识别。
2图像识别技术的过程
既然计算机的图像识别技术与人类的图像识别原理相同,那它们的过程也是大同小异的。图像识别技术的过程分以下几步:信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。
信息的获取是指通过传感器,将光或声音等信息转化为电信息。也就是获取研究对象的基本信息并通过某种方法将其转变为机器能够认识的信息。
预处理主要是指图像处理中的去噪、平滑、变换等的操作,从而加强图像的重要特征。
特征抽取和选择是指在模式识别中,需要进行特征的抽取和选择。简单的理解就是我们所研究的图像是各式各样的,如果要利用某种方法将它们区分开,就要通过这些图像所具有的本身特征来识别,而获取这些特征的过程就是特征抽取。在特征抽取中所得到的特征也许对此次识别并不都是有用的,这个时候就要提取有用的特征,这就是特征的选择。特征抽取和选择在图像识别过程中是非常关键的技术之一,所以对这一步的理解是图像识别的重点。
分类器设计是指通过训练而得到一种识别规则,通过此识别规则可以得到一种特征分类,使图像识别技术能够得到高识别率。分类决策是指在特征空间中对被识别对象进行分类,从而更好地识别所研究的对象具体属于哪一类。
3图像识别技术的分析
随着计算机技术的迅速发展和科技的不断进步,图像识别技术已经在众多领域中得到了应用。2015年2月15日新浪科技发布一条新闻:“微软最近公布了一篇关于图像识别的研究论文,在一项图像识别的基准测试中,电脑系统识别能力已经超越了人类。人类在归类数据库Image Net中的图像识别错误率为5.1%,而微软研究小组的这个深度学习系统可以达到4.94%的错误率。”从这则新闻中我们可以看出图像识别技术在图像识别方面已经有要超越人类的图像识别能力的趋势。这也说明未来图像识别技术有更大的研究意义与潜力。而且,计算机在很多方面确实具有人类所无法超越的优势,也正是因为这样,图像识别技术才能为人类社会带来更多的应用。
3.1神经网络的图像识别技术
神经网络图像识别技术是一种比较新型的图像识别技术,是在传统的图像识别方法和基础上融合神经网络算法的一种图像识别方法。这里的神经网络是指人工神经网络,也就是说这种神经网络并不是动物本身所具有的真正的神经网络,而是人类模仿动物神经网络后人工生成的。在神经网络图像识别技术中,遗传算法与BP网络相融合的神经网络图像识别模型是非常经典的,在很多领域都有它的应用。在图像识别系统中利用神经网络系统,一般会先提取图像的特征,再利用图像所具有的特征映射到神经网络进行图像识别分类。以汽车拍照自动识别技术为例,当汽车通过的时候,汽车自身具有的检测设备会有所感应。此时检测设备就会启用图像采集装置来获取汽车正反面的图像。获取了图像后必须将图像上传到计算机进行保存以便识别。最后车牌定位模块就会提取车牌信息,对车牌上的字符进行识别并显示最终的结果。在对车牌上的字符进行识别的过程中就用到了基于模板匹配算法和基于人工神经网络算法。
3.2非线性降维的图像识别技术计算机的图像识别技术是一个异常高维的识别技术。不管图像本身的分辨率如何,其产生的数据经常是多维性的,这给计算机的识别带来了非常大的困难。想让计算机具有高效地识别能力,最直接有效的方法就是降维。降维分为线性降维和非线性降维。例如主成分分析(PCA)和线性奇异分析(LDA)等就是常见的线性降维方法,它们的特点是简单、易于理解。但是通过线性降维处理的是整体的数据集合,所求的是整个数据集合的最优低维投影。经过验证,这种线性的降维策略计算复杂度高而且占用相对较多的时间和空间,因此就产生了基于非线性降维的图像识别技术,它是一种极其有效的非线性特征提取方法。此技术可以发现图像的非线性结构而且可以在不破坏其本征结构的基础上对其进行降维,使计算机的图像识别在尽量低的维度上进行,这样就提高了识别速率。例如人脸图像识别系统所需的维数通常很高,其复杂度之高对计算机来说无疑是巨大的“灾难”。由于在高维度空间中人脸图像的不均匀分布,使得人类可以通过非线性降维技术来得到分布紧凑的人脸图像,从而提高人脸识别技术的高效性。
3.3图像识别技术的应用及前景
计算机的图像识别技术在公共安全、生物、工业、农业、交通、医疗等很多领域都有应用。例如交通方面的车牌识别系统;公共安全方面的人脸识别技术、指纹识别技术;农业方面的种子识别技术、食品品质检测技术;医学方面的心电图识别技术等。随着计算机技术的不断发展,图像识别技术也在不断地优化,其算法也在不断地改进。图像是人类获取和交换信息的主要来源,因此与图像相关的图像识别技术必定也是未来的研究重点。以后计算机的图像识别技术很有可能在更多的领域崭露头角,它的应用前景也是不可限量的,人类的生活也将更加离不开图像识别技术。
图像识别技术虽然是刚兴起的技术,但其应用已是相当广泛。并且,图像识别技术也在不断地成长,随着科技的不断进步,人类对图像识别技术的认识也会更加深刻。未来图像识别技术将会更加强大,更加智能地出现在我们的生活中,为人类社会的更多领域带来重大的应用。在21世纪这个信息化的时代,我们无法想象离开了图像识别技术以后我们的生活会变成什么样。图像识别技术是人类现在以及未来生活必不可少的一项技术。
人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
AI可以识别图像,但它能理解标题吗?
http://www.duozhishidai.com/article-10635-1.html
图像识别经历了哪几个阶段,主要应用在哪些领域?
http://www.duozhishidai.com/article-6461-1.html
图像识别技术是什么,应用于智能家居哪些领域
http://www.duozhishidai.com/article-133-1.html
-
图像识别算法
2019-08-15 17:36:40图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们...图像特征包括颜色特征、纹理特征、形状特征以及局部特征点等。
局部特点具有很好的稳定性,不容易受外界环境的干扰。
1. 局部特征点
图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们的关系。
局部特征点是图像特征的局部表达,它只能反正图像上具有的局部特殊性,所以它只适合于对图像进行匹配,检索等应用。对于图像理解则不太适合。而后者更关心一些全局特征,如颜色分布,纹理特征,主要物体的形状等。全局特征容易受到环境的干扰,光照,旋转,噪声等不利因素都会影响全局特征。相比而言,局部特征点,往往对应着图像中的一些线条交叉,明暗变化的结构中,受到的干扰也少。
而斑点与角点是两类局部特征点。斑点通常是指与周围有着颜色和灰度差别的区域,如草原上的一棵树或一栋房子。它是一个区域,所以它比角点的噪能力要强,稳定性要好。而角点则是图像中一边物体的拐角或者线条之间的交叉部分。
2. 斑点检测原理与举例
2.1 LoG与DoH
斑点检测的方法主要包括利用高斯拉普拉斯算子检测的方法(LOG),以及利用像素点Hessian矩阵(二阶微分)及其行列式值的方法(DOH)。
LoG的方法已经在斑点检测这入篇文章里作了详细的描述。因为二维高斯函数的拉普拉斯核很像一个斑点,所以可以利用卷积来求出图像中的斑点状的结构。
DoH方法就是利用图像点二阶微分Hessian矩阵:
以及它的行列式的值DoH(Determinant of Hessian):
Hessian矩阵行列式的值,同样也反映了图像局部的结构信息。与LoG相比,DoH对图像中的细长结构的斑点有较好的抑制作用。
无论是LoG还是DoH,它们对图像中的斑点进行检测,其步骤都可以分为以下两步:
1)使用不同的生成或模板,并对图像进行卷积运算;
2)在图像的位置空间与尺度空间中搜索LoG与DoH响应的峰值。
2.2 SIFT
详细的算法描述参考:SIFT定位算法关键步骤的说明
2004年,Lowe提高了高效的尺度不变特征变换算法(SIFT),利用原始图像与高斯核的卷积来建立尺度空间,并在高斯差分空间金字塔上提取出尺度不变性的特征点。该算法具有一定的仿射不变性,视角不变性,旋转不变性和光照不变性,所以在图像特征提高方面得到了最广泛的应用。
该算法大概可以归纳为三步:1)高斯差分金字塔的构建;2)特征点的搜索;3)特征描述。
在第一步中,它用组与层的结构构建了一个具有线性关系的金字塔结构,让我们可以在连续的高斯核尺度上查找特征点。它比LoG高明的地方在于,它用一阶高斯差分来近似高斯的拉普拉斯核,大大减少了运算量。
在第二步的特征点搜索中,主要的关键步骤是极值点的插值,因为在离散的空间中,局部极值点可能并不是真正意义上的极值点,真正的极植点可以落在了离散点的缝隙中。所以要对这些缝隙位置进行插值,然后再求极值点的坐标位置。
第二步中另一关键环节是删除边缘效应的点,因为只忽略那些DoG响应不够的点是不够的,DoG的值会受到边缘的影响,那些边缘上的点,虽然不是斑点,但是它的DoG响应也很强。所以我们要把这部分点删除。我们利用横跨边缘的地方,在沿边缘方向与垂直边缘方向表现出极大与极小的主曲率这一特性。所以通过计算特征点处主曲率的比值即可以区分其是否在边缘上。这一点在理解上可以参见Harris角点的求法。
最后一步,即为特征点的特征描述。特征点的方向的求法是需要对特征点邻域内的点的梯度方向进行直方图统计,选取直方图中比重最大的方向为特征点的主方向,还可以选择一个辅方向。在计算特征矢量时,需要对局部图像进行沿主方向旋转,然后再进邻域内的梯度直方图统计(4x4x8)。
2.3 SURF
详细的算法描述参考:1. SURF算法与源码分析、上 2. SURF算法与源码分析、下
2006年,Bay和Ess等人基于SIFT算法的思路,提出了加速鲁棒特征(SURF),该算法主要针对于SIFT算法速度太慢,计算量大的缺点,使用了近似Harr小波方法来提取特征点,这种方法就是基于Hessian行列式(DoH)的斑点特征检测方法。通过在不同的尺度上利用积分图像可以有效地计算出近似Harr小波值,简化了二阶微分模板的构建,搞高了尺度空间的特征检测的效率。
SURF算法在积分图像上使用了盒子滤波器对二阶微分模板进行了简化,从而构建了Hessian矩阵元素值,进而缩短了特征提取的时间,提高了效率。其中SURF算法在每个尺度上对每个像素点进行检测,其近似构建的Hessian矩阵及其行列式的值分另为:
其中和为利用盒子滤波器获得的近似卷积值。如果大于设置的门限值,则判定该像素点为关键字。然后与SIFT算法近似,在以关键点为中心的像素邻域内进行非极大值抑制,最后通过对斑点特征进行插值运算,完成了SURF特征点的精确定位。
而SURF特征点的描述,则也是充分利用了积分图,用两个方向上的Harr小波模板来计算梯度,然后用一个扇形对邻域内点的梯度方向进行统计,求得特征点的主方向。
3. 角点检测的原理与举例
角点检测的方法也是极多的,其中具有代表性的算法是Harris算法与FAST算法。
这两个算法我都有专门写过博文来描述其算法原理。Harris角点和FAST特征点检测。
3.1 Harris角点特征提取
Harris角点检测是一种基于图像灰度的一阶导数矩阵检测方法。检测器的主要思想是局部自相似性/自相关性,即在某个局部窗口内图像块与在各个方向微小移动后的窗口内图像块的相似性。
在像素点的邻域内,导数矩阵描述了数据信号的变化情况。假设在像素点邻域内任意方向上移动块区域,若强度发生了剧烈变化,则变化处的像素点为角点。定义的Harris矩阵为:
其中,和分别为点在和方向上的强度信息的一阶导数,为对应位置的权重。通过计算Harris矩阵的角点响应值D来判断是否为角点。其计算公式为:
其中,det和trace为行列式和迹的操作符,是取值为0.04~0.06的常数。当角点响应值大于设置的门限,且为该点邻域内的局部最大值时,则把该点当作角点。
3.2 FAST角点特征提取
基于加速分割测试的FAST算法可以快速地提取出角点特征。该算法判断一个候选点是否为角点,依据的是在一个像素点为圆心,半径为3个像素的离散化Bresenllam圆周上,在给定阈值的条件下,如果在圆周上有个连续的像素灰度值大于或小于。
针对于上面的定义,我们可以用快速的方法来完成检测,而不用把圆周上的所有点都比较一遍。首先比较上下左右四个点的像素值关系,至少要有3个点的像素灰度值大于或小于,则为候选点,然后再进一步进行完整的判断。
为了加快算法的检测速度,可以使用机器学习ID3贪心算法来构建决策树。这里需要说明的是,在2010年Elmar和Gregory等人提出了自适应通用加速分割检测(AGAST)算法,通过把FAST算法中ID3决策树改造为二叉树,并能够根据当前处理的图像信息动态且高效地分配决策树,提高了算法的运算速度。
4. 二进制字符串特征描述子
可以注意到在两种角点检测算法里,我们并没有像SIFT或SURF那样提到特征点的描述问题。事实上,特征点一旦检测出来,无论是斑点还是角点描述方法都是一样的,可以选用你认为最有效的特征描述子。
特征描述是实现图像匹配与图像搜索必不可少的步骤。到目前为止,人们研究了各种各样的特征描述子,比较有代表性的就是浮点型特征描述子和二进帽字符串特征描述子。
像SIFT与SURF算法里的,用梯度统计直方图来描述的描述子都属于浮点型特征描述子。但它们计算起来,算法复杂,效率较低,所以后来就出现了许多新型的特征描述算法,如BRIEF。后来很多二进制串描述子ORB,BRISK,FREAK等都是在它上面的基础上的改进。
4.1 BRIEF算法
BRJEF算法的主要思想是:在特征点周围邻域内选取若干个像素点对,通过对这些点对的灰度值比较,将比较的结果组合成一个二进制串字符串用来描述特征点。最后,使用汉明距离来计算在特征描述子是否匹配。
BRIEF算法的详细描述可以参考:BRIEF特征描述子
4.2 BRISK算法
BRISK算法在特征点检测部分没有选用FAST特征点检测,而是选用了稳定性更强的AGAST算法。在特征描述子的构建中,BRISK算法通过利用简单的像素灰度值比较,进而得到一个级联的二进制比特串来描述每个特征点,这一点上原理与BRIEF是一致的。BRISK算法里采用了邻域采样模式,即以特征点为圆心,构建多个不同半径的离散化Bresenham同心圆,然后再每一个同心圆上获得具有相同间距的N个采样点。
由于这种邻域采样模式在采样时会产生图像灰度混叠的影响,所以BRISK算法首先对图像进行了高斯平滑图像。并且使用的高斯函数标准差与各自同心圆上点间距成正比。
假设在个采样点中任意选取一对采样点,其平滑后的灰度值分别为和,则两点间的局部梯度为:
假设把所有采样点对构成的集合记为,则
那么短距离采样点对构成的集合S以及长距离采样点构成的集合L分别为:
其中,通常设置距离阈值为,其中为特征点的尺度。
由于长距离采样点对含有更多的特征点角度信息,且局部梯度相互抵消,所以可以在集合L中计算出特征点的特征模式方向为:
然后将采样模式围绕特征点旋转角度,进而特征描述子具有了旋转不变性。
最后,在旋转后的短距离采样点集合S内,对所有的特征点对行像素灰度值比较,最终形成512比特的二进制字符串描述子。
4.3 ORB算法
ORB算法使用FAST进行特征点检测,然后用BREIF进行特征点的特征描述,但是我们知道BRIEF并没有特征点方向的概念,所以ORB在BRIEF基础上引入了方向的计算方法,并在点对的挑选上使用贪婪搜索算法,挑出了一些区分性强的点对用来描述二进制串。ORB算法的详细描述可以参考:ORB特征点检测。
4.4 FREAK算法
Fast Retina KeyPoint,即快速视网膜关键点。
根据视网膜原理进行点对采样,中间密集一些,离中心越远越稀疏。并且由粗到精构建描述子,穷举贪婪搜索找相关性小的。42个感受野,一千对点的组合,找前512个即可。这512个分成4组,前128对相关性更小,可以代表粗的信息,后面越来越精。匹配的时候可以先看前16bytes,即代表精信息的部分,如果距离小于某个阈值,再继续,否则就不用往下看了。
5. 应用之图像匹配
图像匹配的研究目标是精确判断两幅图像之间的相似性。图像之间的相似性的定义又随着不同的应用需求而改变。例如,在物体检索系统中(找出含有亚伯拉罕·林肯的脸的图像),我们认为同一物体的不同图像是相近的。而在物体类别检索系统中(找出含有人脸的图像),我们则认为相同类的物体之间是相近的。
这里局部特征点的应用主要表现在第一种相似性上,也就是说我们需要设计某种图像匹配算法来判断两幅图像是否是对同一物体或场景所成的图像。理想的图像匹配算法应该认为两幅同一物体的图像之间相似度很高,而两幅不同物体的图像之间相似度很低,如下图所示。
由于成像时光照,环境,角度的不一致,我们获取的同一物体的图像是存在差异的,如同上图中的两辆小车的图像一样,角度不同,成像就不同。我们直接利用图像进行比较是无法进行判断小车是否为同一类的。必须进行特征点的提取,再对特征点进行匹配。
图像会存在哪些变换呢?一般来说包括了光照变化与几何变化,光照变化表现是图像上是全局或局部颜色的变化,而几何变化种类就比较多了,可以是平移、旋转、尺度、仿射、投影变换等等。所以我们在研究局部特征点时才要求特征点对这些变化具有稳定性,同时要有很强的独特性,可以让图像与其他类的图像区分性强,即类内距离小而类间距离大。
6. 参考文献
[1] 基于角点的图像特征提取与匹配算法研究,薛金龙,2014.
[2] 基于局部特征的图像匹配与识别,宫明明,2014.
[3] 基于视觉信息的图像特征提取算法研究,戴金波,2014.
[4] 图像局部不变性特征与描述,王永明,王贵锦编著。
-
图像识别技术
2018-11-10 10:26:01图像识别技术 -
商品图像识别是什么?如何实现图像识别呢?
2020-06-09 14:54:31不管如何,我们始终要承认时代在一步一步的发展,目前我们所在的时代科学技术发展跟我们的生活有这很大的影响,其中发展最为迅猛的就是图像识别,就好比如人脸识别,从当初的安防,到后来的手机解锁,再到支付,图像... -
浅谈图像识别技术原理与价值
2020-04-01 09:33:08图像识别技术是人工智能的重要领域。它是指图像的对象识别技术,用于识别不同模式的目标和对象。本文从图像识别的技术原理、识别过程以及应用范围方面讲述对图片识别技术的整体认知。 目录 图像识别技术原理 ... -
图像识别开源_看看开源图像识别技术
2020-07-10 07:25:19图像 识别 开源 去年在丹佛举行的超级计算会议上,我走进展览馆时发现了一个有趣的项目。 来自路易斯安那州立大学的一名博士生Shayan Shams建立了一个显示网络摄像头图像的大型监视器。 图像上是带有标签的彩色框。 ... -
猫狗图像识别
2018-09-19 22:24:14这里,我们介绍的是一个猫狗图像识别的一个任务。数据可以从kaggle网站上下载。其中包含了25000张毛和狗的图像(每个类别各12500张)。 在小样本中进行尝试 我们下面先尝试在一个小数据上进行训练,首先创建三个... -
使用百度C#图像识别SDK进行图像识别
2018-12-11 18:13:072.然后点开右上角的控制台,找到图像识别,创建应用,然后就可以看到创建的密钥 3.打开Vs2017,创建Windows窗体应用,然后添加两个Label,分别命名为Info1,Info2,添加一个按钮,一个pictureBox,pictureBox取名为... -
人工智能 图片识别 图像识别
2018-02-26 18:38:02图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰阶差做进一步识别处理。另外在地理学中指将遥感图像... -
图像识别过程
2019-02-01 15:08:26#图像识别过程分为图像处理和图像识别两个部分 一、图像处理 图像处理(imageProcessing)利用计算机对图像进行分析,已达到所需的结果. 图像处理可以分为模拟图像... -
图像识别书籍
2016-03-06 22:36:55图像识别与项目实践——VC++、MATLAB技术实现 第1章 图像识别概述 1.1 图像识别意义 1.2 图像识别技术 1.3 手写数字识别 1.4 邮政编码识别 1.5 车牌识别简介 1.6 印刷体汉字识别 1.7 条形... -
图像识别初步
2018-03-31 13:51:30模式识别之图像识别笔记图像识别技术的定义为利用计算机对图像进行处理、分析和理解,以识别不同模式的目标和对象的技术。图像识别系统可以分为三个部分: 1、图像处理(1) 基本概念① 定义:把输入图像转化为... -
图像分类、图像识别和图像检索的区别
2019-01-23 11:16:14目录 一、图像分类 二、图像识别 三、图像检索 四、三者的联系 ... 图像分类是给定一幅测试图像,利用... 图像识别是指计算机对图像进行处理、分析和处理,以识别各种不同模式的目标和对象的技术(百度百科给出... -
【数据集整理】人体行为识别和图像识别
2017-12-25 10:05:276个图像识别的,有关物体识别、行人识别、年龄识别和人头检测的,基于图像,图像识别数据集参考于博客:http://blog.csdn.net/qq_14845119/article/details/51913171后续可能还会补充。视频识别1、Weizmann内容:1、... -
Python图像识别
2019-08-01 17:04:08Python图像识别 第一次写博客 首先说明,我只是一个刚开始学习python的学生,此博客纯粹记录我学习的过程,如果代码过程中有问题或者有更好的实现方法,希望业界各位大佬指点、评论 工具 pycharm、一张图片 过程 ①... -
图像识别初识
2017-08-11 23:22:42图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。 2图像识别大致分为三个步骤: 1)提取特征 2)建索引build 3)查询。 3什么是模版? 模板匹配模型。这种模型... -
什么是图像识别
2018-08-11 10:21:45什么是图像识别 参考链接: https://blog.csdn.net/wcl0617/article/details/79034683 计算机本身不具有理解图像的能力,图像识别就是让计算机有和人类一样对图像理解的能力,包括图像表示的内容,图像中物体之间... -
keras图像识别
2018-11-28 11:49:25,好了扯远了,今天趁着有时间更新一下博客,记录一下使用keras + tensorflow + cpu 如何进行图像识别 以下的教程是基于Linux系统来实现的,有windows的同学可能需要改改,但是不建议使用windows来跑 还有由于识别... -
图像识别过程(概念)
2018-01-11 15:22:31图像识别过程分为图像处理和图像识别两个部分。 图像处理(imageProcessing)利用计算机对图像进行分析,以达到所需的结果。 图像处理可分为模拟图像处理和数字图像处理,而图像处理一般指数字图像处理。 这种处理... -
图像识别入门概述
2018-10-08 17:04:29图像识别通常有轮廓识别、特征识别、色彩识别、物体识别等,其中轮廓识别是重中之重。而图像识别的基本流程为:信息获取图像采集->图像预处理得到特征数据->训练过程->识别... -
人工智能-图像识别
2019-04-18 15:23:38图像识别技术是信息时代的一门重要的...简单分析了图像识别技术的引入、其技术原理以及模式识别等,之后介绍了神经网络的图像识别技术和非线性降维的图像识别技术及图像识别技术的应用。从中可以总结出图像处理技... -
CNN与图像识别
2018-06-27 16:16:321. 卷积神经网络用于图像识别的现状。 2. 卷积与图像处理基础知识。 3. 卷积神经网络每一层的可视化,了解神经网络内部的物理意义。 4. 图像卷积滤波器与神经元和权重的关系。 卷积神经网络与图像识别背景 ... -
python示例 调用图像识别服务识别图像
2018-09-26 10:18:50在产品服务那搜索“图像识别” 创建一个新应用,应用名称随便写 创建成功后会生成AppID,API Key,Secret Key 二、安装接口 pip3 install baidu-aip 如果安装慢可以用镜像pip3 install baidu-aip -i ...
-
【数据分析-随到随学】互联网行业业务指标及行业数
-
Go开发第一个小程序——解压 5291
-
2021年建筑电工(建筑特殊工种)操作证考试及建筑电工(建筑特殊工种)模拟考试软件
-
php正则表达式字符如何转义-PHP问题
-
(新)备战2021软考系统集成顺利通关套餐
-
C++学习(一八六).so与.so.x
-
锁对象改变导致异步执行——T2223
-
08 Python编程语言基础技术框架(4)之函数介绍.mp4
-
彻底学会正则表达式
-
为何组件的data必须是一个函数
-
易语言开发通达信DLL公式接口
-
2021年美容师(中级)多少分及格及美容师(中级)新版试题
-
【数据分析-随到随学】Mysql数据库
-
【数据分析-随到随学】量化交易策略模型
-
单元测试UnitTest+Pytest【Selenium3】
-
08 并行计算-清华大学薛巍.zip
-
js操作DOM
-
JAVA 技术体系——JVM12
-
web前端开发规范
-
01 Python编程语言历史及特性.mp4