一种基于opencv的目标检测系统的制作方法

文档序号:18353547发布日期:2019-08-06 22:46阅读:288来源:国知局
一种基于opencv的目标检测系统的制作方法

本发明涉及计算机视觉技术领域,尤其是涉及一种基于opencv的目标检测系统。



背景技术:

计算机视觉学是自二十世纪六十年代中期迅速发展起来的一门新学科。它是个边缘学科,集众家之所长,是个工程性很强的技术,主要需要有空间几何、矩阵分析、光电技术、图像处理、应用数学、离散数学及计算机技术等等各个方面的知识,才能正确的指导视觉系统的建模、解模及实际工程问题的解决方法。计算机视觉系统一般有光源、摄像机、采集卡及pc软件系统等组成,可以完成图像的采集与处理、目标的识别功能,视觉系统的结构一般是从系统的模型的角度理解的。

计算机视觉既是工程领域,也是科学领域中的一个富有挑战性重要研究领域。计算机视觉是一门综合性的学科,它已经吸引了来自各个学科的研究者参加到对它的研究之中。其中包括计算机科学和工程、信号处理、物理学、应用数学和统计学,神经生理学和认知科学等。

计算机视觉学所研究的对象,简单地说就是研究如何让计算机通过图象传感器或其它光传感器来感知、分析和理解周围环境。人类感知外界环境主要通过视觉,听觉和触觉等四大感觉系统。其中视觉系统是最复杂的。人类从外界获得的信息中视觉信号量最大。

模仿人类的视觉系统,计算机视觉系统中信息的处理和分析大致可以分成两个阶段:图象处理阶段又称视觉处理中的低水平和中水平阶段;图象分析、理解阶段又称视觉处理中的高水平处理阶段。

在图象处理阶段,计算机对图象信息进行一系列的加工处理,这主要是:

1、校正成象过程中系统引进的光度学和几何学的畸变,抑制和去除成象过程中引进的噪声—统称为图象的恢复。

2、从图象信息如亮度分布信息中提取诸如边沿信息,深度信息图象点沿轴方向的尺度,表面三维倾斜方向信息等反映客观景物特征的信息。

3、根据抽取的特征信息把反映三维客体的各个图象基元,如轮廓、线条、纹理、边缘、边界、物体的各个面等从图象中分离出来,并且建立起各个基元之间的拓朴学上的和几何学上的关系—称之基元的分割和关系的确定。

在图象分析和理解阶段,计算机根据事先存贮在数据库中的预知识模型,识别出各个基元或某些基元组合所代表的客观世界中的某些实体称之为模型匹配以及根据图象中各基元之间的关系在预知识的指导下得出图象所代表的实际景物的含义,得出图象的解释或描述。

必须强调,预知识在视觉系统中起着相当重要的作用。在预知识库中存放着各种实际可能遇到的物体的知识模型,和实际景物中各种物体之间的约束关系。计算机的作用是根据被分析的图象中的各基元及其关系,利用预知识作为指导,通过匹配,搜索和推理等手段,最终得到对图象的描述。在整个过程中预知识时刻提供处理的样板和证据。每一步的处理结果随时同预知识进行对比。有时,处理的中间结果和最终结果还要馈送给预知识库作为知识的更新和积累。

图像分割是图像处理与机器视觉的基本问题之一。其要点是:把图像划分成若干互不交迭区域的集合。这些区域要么对当前的任务有意义,要么有助于说明它们与实际物体或物体的某些部分之间的对应关系。图像分割的应用十分广泛,几乎出现在有关图像处理的所有领域,并涉及各种类型的图像。例如,在遥感应中,合成孔径雷达图像中目标的分割;遥感云图中不同云系和背景分布的分割;在交通图像分析中,把车辆目标从背景中分割出来。在这些应用中,分割通常是为了进一步对图像进行分析、识别、压缩编码,分割的准确性直接影响后续任务的有效性。

一般来讲,分割出的区域需同时满足均匀性和连通性的条件。其中均匀性是指在该区域中的所有象素点都满足基于灰度、纹理、彩色等特征的某种相似性准则;连通性是指在该区域内存在任意两点的路径。尽管图像处理和机器视觉界的研究者们为此付出了长期的努力,符合以上两点的通用性分割仍面临着巨大的困难;大部分研究成果都是针对某一类型图像、某一具体应用的分割。可以概括为以下内容。

