目前,基于视频的国家储备粮自动监管与稽核系统的技术核心是通过计算机系统对粮库场景图像的自动分析与识别,精确得到粮库的粮食总数量,以弥补现行人工监管方式的缺陷,杜绝虚库、虚报贴息等现象,以满足管理部门对储备粮自动监管与稽核的管理需求。
储备粮库中的粮袋是从底层向顶层逐层地累加立体式堆放,形成一个大立方体式结构,如图1(a)所示。在摄像器材所捕捉到的图像中,这个大立方体有三个面:顶面和两个侧面。由于光照和堆放方式的影响,在视频图像中,粮袋表面不同地方的灰度值会有很大差别,粮袋的中心区域会比较亮,而周边区域会比较灰暗,因此在视觉上,人们看到的粮袋边界呈现出一个近似的椭圆形。而每一个粮袋在视频图像中均能看见三个不同的面,所以会形成三类不同的椭圆。如果能精确地识别大立方体三个面上有多少个椭圆,那么就能识别出粮袋的数量,而每袋粮食的重量是固定且已知的,由此可以得到整个立方体粮堆的数量,因此,袋装粮数量识别就是对图像中椭圆数量的识别。所以对袋装粮的储备粮仓的粮食数量识别的关键就是找到一种快速、准确、有效的椭圆形状的提取与描述方法,以确保能够对每一袋粮食进行精确的识别。
椭圆边界处理与描述主要包括边界定位和描述两个方面,本文采用一种改进的Laplace算子和边界方向链码来对袋装粮图像进行边缘检测和描述,针对所检测出的椭圆边界有少量不完全闭合的问题,采取数学形态学的闭合操作来修补连接边界的缺口。试验证明,改进的Laplace算子和边界方向链码对袋装粮边界分割和描述具有较高鲁棒性,能取得较好的效果。
1 粮袋边缘提取
边缘是指图像中周围像素灰度差有强烈反差的那些像素的集合,它广泛存在于目标与目标之间、目标与背景之间。图像边缘是图像最重要的特征之一,是图像分割、纹理特征和形状特征等图像分析的重要依据。具体到袋装粮图像,边缘描述了粮袋的形状信息,而形状信息正是识别和分析粮袋椭圆边缘的依据,所以对袋装粮图像进行处理的首要工作就是粮袋边缘检测。
在数字图像中,边缘点和噪声点均属于图像中灰度突变点,因此在边缘检测中,边缘定位能力和噪声抑制能力是相互矛盾的,有的算法边缘定位能力比较好,有的算法抗噪声能力比较强,每种算法都有各自的优缺点。参考文献针对袋装粮图像的特点,对现有的Laplace边缘检测算子的模板进行了适当的改进,通过设置更加合理的Laplace模板权值参数,提高了袋装粮图像边缘检测的精度,所检测到的边缘信息更加丰富和清晰,检测效果如图1(b)所示。
在对袋装粮图像边缘检测过程中,所选择的边缘检测算法既要精确定位边缘,又要使所检测的边缘尽量是封闭的曲线,以便于边界描述和特征的提取。实验结果显示,尽管改进的Laplace算子具有较好的检测效果,但是所得到的边缘依然不是完全闭合的,且存在大量虚假边缘,这使得边界描述将无法进行。其原因:(1)该幅图像的对比度较低;(2)该幅图像比较复杂,目标体较多。因此,单纯的依靠边缘检测算子是很难得到闭合的边缘曲线。
自1964年Matheron提出了数学形态学以来,在经过以Meyer、Serra、Sternberg为代表的众多学者的努力下,形态学方法已经成为非线性图像处理中的一种重要手段。数学形态学通过选取合适的结构元素(探针)实现目标特征提取,其基本运算有:膨胀、腐蚀、开启和闭合。其中开启和闭合运算是由基本运算(膨胀和腐蚀)组合而成的复合运算。闭合运算可以去除区域中的小孔,填平狭窄的断裂、细长的沟壑以及轮廓的缺口等,这正好适用于去除粮袋边缘的缺口,使得检测到的边缘是闭合边界。由于数学形态学是基于二值图像进行操作的,所以在图像预处理中需要加入二值化操作步骤。针对粮袋形状的特点,本文选取椭圆形的结构元素对图1(a)二值化后的结果进行数学形态学的闭合运算,再进行边缘检测,得到最终粮袋边缘轮廓,如图2所示。
2 粮袋边界描述
对所需要识别的物体进行描述时,希望能使用一些比单个参数提供更丰富的细节信息,而又比用图像本身更紧凑的方法来描述物体。图像表示可以基于其内部特征,也可以基于其外部特征,由此可将图像的描述分成边界描述(如链码、边界分段等)和区域描述(如四叉树、骨架等)两大类。通常,边界描述较为关心的是图像中区域的形状特征,而区域描述则倾向于反映区域的灰度、颜色、纹理等特征。在袋装粮自动识别中,关注的是粮袋的形状,因此,本文选择边界描述法来描述粮袋边缘。
在对粮袋进行识别的过程中,要求严格按照粮袋实际形状进行各项特征参数的统计计数,因此,准确地描述边缘轮廓很重要。国内外学者已经对二维轮廓曲线的描述问题从不同角度展开了研究,并提出了下面多种边界曲线描述方法。
(1)多边形近似逼近轮廓法。参考文献中提出用轮廓线的近似多边形来表示边界,常用的多边形表达方法有:基于收缩的最小周长多边形法、基于聚合的最小均方误差线段逼近法、基于分裂的最小均方误差线段逼近法。在数字图像中,边界曲线是由一个个像素点组成的,如果每相邻的2个像素点组成一条直线,则就可以用若干条直线来精确表达边界,但这种方法计算量大,实时性较差。如果按照一定的算法来离散化边界像素点,虽然可以减少计算量,但是边界描述的精度大大降低,因此,此种方法不适用于粮袋边缘的描述。
(2)基于B样条的边界曲线表示法。参考文献中提出了一种基于B样条的边界曲线表示法,这种方法的优点是在一定程度上考虑到了轮廓线的几何特征,但是对轮廓曲线进行采样、拟合是一个相当繁琐的过程,不适于粮袋的边界描述。
(3)边界链码法。1977年,Freeman首先提出了4向链码和8向链码,因此链码又称为Freeman码。链码法是用边界曲线起始点的坐标和边界点方向代码来描述边界曲线的方法,常被用来在图像处理、计算机图形学、模式识别等领域中表示曲线和边界区域。该方法主要是利用一系列具有特定长度和方向相连的直线段来表示目标的边界。由于每个线段的长度固定而且方向数目有限,因此,只有边界的起点需要采用绝对坐标表示,其余点都可只用连续方向来代表偏移量,而且对于每一个点只需要一个方向数就可以代替两个坐标值。由此可见,表示一个方向数比表示一个坐标值所需的比特数要少。因此,采用链码表示可大大减少边界表示所需要的数据量。此外,链码具有简单、节省存储空间、便于计算以及平移不变性等特点,使得对于封闭区域特征参数的统计变得简单易行。
袋装粮图像中存在多个椭圆,需要对每一个椭圆进行描述和识别,因此需要采用一种计算简单、存储量小、实时性高的算法,而且粮袋边界是一条封闭的曲线。因此,本文采用边界链码法来对粮袋边缘进行描述。
数字图像是按照固定间距的网格进行采样的,因此最简单的链码是跟踪边界并赋给每两个相邻像素的连线一个方向值。常用的有4方向和8方向链码,如图3所示。在数字图像中,任意一个像素点周围均有8个邻接点,而8方向链码正好与像素点的实际情况相符,因此能够准确地描述中心像素点与其邻接点的信息。在8方向链码中,链码沿着数字曲线或者边界像素以八邻接的方式移动和编码,相邻两个像素的偏移量用数字0“7表示,码值加1,其所指的方向则按逆时针旋转45°。
一条边界曲线可以由曲线的起始点和该曲线的链码唯一确定。假设曲线S如图4所示,其链码由数组Lianma[]表示。
采用8方向链码描述曲线S得到的数组Lianma[]={0,6,0,7,0,6,5,4,4,3,2,2,2}。从图中可以看出,只要知道边界任意一点的坐标和其他点的链码值,就能准确地描述出区域的边界。为了得到一个完整的边界链码,便于后续处理(如链码的存储、特征的提取、重构等),可将曲线起始点坐标、曲线链码和链码长度一起存放在一个链码表中[10],链码表格式如图5所示。
针对已经进行边缘提取并进行二值化后的袋装粮图像,用行扫描法得到粮袋边缘的最左上角的边界点作为跟踪的起始点,采用8方向链码搜索边缘,边界链码跟踪袋装粮图像边界轮廓算法步骤如图6所示。
对图像边缘进行边界跟踪的目的是为了提取图像中目标体的特征点(如边界曲线的端点、交叉点、拐角点、闭合曲线的形心等),以便识别对象体。在对袋装粮图像中粮袋椭圆边缘曲线进行提取之后,根据数学知识可做如下判断:(1)设置椭圆方差阈值,判断边界曲线是否是接近椭圆形状;(2)如果边界曲线是一个近似的椭圆,则可以用一系列椭圆的数学特征的线性组合作为对袋装粮图像识别的隶属度函数。椭圆的数学特性有周长、形心、面积、离心率等,而这些参数很容易通过边界链码计算得到,可以采用特征量的线性组合作为隶属度函数对袋装粮图像的椭圆边界进行识别,以区分不同面上的粮袋,从而达到智能识别的目的。
针对所提取出来的边缘不是完全闭合的问题,采用数学形态学的闭合运算对二值图像进行预处理后再进行边缘检测,最终得到了完全闭合的边界。链码法与其他方法相比,算法简单、可大幅度减少数据、可以提高图像处理速度和匹配效率,以及具有平移不变性等特点,使得对于封闭曲线区域特征参数的统计变得简单易行。粮袋边缘精确的检测和描述是粮食数量智能识别的前提,试验证明,本文采用改进的Laplace算子对袋装粮图像进行边缘检测,所提取的边界更为平滑、连续、清晰。
责任编辑:gt
-
计算机
+关注
关注
19文章
7488浏览量
87849
发布评论请先 登录
相关推荐
评论