Machine Vision Technology:Lecture6 Blob detection斑点检测

Machine Vision Technology:Lecture6 Blob detection斑点检测

    • Blob detection
    • Achieving scale covariance
    • Recall:Edge detection
    • Scale selection
    • Blob detection in 2D
    • Characteristic scale特征尺度
    • Scale-space blob detector
    • Efficient implementation:SIFT
    • 视角差异
    • 纠正角度
    • 光照问题
    • Invariance vs. covariance

计算机视觉(本科) 北京邮电大学 鲁鹏


Blob detection

针对Harris角点检测不具有尺度缩放Scaling不变性提出。

斑点检测:一种计算机视觉技术,用于检测图像中的区域,这些区域具有与周围像素不同的属性,如颜色或亮度。

例子:检测圆形

在这里插入图片描述

Achieving scale covariance

  • Goal: independently detect corresponding regions in scaled versions of the same image目标:在相同图像的缩放版本中独立检测相应区域。
  • Need scale selection mechanism for finding characteristic region size that is covariant with the image transformation需要尺度选择机制来寻找与图像变换协变的特征区域大小

在这里插入图片描述

左图中的中心点当半径达到10.1时,响应值达到最大,而右图中圆的半径达到3.89时响应值达到最大。

这里的响应函数:给定一个点,以这个点为圆心做圆,当随着圆越来越大时,能够得到上面这条响应曲线。

为此,我们的目标变为找到该响应函数。

Recall:Edge detection

使用高斯一阶导的极值来提取边缘:

在这里插入图片描述

也可以使用高斯二阶导过零点来提取边缘:

在这里插入图片描述

Scale selection

From edges to blobs:

  • Edge:ripple波纹
  • Blob:superposition of two ripples两个波纹的叠加

在这里插入图片描述

上图中上面是输入图像信号,下面是使用 σ = 1 \sigma = 1 σ=1 的拉普拉斯卷积的结果,可以发现输入信号的两个边缘对应卷积后的结果是两个零点。而最后一个比较特殊,由于尺度太小两个边缘导致的拉普拉斯卷积结果也是两个零点,但两个峰值叠加为了一个更大的峰值,这边是极值点。

当Original signal信号和输入的Laplacian滤波核匹配时,就能在边缘处产生一个极大值,正好符合我们的响应函数特性。如上图中右下角的图像,上面这里的极大值是最后一个信号的Laplacian滤波之后,对比与前面三个两个极小值的峰值的叠加。

  • Spatial selection:the magnitude of the Laplacian response will achieve a maximum at the center of the blob, provided the scale of the Laplacian is “matched” to the scale of the blob空间选择:如果拉普拉斯响应的尺度与blob的尺度“匹配”,则拉普拉斯响应的大小将在blob的中心达到最大值

也就是说,对于不同的信号,会存在一个 σ \sigma σ 使得Laplacian滤波器达到极值。

而对于一个具体的信号,我们需要增大 σ \sigma σ 来测试其何时达到极值,这便建模出了Laplacian滤波器的峰值随着 σ \sigma σ 变化的函数,这就是我们上面提出的响应函数。


  • We want to find the characteristic scale of the blob by convolving it with Laplacians at several scales and looking for the maximum response我们希望通过将blob与若干尺度的拉普拉斯函数进行卷积,并在中寻找最大响应,从而找到blob的特征尺度

However, Laplacian response decays as scale increases然而,拉普拉斯响应随着尺度的增加而衰减:

在这里插入图片描述

随着 σ \sigma σ 的逐渐增大,信号会逐渐衰减,对应图像越来越暗。


Why does this happen?

  • The response of a derivative of Gaussian filter to a perfect step edge decreases as σ increases高斯滤波器的导数对完美阶跃边缘的响应随着σ的增大而减小

在这里插入图片描述

考虑高斯导数滤波器的和不是1,而是 1 σ 2 π \frac{1}{\sigma \sqrt{2 \pi}} σ2π 1 ,所以随着 σ \sigma σ 增大,滤波器的和会越来越小,进而造成信号衰减。有了信号衰减,需要乘以 σ \sigma σ 进行补偿。

  • To keep response the same (scale-invariant), must multiply Gaussian derivative by σ为了保持响应相同(比例不变),必须高斯导数乘以σ

而对于Laplacian,是高斯的二阶导,需要乘以 σ 2 \sigma^2 σ2 进行补偿。

  • Laplacian is the second Gaussian derivative, so it must be multiplied by σ 2 \sigma^2 σ2 拉普拉斯函数是二阶高斯导数,所以它必须乘以 σ 2 \sigma^2 σ2

补偿以后,归一化的拉普拉斯响应函数与 σ \sigma σ 的关系如下图:

Original signal & Unnormalized Laplacian response: 信号衰减。

在这里插入图片描述

Scale-normalized Laplacian response: 可以看到在 σ = 8.00 \sigma = 8.00 σ=8.00 处达到极值

在这里插入图片描述

Blob detection in 2D

Laplacian of Gaussian: Circularly symmetric operator for blob detection in 2D高斯拉普拉斯算子:二维blob检测的圆对称算子。
∇ 2 g = ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 \nabla^2g = \frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2} 2g=x22g+y22g

在这里插入图片描述
在这里插入图片描述

Scale-normalized:
∇ n o r m 2 g = σ 2 ( ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 ) \nabla_{norm}^2g = \sigma^2 (\frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2}) norm2g=σ2(x22g+y22g)


At what scale does the Laplacian achieve a maximum response to a binary circle of radius r?拉普拉斯函数在多大的尺度上对半径为r的 二进制圆的最大响应?
在这里插入图片描述

  • To get maximum response, the zeros of the Laplacian have to be aligned with the circle为了获得最大的响应,拉普拉斯函数的零点必须与圆对齐。

高斯的拉普拉斯算子的零平面的底面圆对应我们的圆。信号所在圆的左端点跟高斯拉普拉斯零平面的左端点对齐,信号相应达到最大值。

在这里插入图片描述

在这里插入图片描述

  • The Laplacian is given by (up to scale):

( x 2 + y 2 − 2 σ 2 ) e − x 2 + y 2 2 σ 2 (x^2 + y^2 - 2\sigma^2) e^{-\frac{x^2 + y^2}{2\sigma^2}} (x2+y22σ2)e2σ2x2+y2

然后令其等于0,得到零平面方程:
x 2 + y 2 − 2 σ 2 = 0 x^2 + y^2 - 2\sigma^2 = 0 x2+y22σ2=0
解得: r = 2 σ r = \sqrt{2} \sigma r=2 σ σ = r 2 \sigma = \frac{r}{\sqrt{2}} σ=2 r

Characteristic scale特征尺度

We define the characteristic scale of a blob as the scale that produces peak of Laplacian response in the blob center我们将斑点的特征尺度定义为在斑点中心产生拉普拉斯响应峰值的尺度

在这里插入图片描述

Scale-space blob detector

1.Convolve image with scale-normalized Laplacian at several scales使用不同 σ \sigma σ 参数的高斯拉普拉斯滤波器对图像进行滤波,得到几个不同的图像,这便构成了尺度空间scale-space。

在这里插入图片描述

2.Find maxima of squared Laplacian response in scale-space在尺度空间中对某一点,找到极大值对应的 σ \sigma σ ,即可得到该点的圆的半径。

可以得到同一个点的不同尺寸的圆:在尺度空间某一点比较连续三个图层、或者连续5个图层的响应值,可得到2个不同半径的圆。

使用非极大值抑制,不让圆高于密集:非最大化抑制,三个图层共27个点,当前点比其余26个点都大时,才作为极大值。

在这里插入图片描述
在这里插入图片描述

Efficient implementation:SIFT

  • Harris-Laplacian

    Find local maximum of:

    • Harris corner detector in space (image coordinates)
    • Laplacian in scale
  • SIFT(Lowe) Scale Invariant Feature Transform尺度不变特征转换

    Find local maximum of:

    • Difference of Gaussians in space and scale

  • Approximating the Laplacian with a difference of Gaussians用高斯函数的差异近似拉普拉斯函数:

Laplacian: L = σ 2 ( G x x ( x , y , σ ) + G y y ( x , y , σ ) ) L = \sigma^2(G_{xx}(x,y,\sigma) + G_{yy}(x,y,\sigma)) L=σ2(Gxx(x,y,σ)+Gyy(x,y,σ))

Difference of Gaussians(DoG): D o G = G x x ( x , y , k σ ) − G y y ( x , y , σ ) DoG = G_{xx}(x,y,k \sigma) - G_{yy}(x,y,\sigma) DoG=Gxx(x,y,)Gyy(x,y,σ)

在这里插入图片描述

大高斯核可以用小高斯核来做,进行替代。

G ( x , y , k σ ) − G ( x , y , σ ) ≈ ( k − 1 ) σ 2 ∇ 2 G G(x,y,k\sigma) - G(x,y,\sigma) \approx (k-1) \sigma^2 \nabla^2G G(x,y,)G(x,y,σ)(k1)σ22G

便有:
G ( x , y , k σ ) − G ( x , y , σ ) ≈ ( k − 1 ) σ 2 ∇ 2 G = ( k − 1 ) L σ G ( x , y , k 2 σ ) − G ( x , y , k σ ) ≈ ( k − 1 ) L k σ G ( x , y , k 3 σ ) − G ( x , y , k 2 σ ) ≈ ( k − 1 ) L k 2 σ \begin{align} G(x,y,k\sigma) - G(x,y,\sigma) &\approx (k-1) \sigma^2 \nabla^2G = (k-1)L_{\sigma} \\ G(x,y,k^2\sigma) - G(x,y,k\sigma) &\approx (k-1)L_{k\sigma} \\ G(x,y,k^3\sigma) - G(x,y,k^2\sigma) &\approx (k-1)L_{k^2 \sigma} \\ \end{align} G(x,y,)G(x,y,σ)G(x,y,k2σ)G(x,y,)G(x,y,k3σ)G(x,y,k2σ)(k1)σ22G=(k1)Lσ(k1)L(k1)Lk2σ


SIFT:

在这里插入图片描述

其中 k = 2 1 s = 2 s k = 2^{\frac{1}{s}} = \sqrt[s]{2} k=2s1=s2

由上面可知,使用DoG可以替代Laplacian进行卷积,上面得到DOG对应的Laplacian参数为 σ \sigma σ k σ k\sigma k 2 σ k^2\sigma k2σ k 3 σ k^3\sigma k3σ,在这个尺度空间中,每3层进行一次27个点比较,判断该点是不是极大值(非极大值抑制),如果是极大值进而可以得到圆的半径。所以这里的4层可以得到2个半径不同的圆,分别对应在 σ \sigma σ k σ k\sigma k 2 σ k^2\sigma k2σ 3层中进行比较参数为 k σ k \sigma 和在 k σ k\sigma k 2 σ k^2\sigma k2σ k 3 σ k^3\sigma k3σ 3层中进行比较参数为 k 2 σ k^2 \sigma k2σ 的圆。这里的2便对应上面 k k k 的取值中的 s s s

所以有了参数 s s s ,需要对应 s + 2 s+2 s+2 个DOG,继而需要对应 s + 3 s+3 s+3 个 Gaussian卷积。上图中便是 σ \sigma σ k σ k\sigma k 2 σ k^2\sigma k2σ k 3 σ k^3\sigma k3σ k 4 σ k^4\sigma k4σ 共5个Gaussian卷积。其中要得到 k σ k\sigma 对应的Gaussian卷积结果,可以利用卷积“勾股定理”:对 σ \sigma σ Gaussian卷积结果继续使用 ( k σ ) 2 − σ 2 = k 2 − 1 σ \sqrt{(k\sigma)^2 - \sigma^2} = \sqrt{k^2 - 1}\sigma ()2σ2 =k21 σ 高斯卷积得到。

此外,对于大图中特征对应的圆应该比小图中特征对应的圆要大。如果大图进行一次下采样得到小图,则大图中的圆的半径应该是小图中圆的半径的2倍( r 大圆 = 2 × r 小圆 r_{大圆} = 2 \times r_{小圆} r大圆=2×r小圆),再由 σ = r 2 \sigma = \frac{r}{\sqrt{2}} σ=2 r也就是 r 大圆 = 2 × σ 大圆 r_{大圆} = \sqrt{2} \times \sigma_{大圆} r大圆=2 ×σ大圆 r 小圆 = 2 × σ 小圆 r_{小圆} = \sqrt{2} \times \sigma_{小圆} r小圆=2 ×σ小圆。所以有 σ 大圆 = 2 × σ 小圆 \sigma_{大圆} = 2 \times \sigma_{小圆} σ大圆=2×σ小圆

上图中,我们将参数为 k 2 σ k^2\sigma k2σ 也就是 2 σ 2\sigma 2σ 的第三层高斯卷积进行一次下采样,得到参数为 σ \sigma σ 的小图对应的高斯卷积结果。小图中对应的高斯卷积生成小图中对应的 DOG,可以得到参数为 2 k σ 2 k \sigma 2 2 k 2 σ 2 k^2 \sigma 2k2σ

将大图和小图中DOG结果采用非极大值抑制,可以得到的圆有4个,其对应的参数为 k σ k\sigma k 2 σ k^2\sigma k2σ 2 k σ 2k\sigma 2 2 k 2 σ 2k^2\sigma 2k2σ。要想使之连续,可以得到 k = 2 k = \sqrt{2} k=2 ,也就是 2 σ 、 2 σ 、 2 2 σ 、 4 σ \sqrt{2}\sigma、2 \sigma、2 \sqrt{2} \sigma 、4 \sigma 2 σ2σ22 σ4σ

Invariance and covariance properties:

  • Laplacian (blob) response is invariant w.r.t. rotation and scaling
  • Blob location and scale is covariant w.r.t. rotation and scaling

视角差异

在这里插入图片描述

SIFT拓展让其对视角变换也具有鲁棒性。

Achieving affine covariance:实现仿射的协变性。

