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--少见操作、如何调整dos窗口大小、字符集设置

    如何调整dos窗口大小 1.set linesize 400; 2.右键 --默认值 断开.连接 disconn ; conn ww/ww; 关于字符集 操作系统环境变量针对语言项设置有几个,我经常设 ...

  2. A + B Problem II(1002)

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  3. linux安装curl出错

    今天配置一台server的php支持curl的时候, 出现如下报错 checking for cURL in default path... not foundconfigure: error: Pl ...

  4. Angular ngTemplateOutlet

    虽然我们可以通过使用 ViewContainerRef 将 ElementRef创建的视图插入指定的位置,但是仍然希望有某中快捷的方式帮我们实现. ngTemplateOutlet与ngCompone ...

  5. Neo4j : 通过节点的 id属性 对节点进行查,改,删操作

    1. "查"操作 , 查找 id 属性 为 501的节点: MATCH (r) WHERE id(r) = 501 RETURN r 2. "改"操作, 更改 ...

  6. c# 实现ComboBox自动模糊匹配

    ComboBox自带有属性可以实现自动匹配,但是它有一个弊端,只能从头开始匹配,例如"李四LS",只能输入“李四”或"李"才能匹配出来,而输入"LS& ...

  7. 一个完整的HTTP请求过程详细

    整个流程1.域名解析 —> 2.与服务器建立连接 —> 3.发起HTTP请求 —>4. 服务器响应HTTP请求,浏览器得到html代码 —> 5.浏览器解析html代码,并请求 ...

  8. Vue简单封装axios—解决post请求后端接收不到参数问题

    1.在src/下新建api文件夹,api/下新建index.js和public.js 在public.js中: import axios from 'axios'; import qs from 'q ...

  9. openstack stein部署手册 10. 创建实例

    # 建立网络(provider)与子网 openstack network create --share --external --provider-physical-network provider ...

  10. Linux系统Docker启动问题Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service"

    在Liunx中使用Docker, 注: Liunx使用的是在虚拟机下的centOS7版本在刚开始安装Docker时没有任何错误, 但是在后续的docker启动过程中, 出现以下问题: [root@zk ...