发明内容
为解决上述现有技术所存在的问题,本发明提出了一种监控图像实时处理方法,包括:
步骤一,获取监控图像文件库的图像以及待识别的监控图像,将局部特征映射为汉明空间的点,对映射后的点进行散列处理,建立监控图像文件库中图像的索引;
步骤二,搜索监控图像文件库的图像以及待识别的监控图像的图像特征的邻近值,如果监控图像文件库中的图像中与待识别监控图像中的某个特征点欧氏距离最近的前两个特征点满足次近距离与最近距离之比大于预定阈值,则将监控图像文件库的图像的当前特征点与待识别监控图像中的上述特征点作为一对匹配点;
步骤三,确定图像匹配的精确阈值与粗阈值,并以精确阈值的匹配结果建立约束,删除粗阈值粗匹配结果中的失配。
优选地,所述步骤三进一步包括:
(1)首先进行阈值初始化,设定阈值初始值η1=1.5,η2=8;循环次数i1=0,i2=0;循环次数限制i1max=10,i2max=20,所需最小匹配点个数Q=5;
(2)从匹配图像中提取特征矢量;
(3)利用阈值η1做特征匹配,得到当前匹配点集A={(ai,a’i)},i=1,2,…,qA,其中qA为当前η1所对应的匹配个数,并令i1增1;
(4)若当前匹配个数qA<Q,且i1<i1max,则令η1递增0.15,并返回步骤(3);若匹配个数大于Q,或i1>i1max,则转至步骤(5);
(5)利用阈值η2做特征匹配,得到当前匹配点集B={(bj,b’j)},j=1,2,…,qB,其中qB为当前η2所对应的匹配个数,并令i2增1;
(6)若当前匹配个数qB<2,且i2<i2max,则令η2递增0.02,并返回步骤(5);若匹配个数大于2且小于5,且i2<i2max,则令η2递减0.01,并返回步骤(5);否则,转至步骤(7);
(7)在完成阈值选定工作时,得到粗阈值η1及其对应的粗匹配点集A,以及精确阈值η2及其对应的匹配点集精确匹配点集B;
建立匹配图像间的几何变化约束,具体包括:
获取两对精确匹配点(b1,b’1)、(bqB,b’qB),以及粗匹配中的匹配点(ai,a’i)为任意一对,由(b1,b’1)、(bqB、b’qB)建立匹配图像间长度变换约束:
Lc=‖bqB-b1‖/‖b’qB-b’1‖
和角度变化约束
Vc=∠b1bqBx-∠b’1b’qBx
对于粗匹配中的匹配点(ai,a’i),若其对应长度和角度满足上述约束,即当满足
rL=min(Lc,L)/max(Lc,L)>0.85
rV=min(Vc,V)/max(Vc,V)>0.85
时,保留当前匹配(ai,a’i),其中L=‖ai-b1‖/‖a’i-b’i‖,V=∠b1aix-∠b’1a’ix;否则,将当前匹配点从粗匹配点集A中删除。
本发明相比现有技术,具有以下优点:
本发明提出了一种监控图像实时处理方法,有效降低了图像识别中特征提取和特征匹配的计算复杂度,提高了识别效率。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
图1是根据本发明实施例的监控图像实时处理方法流程图。本发明提出的监控图像识别方法可分为离线过程和在线过程两部分。
①离线过程,即对于监控图像文件库中的每幅图像,事先应用特征提取方法,经特征检测、特征描述得到图像特征矢量,形成相应的监控图像特征库,然后在此基础上建立索引以方便对查询特征的快速搜索;②在线过程,即对于用户提交的被查询监控图像,应用相同的特征提取方法实时获取图像特征矢量,然后在特征匹配过程中,通过适当的邻近搜索方法从特征库中查找所有被查询监控图像特征的邻近特征,并计算被查询监控图像与监控图像文件库中的图像之间的相似度,按相似度从大到小的顺序返回最相似的一组监控图像文件库中的图像作为图像识别结果。
图像特征提取包括特征检测和特征描述两个部分。特征检测包括检测尺度空间极值点作为候选特征点;筛选并精确定位特征点的位置和尺度;特征描述包括特征点分配主方向;生成特征描述矢量。本发明缩减了特征检测阶段的大量计算,通过随机采样图像像素点作为特征点并进行特征描述从而得到图像特征矢量,因此该方法能有效降低计算复杂度,提高计算效率。
首先,通过随机采样获取图像特征点。由于随机采样所得特征点的位置具有随机性,因此在设定采样点个数时要保证采样点位置分布相对均匀,即能够尽可能地采样到图像中不同区域的特征信息,尽量避免采样点过于集中以致获得的特征点不能较全面地体现整幅图像的视觉特征。并且,由于图像边缘部分的点一般不能较好地体现图像的内容信息,因此本发明设定尽量不对边缘区域的像素点进行采样,优选地只采样图像行、列范围的1/10-9/10内的点。假设rows、cols分别为图像行、列数,采样个数为m×n(如图像大小为640×480,取m=1/10rows,n=1/10cols),先对图像行1/10rows至9/10rows范围内随机采样m个数得到相应行号r1、r2、r3、…、rm,然后在每个特定行号ri下对图像列1/10cols至9/10cols范围内随机采样n个数就得到相应列号cj,则采样点坐标为(ri,cj),其中i=1、2、…、m,j=1、2、…、n。
随机特征点采样完成后,对其进行描述。特征描述的目的在于准确表达局部图像信息并使这种信息具有可靠的表征性。本发明直接对随机采样的特征点进行特征描述,因此最终得到的特征矢量相对于传统方法而言只包含位置和方向信息。特征矢量计算步骤如下:
(1)取特征点周围4×4的邻域,利用此邻域内像素点的梯度来统计方向直方图,即以每10°方向为一个柱,柱所代表的方向为像素点梯度方向,柱的长度代表梯度幅值。对方向直方图进行两次平滑后的主峰值即为特征点的主方向。利用特征点邻域像素的梯度方向分布特性,可以为每个特征点指定方向,从而使描述子对图像旋转具有不变性。设特征点(x,y)处的灰度值为g(x,y),图像梯度方向为θ(x,y)、幅值为M(x,y),计算公式如下:
(2)为保证特征矢量的旋转不变性,将特征点周围16×16邻域旋转为特征点的主方向。设旋转前采样点坐标为(x,y),则可计算旋转后的采样点坐标(x’,y’):
式中:θ为上文中计算得到的特征点梯度方向θ(x,y)。
(3)在特征点周围16×16邻域窗口中,对各像素点根据坐标按加权平均归入4×4的位置网格,每个网格构成一个种子点。
(4)利用以上过程统计各个网格的方向直方图,此时每个网格区域直方图将0°-360°划分为8个方向区间,每个区间范围为45°,即每个种子点有8个方向区间的梯度强度信息,最终获得128维的特征描述矢量。进一步对其进行正则化处理,以去除光照变化的影响。
由于本发明中采样点的位置是随机的,一些采样点经特征描述后得到的128维矢量表征图像特征的能力较弱,甚至可能影响检索的准确率,因此,需对特征描述后得到的矢量进行筛选,具体方法为:
假设特征点D经特征描述后所得矢量(a0,a1,…,a127)中元素值为0的元素个数为n(n∈[0,128]),若n>K(K为正整数),则舍去该点D。K值可根据所查询的图像,通过多次实验比较获得。
对于数据点集,本发明的邻近搜索方法利用一组具有一定约束条件的散列函数建立多个散列表,使得在某种相似度量条件下相似点发生冲突的概率相对较大,而不相似点发生冲突的概率相对较小。
本发明将邻近搜索方法应用于图像识别中,将图像局部特征映射为汉明空间的点,对这些点进行散列处理,使汉明距离越近的点发生冲突的概率越大。在监控图像识别中,邻近搜索方法用于进行图像特征相似性匹配,具体包括建立监控图像文件库中的图像的索引以及搜索查询监控图像特征的邻近值。
本发明应用邻近搜索方法为图像特征库建立索引的步骤为:
(1)将图像高维特征矢量p=(x1,x2,…,xd)映射到汉明空间中,转换为二进制串p'=Uc(x1)Uc(x2)…Uc(xd)。其中,Uc(xi)(i∈[1,d])表示由xi个1与c-xi个0组成的二进制串,c为特征矢量p中任意元素xi的最大值,d为矢量维度。
(2)从上述二进制字符串p'中随机选k位(k∈(0,c×d))组成l个函数:g1(p)、g2(p)、…、gl(p),每个函数对应一个散列表。
(3)利用步骤(2)中的散列函数,将特征矢量映射到相应的散列表中。
应用邻近搜索方法对被查询监控图像特征进行邻近搜索的步骤为:
(1)对于被查询监控图像中特征q1、q2、…、qk,同样将特征矢量按索引建立过程中的步骤(1)映射到汉明空间中,转换为二进制字符串,并通过与索引建立过程中相同的l个散列函数g1(p)、g2(p)、…、gl(p)分别映射到相应的散列表中。
(2)提取gi(qj)(i∈(0,l],j∈(0,k])相似域中的所有散列表项,保留与被查询监控图像特征矢量距离在阈值范围内的表项,由特征库索引查找对应特征作为候选的邻近特征。
(3)对于得到的候选邻近特征集,按其与查询特征之间的汉明距离由小到大排序,返回前K个特征作为被查询监控图像特征的邻近特征,它们是后续对监控图像文件库中的图像进行投票和排序从而得出图像检索结果的依据。
这里,邻近搜索方法将原始特征空间中距离问题转换成了汉明空间中的距离度量问题,提高了空间使用率,大规模数据的索引、查询操作转换为一组散列函数的操作,大大缩短了相似搜索时间。因此,邻近搜索方法具有较好的时间效率,而且在高维数据空间仍能保持良好的性能。
在特征匹配阶段,本发明采用这样的匹配规则,如果监控图像文件库中的图像中与被查询监控图像中的某个特征点欧氏距离最近的前两个特征点满足次近距离与最近距离之比大于预定阈值,则将两个特征点作为一对匹配点。
本发明以迭代变步长的方式自适应地完成匹配图像精确阈值与粗阈值的确定,并在后续工作中以精确阈值精确匹配结果建立约束,删除粗阈值粗匹配结果中的失配。在迭代过程中,限定精确阈值匹配数qB满足2≤qB≤5,从而保证匹配的精确性及其后续约束的建立。自适应双阈值确定流程如下:
(1)阈值初始化。设阈值初始值η1=1.5,η2=8;循环次数i1=0,i2=0;循环次数限制i1max=10,i2max=20,所需最小匹配点个数Q=5。
(2)从匹配图像中提取特征矢量。
(3)利用阈值η1做特征匹配,得到当前匹配点集A={(ai,a’i)},i=1,2,…,qA,其中qA为当前η1所对应的匹配个数,并令i1←i1+1。
(4)若当前匹配个数qA<Q,且i1<i1max,则令η1←η1+0.15,并返回步骤(3);若匹配个数大于Q,或i1>i1max,则转至步骤(5)。
(5)利用阈值η2做特征匹配,得到当前匹配点集B={(bj,b’j)},j=1,2,…,qB,其中qB为当前η2所对应的匹配个数,并令i2←i2+1。
(6)若当前匹配个数qB<2,且i2<i2max,则令η2←η2+0.02,并返回步骤(5);若匹配个数大于2且小于5,且i2<i2max,则令η2←η2-0.01,并返回步骤(5);否则,转至步骤(7)。
(7)完成阈值选定工作,得到粗阈值η1及其对应的粗匹配点集A,以及精确阈值η2及其对应的匹配点集精确匹配点集B。
根据上述阈值选取规则,精确阈值所对应的匹配点集中的匹配结果稀疏但精确,在此基础上,可建立匹配图像间的几何变化(如线段长度、角度)约束,以此滤除粗阈值匹配结果中的失配。
若(b1,b’1)、(bqB,b’qB)为两对精确匹配,(ai,a’i)为粗匹配中的任意一对。由(b1,b’1)、(bqB、b’qB)可建立匹配图像间的约束,即长度变换约束
Lc=‖bqB-b1‖/‖b’qB-b’1‖
和角度变化约束
Vc=∠b1bqBx-∠b’1b’qBx
对于粗匹配中的任意一对匹配(ai,a’i),若其对应长度和角度满足上述约束,即当满足
rL=min(Lc,L)/max(Lc,L)>0.85
rV=min(Vc,V)/max(Vc,V)>0.85
时,保留当前匹配(ai,a’i),其中L=‖ai-b1‖/‖a’i-b’i‖,V=∠b1aix-∠b’1a’ix;否则,将当前匹配从粗匹配点集A中删除。
综上所述,本发明提出了一种监控图像实时处理方法,有效降低了图像识别中特征提取和特征匹配的计算复杂度,提高了识别效率。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。