ylbtech-术语-Blob:Blob

计算机视觉中的Blob是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像,进行连通域提取和标记。标记完成的每一个Blob都代表一个前景目标,然后就可以计算Blob的一些相关特征。其优点在于通过Blob提取,可以获得相关区域的信息,但是速度较慢,分析难度大。

1.返回顶部
1、
中文名:blob
外文名:blob
用    途:目标跟踪
领    域:计算机
含    义:图像中的一块连通区域
类    别:基于区域的跟踪

目录

2、
2.返回顶部
1、

背景

目标跟踪是计算机视觉中的一项重要研究任务,应用场景广泛。它要解决的是:对运动目标在图像平面上的轨迹进行估计的问题。跟踪器需要在视频序列的不同帧中,将一个唯一的标签分配给特定的跟踪目标。此外,根据跟踪结果还可以提供与运动目标相关的信息,如目标的一些形状外貌、运动状态以及统计信息等。
 

简介

计算机视觉中的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的结果是5A482A。这样对图像逐行进行RLE,并将相连的像素块合并;最终提取出多个连通区域,得到每个连通区域的链码表和线性表。获得链码表就可以计算出区域边界轮廓长度和周长;线性表则可以计算面积和重心等参数。 
 

特点

 

缺点

目前的Blob算法有几个缺点:
1、速度过慢,要整个区域作逐点扫描。
2、Blob分析难度大。这是一纯几何学上的问题,一个不规则的形状,如何计算它的面积、大小没有简单易行的算法,太过复杂,运算时间就长,速度就更慢了。另外,实际应用中,没有单纯的表面检测,在一个场景中通常要检测几个区域块,表面检测只是其中一项。这就使Blob分析算法的局限性更为明显。比如,我们做一个印刷品的检测:一是检测印刷品上印上去的字是否清楚;二是检测印刷品表面有没有划痕。于是,Blob算法就要能区别出哪个是文字,哪个是划痕。
3、实际应用。Blob算法在实际应用中,非常依赖光源。几乎可以说,Blob算法如果离开了一个可靠的光源设计,则完全不起作用。场景中有各种不同的颜色,这些颜色上的差异,在黑白相机下来看,就是灰度值的变化,因为颜色的表现跟光源有很大的关系,所以一个稳定的光源是必须的。 [2] 
 

优点

Blob在目标跟踪的优势有:
(1)通过Blob提取,可以获得相关区域的信息,这些信息可以作为边缘监测器或者角点检测器的补充信息。在目标识别中,Blob可以提供局部的统计信息和外貌信息,这些信息能够为目标识别和跟踪提供依据;
(2)可以利用Blob对直方图进行峰值检测;
(3)Blob还可以作为纹理分析和纹理识别的基元;
(4)通过Blob分析,可以得到目标的个数及其所在区域,在进行目标匹配时,不需要对全局图像进行搜索。
2、
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

术语-BLOB:BLOB的更多相关文章

  1. 理解DOMSTRING、DOCUMENT、FORMDATA、BLOB、FILE、ARRAYBUFFER数据类型

    一.XMLHttpRequest 2.0的家臣们 我大学那会儿,一个称为Ajax的东西对前端行业造成了深远影响,不仅是JS语言,而包括前端地位.职位兴起以及工作分工等.抛开IE6浏览器不谈,其他浏览器 ...

  2. File、Blob、ArrayBuffer等文件类的对象有什么区别和联系

    前言 在前端中处理文件时会经常遇到File.Blob.ArrayBuffer以及相关的处理方法或方式如FileReader.FormData等等这些名词,对于这些常见而又不常见的名词,我相信大多数人对 ...

  3. JS 之Blob 对象类型

    原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...

  4. 跟我学Windows Azure 五 使用Cloub Service连接Blob Service完成图片的上传

    首先,我们创建一个云服务项目,用来演示我们的blob存储 下来我们修改我们我们云服务的名字 我们需要添加一个空的WebForm的项目 点击完成,我们可以看到我们的解决方案已经添加完成 下来我们需要添加 ...

  5. Oracle数据库BLOB字段的存取

    述]     Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据. 写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cur ...

  6. Azure Blob

    Blob的概念: Blob是一种为存储二进制数据提供的存储机制,每个Storage Account可以有多个Container,Container中可以存放二进制文件 可以通过REST API来访问, ...

  7. 【caffe】基本数据结构blob

    @tags: caffe blob blob是caffe中的基本数据结构,简单理解就是一个"4维数组".但是,这个4维数组有什么意义? BTW,TensorFlow这款google ...

  8. FormData、Blob、File、ArrayBuffer数据类型

    XMLHttpRequest 1.0 1.0 中xmlhttpRequest有2个重要的返回属性,reposeText,reposeXml.下面的数据类型都是2.0新增的 FormData对象 我们应 ...

  9. 用二进制大对象类型Blob实现图片入库与出库的操作

    package readclobDemo.bao; import java.io.FileInputStream; import java.io.FileNotFoundException; impo ...

  10. Java类型相互转换byte[]类型,blob类型

    在我们的程序开发当中,经常会用到java.sql.Blob.byte[].InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们 ...

随机推荐

  1. Kubernetes kubeadm 安装记录

    Kubernetes kubeadm 安装记录 注:比较乱,都是一些预见到的错误 kubernetes yum 源 cat /etc/yum.repos.d/kubernetes.repo [kube ...

  2. JAVA总结--集合

    1.集合树状图 Collection:最基本的集合接口 ----List:有序集合,集合中的元素可以重复,访问集合中的元素可以根据元素的索引来访问 ----ArrayList:异步 ----Linke ...

  3. 小白学Python(14)——pyecharts 绘制K线图 Kline/Candlestick

    Kline-基本示例 from pyecharts import options as opts from pyecharts.charts import Kline data = [ [2320.2 ...

  4. hasattr() getattr() setattr() 函数使用详解??

    hasattr(object, name)函数: 判断一个对象里面是否有name属性或者name方法,返回bool值,有name属性(方法)返回True,否则返回False. **注意:name要使用 ...

  5. 查看Json的结构及内容:JsonViewerPackage

    下载链接:http://jsonviewer.codeplex.com/ 安装的过程简单,这里就不一一叙述. 找到JsonViewer 打开之后 点击Viewer 旁边的Text 放入你的Json 测 ...

  6. 定时器,定时发邮件JavaMail

    一.定时器用法: 1.1先导入jar包 <!--spring整合其他文件时要用的jar包--> <dependency> <groupId>org.springfr ...

  7. OpenVINO 安装及使用

    安装 https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html 使用 文档 ...

  8. unittest单元测试框架总结(转)

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果.今天笔者 ...

  9. substring c# js java

    c# String.SubString(int index,int length) String.SubString(int start) 等效于 javascript stringObject.su ...

  10. alert(1) to win 7

    function escape(s) { // Pass inn "callback#userdata" var thing = s.split(/#/); if (!/^[a-z ...