一种基于轮廓特征的目标识别方法与流程

文档序号:12365657阅读:341来源:国知局

本发明属于机器视觉与模式识别技术领域,特别是涉及一种基于图像形状特征中的轮廓特征的目标识别方法。



背景技术:

当前目标识别的方法可以分为三类:基于表象特征的方法、基于形状特征的方法、基于表象和形状特征相结合的方法。基于形状特征的目标识别方法是当前研究的一个热点,近些年来取得了显著的进展。从传统的基于傅里叶变换或不变矩等方法,发展为当前大多属于基于轮廓和骨架两种形状描述子的形状匹配方法。相对于点集,轮廓具有更加丰富的信息,且轮廓不容易受到光照、物体颜色和纹理变化的影响,最重要的是能够有效的描述大尺度范围的物体结构。

近些年来很多基于轮廓的目标检测和识别方法被提出,其中主要包含两大步骤:提取轮廓的描述子和描述子之间的相似度计算。基于这两点,国内外的学者对此进行了深入的研究。白翔等人在国际计算机视觉大会(IEEE International Conference on Computer Vision 2009)上提出的用骨架描述物体的拓扑结构,通过建立骨架联合树把各个部分的轮廓有效的组织起来,进而用带方向的Chamfer匹配进行轮廓的形状相似度计算。MA等人在国际计算机视觉与模式识别会议(IEEE Conference on Computer Vision and Pattern Recognition 2011) 上提出一种基于形状上下文几何结构的新的形状描述子,把轮廓的匹配转化为矩阵的相似度计算问题。Wang等人在在国际计算机视觉与模式识别会议(IEEE Conference on Computer Vision and Pattern Recognition 2012)上提出了扇形模型,轮廓上的特征点与中心点的连线相当于扇子的板条,满足对物体的形变有一定的鲁棒性。同时也提出了一种快速确定目标尺度的方法,进而进行点与点特征之间的匹配。



技术实现要素:

针对现有技术存在的问题,本发明的目的在于提出一种对操作简单,易于实现的,能够快速精确匹配目标的基于轮廓特征的目标识别方法。

为实现上述目的,本发明提出一种基于轮廓特征的目标识别方法包括物体模板的特征库和待检测物的X光图像,通过计算特征库中的物体模板和待检测图像轮廓形状的差别确定待检测图像中是否含有检测目标,具体包括如下步骤:

a) 对特征库中的物体模板和待检测图像进行二值化处理;

b) 对特征库中的物体模板和待检测图像进行轮廓检测;

c) 计算特征库中的物体模板的质心和待检测图像的质心;

d) 将待检测图像的质心与特征库中的物体模板的质心进行对准操作;

e) 通过计算特征库中的物体模板和待检测图像轮廓形状的差别确定待检测物图像中是否含有检测目标。

上述的基于轮廓特征的目标识别方法中,所述步骤a)中采用Canny算子、Sobel算子、Roberts或Harris算子分别对特征库中的物体模板和待检测图像进行轮廓检测。

上述的基于轮廓特征的目标识别方法中,所述步骤a)中利用开源计算机视觉库OpenCV中的cvFindContours函数对特征库中的物体模板和待检测图像进行轮廓检测,该函数将生成一条链表以保存检测出的特征库中的物体模板和待检测图像的轮廓信息。

上述的基于轮廓特征的目标识别方法中,所述步骤b)中质心的计算公式为:

,,

其中,

上述的基于轮廓特征的目标识别方法中,所述特征库中的物体模板和待检测图像轮廓形状的差别的计算公式如下:

,

其中,α为半径系数,半径越大,α越小;g为特征库中的物体模板轮廓形状上的一个样本点,h为待检测图像轮廓形状上的一个样本点,当C小于设定的阈值参数时,判定待检测图像中含有检测目标。

上述的基于轮廓特征的目标识别方法,所述阈值参数为0.1~0.3。

上述的基于轮廓特征的目标识别方法,所述的半径系数的公式为:

其中,N为大于1小于5的自然数,r为待检测图像上的样本点与质心之间的距离。

附图说明

图1为本发明一个具体实施例中的基于轮廓特征的目标识别方法的流程图。

具体实施方式