常见的数据驱动分割包括基于边缘检测的分割、基于区域的分割、边缘与区域相结合的分割等。对于基于边缘检测的分割,其基本思想是先检测图像中的边缘点,再按一定策略连接成轮廓,从而构成分割区域。难点在于边缘检测时抗噪声性能和检测精度的矛盾,若提高检测精度,则噪声产生的伪边缘会导致不合理的轮廓;若提高抗噪声性能,则会产生轮廓漏检和位置偏差。为此,人们提出各种多尺度边缘检测方法,根据实际问题设计多尺度边缘信息的结合方案,以较好地兼顾抗噪声性能和检测精度。

基于区域的分割的基本思想是根据图像数据的特征将图像空间划分成不同的区域。常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征。方法有阈值法、区域生长法、聚类法、松弛法等。

边缘检测能够获得灰度或彩色值的局部变化强度,区域分割能够检测特征的相似性与均匀性。将两者结合起来,通过边缘点的限制,避免区域的过分割;同时通过区域分割补充漏检的边缘,使轮廓更加完整。例如,先进行边缘检测与连接,再比较相邻区域的特征(灰度均值、方差),若相近则合并;对原始图像分别进行边缘检测和区域生长,获得边缘图和区域片段图后,再按一定的准则融合,得到最终分割结果。

常见的模型驱动分割包括基于动态轮廓(snakes)模型、组合优化模型、目标几何与统计模型。snakes模型用于描述分割目标的动态轮廓。由于其能量函数采用积分运算,具有较好的抗噪声性,对目标的局部模糊也不敏感,因而适用性很广。但这种分割方法容易收敛到局部最优,因此要求初始轮廓应尽可能靠近真实轮廓。

近年来对通用分割方法的研究倾向于将分割看作一个组合优化问题,并采用一系列优化策略完成图像分割任务。主要思路是在分割定义的约束条件之外,根据具体任务再定义一个优化目标函数,所求分割的解就是该目标函数在约束条件下的全局最优解。以组合优化的观点处理分割问题,主要是利用一个目标函数综合表示分割的各种要求和约束,将分割变为目标函数的优化求解。由于目标函数通常是一个多变量函数,可采用随机优化方法。

基于目标几何与统计模型的分割是将目标分割与识别集成在一起的方法,常称作目标检测或提取。基本思想是将有关目标的几何与统计知识表示成模型,将分割与识别变为匹配或监督分类。常用的模型有模板、特征矢量模型、基于连接的模型等。这种分割方法能够同时完成部分或全部识别任务,具有较高的效率。然而由于成像条件变化,实际图像中的目标往往与模型有一定的区别,需要面对误检与漏检的矛盾,匹配时的搜索步骤也颇为费时。

从人工参与程度来看,图像分割可分为人工、半自动、自动等三种类型。其中人工分割完全由操作者利用鼠标勾画出分割区域的轮廓,费时费力,且容易受操作者主观因素的影响,重复性差。自动分割不需人机交互,但适应性差,很难实现对一批图像同时获得满意的分割效果。半自动分割将人机交互与自动分割相结合,能够适应不同的图像和需求,且有效降低计算复杂度。目前半自动分割中人机交互的方式有:勾画目标的大致轮廓,构成自动分割的初始化;根据特定的图像和任务调整算法参数;在分割过程中加入人工交互节等。总之,从实用化的角度看,自动分割仍是长期努力的方向。目前更为现实的是在自动分割前或分割过程中加入人机交互的半自动分割。其发展方向为尽可能少和简便的人机交互。可见,图像分割是图像处理和机器视觉必不可少的重要环节,也是图像理论发展的瓶颈之一。随着计算机速度与容量的快速进展,图像处理与机器视觉实用化系统硕果累累。例如,基于内容的图像检索系统、智能监视系统、视觉引导的智能交通系统、手写体字符/人脸/指纹/虹膜识别系统等。然而有关的理论研究并没有取得突破性进展。

目标检测与识别是指从一幅场景(图片)中找出目标,包括检测(where)和识别(what)两个过程。任务的难点在于待检测区域/候选的提取与识别,所以,任务的大框架为:

1.首先建立从场景中提取候选区的模型

2.然后识别候选区的分类模型

3.最后精调分类模型的参数和有效候选框的位置精修

目标检测与识别在生活中多个领域中有着广泛的应用,它是将图像或者视频中的目标与不感兴趣的部分区分开,判断是否存在目标,若存在目标则确定目标的位置,识别目标是一种计算机视觉任务。目标检测与识别是计算机视觉领域中一个非常重要的研究方向,随着互联网,人工智能技术,智能硬件的迅猛发展,人类生活中存在着大量的图像和视频数据,这使得计算机视觉技术在人类生活中起到的作用越来越大,对计算机视觉的研究也越来越火热。目标检测与识别,作为计算机视觉领域的基石,也越来越受到重视。在实际生活中应用也越来越广泛,例如目标跟踪,视频监控,信息安全,自动驾驶,图像检索,医学图像分析,网络数据挖掘,无人机导航,遥感图像分析,国防系统等。

现有技术实时性与精度两者成负相关,速度增长的同时存在精度不够的问题,精度提高的情况下,速度得不到保证。

另外在检测物体面积时,目前的技术检测的面积为像素面积,无法检测到物体的实际面积。



技术实现要素:

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种基于opencv的目标检测系统,其特征在于,包括:

面积筛选模块:采集图像并进行预处理,并根据设置阈值基于面积筛选算法计算像素面积,最后根据得到的像素面积基于实际面积算法计算图像实体的实际面积;其中,阈值就是设置像素面积的上下限,比如设置下限1000,上限10000,就是筛选出像素面积为1000-10000范围内的物体.

图形存在判断模块:采集图像并选取样本,基于图形有无检测算法对选取待测物体进行判断,得到判断结果;

轮廓辨别模块:采集图像并选取样本,基于轮廓辨别检测算法对选取待测物体进行图像处理,得到判断结果;

相似检测模块:采集图像并选取样本,基于相似检测算法对选取待测物体进行相似度判断,得到判断结果。

在上述的一种基于opencv的目标检测系统,所述面积筛选模块中,对图像进行预处理具体包括以下步骤:

步骤2.1、针对摄像头采集图像,进行图像灰度化,具体根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对rgb三分量进行加权平均能得到较合理的灰度图像。

gray(i,j)=0.299*r(i,j)+0.578*g(i,j)+0.114*b(i,j)

(r(i,j),g(i,j),b(i,j)代表处理前红,绿,蓝三个通道的颜色数值)

步骤2.2、针对步骤2.1得到的灰度图进行高斯平滑处理,为了克服简单局部平均法的弊端(图像模糊),目前已提出许多保持边缘、细节的局部平滑算法。它们的出发点都集中在如何选择邻域的大小、形状和方向、参数加平均及邻域各店的权重系数等。

图像高斯平滑也是邻域平均的思想对图像进行平滑的一种方法,在图像高斯平滑中,对图像进行平均时,不同位置的像素被赋予了不同的权重。

在图像简单平滑中,算法利用卷积模板逐一处理图像中每个像素,这一过程可以形象地比作对原始图像的像素一一进行过滤整理。

高斯平滑与简单平滑不同,它在对邻域内像素进行平均时,给予不同位置的像素不同的权值,我们采用的3*3领域的高斯模板。

步骤2.3、针对步骤2.2高斯平滑处理之后得到的图像,我们再进行边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵的灰度跃变位置,然后在图像中将这些位置的点连起来就构成了所谓的图像边缘,包括了二维图像上的边缘、角点、纹理等基元图。

在上述的一种基于opencv的目标检测系统,所述面积筛选模块中,面积筛选算法具体包括以下步骤:

步骤3.1、针对步骤2.3中边缘检测后的图像,进行寻找轮廓,具体令边缘检测后的图像作为八位单通道图像阵列,保存函数运算后的结果,轮廓检索模式采取只检测最外层轮廓,轮廓近似办法压缩水平、垂直、对角元素,只保留该方向的终点坐标,最终查找到轮廓。

步骤3.2、针对步骤3.1寻找到的所有轮廓,进行计算轮廓面积,在计算部分轮廓的情况时,由轮廓弧线和连接两端点的弦围成的区域总面积被计算,轮廓的位置将影响区域面积的符号,因此函数范围的有可能是负值。

步骤3.3、针对步骤3.2计算得到的所有轮廓面积,设置像素面积的阈值大小,也就是设置像素面积的上下限,采用面积筛选算法筛选出我们需要的轮廓面积。

步骤3.4、针对步骤3.3筛选得到的所有符合要求的轮廓面积的轮廓,进行绘制轮廓,具体将步骤3.3筛选得到的轮廓作为要绘制轮廓的图像,所有输入的轮廓,每个轮廓被保存成一个point向量,设置连通性,粗细,颜色绘制出轮廓。

