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. oracle--优化思路

  2. 推荐 33 个 IDEA 最牛配置,写代码太爽了!

    作者:琦彦 blog.csdn.net/fly910905/article/details/77868300 1.设置maven 1.在File->settings->搜索maven 2. ...

  3. Segment tree Beats

    Segment tree Beats Segment tree Beats,吉司机线段树,主要是关于如何用线段树实现区间取min/max.我们先看一道例题: HDU5306 Gorgeous Sequ ...

  4. Codeforces - 1198C - Matching vs Independent Set - 贪心

    https://codeforces.com/contest/1198/problem/C 要选取一个大小大于等于n的匹配或者选取一个大小大于等于n的独立集. 考虑不断加入匹配集,最终加入了x条边. ...

  5. SpringBoot 集成MyBatis 中的@MapperScan注解

    SpringBoot 集成MyBatis 中的@MapperScan注解 2018年08月17日 11:41:02 文火慢炖 阅读数:398更多 个人分类: 环境搭建 在SpringBoot中集成My ...

  6. Linux查看当前目录下所有文件中包含map的行记录

    find yaochi_e.prm |xargs grep -ri "map" grep -n "map" *.prm|grep -v "\-\-ma ...

  7. spark浅谈(2):SPARK核心编程

    一.SPARK-CORE 1.spark核心模块是整个项目的基础.提供了分布式的任务分发,调度以及基本的IO功能,Spark使用基础的数据结构,叫做RDD(弹性分布式数据集),是一个逻辑的数据分区的集 ...

  8. the sum of two fixed value

    the sum of two fixed value description Input an array and an integer, fina a pair of number in the a ...

  9. [简单到爆]eclipse-jee-neon的下载和安装

    Eclipse的下载安装: 访问https://www.eclipse.org/downloads/eclipse-packages/ 选择Eclipse IDE for Java EE Develo ...

  10. HashMap、Hashtable和ConcurrentHashMap的区别

    HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相 ...