CN109657711A - 一种图像分类方法、装置、设备及可读存储介质 - Google Patents
一种图像分类方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN109657711A CN109657711A CN201811504727.8A CN201811504727A CN109657711A CN 109657711 A CN109657711 A CN 109657711A CN 201811504727 A CN201811504727 A CN 201811504727A CN 109657711 A CN109657711 A CN 109657711A
- Authority
- CN
- China
- Prior art keywords
- feature vector
- cluster
- sift feature
- fpga
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 239000013598 vector Substances 0.000 claims abstract description 133
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000000007 visual effect Effects 0.000 claims abstract description 31
- 238000000605 extraction Methods 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 8
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 7
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 230000036571 hydration Effects 0.000 description 3
- 238000006703 hydration reaction Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 101100533511 Drosophila melanogaster SIFaR gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
- G06V10/464—Salient features, e.g. scale invariant feature transforms [SIFT] using a plurality of salient features, e.g. bag-of-words [BoW] representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/50—Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种图像分类方法,该方法包括:获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA;接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果;将聚类结果作为视觉词典,并计算视觉词典的直方图向量;将直方图向量输入分类器中进行分类,获得目标图像的分类结果。该方法,可通过FPGA一次性计算出多个欧式距离,如此,便可缩短聚类处理速度,进一步加快图像分类速度。本发明还公开了一种图像分类装置、设备及可读存储介质,具有相应的技术效果。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种图像分类方法、装置、设备及可读存储介质。
背景技术
随着计算机技术和图像采集手段的不断发展,生成了大规模的数字图像数据。图像分类技术利用计算机对图像进行自动化分析和归类,是当前计算机领域的研究热点之一。
其中,视觉词典(BoVW,Bag of Visual Words)是一种常用的图像表示方法,在图像分类算法中应用广泛。由于图像分类算法中BoVW所依赖的传统文件系统和处理架构无法适应大规模数字图像,如在将特征向量进行聚类,以获得视觉词典的过程中,无法快速进行聚类运算。进而导致图像分类处理耗时较长,无法适应实时且大规模的图像分类处理应用场景。
综上所述,如何有效地解决图像分类处理耗时较长等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种图像分类方法、装置、设备及可读存储介质,以实现提高图像分类处理速度。
为解决上述技术问题,本发明提供如下技术方案:
一种图像分类方法,包括:
获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;
获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA;
接收所述FPGA返回的欧式距离计算结果,并利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果;
将所述聚类结果作为视觉词典,并计算所述视觉词典的直方图向量;
将所述直方图向量输入分类器中进行分类,获得所述目标图像的分类结果。
优选地,所述获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA,包括:
获取所述初始聚类中心,将所述初始聚类中心和N个所述SIFT特征向量通过buffer写入所述FPGA。
优选地,在所述FPGA接收到所述初始聚类中心和N个所述SIFT特征向量时,包括:
所述FPGA并行计算每一对所述初始聚类中心与所述SIFT特征向量的欧式距离,并将计算得到的欧式距离写入所述buffer。
优选地,所述利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果,包括:
利用所述欧式距离计算结果对N各所述SIFT特征向量进行距离,获得新聚类中心;
计算所述新聚类中心与所述初始距离中心的目标距离;
判断所述目标距离是否小于阈值;
如果是,则将所述新聚类中心作为聚类结果;
如果否,则将所述初始聚类中心更新为所述新聚类中心,并重复执行所述获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA的步骤。
优选地,将所述新聚类中心作为聚类结果,包括:
利用reduce函数,将所述新聚类中心作为聚类结果。
优选地,获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量,包括:
获取所述目标图像,将所述目标图像发送给多个处理设备,以便所述处理设备对所述目标图像进行特征提取;
接收多个所述处理设备分别返回的初始SIFT特征向量;
对所述初始SIFT特征向量进行去重处理,获得N个不同的所述SIFT特征向量。
一种图像分类装置,包括:
特征提取模块,用于获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;
聚类数据发送模块,用于获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA;
聚类结果获得模块,用于接收所述FPGA返回的欧式距离计算结果,并利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果;
直方图图向量获得模块,用于将所述聚类结果作为视觉词典,并计算所述视觉词典的直方图向量;
分类结果获得模块,用于将所述直方图向量输入分类器中进行分类,获得所述目标图像的分类结果。
优选地,所述聚类数据发送模块,具体用于获取所述初始聚类中心,将所述初始聚类中心和N个所述SIFT特征向量通过buffer写入所述FPGA。
一种图像分类设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述图像分类方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述图像分类方法的步骤。
应用本发明实施例所提供的方法,获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA;接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果;将聚类结果作为视觉词典,并计算视觉词典的直方图向量;将直方图向量输入分类器中进行分类,获得目标图像的分类结果。
在生成视觉词典的步骤中,采用聚类算法对不同的SIFT特征向量进行聚类处理,然后将聚类结果直接作为视觉词典的方式,直接有效,但在串行运算中复杂度较高,当数据量非常大时,需要庞大的时间开销。考虑到在进行聚类时,待聚类SIFT特征向量均独立计算与聚类中心的距离的特点,可对计算欧式聚类的过程并行化。具体的,即使用FPGA板卡对聚类算法的欧式距离计算过程进行并行流水化处理。如此,便可通过FPGA一次性计算出多个欧式距离,如此,便可缩短聚类处理速度,进一步加快图像分类速度。
相应地,本发明实施例还提供了与上述图像分类方法相对应的图像分类装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种图像分类方法的实施流程图;
图2为本发明实施例中面向CPU平台的图像表示方法的流程示意图;
图3为本发明实施例中面向Spark+FPGA异构加速平台的图像表示方法的流程示意图;
图4为基于CPU的向量加法示意图;
图5为本发明实施例中基于FPGA的向量加法计算示意图;
图6为本发明实施例中一种图像分类装置的结构示意图;
图7为本发明实施例中一种图像分类设备的结构示意图;
图8为本发明实施例中一种图像分类设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种图像分类方法的流程图,该方法包括以下步骤:
S101、获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量。
其中N为正整数。N的具体数值和目标图像的具体关键点的数量和特征提取过程中的计算过程相关,也就是说,不同的目标图像,可能对应相同数量的SIFT特征向量,也可能对应不同数量的SIFT特征向量。
可通过接收外部设备发送图像的方式,也可直接读取存储在可读存储介质中的目标图像的方式,获得待分类的目标图像。然后对目标图像进行SIFT特征提取,其中,SIFT,即尺度不变特征转换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。具体的,如何对目标图像进行SIFR特征提取,可参见常见的提取方式,在此不再赘述。
优选地,为了加快SIFT特征提取速度,可在分布式计算平台(Spark)进行特征提取。即步骤S101的具体实现过程,包括:
步骤一、获取目标图像,将目标图像发送给多个处理设备,以便处理设备对目标图像进行特征提取;
步骤二、接收多个处理设备分别返回的初始SIFT特征向量;
步骤三、对初始SIFT特征向量进行去重处理,获得N个不同的SIFT特征向量。
为便于描述,下面将上述三个步骤结合起来进行说明。
请参考图2和图3,其中图2为本发明实施例中面向CPU平台的图像表示方法的流程示意图,图3为本发明实施例中面向Spark+FPGA异构加速平台的图像表示方法的流程示意图。图像表示方法,即为在图像分类处理过程中,得到目标图像的视觉字典的处理过程。对比图2和图3可知,当在Spark上进行图像特征提取时,可一次性提取到多个SIFT特征。由于Spark内的多台设备均在对目标图像进行特征提取,则提取到的SIFT特征向量可能存在相同的情况,为了降低相同SIFT特征向量对后续分类过程的干扰,可将多个处理设备分别返回的初始SIFT特征向量进行去重处理,获得N个不同的SIFT特征向量。
当获得目标图像的N个不同的SIFT特征向量之后,便可执行步骤S102的操作。
S102、获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA。
首先,获取初始聚类中心,该初始聚类中心可以为预先设置的聚类中心,也可为随机确定的聚类中心。另外,由于聚类过程中存在大量迭代过程,即初始聚类中心也可为上一次聚类结束之后,确定出的新的聚类中心。由于聚类算法中,如K-Means算法中,会计算大量的欧式距离,但在串行运算中复杂度较高,当数据量非常大时,需要庞大的时间开销。考虑到在进行聚类时,待聚类SIFT特征向量均独立计算与聚类中心的距离的特点,可对计算欧式聚类的过程并行化。具体的,即使用FPGA板卡对聚类算法的欧式距离计算过程进行并行流水化处理。如此,便可通过FPGA一次性计算出多个欧式距离,如此,便可缩短聚类处理速度,进一步加快图像分类速度。即,可将计算SIFT特征向量与初始聚类中心发送给FPGA,利用FPGA具有的快速并行处理特点,可缩短计算欧式距离的总耗时。
具体的,可通过buffter与FPGA建立通信。其中,buffter可称缓冲寄存器或缓冲器,分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使CPU与外设起协调和缓冲作用,实现数据传送的同步。即,获取初始聚类中心,将初始聚类中心和N个SIFT特征向量通过buffer写入FPGA。具体的,在利用buffter传输数据时,可按照按照<行号,SIFT特征向量>的形式,将初始聚类中心和N个SIFT特征向量通过buffer写入FPGA。例如,在每个Map节点上,输入待聚类的SIFT特征向量和上一轮(或初始)聚类中心,以<Key,Value>的形式读入,其中Key是行号,Value是特征向量Xn。Map函数以欧氏距离为标准计算并标示距该向量最近的聚类中心,输出中间聚类结果<Key,Value>,其中Key是Xn所属类别的标记classID,Value是Xn。
在FPGA接收到初始聚类中心和N个SIFT特征向量时,FPGA并行计算每一对初始聚类中心与SIFT特征向量的欧式距离,并将计算得到的欧式距离写入buffer。具体的,可令FPGA对buffer进行监测,当监测到CPU或Spark在buffer写入数据之后,便从buffer中读取数据,并在得到初始聚类中心和N个SIFT特征向量时,并行计算每一对初始聚类中心与SIFT特征向量的欧式距离,并将计算得到的欧式距离写入buffer。
S103、接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果。
CPU或Spark可通过读取buffer内的数据的方式,接收FPGA返回的欧式距离计算结果。其中,利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果。具体的聚类方法可为K-Means算法,对N个SIFT特征向量进行聚类,获得聚类结果。
优选地,考虑到一次聚类的效果,所得到的聚类中心代表目标图像并不准确,因此,本发明实施例还可对聚类中心进行校验,以得到更为精准的聚类结果。具体的,即在利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果时,执行以下步骤的操作:
步骤一、利用欧式距离计算结果对N各SIFT特征向量进行距离,获得新聚类中心;
步骤二、计算新聚类中心与初始距离中心的目标距离;
步骤三、判断目标距离是否小于阈值;
步骤四、如果是,则将新聚类中心作为聚类结果;
步骤五、如果否,则将初始聚类中心更新为新聚类中心,并重复执行获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA的步骤。
为了便于描述,下面将上述五个步骤结合起来进行说明。
聚类过程,即不断地更新聚类中心的过程,基于FPGA返回的欧式距离之后,便可利用该欧式距离对聚类中心进行更新。当更新前后的聚类中心的差异较小时,则表明距离结果越来越精确。基于此,可计算出新距离中心与初始聚类中心的距离,然后判断该距离是否小于阈值,如果是,则表明聚类效果达到期望,此时可直接将新聚类中心作为聚类结果输出;如果否,则表明聚类效果还未达到期望,则可将初始聚类中心更新为新聚类中心,并重新执行步骤S102的操作,即重新计算新的欧式距离,以及基于新的欧式距离进行新一轮的聚类,直到满足目标距离小于阈值的条件。其中,阈值的大小可根据具体的需求而设置,例如,在精度要求减低的应用场景中,阈值可设置为较大数值,而在精度要求较高的应用场景中,阈值可设置为较小数值。
其中,确定聚类结果时,可利用reduce函数,将新聚类中心作为聚类结果。其中,reduce()函数会对参数序列中元素进行累积,即函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数function(有两个参数)先对集合中的第1、2个元素进行操作,得到的结果再与第三个数据用function函数运算,最后得到一个结果。
S104、将聚类结果作为视觉词典,并计算视觉词典的直方图向量。
得到聚类结果之后,便可将聚类结果直接作为视觉词典,即将聚类中心点作为视觉词典。然后计算出视觉词典的直方图向量。即,此时可是要直方图向量表示目标图像。
S105、将直方图向量输入分类器中进行分类,获得目标图像的分类结果。
在本发明实施例中,可预先分类器,并预先训练出应用分类判决的训练图像与直方图向量的对应关系表。具体的,训练图像的直方图向量的获取方式可参照本文中获取目标图像的直方图向量的过程。
应用本发明实施例所提供的方法,获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA;接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果;将聚类结果作为视觉词典,并计算视觉词典的直方图向量;将直方图向量输入分类器中进行分类,获得目标图像的分类结果。
在生成视觉词典的步骤中,采用聚类算法对不同的SIFT特征向量进行聚类处理,然后将聚类结果直接作为视觉词典的方式,直接有效,但在串行运算中复杂度较高,当数据量非常大时,需要庞大的时间开销。考虑到在进行聚类时,待聚类SIFT特征向量均独立计算与聚类中心的距离的特点,可对计算欧式聚类的过程并行化。具体的,即使用FPGA板卡对聚类算法的欧式距离计算过程进行并行流水化处理。如此,便可通过FPGA一次性计算出多个欧式距离,如此,便可缩短聚类处理速度,进一步加快图像分类速度。
实施例二:
为便于本领域技术人员更好的理解本发明实施例所提供的图像分类方法,下面以应用到包括Spark和FPGA的异构加速平台为例,对本发明实施例所提供的图像分类方法进行详细说明。
Spark是大数据处理领域的主流计算平台,Fpga是异构计算领域的计算平台。在Spark上进行图像分类主要分为两个阶段:第1阶段基于BoVW模型进行图像表示,首先利用从训练图像(同上文的目标图像)中提取的图像特征建立视觉词典,在此基础上将图像表示为词典的直方图向量形式。第2阶段根据图像直方图向量进行分类。第1阶段的图像表示方法在MapReduce框架下分布式进行,包括并行提取图像特征、并行生成视觉词典过程,如图3所示。
对于特征提取,可利用Spark中的分布式处理架构,并行的提取图像特征。请参考图4和图5,图4为基于CPU的向量加法示意图,图5为本发明实施例中基于FPGA的向量加法计算示意图。可见,FPGA可将本来串行的只能一个一个提取特征的算法优化为可以同时并行提取N个特征的算法。
对于生成视觉词典部分,采用K-means算法直接有效,但在串行运算中复杂度较高,当数据量非常大时,需要庞大的时间开销。考虑到算法中待聚类元素均独立计算与中心距离的特点,使用Spark框架对其进行并行化,使用FPGA板卡对K-means算法的计算过程进行并行流水优化。其核心思想为:对串行算法中的每次迭代都启动一个MapReduce任务,该任务执行待聚类数据与聚类中心距离的计算。
在每个任务内部,对于待聚类数据与聚类中心距离的计算,采用FPGA板卡对其计算过程进行并行流水优化。具体过程如下:
在每个Map节点上,输入待聚类的SIFT特征向量和上一轮(或初始)聚类中心,以<Key,Value>的形式读入,其中Key是行号,Value是特征向量Xn。Map函数以欧氏距离为标准计算并标示距该向量最近的聚类中心,输出中间聚类结果<Key,Value>,其中Key是Xn所属类别的标记classID,Value是Xn。由于特征向量的维度一般特别大,若在CPU上计算距离会很耗时。在计算向量间的欧式距离时,可把特征向量和聚类中心通过buffer写入FPGA,然后在FPGA板卡上并行计算距离。计算完成再通过bufffer把计算后的结果读取回来。
在执行Reduce函数之前,中间聚类结果在本地进行合并(Combine),键值相同的中间结果送至同一个Reduce节点。Reduce输入<Key,Value>,其中Key是classID,Value是键值相同的Xn的集合。Reduce函数输出<Key,Value>,其中Key是classID,Value是计算产生的均值向量,是新的聚类中心。
在主函数中调用上述Map/Reduce函数,比较上一轮聚类中心与本轮中心的距离,若小于所定阈值,则聚类完成;否则使用本轮聚类中心文件启动下一轮MapReduce任务,最终的聚类结果作为视觉词典存储在HDFS上。
利用Spark分布式计算平台解决海量图像分类中图像表示耗时过长的问题。在传统BoVW模型的基础上,提出了图像特征提取,视觉词典创建过程的基于Spark和FPGA的并行化实现。可获得良好的分类效果,同时充分利用spark在分布式存储和FPGA在并行运算上的优势,有效减少图像表示的时间开销。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种图像分类装置,下文描述的图像分类装置与上文描述的图像分类方法可相互对应参照。
参见图6所示,该装置包括以下模块:
特征提取模块101,用于获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;
聚类数据发送模块102,用于获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA;
聚类结果获得模块103,用于接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果;
直方图图向量获得模块104,用于将聚类结果作为视觉词典,并计算视觉词典的直方图向量;
分类结果获得模块105,用于将直方图向量输入分类器中进行分类,获得目标图像的分类结果。
应用本发明实施例所提供的装置,获取待分类的目标图像,对目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA;接收FPGA返回的欧式距离计算结果,并利用欧式距离计算结果对N个SIFT特征向量进行聚类,获得聚类结果;将聚类结果作为视觉词典,并计算视觉词典的直方图向量;将直方图向量输入分类器中进行分类,获得目标图像的分类结果。
在生成视觉词典的步骤中,采用聚类算法对不同的SIFT特征向量进行聚类处理,然后将聚类结果直接作为视觉词典的方式,直接有效,但在串行运算中复杂度较高,当数据量非常大时,需要庞大的时间开销。考虑到在进行聚类时,待聚类SIFT特征向量均独立计算与聚类中心的距离的特点,可对计算欧式聚类的过程并行化。具体的,即使用FPGA板卡对聚类算法的欧式距离计算过程进行并行流水化处理。如此,便可通过FPGA一次性计算出多个欧式距离,如此,便可缩短聚类处理速度,进一步加快图像分类速度。
在本发明的一种具体实施方式中,聚类数据发送模块102,具体用于获取初始聚类中心,将初始聚类中心和N个SIFT特征向量通过buffer写入FPGA。
在本发明的一种具体实施方式中,聚类数据发送模块102,具体用于按照<行号,SIFT特征向量>的形式,将初始聚类中心和N个SIFT特征向量通过buffer写入FPGA,以便在FPGA接收到初始聚类中心和N个SIFT特征向量时,FPGA并行计算每一对初始聚类中心与SIFT特征向量的欧式距离,并将计算得到的欧式距离写入buffer。
在本发明的一种具体实施方式中,聚类结果获得模块103,具体用于利用欧式距离计算结果对N各SIFT特征向量进行距离,获得新聚类中心;计算新聚类中心与初始距离中心的目标距离;判断目标距离是否小于阈值;如果是,则将新聚类中心作为聚类结果;如果否,则将初始聚类中心更新为新聚类中心,并重复执行获取初始聚类中心,并将N个SIFT特征向量和初始聚类中心发送给FPGA的步骤。
在本发明的一种具体实施方式中,聚类结果获得模块103,具体用于利用reduce函数,将新聚类中心作为聚类结果。
在本发明的一种具体实施方式中,特征提取模块101,具体用于获取目标图像,将目标图像发送给多个处理设备,以便处理设备对目标图像进行特征提取;接收多个处理设备分别返回的初始SIFT特征向量;对初始SIFT特征向量进行去重处理,获得N个不同的SIFT特征向量。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种图像分类设备,下文描述的一种图像分类设备与上文描述的一种图像分类方法可相互对应参照。
参见图7所示,该图像分类设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的图像分类方法的步骤。
具体的,请参考图8,图8为本实施例提供的一种图像分类设备的具体结构示意图,该图像分类设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在图像分类设备301上执行存储介质330中的一系列指令操作。
图像分类设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的图像分类方法中的步骤可以由图像分类设备的结构实现。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种图像分类方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的图像分类方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (10)
1.一种图像分类方法,其特征在于,包括:
获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;
获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA;
接收所述FPGA返回的欧式距离计算结果,并利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果;
将所述聚类结果作为视觉词典,并计算所述视觉词典的直方图向量;
将所述直方图向量输入分类器中进行分类,获得所述目标图像的分类结果。
2.根据权利要求1所述的图像分类方法,其特征在于,所述获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA,包括:
获取所述初始聚类中心,将所述初始聚类中心和N个所述SIFT特征向量通过buffer写入所述FPGA。
3.根据权利要求2所述的图像分类方法,其特征在于,在所述FPGA接收到所述初始聚类中心和N个所述SIFT特征向量时,包括:
所述FPGA并行计算每一对所述初始聚类中心与所述SIFT特征向量的欧式距离,并将计算得到的欧式距离写入所述buffer。
4.根据权利要求3所述的图像分类方法,其特征在于,所述利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果,包括:
利用所述欧式距离计算结果对N各所述SIFT特征向量进行距离,获得新聚类中心;
计算所述新聚类中心与所述初始距离中心的目标距离;
判断所述目标距离是否小于阈值;
如果是,则将所述新聚类中心作为聚类结果;
如果否,则将所述初始聚类中心更新为所述新聚类中心,并重复执行所述获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA的步骤。
5.根据权利要求4所述的图像分类方法,其特征在于,将所述新聚类中心作为聚类结果,包括:
利用reduce函数,将所述新聚类中心作为聚类结果。
6.根据权利要求1至5任一项所述的图像分类方法,其特征在于,获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量,包括:
获取所述目标图像,将所述目标图像发送给多个处理设备,以便所述处理设备对所述目标图像进行特征提取;
接收多个所述处理设备分别返回的初始SIFT特征向量;
对所述初始SIFT特征向量进行去重处理,获得N个不同的所述SIFT特征向量。
7.一种图像分类装置,其特征在于,包括:
特征提取模块,用于获取待分类的目标图像,对所述目标图像进行特征提取,获得N个不同的SIFT特征向量;其中N为正整数;
聚类数据发送模块,用于获取初始聚类中心,并将N个所述SIFT特征向量和所述初始聚类中心发送给FPGA;
聚类结果获得模块,用于接收所述FPGA返回的欧式距离计算结果,并利用所述欧式距离计算结果对N个所述SIFT特征向量进行聚类,获得聚类结果;
直方图图向量获得模块,用于将所述聚类结果作为视觉词典,并计算所述视觉词典的直方图向量;
分类结果获得模块,用于将所述直方图向量输入分类器中进行分类,获得所述目标图像的分类结果。
8.根据权利要求6所述的图像分类装置,其特征在于,所述聚类数据发送模块,具体用于获取所述初始聚类中心,将所述初始聚类中心和N个所述SIFT特征向量通过buffer写入所述FPGA。
9.一种图像分类设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述图像分类方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述图像分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811504727.8A CN109657711A (zh) | 2018-12-10 | 2018-12-10 | 一种图像分类方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811504727.8A CN109657711A (zh) | 2018-12-10 | 2018-12-10 | 一种图像分类方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109657711A true CN109657711A (zh) | 2019-04-19 |
Family
ID=66114121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811504727.8A Pending CN109657711A (zh) | 2018-12-10 | 2018-12-10 | 一种图像分类方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657711A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110472091A (zh) * | 2019-08-22 | 2019-11-19 | 深圳市商汤科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN111860700A (zh) * | 2020-09-22 | 2020-10-30 | 深圳须弥云图空间科技有限公司 | 一种能耗分类方法、装置、存储介质及设备 |
CN112530409A (zh) * | 2020-12-01 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于几何学的语音样本筛选方法、装置及计算机设备 |
CN115188421A (zh) * | 2022-09-08 | 2022-10-14 | 杭州联川生物技术股份有限公司 | 基于高通量测序的基因聚类数据预处理方法、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576894A (zh) * | 2008-05-09 | 2009-11-11 | 中国科学院半导体研究所 | 实时图像内容检索系统及图像特征提取方法 |
CN102737514A (zh) * | 2011-11-16 | 2012-10-17 | 刘伟南 | 一种发布道路信息和检测车辆行驶情况及属性的装置 |
CN103903431A (zh) * | 2012-12-25 | 2014-07-02 | 刘伟南 | 一种车辆检测装置 |
CN106203508A (zh) * | 2016-07-11 | 2016-12-07 | 天津大学 | 一种基于Hadoop平台的图像分类方法 |
CN106682702A (zh) * | 2017-01-12 | 2017-05-17 | 张亮 | 深度学习方法和系统 |
CN107368807A (zh) * | 2017-07-20 | 2017-11-21 | 东南大学 | 一种基于视觉词袋模型的监控视频车型分类方法 |
CN108647307A (zh) * | 2018-05-09 | 2018-10-12 | 京东方科技集团股份有限公司 | 图像处理方法、装置、电子设备及存储介质 |
-
2018
- 2018-12-10 CN CN201811504727.8A patent/CN109657711A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576894A (zh) * | 2008-05-09 | 2009-11-11 | 中国科学院半导体研究所 | 实时图像内容检索系统及图像特征提取方法 |
CN102737514A (zh) * | 2011-11-16 | 2012-10-17 | 刘伟南 | 一种发布道路信息和检测车辆行驶情况及属性的装置 |
CN103903431A (zh) * | 2012-12-25 | 2014-07-02 | 刘伟南 | 一种车辆检测装置 |
CN106203508A (zh) * | 2016-07-11 | 2016-12-07 | 天津大学 | 一种基于Hadoop平台的图像分类方法 |
CN106682702A (zh) * | 2017-01-12 | 2017-05-17 | 张亮 | 深度学习方法和系统 |
CN107368807A (zh) * | 2017-07-20 | 2017-11-21 | 东南大学 | 一种基于视觉词袋模型的监控视频车型分类方法 |
CN108647307A (zh) * | 2018-05-09 | 2018-10-12 | 京东方科技集团股份有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110472091A (zh) * | 2019-08-22 | 2019-11-19 | 深圳市商汤科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN110472091B (zh) * | 2019-08-22 | 2022-01-11 | 深圳市商汤科技有限公司 | 图像处理方法及装置、电子设备和存储介质 |
CN111860700A (zh) * | 2020-09-22 | 2020-10-30 | 深圳须弥云图空间科技有限公司 | 一种能耗分类方法、装置、存储介质及设备 |
CN111860700B (zh) * | 2020-09-22 | 2020-12-15 | 深圳须弥云图空间科技有限公司 | 一种能耗分类方法、装置、存储介质及设备 |
CN112530409A (zh) * | 2020-12-01 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于几何学的语音样本筛选方法、装置及计算机设备 |
CN112530409B (zh) * | 2020-12-01 | 2024-01-23 | 平安科技(深圳)有限公司 | 基于几何学的语音样本筛选方法、装置及计算机设备 |
CN115188421A (zh) * | 2022-09-08 | 2022-10-14 | 杭州联川生物技术股份有限公司 | 基于高通量测序的基因聚类数据预处理方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109657711A (zh) | 一种图像分类方法、装置、设备及可读存储介质 | |
JP7110493B2 (ja) | 深層モデルの訓練方法及びその装置、電子機器並びに記憶媒体 | |
WO2020007177A1 (zh) | 计算机执行的报价方法、报价装置、电子设备及存储介质 | |
CN110110113A (zh) | 图像搜索方法、系统及电子装置 | |
CN104978749A (zh) | 一种基于fpga的sift图像特征提取系统 | |
CN109598250A (zh) | 特征提取方法、装置、电子设备和计算机可读介质 | |
CN111368707B (zh) | 基于特征金字塔与密集块的人脸检测方法、系统、设备及介质 | |
CN111722700A (zh) | 一种人机交互方法及人机交互设备 | |
CN111598833B (zh) | 一种目标样本瑕疵检测的方法、装置及电子设备 | |
CN110633630B (zh) | 一种行为识别方法、装置及终端设备 | |
CN113378864B (zh) | 一种锚框参数的确定方法、装置、设备及可读存储介质 | |
WO2023109086A1 (zh) | 文字识别方法、装置、设备及存储介质 | |
CN110428012A (zh) | 脑网络模型建立方法、脑图像分类方法、装置及电子设备 | |
CN108388886A (zh) | 图像场景识别的方法、装置、终端和计算机可读存储介质 | |
CN113378722B (zh) | 基于3d卷积和多级语义信息融合的行为识别方法及系统 | |
CN112183752B (zh) | 一种基于自动示例选择的端到端多示例学习方法 | |
CN114332127A (zh) | 图像分割方法和装置、计算机可读存储介质和电子设备 | |
CN113609948A (zh) | 一种视频时序动作的检测方法、装置及设备 | |
CN113688261A (zh) | 图像数据清理方法、装置、电子设备及可读存储介质 | |
CN109213322B (zh) | 一种虚拟现实中手势识别的方法及系统 | |
CN113240032A (zh) | 一种图像分类方法、装置、设备及存储介质 | |
CN112541469A (zh) | 基于自适应分类的人群计数方法及系统 | |
CN110598862A (zh) | 一种cnn模型及其训练方法、终端、计算机可读存储介质 | |
Yu et al. | Construction of Garden Landscape Design System Based on Multimodal Intelligent Computing and Deep Neural Network | |
CN111598185B (zh) | 一种基于深度学习的训练数据平衡方法、设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |