【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记
Lecturer: Rui Fan、Yanchao Dong
Lec3 Perspective Transformation
Lec11 Keypoint Features and Corners
Lec13 Robust Estimation with RANSAC
持续更新中
文章目录
Lec12 Blob Detector
斑点特征的识别
斑点:图像中与周围区域有明显差异的圆形区域(亮斑或暗斑)
- Stable in scale and space
- Blob detector:LoG and DoG
Blob检测原理
Stable in scale and space,即Blob检测需要具备尺度不变性(在不同缩放比例下都能检测)
- 核心思想
- 在尺度空间中寻找LoG响应的局部极值点(极大/极小值),即响应平方的极大值
- 当 LoG 的尺度参数 σ \sigma σ与Blob的实际半径 r r r匹配时响应最强: σ = r / 2 \sigma = r/\sqrt{2} σ=r/2
特征尺度:使LoG响应达到峰值的尺度 σ \sigma σ,反映Blob的实际大小。
- 实现步骤
- 用不同尺度的归一化 LoG 滤波器卷积图像
- Scale-normalized:进行归一化处理,使响应与比例无关
- 在空间和尺度维度联合搜索响应极值
- 用不同尺度的归一化 LoG 滤波器卷积图像
Laplacian of Gaussian (LoG)
首先介绍一个blob detector——Laplacian of Gaussian (LoG)
- 在多个尺度上用尺度归一化的 LoG 对图像进行卷积
- 寻找尺度空间中 LoG 响应平方的最大值
- 数学定义 : ∇ 2 g = ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 \nabla^2 g = \frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2} ∇2g=∂x2∂2g+∂y2∂2g
- 尺度归一化处理
为保证响应不受尺度影响,引入归一化因子: ∇ norm 2 g = σ 2 ( ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 ) \nabla_{\text{norm}}^2 g = \sigma^2 \left( \frac{\partial^2 g}{\partial x^2} + \frac{\partial^2 g}{\partial y^2} \right) ∇norm2g=σ2(∂x2∂2g+∂y2∂2g)- 通用规则:对 p p p阶导数乘以 σ p \sigma^p σp实现尺度不变性
-
检测步骤
-
给定输入图片 f ( x , y ) f(x,y) f(x,y) ,这个图片被高斯核卷积一遍 g ( x , y , t ) = 1 2 π t e x 2 + y 2 2 t g(x,y,t) = \frac{1}{2\pi t}e^{\frac{x^2+y^2}{2t }} g(x,y,t)=2πt1e2tx2+y2
-
在一定比例的 t 给出一个比例的空间表示 L ( x , y , t ) = g ( x , y , t ) ∗ f ( x , y ) L(x,y,t) = g(x,y,t) * f(x,y) L(x,y,t)=g(x,y,t)∗f(x,y)
-
然后对结果进行Laplacian 操作 ∇ 2 L = L x x + L y y \nabla^{2} L=L_{x x}+L_{y y} ∇2L=Lxx+Lyy
-
响应特征:对暗斑产生正响应,对亮斑产生负响应:求二阶偏导后,亮点是Min,暗点是Max
- 先高斯模糊,再求拉普拉斯二阶偏导,联立成一步
∇ 2 ( I ∗ G ) = ∇ 2 G ∗ I ⟹ L o G ( x , y ) = − 1 π σ 4 [ 1 − x 2 + y 2 2 σ 2 ] e − x 2 + y 2 2 σ 2 \nabla^{2}(I * G)=\nabla^{2} G * I \Longrightarrow L o G(x, y)=-\frac{1}{\pi \sigma^{4}}\left[1-\frac{x^{2}+y^{2}}{2 \sigma^{2}}\right] e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}} ∇2(I∗G)=∇2G∗I⟹LoG(x,y)=−πσ41[1−2σ2x2+y2]e−2σ2x2+y2
例:
Difference of Gaussian (DoG)
下面再介绍一个斑点检测方法:Difference of Gaussian (DoG)——作为 LoG 的近似,提高计算效率
- 高斯差分(DoG):用两个不同尺度的高斯核差值近似LoG
- D o G = G ( x , y , k σ ) − G ( x , y , σ ) DoG = G(x, y, k\sigma) - G(x, y, \sigma) DoG=G(x,y,kσ)−G(x,y,σ)
- 优势:通过高斯金字塔加速计算
DoG 是一种特征增强算法,它将原始图像的一个高斯模糊版本从另一个模糊程度较低的原始图像中减去。
先高斯模糊,再原图减去
公式如下
Γ σ , K σ ( x , y ) = I ∗ 1 2 π σ 2 e − x 2 + y 2 2 σ 2 − I ∗ 1 2 π K 2 σ 2 e − x 2 + y 2 2 K 2 σ 2 Γ σ , K σ ( x , y ) = I ∗ ( 1 2 π σ 2 e − x 2 + y 2 2 σ 2 − 1 2 π K 2 σ 2 e − x 2 + y 2 2 K 2 σ 2 ) \Gamma_{\sigma, K \sigma}(x, y)=I * \frac{1}{2 \pi \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}-I * \frac{1}{2 \pi K^{2} \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 K^{2} \sigma^{2}}} \\ \Gamma_{\sigma, K \sigma}(x, y)=I *\left(\frac{1}{2 \pi \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 \sigma^{2}}}-\frac{1}{2 \pi K^{2} \sigma^{2}} e^{-\frac{x^{2}+y^{2}}{2 K^{2} \sigma^{2}}}\right) Γσ,Kσ(x,y)=I∗2πσ21e−2σ2x2+y2−I∗2πK2σ21e−2K2σ2x2+y2Γσ,Kσ(x,y)=I∗(2πσ21e−2σ2x2+y2−2πK2σ21e−2K2σ2x2+y2)
这两个等式是等价的
边缘 vs Blob检测对比
特征类型 | 检测依据 | 数学工具 |
---|---|---|
边缘 | 二阶导数过零点 | LoG零交叉 |
Blob | 多边缘叠加的极值区域 | LoG尺度空间极值 |
总结
Blob检测核心要点
-
目的
- 找圆形区域(亮/暗斑),尺度不变
-
两种方法
- LoG:用 σ 2 ∇ 2 G \sigma^2 \nabla^2 G σ2∇2G找极值, σ = r / 2 \sigma = r/\sqrt{2} σ=r/2时最强
- DoG: G k σ − G σ G_{k\sigma}-G_\sigma Gkσ−Gσ快速近似LoG
- LoG准但慢,DoG快(如SIFT用)
-
vs边缘检测
- 边缘:看LoG过零点
- Blob:看LoG/DoG极值
关键公式:
LoG峰值
⇒
σ
=
r
/
2
,
DoG
=
G
k
σ
−
G
σ
\text{LoG峰值} \Rightarrow \sigma = r/\sqrt{2}, \quad \text{DoG} = G_{k\sigma} - G_\sigma
LoG峰值⇒σ=r/2,DoG=Gkσ−Gσ