[0001]
本发明涉及图像处理技术领域,具体而言,涉及一种图像检测方法、装置、电子设备及计算机可读存储介质。
背景技术:[0002]
目前,图像检测领域中存在着检测两张图像是否为同一图像的需求。为解决该需求,当前多采用卷积神经网络模型或视觉词袋模型提取两张图像的图像特征,之后再计算图像特征间相似度并根据相似度来确定两张图像是否为同一图像。
[0003]
但是,上述实现方式在针对本身就较为相似的两张不同图像进行检测时,则会错误的将其确定为同一张图像。
技术实现要素:[0004]
本发明实施例提供一种图像检测方法、装置、电子设备及计算机可读存储介质,用以准确的区分出相似图像。
[0005]
第一方面,本发明实施例提供了一种图像检测方法,包括:
[0006]
在待检测的第一图像和第二图像中确定出多个特征点对,每一所述特征点对包括从所述第一图像中提取出的第一特征点,以及从所述第二图像中提取出并匹配所述第一特征点的第二特征点;其中,每一特征点均具有尺度旋转不变性;
[0007]
基于所述多个特征点对确定出位置变换参数,所述位置变换参数用于表征所述第一图像中第一像素点与所述第二图像中对应于该第一像素点的第二像素点之间的位置变换关系;
[0008]
若所述位置变换参数不大于预设的位置变换参数阈值,则将所述第一图像与所述第二图像确定为同一图像。
[0009]
第二方面,本发明实施例提供了一种图像检测装置,包括:
[0010]
特征点确定单元,用于在待检测的第一图像和第二图像中确定出多个特征点对,每一所述特征点对包括从所述第一图像中提取出的第一特征点,以及从所述第二图像中提取出并匹配所述第一特征点的第二特征点;其中,每一特征点均具有尺度旋转不变性;
[0011]
检测单元,用于基于所述多个特征点对确定出位置变换参数,所述位置变换参数用于表征所述第一图像中第一像素点与所述第二图像中对应于该第一像素点的第二像素点之间的位置变换关系;若所述位置变换参数不大于预设的位置变换参数阈值,则将所述第一图像与所述第二图像确定为同一图像。
[0012]
第三方面,本发明实施例提供了一种电子设备,包括:包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现如前述的图像检测方法中的步骤。
[0013]
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程
序,所述计算机程序被处理器执行时实现如前述的图像检测方法中的步骤。
[0014]
本发明实施例提供的图像检测方法、装置、电子设备及计算机可读存储介质,针对第一图像和第二图像,不再通过如卷积神经网络模型或视觉词袋模型来提取两图像的图像特征并计算相似度的方式实现重复图像检测,而是通过在两图像中提取具有尺度旋转不变性的特征点并建立特征点对,进而利用这些特征点对计算出位置变换参数,以根据该位置变换参数实现重复图像检测。本发明实施例相比前述基于图像特征间相似度的重复图像检测方法,由于特征点相比图像特征具有尺度旋转不变性,因此在检测相似图像的场景下,则能够避免原有利用图像特征间相似度检测重复图像时因忽略尺度维度信息、位置维度信息、旋转维度信息而导致的误检测。
[0015]
此外,值得说明的是,本发明实施例在确定出特征点对后,并不是单纯的通过判断特征点对的数量来实现重复图像检测,而是进一步利用特征点对计算出位置变换参数,其原因在于:特征点对的数量并不能直接地体现两图像之间的位置变换关系,而需要对特征点对进行深度处理,进而挖掘出这些特征点对所隐含的能够表征第一图像中第一像素点与第二图像中对应于该第一像素点的第二像素点之间的位置变换关系的位置变换参数。这样,再进一步比较位置变换参数与位置变换参数阈值,便可真正的利用两图像间尺度维度、位置维度、旋转维度这三个维度的信息实现对重复图像的检测。
附图说明
[0016]
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
[0017]
图1示出了本发明实施例所提供的一种图像检测方法的流程图;
[0018]
图2示出了本发明实施例所提供的图像检测方法中,特征点对的确定流程图;
[0019]
图3示出了本发明实施例所提供的图像检测方法中,第二图像的确定流程图;
[0020]
图4示出了本发明实施例所提供的一种图像检测装置的结构示意图;
[0021]
图5示出了本发明实施例所提供的一种图像检测电子设备的结构示意图。
具体实施方式
[0022]
所属技术领域的技术人员应当知道,本发明实施例可以实现为图像检测方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
[0023]
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存(flash memory)、光纤、光盘只读存储器(cd-rom)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
[0024]
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(radio frequency,rf)或者以上任意合适的组合。
[0025]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:java、smalltalk、c++,还包括常规的过程式程序设计语言,例如:c语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(lan)或广域网(wan),可以连接到用户计算机,也可以连接到外部计算机。
[0026]
下面将参照本发明实施例的图像检测方法、装置、电子设备及计算机可读存储介质的流程图和/或方框图描述本发明实施例。
[0027]
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
[0028]
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
[0029]
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
[0030]
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
[0031]
图1示出了本发明实施例所提供的一种图像检测方法的流程图。如图1所示,该方法包括:
[0032]
s101,在待检测的第一图像和第二图像中确定出多个特征点对,每一特征点对包括从第一图像中提取出的第一特征点,以及从第二图像中提取出并匹配第一特征点的第二特征点;其中,每一特征点均具有尺度旋转不变性。
[0033]
在本申请实施例中,第一图像和第二图像是需要被确定出是否为同一张图像的两张图像。
[0034]
在一个例子中,第二图像可以是已有的图像,而第一图像可以是新获得的、用于与第二图像进行比对的图像。在一个具体的应用场景下,第二图像可以是教师预先发布的题目图像,用于向学生展示其作业图像中应绘制何种内容。而第一图像可以是学生在后续上传的作业图像。为了避免学生直接地将题目图像作为作业图像,则需要对作业图像与题目图像是否为同一图像进行检测。
[0035]
当然,在实际应用中,某些应用场景下可能存在着需要对第一图像与若干张已有图像分别进行比较(而并非唯一与第二图像进行比较)的需求。在上述应用场景下,为提高
检测效率,可以预先在若干张已有图像中确定出与该第一图像最为相似的图像作为第二图像,之后再比较两者是否为同一图像。至于如何在若干张已有图像中确定出与该第一图像最为相似的图像并将其作为第二图像,下文会详细描述,这里暂不赘述。
[0036]
需要说明的是,上述描述的应用场景仅为举例说明,并不作为对本发明实施例的限制。
[0037]
在本申请实施例中,特征点是图像中其邻近像素点的灰度变化较大的像素点。至于如何在待检测的第一图像和第二图像中确定出多个特征点对有多种实现方式。下文会详细描述优选的实现方式,这里暂不赘述。
[0038]
在一个例子中,若最终确定出的特征点对的数量小于已确定的数量阈值,则可以直接确定出两张图片是不同的两张图片。反之,则需要进一步执行上述步骤101至步骤105,以确定出两张图片是否是不同的两张图片。
[0039]
s102,基于多个特征点对确定出位置变换参数,位置变换参数用于表征第一图像中第一像素点与第二图像中对应于该第一像素点的第二像素点之间的位置变换关系。
[0040]
在本申请实施例中,基于多个特征点对确定出位置变换参数有多种实现方式。作为其中一种实现方式,可以通过构建仿射变换矩阵的方式来确定出上述的位置变换参数,下面详细描述:
[0041]
首先,对仿射变换矩阵的形式进行介绍,其具体如下所示:
[0042][0043]
作为一个示例,上述公式一中的(x
′
,y
′
)可以是第一图像中任一第一像素点的像素坐标(记为像素坐标a),而(x,y)则可以是第二图像中与该第一像素点相匹配的第二像素点的像素坐标(记为像素坐标b),矩阵h则是用于对上述像素坐标a(x
′
,y
′
)与像素坐标b(x,y)之间进行仿射变换的仿射变换矩阵。
[0044]
可选的,上述任一像素点的像素坐标所在坐标系可通过以下方式构建,这里以构建第一图像所应用的图像坐标系为例(第二图像所应用的图像坐标系可采用相同方式构建,后续不再描述):以第一图像的左上顶点为图像坐标系原点,以该原点水平向右为图像坐标系x轴正方向,以该原点垂直向下为图像坐标系y轴负方向构建出第一图像所应用的图像坐标系。
[0045]
从上述公式一可以看出,对于矩阵h而言,其存在着6个随不同图像间仿射变换关系的变化而变化的数值h1至h6。至于如何求解出上述的6个未知数h1至h6以构建上述的仿射变换矩阵,这里可结合数学知识实现。由数学知识可知,上述的6个未知数需要至少3个像素点对进行求解。因此,这里直接地利用前述步骤101中确定出的多个特征点对即可实现仿射变换矩阵的构建。由于仿射变换矩阵的构建过程不是本发明的改进重点,因此可参照本领域技术人员所熟知的构建方式进行构建,这里不再详细描述。
[0046]
在完成上述仿射变换矩阵的构建后,便可得出仿射变换矩阵中的6个未知数。其中,h1可以用于表示(x,y)所在图像坐标系的y轴与(x
′
,y
′
)所在图像坐标系的y'轴之间夹角θ(记为旋转角度θ)的正余弦值,h2用于表示旋转角度θ的负正弦值,h3用于表示旋转角度θ的正正弦值,h4用于表示旋转角度θ的负余弦值。而h5则表示像素坐标a经上述旋转角度θ旋
转后得到的像素坐标a
′
与像素坐标b的x轴坐标差值,h6则表示像素坐标a
′
与像素坐标b的y轴坐标差值。若将上述的仿射变换矩阵h以其具体表示内容进行显示,则如下述公式二所示:
[0047][0048]
基于上述的公式二,便可计算出本申请实施例中所描述的位置变换参数。具体的,基于前述的公式二,一方面可以通过求解出旋转角度θ,即尺度旋转不变性中的旋转维度信息。另一方面,通过可以确定出像素坐标a
′
与像素坐标b之间的平移参数(δx,δy),即尺度旋转不变性中的位置维度信息。此外,还可通过则可以求解出该仿射变换矩阵h的行列式m,这里的行列式用于表示第一图像相比第二图像的缩放倍数,尺度旋转不变性中的尺度维度信息。
[0049]
本发明实施例中,上述的旋转角度θ、平移参数(δx,δy)以及行列式m中的至少一项均可作为所描述的位置变换参数。当以多项计算结果作为位置变换参数时,则每一项计算结果均作为该位置变换参数的位置变换子参数。
[0050]
值得说明的是:仿射变换矩阵通常用来做两图像间的配准,比如,在作业图像批改的应用场景下,作业图像和模板图像通过构建仿射变换矩阵进行图像配准并完成图像对齐后,就可以知道作业图像中的答题区域位置。类似的,答题卡扫描过程中所采用的仿射变换矩阵也是用于对两图像进行配准和矫正。上述场景下的仿射变换矩阵,均不像本申请实施例中所记载的,用于检测两图像是否是同一图像。
[0051]
s103,判断位置变换参数是否不大于预设的位置变换参数阈值;若是,则转到步骤104;若否,则转到步骤105。
[0052]
在执行本步骤103之前,需要预先设定一个位置变换参数阈值,该位置变换参数阈值用于区分两张图像是否为同一张图像。这里之所以设置位置变换参数阈值,其原因在于:如前述的,位置变换参数用于表示第一图像中第一像素点与第二图像中第二像素点之间的位置变换关系。那么,在第一图像与第二图像是相同的一张图像的情况下,第一图像中的第一像素点则仅需经过很小的位置关系变换即可转换为第二图像中的第二像素点。换言之,此情况下的位置变换参数的数值很小。反之,若在第一图像与第二图像是不同的两张图像的情况下,第一图像中的第一像素点则需经过很大的位置关系变换才能够转换为第二图像中的第二像素点。换言之,此情况下的位置变换参数的数值很大。而用于对上述两种情况下的位置变换参数进行区分的数值便是上述的位置变换参数阈值。
[0053]
具体的,若位置变换参数大于位置变换参数阈值,则表示第一图像与第二图像为不同的两张图像;相反的,若位置变换参数小于或等于位置变换参数阈值,则表示第一图像与第二图像是相同的一张图像。
[0054]
在一个例子中,上述的位置变换参数阈值可以人为的基于经验设置。在另一个例子中,可以预先选定一定数量的图像作为基础图像集合。之后,通过确定基础图像集合中相同图像、不同图像之间的位置变换参数,进而得到位置变换参数阈值。当然,在实际应用中,还可根据实际情况选择其他的位置变换参数阈值设定方式和具体数值,本申请对此不作限定。
[0055]
由于前述已获得了位置变换参数阈值,因此在本步骤103中可以将其直接地与位置变换参数阈值进行比较,即可根据比较结果确定出第一图像与第二图像是否为同一图像。
[0056]
可选的,在位置变换参数只包含一种参数的情况下,如只包含旋转角度θ、平移参数(δx,δy)和行列式m中的一个,则将其直接地与位置变换参数阈值进行比较即可。
[0057]
可选的,在位置变换参数包含多个位置变换子参数的情况下,如包含旋转角度θ、平移参数(δx,δy)和行列式m中的至少两个,则需要分别将每一位置变换子参数与其对应的位置变换子参数阈值进行比较,进而确定出是否每一变换子参数均不大于对应于该变换子参数的变换子参数阈值。
[0058]
步骤104,将第一图像与第二图像确定为同一图像。
[0059]
需要说明的是,本步骤104是在位置变换参数不大于预设的位置变换参数阈值的前提下执行的。
[0060]
如前述的,若位置变换参数不大于预设的位置变换参数阈值,则表示第一图像与第二图像为相同的一张图像。
[0061]
一旦确定出第一图像与第二图像为相同的一张图像,则可以根据不同的应用场景执行不同的后续步骤。举例来说,若在前述的教师-学生的应用场景下,则可以向学生提示作业图像不符合要求等提示信息。至于在应用场景下具体执行何种后续步骤,本发明对此不做限定。
[0062]
步骤105,将第一图像与第二图像确定为不同图像。
[0063]
如前述的,若位置变换参数大于预设的位置变换参数阈值,则表示第一图像与第二图像为不同的两张图像。
[0064]
至此,完成图1所示流程。
[0065]
本发明实施例提供的图像检测方法、装置、电子设备及计算机可读存储介质,针对第一图像和第二图像,不再通过如卷积神经网络模型或视觉词袋模型来提取两图像的图像特征并计算相似度的方式实现重复图像检测,而是通过在两图像中提取具有尺度旋转不变性的特征点并建立特征点对,进而利用这些特征点对计算出位置变换参数,以根据该位置变换参数实现重复图像检测。本发明实施例相比前述基于图像特征间相似度的重复图像检测方法,由于特征点相比图像特征具有尺度旋转不变性,因此在检测相似图像的场景下,则能够避免原有利用图像特征间相似度检测重复图像时因忽略尺度维度信息、位置维度信息、旋转维度信息而导致的误检测。
[0066]
此外,值得说明的是,本发明实施例在确定出特征点对后,并不是单纯的通过判断特征点对的数量来实现重复图像检测,而是进一步利用特征点对计算出位置变换参数,其原因在于:特征点对的数量并不能直接地体现两图像之间的位置变换关系,而需要对特征点对进行深度处理,进而挖掘出这些特征点对所隐含的能够表征第一图像中第一像素点与
第二图像中对应于该第一像素点的第二像素点之间的位置变换关系的位置变换参数。这样,再进一步比较位置变换参数与位置变换参数阈值,便可真正的利用两图像间尺度维度、位置维度、旋转维度这三个维度的信息实现对重复图像的检测。
[0067]
下面对步骤101中所描述的特征点对如何确定进行描述。
[0068]
参见图2,图2示出了本发明实施例所提供的图像检测方法中,特征点对的确定流程图。该流程可以包括:
[0069]
步骤201,在第一图像中检测出多个第一特征点并提取每一第一特征点的第一图像特征。
[0070]
作为一个示例,在第一图像中确定出多个第一特征点有多种实现方式。作为其中一种实现方式,可以利用surf算法在第一图像中确定出多个surf特征点。作为另一种实现方式,还可以利用sift算法在第一图像中确定出多个sift特征点。
[0071]
下面简单的对surf算法进行说明。surf算法全称为speeded up robust features(加速稳健特征)算法,是一种稳健的局部特征点检测和描述的算法。由于surf算法是本领域技术人员所熟知的算法,因此这里仅对该算法的主要步骤进行简单描述:
[0072]
首先,从第一图像中检测出多个第一特征点。
[0073]
作为一个示例,具体可以包括以下步骤:
[0074]
步骤a,构建黑塞矩阵,利用黑塞矩阵从第一图像中检测出多个初始特征点。
[0075]
步骤b,基于第一图像构建尺度空间。
[0076]
步骤c,针对经黑塞矩阵处理所得到的每一初始特征点,将其与构建得到的尺度空间内该特征点邻域内的若干个像素点进行比较,实现对初始特征点的筛选。之后,再经过滤除能量较弱的特征点以及错误定位的特征点,筛选出最终的稳定的特征点,即确定出第一特征点。
[0077]
之后,针对每个第一特征点,确定出该第一特征点的第一图像特征信息,该第一图像特征信息包括:第一特征点的方向向量和/或第一特征点的图像描述信息。
[0078]
作为一个示例,具体可以包括以下步骤:
[0079]
步骤d,针对每个第一特征点,在该第一特征点的圆形邻域内,统计60度扇形内所有点的水平、垂直harr小波特征总和。然后,以0.2弧度大小的间隔对该扇形进行旋转并再次统计该扇形区域内harr小波特征值。最后,将最大值对应的扇形的方向作为该第一特征点的方向向量。
[0080]
步骤e,在第一特征点周围提取由4乘4个矩形子区域块构成的矩形区域块。针对每个矩形子区域块,统计25个像素点的水平方向和垂直方向的haar小波特征,这里的水平方向和垂直方向都是相对该第一特征点的方向向量而言的。之后,把每一矩形子区域块的haar小波特征(包含4个维度:水平方向值之和、垂直方向值之和、水平方向绝对值之和以及垂直方向绝对值之和)作为该矩形子区域块的特征向量(4个特征向量),便可得到64维度的特征向量。该64维度的特征向量便是该第一特征点的surf描述符,该surf描述符便是本申请实施例中所描述的第一特征点的图像描述信息。
[0081]
执行到这里,便得到了具有方向向量和surf描述符的第一特征点。当然,若采用sift检测算法对第一图像进行检测,则可以得到具有方向向量和sift描述符的第一特征点。这里的sift描述符由于是本领域技术人员所熟知的技术术语,因此不再详细描述。
[0082]
需要说明的,上述的surf算法和sift算法仅用于举例说明。在具体实施时,还可以采取其他能够提取出具有尺度旋转不变性的特征点的任意一种算法,例如,orb算法、harr算法等,本申请对此不做限定。
[0083]
步骤202,在第二图像中检测出多个第二特征点并提取每一第二特征点的第二图像特征。
[0084]
本步骤201与上述步骤101相类似,这里不再赘述。
[0085]
步骤203,针对每一第一图像特征,若在多个第二图像特征中查找到匹配该第一图像特征的目标第二图像特征,则将目标第二图像特征对应的第二特征点与该第一图像特征对应的第一特征点确定为一个特征点对。
[0086]
作为一个示例,本步骤203中确定特征点对有多种实现方式。作为其中一种实现方式,若第一特征点和第二特征点由上述的surf算法得到,那么本步骤203中可以通过以下方式确定特征点对:
[0087]
针对每个第一特征点,分别计算该第一特征点的surf描述符与每一第二特征点的surf描述符之间的欧氏距离。判断最小欧式距离对应的候选第二特征点的方向向量与该第一特征点的方向向量之间的夹角,若该夹角满足预设的夹角阈值,则确定该候选第二特征点是匹配该第一特征点的目标第二特征点,进而确定出一个特征点对。
[0088]
除上述描述的实施方式外,本发明实施例还提供了另外一种实现方式,若第一特征点和第二特征点由sift算法得到,那么本步骤203中可以通过以下方式确定特征点对:
[0089]
针对每个第一特征点,分别计算该第一特征点的sift描述符与每一第二特征点的sift描述符之间的欧氏距离。将最小欧式距离对应的候选第二特征点确定为匹配该第一特征点的目标第二特征点,进而确定出一个特征点对。
[0090]
需要说明的是,上述的数量阈值可以基于第一图像中检测出的第一特征点的数量确定、或者基于第二图像中检测出的第二特征点的数量确定、又或者是技术人员根据经验预先设定,本申请对此不作限定。
[0091]
还需要说明的是,上述的夹角阈值可以根据实际情况设置,本申请对此不作限定。
[0092]
以上对如何在第一图像和第二图像中确定出特征点对进行了描述。
[0093]
下面对上述如何在若干张已有图像中确定出与该第一图像最为相似的图像并将其作为第二图像进行描述。
[0094]
参见图3,图3示出了本发明实施例所提供的图像检测方法中,第二图像的确定流程图。该流程可以包括:
[0095]
步骤301,分别计算第一图像与已有图像库中每个已有图像之间的相似度。
[0096]
作为一个示例,第一图像与已有图像之间的相似度可以通过以下方式计算得到:
[0097]
首先,利用卷积神经网络模型或视觉词袋模型分别提取出第一图像和每一已有图像的图像特征。
[0098]
之后,针对每一已有图像,计算该已有图像的图像特征与第一图像的图像特征之间的欧式距离。
[0099]
最后,基于计算得到的各欧式距离确定出每一已有图像与第一图像之间的相似度。
[0100]
需要说明的是,计算得到的已有图像的图像特征与第一图像的图像特征之间的欧
式距离越短,则表示两图像之间的相似度越大。因此,可根据实际情况对计算得到的欧式距离进行调整或计算,例如对欧氏距离取倒数等方式,进而得到每一已有图像与第一图像之间的相似度。
[0101]
步骤302,将计算得到的各相似度中的最大值所对应的已有图像确定为第二图像。
[0102]
如前述的,相似度可以表示已有图像与第一图像之间的相似程度,因此,计算得到的各相似度中的最大值所对应的已有图像便是与第一图像最为相似的第二图像。
[0103]
以上对如何在若干张已有图像中确定出与该第一图像最为相似的图像并将其作为第二图像进行了描述。
[0104]
上文详细描述了本发明实施例提供的图像检测方法,上述方法也可以通过相应的装置实现,下面将详细描述本发明实施例提供的图像检测装置。
[0105]
图4示出了本发明实施例所提供的一种图像检测装置的结构示意图。如图4所示,该图像检测装置包括:
[0106]
特征点确定单元,用于在待检测的第一图像和第二图像中确定出多个特征点对,每一特征点对包括从第一图像中检测出的第一特征点,以及从第二图像中检测出并匹配第一特征点的第二特征点;其中,每一特征点均具有尺度旋转不变性;
[0107]
检测单元,用于基于多个特征点对确定出位置变换参数,位置变换参数用于表征第一图像中任一第一像素点与第二图像中对应于该第一像素点的第二像素点之间的位置变换关系;若位置变换参数不大于预设的位置变换参数阈值,则将第一图像与第二图像确定为同一图像。
[0108]
作为一个示例,检测单元基于多个特征点对确定出位置变换参数,包括:利用多个特征点构建出仿射变换矩阵;根据仿射变换矩阵确定出第一像素点与第二像素点之间的旋转角度和/或平移量;将计算得到的旋转角度和/或平移量以变换子参数的形式构成位置变换参数。
[0109]
作为一个示例,位置变换参数阈值包括多个变换子参数阈值,每个变换子参数阈值对应一个变换子参数;检测单元在位置变换参数不大于预设的位置变换参数阈值的情况下,将第一图像与第二图像确定为同一图像,包括:针对每一变换子参数,判断该变换子参数是否大于对应于该变换子参数的变换子参数阈值;若所有判断结果均为否,则将第一图像与第二图像确定为同一图像。
[0110]
作为一个示例,特征点确定单元在待检测的第一图像和第二图像中确定出多个特征点对,包括:在第一图像中检测出多个第一特征点并提取每一第一特征点的第一图像特征;以及在第二图像中检测出多个第二特征点并提取每一第二特征点的第二图像特征;针对每一第一图像特征,若在多个第二图像特征中查找到匹配该第一图像特征的目标第二图像特征,则将目标第二图像特征对应的第二特征点与该第一图像特征对应的第一特征点确定为一个特征点对。
[0111]
作为一个示例,第一特征点和第二特征点为尺度不变特征变换sift特征点或加速稳健特征surf特征点。
[0112]
作为一个示例,图像特征至少包括特征点在其所在图像中的方向向量和/或特征点在其所在图像中的图像描述信息。
[0113]
作为一个示例,第二图像可通过以下方式获得:
[0114]
分别计算第一图像与已有图像库中每个已有图像之间的相似度;
[0115]
将计算得到的各相似度中的最大值所对应的已有图像确定为第二图像。
[0116]
以上对图4所示图像检测装置进行了描述。
[0117]
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述图像检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0118]
具体的,参见图5所示,本发明实施例还提供了一种电子设备,该电子设备包括总线71、处理器72、收发器73、总线接口74、存储器75和用户接口76。
[0119]
收发器73,用于在处理器72的控制下接收和发送数据。
[0120]
在图5中,总线架构(用总线71来代表),总线71可以包括任意数量互联的总线和桥,总线71将包括由处理器72代表的一个或多个处理器与存储器75代表的存储器的各种电路连接在一起。
[0121]
总线71表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(accelerate graphical port,agp)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(industry standard architecture,isa)总线、微通道体系结构(micro channel architecture,mca)总线、扩展isa(enhanced isa,eisa)总线、视频电子标准协会(video electronics standards association,vesa)、外围部件互连(peripheral component interconnect,pci)总线。
[0122]
处理器72可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、复杂可编程逻辑器件(complex programmable logic device,cpld)、可编程逻辑阵列(programmable logic array,pla)、微控制单元(microcontroller unit,mcu)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
[0123]
处理器72可以是微处理器或任何常规的处理器。结合本发明实施例所公开的图像检测方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,ram)、闪存(flash memory)、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0124]
总线71还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口74在总线71和收发器73之间提供接口,这些都是本领域所公知的。因此,本
发明实施例不再对其进行进一步描述。
[0125]
收发器73可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器73从其他设备接收外部数据,收发器73用于将处理器72处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口76,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
[0126]
应理解,在本发明实施例中,存储器75可进一步包括相对于处理器72远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网(internet)、公共交换电话网(pstn)、普通老式电话业务网(pots)、蜂窝电话网、无线网络、无线保真(wi-fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(gsm)系统、码分多址(cdma)系统、全球微波互联接入(wimax)系统、通用分组无线业务(gprs)系统、宽带码分多址(wcdma)系统、长期演进(lte)系统、lte频分双工(fdd)系统、lte时分双工(tdd)系统、先进长期演进(lte-a)系统、通用移动通信(umts)系统、增强移动宽带(enhance mobile broadband,embb)系统、海量机器类通信(massive machine type of communication,mmtc)系统、超可靠低时延通信(ultra reliable low latency communications,urllc)系统等。
[0127]
应理解,本发明实施例中的存储器75可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存(flash memory)。
[0128]
易失性存储器包括:随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如:静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本发明实施例描述的电子设备的存储器75包括但不限于上述和任意其他适合类型的存储器。
[0129]
在本发明实施例中,存储器75存储了操作系统751和应用程序752的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
[0130]
具体而言,操作系统751包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序752包含各种应用程序,例如:媒体播放器(media player)、浏览器(browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序752中。应用程序752包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
[0131]
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行时实现上述图像检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0132]
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
[0133]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0134]
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或二者的结合来实现,为了清楚说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。所述计算机程序指令包括:汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,例如:smalltalk、c++以及过程式编程语言,例如:c语言或类似的编程语言。
[0135]
在计算机上加载和执行所述计算机程序指令时,全部或部分的产生按照本发明实施例所述的流程或功能,所述计算机可以是通过计算机、专用计算机、计算机网络或其他可编辑装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如:所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、双绞线、光纤、数字用户线路(digital subscriber line,dsl))或无线(例如:红外、无线、微波)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、磁盘、磁带)、光介质(例如:光盘)或半导体介质(例如:固态硬盘(solid state drive,ssd))等。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0136]
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述本发明方法实施例中的对应过程,在此不再赘述。
[0137]
在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,
可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
[0138]
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
[0139]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0140]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
[0141]
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。