Consider the second moment matrix of the window containing the blob:
M = ∑ x , y w ( x , y ) [ I x 2 I x I y I x I y I y 2 ] = R − 1 [ λ 1 0 0 λ 2 ] R M = \sum_{x,y}w(x,y) \begin{bmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \\ \end{bmatrix} = R^{-1} \begin{bmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \\ \end{bmatrix} R M=x,yw(x,y)[Ix2IxIyIxIyIy2]=R1[λ100λ2]R

在这里插入图片描述

将椭圆的长边收缩,即增大该方向的梯度,使梯度成为一个圆,那么在图像上的响应就会成为一个椭圆。

有些特征点在x轴与y轴的变换速度不一致,我们就以调整长度来表示变换速度的改变,速度快的我们就缩短,最后就会变成一个椭圆了。这里圆形只是blob,圈住了一块图像。再去算这块图像的M矩阵,得到一个椭圆。

根据SIFT得到的圆,计算这个区域内的M矩阵,得到两个特征值。如果两个特征值不同,则表示两个方向变化不一致。我们将特征值小的,即变化缓慢方向进行压扁。然后继续计算这个新的区域的M矩阵。直到迭代到两个特征值相同(相差不大)。达到这个区域内的各向同性。

Scale-invariant regions (blobs):

在这里插入图片描述

Affine-Adapted blobs:

在这里插入图片描述

纠正角度

From covariant detection to invariant description:

视角差异可以将圆画成椭圆,同样大小的椭圆放在原图中的位置,内容相同可能会有不同的角度差异:

在这里插入图片描述

所以需要自适应角度差异:消除旋转歧义。

求区域每一点的梯度,做梯度方向的直方图,然后找到直方图中最大的一个角度,将其转这个角度到水平位置,这样两个图像对应的区域的角度差异就可以得到纠正。即把两个图都旋转到梯度变化最大的方向来实现角度归一化。

在这里插入图片描述

To assign a unique orientation to circular image windows为圆形图像窗口指定唯一的方向:

  • Create histogram of local gradient directions in the patch在patch中创建局部梯度方向直方图。
  • Assign canonical orientation at peak of smoothed histogram在平滑直方图的峰值处指定规范化方向。

光照问题

From covariant regions to invariant features:

首先将区域划分为几个小区域方格,在每个小方格内计算梯度直方图:直方图中有8个方向的角度作为横轴,纵轴是该角度方向灰度大小,这样便构成了直方图,每个小格使用该直方图进行描述。

下面图中每个小方格的8方向的直方图表示为八个方向的线段,线段的长度表示该方向的灰度强度。16个小方格,共16x8个数值,变为包含128个数的向量,这就构成了该区域的描述符。该描述符与梯度有关,与灰度强度无关。便可以通过该描述符,计算l2距离来比较两幅光照不同的该区域图像。

在这里插入图片描述

比较我爱中国和爱我中国,使用局部直方图比较,提高准确率。

Invariance vs. covariance

Invariance:

  • features(transform(image)) = features(image)

Covariance:

  • features(transform(image)) = transform(features(image))

在这里插入图片描述

Covariant detection => invariant description

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/461537.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

webconfig-boot项目说明

1、前言 最近利用空余时间写了一个项目webconfig-boot 。该项目主要配置了web项目常用的一些配置,如统一参数校验、统一异常捕获、统一日期的处理、常用过滤器、常用注解等。引入依赖接口完成常规的web配置。 这里也是总结了笔者在项目开发中遇到的一些常用的配置…

C语言葵花宝典之——文件操作

前言: 在之前的学习中,我们所写的C语言程序总是在运行结束之后,就会自动销毁,那如果我们想将一个结果进行长期存储应该如何操作呢?这时候就需要我们用文件来操作。 目录 1、什么是文件? 1.1 程序文件 1.2…

2024年AI辅助研发:科技创新的引擎

CSND - 个人主页:17_Kevin-CSDN博客 收录专栏:《人工智能》 技术进展 进入2024年,人工智能(AI)在科技界和工业界的焦点地位更加巩固,其在辅助研发领域的技术进步尤为显著。深度学习技术的突飞猛进使得数据分…

Window API 使用的一些注意事项

文章目录 1、LPCWSTR类型2、LPCTSTR类型3、LPCSTR类型4、LPCTSTR和LPCWSTR区别5、LPCTSTR和LPCSTR、LPCWSTR三者区别6、_T(" ")7、DWORD类型转换为std::wstring类型8、char类型转换为LPCSTR类型9、获取当前时间戳(毫秒)10、std::wstring和LPCSTR区别11、std::wstring…

漫途桥梁结构安全监测方案,护航桥梁安全!

桥梁作为城市生命线的重要组成部分,承载着城市交通、物流输送、应急救援等重要职能。然而,随着我国社会经济的飞速发展,桥梁所承载的交通流量逐年增长,其安全性所面临的挑战亦日益严峻。例如恶劣的外部环境、沉重的荷载以及长期使…

南大通用数据库-Gbase-8a-学习-43-SQL长时间处于Writing to net状态排查

目录 一、问题截图 二、排查思路 1、Gbase8a SQL有几种状态 2、问题导致原因猜想 3、观察服务端(集群端)网络情况 4、观察客户端网络情况 5、排查客户端程序处理数据慢 5.1、send (1)声明 (2)作用…

springboot“期待相遇”图书借阅系统的设计与实现

摘 要 伴随着我国社会的发展,人民生活质量日益提高。于是对系统进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套“期待相遇”图书借阅系统,帮助商家…

TS的el-tree数据处理方式,递归

private async initData() {let res await GetAllOranizationInfo()console.log(res数据, res)//获取递归方法return回来的数据this.treeData this.organData(res, null)console.log(tree数据, this.treeData)} private organData(allData: any[], topparentId: string): Tr…

智慧交通:构建智慧城市的重要一环

随着信息技术的飞速发展,智慧城市已成为现代城市发展的重要方向。作为智慧城市的重要组成部分,智慧交通以其高效、便捷、环保的特性,成为推动城市现代化进程的关键力量。本文将从智慧交通的概念、发展现状、面临挑战以及未来趋势等方面&#…

蓝桥杯单片机快速开发笔记——独立键盘

一、原理分析 二、思维导图 三、示例框架 #include "reg52.h" sbit S7 P3^0; sbit S6 P3^1; sbit S5 P3^2; sbit S4 P3^3; void ScanKeys(){if(S7 0){Delay(500);if(S7 0){while(S7 0);}}if(S6 0){Delay(500);if(S6 0){while(S6 0)…

GaN HEMTs在电力电子应用中的交叉耦合与基板电容分析与建模

来源:Analysis and Modeling of Cross-Coupling and Substrate Capacitances in GaN HEMTs for Power-Electronic Applications( TED 17年) 摘要 本文提出了一种考虑了基板电容与场板之间交叉耦合效应的场板AlGaN/GaN高电子迁移率晶体管(HE…

TOP-K问题

TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一情况下数据量都比较大。 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 对于Top-K问题,能想到的最简单直接的方式就是排序,但是&#x…

Python-sklearn-diabetes项目实战

目录 1 下载数据集和预处理 1.1 加载/下载数据集 1.2 数据可视化 1.3 数据清洗 1.4 特征工程 1.5 构建特征集和标签集 1.6 拆分训练集和测试集 2 训练模型 2.1 选择算法和确定模型 2.2 训练拟合模型 3 评估并优化模型性能 本文以糖尿病数据集diabetes为基础进行线性…

掌握高级设计原则:Java中的过滤器模式解析与实战演练,构建灵活且可扩展的系统架构

过滤器模式是一种结构型设计模式,它允许开发者使用不同的标准来过滤一组对象,并通过逻辑运算以解耦的方式将它们联系起来。 过滤器模式的核心在于提供了一个处理对象的机制,这个机制可以根据一个或多个标准来决定哪些对象应该被接受、哪些应…

数据指标体系方法—OSM模型

了解 OSM 模型 OSM 模型,全称为 Object-Strategy-Measure 模型。 O 代表业务目标,不仅仅是指公司战略级别的目标,也包含了产品中某个功能的目的,某场活动的目标等。S 代表业务策略,这里指的是要实现 O 需要采用的策略…

【Linux】从零开始认识进程 — 前篇

我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。。——山本耀司 从零开始认识进程 1 认识冯诺依曼体系2 操作系统3 进程3.1 什么是进程???3.2 进程管理PCB 3.3 Linux中的进程深入理解 3.4 进程创建总结 送给…

Flink 集群部署模式

文章目录 前言一、会话模式(Session Mode)二、单作业模式(Per-Job Mode)三、应用模式(Application Mode) 前言 Flink支持多种集群部署模式,以满足不同场景和需求。以下是Flink的主要集群部署模…

计算机网络(5)-----网络层

目录 一.网络层的功能和概述 二.转发相关 1.网络层协议 (1)IP协议 •IP数据报格式: •IP数据报分片: •IP地址: •IP地址的分类: •网络地址转换NAT: •子网划分: •无分…

拼多多获得搜索词统计 API 返回值说明

拼多多获得搜索词统计的API返回值通常包含与搜索词相关的统计数据和信息。 item_search_data-获得搜索词统计获取调用详情链接 pinduoduo.item_search_data 公共参数 响应参数 - 请求示例 url 默认请求参数已经URL编码处理 curl -i "https://api-gw-xxx.cn/pinduoduo/it…

F. Chat Screenshots

思路:拓扑排序,如果存在满足所有截图的顺序,那么这个图中就会存在拓扑排序,这意味着图中不会存在循环。因此,我们的目标就是检查图的非循环性。 代码: int b[200010], vis[200010], edge[200010]; vector&…