下面结合附图和实施例对本发明的基于轮廓特征的目标识别方法做进一步描述。以下实施例仅用于说明本发明,但不用来限制本发明的范围。

如图1所示,本发明的基于轮廓特征的目标识别方法用于识别待检测图像中的检测目标,若待检测图像中有多个目标,则逐一识别待检测图像中的目标。本发明的基于轮廓特征的目标识别方法包括物体模板的特征库和待检测物的X光图像,通过计算特征库中的物体模板和待检测图像轮廓形状的差别确定待检测图像中是否含有检测目标,具体包括如下步骤:步骤S01)对特征库中的物体模板和待检测图像进行二值化处理,图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓;步骤S02)对特征库中的物体模板和待检测图像进行轮廓检测;步骤S03)计算特征库中的物体模板的质心和待检测图像的质心;步骤S04)将待检测图像的质心与特征库中的物体模板的质心进行对准操作;步骤S05)计算特征库中的物体模板和待检测图像轮廓形状的差别;步骤S06)通过比较步骤05)中计算得出的轮廓形状差别是否在阈值参数的范围内来确定待检测物图像中是否含有检测目标。

所述步骤S02)中采用Canny算子、Sobel算子、Roberts或Harris算子对特征库中的物体模板和待检测图像进行轮廓检测。

所述步骤S02)中利用开源计算机视觉库OpenCV中的cvFindContours函数对特征库中的物体模板和待检测图像进行轮廓检测,该函数将生成一条链表以保存检测出的特征库中的物体模板和待检测图像的轮廓信息。

cvFindContours

函数功能:对图像进行轮廓检测,这个函数将生成一条链表以保存检测出的各个轮廓信息,并传出指向这条链表表头的指针。

函数原型:

int cvFindContours(

CvArr* image,

CvMemStorage* storage,

CvSeq** first_contour,

int header_size=sizeof(CvContour),

int mode=CV_RETR_LIST,

int method=CV_CHAIN_APPROX_SIMPLE,

CvPoint offset=cvPoint(0,0)

);

函数说明:

第一个参数表示输入图像,必须为一个8位的二值图像。

第二参数表示存储轮廓的容器。为CvMemStorage类型,定义在OpenCV的\core\types_c.h中。

第三个参数为输出参数,这个参数将指向用来存储轮廓信息的链表表头。

第四个参数表示存储轮廓链表的表头大小,当第六个参数传入CV_CHAIN_CODE时,要设置成sizeof(CvChain),其它情况统一设置成sizeof(CvContour)。

第五个参数为轮廓检测的模式,有如下取值:

CV_RETR_EXTERNAL:只检索最外面的轮廓;

CV_RETR_LIST:检索所有的轮廓,并将其保存到一条链表当中;

CV_RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部边界,第二层是空洞的边界;

CV_RETR_TREE:检索所有的轮廓,并重构嵌套轮廓的整个层次。

第六个参数用来表示轮廓边缘的近似方法的,常用值如下所示:

CV_CHAIN_CODE:以Freeman链码的方式输出轮廓,所有其他方法输出多边形(顶点的序列)。

CV_CHAIN_APPROX_SIMPLE:压缩水平的、垂直的和斜的部分,也就是,函数只保留他们的终点部分。

第七个参数表示偏移量,比如你要从图像的(100, 0)开始进行轮廓检测,那么就传入(100, 0)。

所述步骤S03)中通过连通组件标记算法找到待检测图像的二值图像的所有连通域,并分别标记,然后对每个连通区域运用计算几何距算法得到质心,质心的计算公式为:

,,

其中,。

上述的步骤S05)中的特征库中的物体模板的轮廓形状和待检测图像的轮廓形状之间的差别的计算公式如下:

其中,α为半径系数,半径越大,α越小;g为特征库中的物体模板轮廓形状上的一个样本点,h为待检测图像轮廓形状上的一个样本点,当C小于设定的阈值参数时,判定待检测图像中含有检测目标。本发明中的阈值参数为0.1~0.3。本发明中的半径系数的公式为:

其中,N为大于1小于5的自然数,r为待检测图像上的样本点与质心之间的距离。

以上使用方式仅用于说明本发明,而并非对发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的保护范畴。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1