步骤3.5、针对步骤3.2计算得到轮廓的像素面积,通过像素面积大小,通过像素面积,摄像头镜头与物体距离之间比例关系,计算出物体的实际面积大小。

(l1表示摄像头镜头与物体距离,单位为cm,k是一个固定的比例系数)

在上述的一种基于opencv的目标检测系统,所述图形存在判断模块中,图形有无检测算法具体包括以下步骤:

步骤4.1、针对摄像头采集到的图像,对图像预处理。(同步骤2)

步骤4.2、针对步骤4.1处理后的图像进行特征提取,设置特征点个数为400,具体先对尺度空间的极值检测:搜索所有尺度空间上的图像,通过hessian来识别潜在的对尺度和选择不变的兴趣点。然后对特征点过滤并进行精确定位,统计特征点圆形邻域内的harr小波特征,计算特征点主方向,最后生成特征描述,提取出特征。

步骤4.3、针对步骤4.2提取出来的特征图像,进行特征匹配,对大数据集和高维特征进行最近邻搜索的算法,找出数据集中方差最高的维度,利用这个维度的数值将数据划分为两个部分,对每个子集重复相同的过程,对提取到的400个特征点进行特征匹配。

步骤4.4、针对步骤4.3匹配好的400个特征点,筛选出优异的匹配点,毕竟400个特征点中存在很多误匹配点,会影响最后检测结果,具体先设置关键点之间距离的最大值1000和最小值0,利用矩阵存下匹配距离小于3*min_dist的点对从匹配成功的匹配对中获取关键点,筛选出优异的匹配点。

步骤4.5、针对步骤4.4中最后筛选出优异的匹配点后,再对图像进行透视变换,将图片投影到一个新的视平面,通用的变换公式为:

u,v是原始图片左边,对应得到变换后的图片坐标x,y,其中

x=x′/w′,y=y′/w′。

变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。[a31a32]用于平移,[a13a23]t产生透视变换。所以可以理解成仿射等是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四边形(除非映射视平面和原来平面平行的情况)。

重写之前的变换公式可以得到:

所以,已知变换对应的几个点就可以求取变换公式。反之,特定的变换公式也能新的变换后的图片。简单的看一个正方形到四边形的变换:

变换的4组对应点可以表示成:

(0,0)→(x0,y0),(1,0)→(x1,y1),(1,1)→(x2,y2),(0,1)→(x3,y3)

求解出的变换矩阵就可以将一个正方形变换到四边形。反之,四边形变换到正方形也是一样的。于是,我们通过两次变换:四边形变换到正方形+正方形变换到四边形就可以将任意一个四边形变换到另一个四边形,并绘制出矩形框。

在上述的一种基于opencv的目标检测系统,所述轮廓辨别模块中,轮廓辨别检测算法具体包括以下步骤:

步骤5.1、针对摄像头采集到的图像,对图像预处理。(同步骤2)

步骤5.2、针对步骤5.1处理后的图像进行特征提取。(同步骤4.2)

步骤5.3、针对步骤5.2提取出来的特征图像,进行特征匹配。(同步骤4.3)

步骤5.4、针对步骤5.3匹配好的400个特征点,筛选出优异的匹配点(同步骤4.4)

步骤5.5、针对步骤5.4中最后筛选出优异的匹配点后,再对图像进行透视变换(同步骤4.5)

步骤5.6、针对步骤5.5透射变换后的图像,再进行图像处理,具体再做一次灰度化图像,具体根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对rgb三分量进行加权平均能得到较合理的灰度图像。

gray(i,j)=0.299*r(i,j)+0.578*g(i,j)+0.114*b(i,j)

(r(i,j),g(i,j),b(i,j)代表处理前红,绿,蓝三个通道的颜色数值)

在上述的一种基于opencv的目标检测系统,所述相似检测模块中,相似检测算法具体包括以下步骤:

步骤6.1、针对摄像头采集到的图像,对图像预处理。(同步骤2)

步骤6.2、针对步骤6.1得到预处理后的图像,计算平均灰度值,具体遍历整幅图像的所有像素点,累加求取所有像素点的灰度值总和,平均灰度值为灰度值总和与像素点个数之商。

