更新时间:2022-09-25 12:42
计算机视觉中的Blob是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像,进行连通域提取和标记。标记完成的每一个Blob都代表一个前景目标,然后就可以计算Blob的一些相关特征。其优点在于通过Blob提取,可以获得相关区域的信息,但是速度较慢,分析难度大。
目标跟踪是计算机视觉中的一项重要研究任务,应用场景广泛。它要解决的是:对运动目标在图像平面上的轨迹进行估计的问题。跟踪器需要在视频序列的不同帧中,将一个唯一的标签分配给特定的跟踪目标。此外,根据跟踪结果还可以提供与运动目标相关的信息,如目标的一些形状外貌、运动状态以及统计信息等。
计算机视觉中的Blob是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像,进行连通域提取和标记。标记完成的每一个Blob都代表一个前景目标,然后就可以计算Blob的一些相关特征,如:面积、质心、外接矩形等几何特征,还可以计算Blob的颜色、纹理特征,这些特征都可以作为跟踪的依据。
基于Blob的跟踪属于基于区域的跟踪,该算法在多篇文献中被研究过。有学者将Blob用于车辆的跟踪,首先用特征检测来提取目标Blob并计算Blob的几何特征,在进行Blob跟踪的时候,将Blob面积重叠率在50%以上作为匹配标准。有学者将Blob用于移动机器人的视觉跟踪系统中,在该系统中,首先用鼠标标记目标,然后对目标进行颜色学习,形成目标表面颜色的RGB向量集。在目标跟踪的过程中遍历图像,通过将所有像素点与目标RGB向量集作对比来寻找目标色块,再提取色块的特征用于后续跟踪。有学者提出基于Blob的Mean-shift跟踪,考虑到目标在移动过程中,可能会发生形变,所以在Blob周围不断调整搜索窗口大小,然后在窗口区域和目标之间作特征匹配以此来跟踪目标。有学者提出的多目标跟踪算法中,采用Blob标记法来对前景目标进行聚集和生长。有学者在车辆跟踪系统中,先检测车辆Blob,然后进行学习,形成属于车辆的特征类。有学者在提取目标过程中将Blob匹配与混合高斯算法相结合,然后与混合高斯算法结果对比,实验结果表明该文献算法提取出的目标更加完整。
Blob算法的核心思想,就是在一块区域内,将出现”灰度突变”的范围找出来。确定其大小、形状及面积等。算法从边缘寻找中的”卷积算法”,例如”卷积算法”的矩阵设定为2*4扫描从左向右从上至下进行的。矩阵每移动一步,算法计算矩阵中前半部(列1及列2)的灰度值总和,与矩阵中后半部(列3及列4)的灰度值总和的差。假如矩阵中这块图像的颜色为相同,也就是说矩阵中的8个像素的灰度极接近的话,那么,这个矩阵前部与后部灰度值总和差应该是趋近0的。程序一步步运行,矩阵前部与后部的灰度值总和差一直接近0。如果矩阵扫描到了一块前景的边缘,这时矩阵前部与后部灰度值总和差突变了,灰度值不再接近,则是到了一个Blob。当算法扫描完整的时候,系统就记录了全部发生这种突变情况的点的坐标。之后再对这些边缘点进行一系列的分析,便可以得到这个Blob的大小、形状及面积等信息。
Blob分析的重要一个步骤是连通区域的确定。按照处理方式的不同Blob分析基本上分成两种:基于像素扫描的处理方法和基于游程编码(RLE)的处理方法。前者代表性的方法有递归法与两次扫描法;基于游程编码的方法是对于二值图像有一种编码方法RLE,其基本思想是对连在一起的黑色或者白色像素数(游程)用不同的码字来编码。其方法:计算连续出现的数据长度来进行压缩。例如:对于数据AAAAABBBBAA而言,RLE的结果是5A4B2A。这样对图像逐行进行RLE,并将相连的像素块合并;最终提取出多个连通区域,得到每个连通区域的链码表和线性表。获得链码表就可以计算出区域边界轮廓长度和周长;线性表则可以计算面积和重心等参数。
目前的Blob算法有几个缺点:
1、速度过慢,要整个区域作逐点扫描。
2、Blob分析难度大。这是一纯几何学上的问题,一个不规则的形状,如何计算它的面积、大小没有简单易行的算法,太过复杂,运算时间就长,速度就更慢了。另外,实际应用中,没有单纯的表面检测,在一个场景中通常要检测几个区域块,表面检测只是其中一项。这就使Blob分析算法的局限性更为明显。比如,我们做一个印刷品的检测:一是检测印刷品上印上去的字是否清楚;二是检测印刷品表面有没有划痕。于是,Blob算法就要能区别出哪个是文字,哪个是划痕。
3、实际应用。Blob算法在实际应用中,非常依赖光源。几乎可以说,Blob算法如果离开了一个可靠的光源设计,则完全不起作用。场景中有各种不同的颜色,这些颜色上的差异,在黑白相机下来看,就是灰度值的变化,因为颜色的表现跟光源有很大的关系,所以一个稳定的光源是必须的。
Blob在目标跟踪的优势有:
(1)通过Blob提取,可以获得相关区域的信息,这些信息可以作为边缘监测器或者角点检测器的补充信息。在目标识别中,Blob可以提供局部的统计信息和外貌信息,这些信息能够为目标识别和跟踪提供依据;
(2)可以利用Blob对直方图进行峰值检测;
(3)Blob还可以作为纹理分析和纹理识别的基元;
(4)通过Blob分析,可以得到目标的个数及其所在区域,在进行目标匹配时,不需要对全局图像进行搜索。