Blob检测
一 Laplace 算子
使用一阶微分算子可以检测图像边缘。对于剧烈变化的图像边缘,一阶微分效果比较理想。但对于缓慢变化的图像边缘,通过对二阶微分并寻找过零点可以很精确的定位边缘中心。二阶微分即为 Laplace 算子,在 "图像边缘检测" 中进行的推导。以一维图像为例,下图给出边缘的一阶与二阶运算结果:

红色区曲线表示原始边缘,绿色曲线表示一阶微分结果,蓝色区域表示二级微分结果。
如何使用 Laplace 算子检测到图像边缘呢?其基本方法如下:
1)使用 Laplace 算子与图像卷积;
2)在邻域(3*3, 5*5, 7*7等)中寻找卷积后最大值与最小值;
3)当最大值大于0,最小值小于0,最大值大于某固定阈值,最小值小于某固定阈值的负值时认为找到边缘(避免噪声干扰);
二 Laplacian of Gaussian(LoG)
Laplace 算子检测边缘同时也检测到噪声,可以首先使用 Gaussian Kernel 对图像去噪,然后在去噪后图像上应用 Laplace 算子。
由于线性运算可结合性质,有如下结论:
;
以下给出证明:
;
。
根据以上结论,由于 Gaussian Kernel 在卷积运算前已知且相对固定,可以先对求解 LoG,然后再使用 LoG 对图像卷积。
;
;
;
。

上图给出一维高斯函数的一阶微分(绿色)与二阶微分(蓝色)。
通过离散化近似处理,可以得到 LoG 核模板(5*5),
,使用该模板检测图像边缘,步骤如下:
1)计算 LoG 核;
2)使用 LoG 核与图像卷积;
3)在5*5邻域中寻找卷积后最大值与最小值;
4)当最大值大于0,最小值小于0,最大值大于某固定阈值,最小值小于某固定阈值的负值时认为找到边缘;
三 Difference of Gaussian(DoG)
使用 DoG 可以得到与 LoG 近似的效果,步骤如下:
1)使用宽度
高斯核与原图像卷积
;
2)使用宽度
高斯核与原图像卷积
;
3)求两卷积之差
;
可以提前计算出来
;

上图给出两个不同宽度的一维高斯函数的一阶微分(红色与绿色)与DoG(蓝色),观察发现 DoG 与 LoG 形状基本一致,所有可以使用 DoG 求二阶过零点。
四 Blob检测
使用 LoG 可以检测函数过零点,以一维图像为例,如下图:

对不同尺寸Blob块使用 LoG ,可得如下结果:

由上图可知,对于不同尺寸Blob块,二阶微分响应不同。当Gaussian函数尺度与Blob块直径基本一致时,产生最大响应。
对于一个固定尺寸Blob块,使用不同尺度Gaussian函数时,响应如下:

Laplacian 响应随着
增大而减小,需要对对响应值进行归一化处理。
高斯函数的一阶微分对理想阶跃边缘的响应随着
增大而降低,在一阶微分卷积前乘以
以归一化响应,在二阶微分卷积前乘以
以归一化响应。
以下给出二维归一化 LoG 表达式:
。
使用不同尺度归一化Gassian二阶微分,响应如下:

通过以上图像可知,当Gassian函数尺度与Blob块直径基本一致时,产生最大响应。
通过以上观察,可得到Blob块检测方法:
1)使用不同尺度Gassian函数的归一化二阶梯度分别于图像卷积;
2)合并不同尺度下卷积图像形成三维图像;
3)在三维图像中寻找局部极大值,该极大值即为检测到的Blob块,其中Blob块中心由所在图像坐标决定,Blob块半径由所在尺度决定,其值为
。
五 Blob 特征点描述
当检测到特征点后,使用自相关函数可以描述 Blob 特征点形状特征:
;
令
,在 uv 平面上可以得到一个椭圆,如下:

观察椭圆可知,在短轴方向上 Blob 特征点变化速度最快,在长轴方向上变化最慢。同时,自相关矩阵描述了特征点形状及旋转关系。
当采集图像发生了射影变换(旋转,拉伸),其 Blob 特征点的自相关矩阵所描述的椭圆也会发生 旋转,拉伸变换。在描述 Blob 特征点前,首先对其进行拉伸变化将椭圆转换为正圆,这样方便对特征点进行统一描述。
以上操作使特征点具有相同的拉伸变换,但仍旧需要使特征点具有统一的旋转角度,使用梯度方向直方图可以估计特征点旋转。具体如下:
1)使用特征点周边固定区域内的梯度方向形成方向直方图;
2)使用直方图中最大 bin 作为特征点方向(零点方向);
3)在 Blob 区域内(正圆,去除拉伸)统计方向直方图,该直方图可作为特征描述符。
参考: https://www.cs.unc.edu/~lazebnik/spring11/lec08_blob.pdf
Blob检测的更多相关文章
- 斑点检测(LoG,DoG)(下)
斑点检测(LoG,DoG)(下) LoG, DoG, 尺度归一化 上篇文章斑点检测(LoG,DoG)(上)介绍了基于二阶导数过零点的边缘检测方法,现在我们要探讨的是斑点检测.在边缘检测中,寻找的是二阶 ...
- Python: scikit-image Blob detection
这个用例主要介绍利用三种算法对含有blob的图像进行检测,blob 或者叫斑点,就是在一幅图像上,暗背景上的亮区域,或者亮背景上的暗区域,都可以称为blob.主要利用blob与背景之间的对比度来进行检 ...
- CVPR 2019 行人检测新思路:
CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破 原创: CV君 我爱计算机视觉 今天 点击我爱计算机视觉置顶或标星,更快获取CVML新技术 今天跟大家分享一篇昨天新出的CVPR 2 ...
- TB3_Autorace之交通杆检测
利用blob检测算法识别交通杆,控制TB3机器人完成对交通杆的起停动作! 上一篇博文中<TB3_Autorace之路标检测>订阅了原始图像信息,经过SIFT检测识别出道路交通标志,这里我们 ...
- paper 64:尺度空间(Scale space)理论
尺度空间方法的基本思想是:在视觉信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征.尺度空间方法将传统的单尺度视觉信息 ...
- OpenCV SIFT原理与源码分析
http://blog.csdn.net/xiaowei_cqu/article/details/8069548 SIFT简介 Scale Invariant Feature Transform,尺度 ...
- [Object Tracking] Overview of algorithms for Object Tracking
From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...
- V-rep学习笔记:视觉传感器2
视觉传感器的属性设置栏中还有如下几个选项: Ignore RGB info (faster): if selected, the RGB information of the sensor (i.e. ...
- 【OpenCV】SIFT原理与源码分析
SIFT简介 Scale Invariant Feature Transform,尺度不变特征变换匹配算法,是由David G. Lowe在1999年(<Object Recognition f ...
随机推荐
- Eclipse导包
导包快捷键:"Ctrl+Shift+M",但是一般不用,一般利用整理包的快捷键. 整理包的快捷键:"Ctrl+Shift+O",与导包的区别在于,有用的留着,没 ...
- 自定义异步爬虫架构 - AsyncSpider
作者:张亚飞 山西医科大学在读研究生 1. 并发编程 Python中实现并发编程的三种方案:多线程.多进程和异步I/O.并发编程的好处在于可以提升程序的执行效率以及改善用户体验:坏处在于并发的程序不容 ...
- Spark词频前十的统计练习
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815390070254600712/ 承接上一个文档<Spark本地环境实现wordCount单词计数> ...
- android入门--环境搭建
运行环境 windows 7 下载地址 环境下载 最近开接触Android(安卓)嵌入式开发,首要问题是搭建Andoid开发环境,由于本人用的是windows7的笔记本,也就只能到Windows中搭建 ...
- Python函数与lambda 表达式(匿名函数)
Python函数 一.函数的作用 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段 函数能提高应用的模块性和代码的重复利用率 python 内置函数:https://docs.pytho ...
- 嵌入式学习第四步—C语言学习用软件安装
学习一门计算机语言,不能光靠看书,最主要的是要动手联系.不记得从哪里看到过,要成为一名网络大牛,要有10万行以上的程序才是基础. 首先需要一个能够编辑程序的地方(IDE),经过大约10天的网上看各种视 ...
- 基于华为云服务器的FTP站点搭建
前言 主要介绍了华为云上如何使用弹性云服务器的Linux实例使用vsftpd软件搭建FTP站点.vsftpd全称是"very secure FTP daemon",是一款在Linu ...
- [开发笔记usbTOcan]需求获取与系统需求分析
简介 一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发.最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统.接下来的几篇文章,我会记录一个USB转C ...
- PWA 技术落地!让你的站点(Web)秒变APP(应用程序)
Web应用方兴未艾,我们已经十分习惯习惯了在电脑上进行以自己的工作,而随着众多功能强大的在线网站,我们的Windows的桌面也不再拥挤着各种快捷方式:不光是PC端,在移动端我们也不再在浩如烟海的应用市 ...
- Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException
这个异常是Java中的数组越界问题 当你使用不合法的索引访问数组是会出现这种错误例如: class Solution { public static int climbStairs(int n) { ...