步骤6.3、针对步骤6.2计算出的平均灰度值,再计算哈希值,具体将图像缩小到8*8的尺寸,将缩小后的图像,转为64级灰度,计算所有64个像素的灰度平均值,将每个像素的灰度,与平均值进行比较,将比较结果组合在一起,就构成了一个64位的整数,这就是这张图像的指纹。

步骤6.4、针对步骤6.3得到指纹以后,就可以对比不同的图像,看看64位中有多少位是不一样的。在理论上,这等同于”汉明距离”(hammingdistance,在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数)。如果不相同的数据位数不超过5,就说明两张图像很相似;如果大于10,就说明这是两张不同的图像,根据纹路信息计算两幅图像的相似度。

因此,本发明具有如下优点:1.具有多功能,高效性;2.可以计算物体的实际面积;3.在保证准确性的同时,提升了运算速度,毫秒级;4.工业现场的需求性非常大。

附图说明

附图1是本发明的一种结构框图。

附图2是本发明系统的主界面。

附图3是本发明实施例中的面积筛选模块(操作1)。

附图4是本发明实施例中的面积筛选模块(操作2)。

附图5是本发明实施例中的面积筛选模块(操作3)。

附图6是本发明实施例中的面积筛选模块(操作4)。

附图7是本发明实施例中的面积筛选模块(操作5)。

附图8是本发明实施例中的面积筛选模块(操作6)。

附图9是本发明实施例中的图形有无模块(操作1)。

附图10是本发明实施例中的图形有无模块(操作2)。

附图11是本发明实施例中的轮廓辨别模块(操作1)。

附图12是本发明实施例中的相似检测模块(操作1)。

附图13是本发明实施例中的相似检测模块(操作2)。

附图14是本发明实施例中的相似检测模块(操作3)。

附图15是本发明实施例中的相似检测模块(操作4)。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:

一、进行面积筛选

如图3所示,在面积筛选模块中,设置阈值上下限为0-2000,筛选出像素面积为0-2000的物体。

如图4所示,在面积筛选模块中,设置阈值上下限为2000-5000,筛选出像素面积为2000-5000的物体。

如图5所示,在面积筛选模块中,设置阈值上下限为5000-10000,筛选出像素面积为5000-10000的物体。

如图6所示,在面积筛选模块中,设置阈值上下限为10000-20000,筛选出像素面积为10000-20000的物体。

如图7所示,在面积筛选模块中,设置阈值上下限为0-20000,筛选出像素面积为0-20000的物体,也可以证明上面如图3,4,5,6的所有物体都被筛选出来。

如图8所示,在面积筛选模块中,设置阈值上下限为0-80000,筛选出像素面积为0-80000的物体,根据像素面积大小,通过像素面积,摄像头镜头与物体距离之间比例关系,可以计算出物体的实际面积大小.(误差1cm以内,本物体实际面积25cm2)

(l1表示摄像头镜头与物体距离,单位为cm,k是一个固定的比例系数)二、图形有无检测

如图9所示,相同的树脂盖可以被框选出来,证明待测物体与样本一致,是符合要求(合格)的树脂盖。

如图10所示,不同的树脂盖无法被框选出来,证明待测物体与样本不一致,是不符合要求(不合格)的树脂盖。

三、轮廓辨别检测

如图11所示,样本为a,待测物体中包含a和b,与样本轮廓相同的a会被框选出来,为符合要求(合格)的物体,与样本轮廓不同的b没有被框选出来,为不符合要求(不合格)的物体。

四、相似检测

如图12所示,设置界限为0.85,也就是如果待测物体与样本相似度大于0.85时,结果显示ok,如果待测物体与样本相似度小于0.85时,结果显示ng。

如图13所示,设置界限为0.9,也就是如果待测物体与样本相似度大于0.9时,结果显示ok,如果待测物体与样本相似度小于0.9时,结果显示ng。

(因为存在背景干扰,所以看似一样的树脂盖其实相似度只能达到0.85-0.9之间)

如图14所示,设置界限为0.3,也就是如果待测物体与样本相似度大于0.3时,结果显示ok,如果待测物体与样本相似度小于0.3时,结果显示ng。

如图15所示,设置界限为0.5,也就是如果待测物体与样本相似度大于0.5时,结果显示ok,如果待测物体与样本相似度小于0.5时,结果显示ng。

(因为存在背景干扰,即使两个树脂盖不是同一类型,但是轮廓都为圆轮廓,所以二者相似度也在0.3-0.5之间)

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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