当前位置: 首页 > ops >正文

【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测

【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测

本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记
Lecturer: Rui Fan、Yanchao Dong


Lec0 Course Description

Lec3 Perspective Transformation

Lec7 Image Filtering

Lec8 Image Pyramid

Lec9 Laplace Blending

Lec10 Edges and Lines

Lec11 Keypoint Features and Corners

Lec12 Blob Detector

持续更新中

文章目录

  • 【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
  • Lec12 Blob Detector
    • Blob检测原理
    • Laplacian of Gaussian (LoG)
    • Difference of Gaussian (DoG)
    • 边缘 vs Blob检测对比
    • 总结


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的实际大小。

  • 实现步骤
    1. 用不同尺度的归一化 LoG 滤波器卷积图像
      • Scale-normalized:进行归一化处理,使响应与比例无关
    2. 在空间和尺度维度联合搜索响应极值


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=x22g+y22g

  • 尺度归一化处理
    为保证响应不受尺度影响,引入归一化因子: ∇ 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(x22g+y22g)
    • 通用规则:对 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,tf(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(IG)=2GILoG(x,y)=πσ41[12σ2x2+y2]e2σ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,)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)=I2πσ21e2σ2x2+y2I2πK2σ21e2K2σ2x2+y2Γσ,Kσ(x,y)=I(2πσ21e2σ2x2+y22πK2σ21e2K2σ2x2+y2)

这两个等式是等价的


边缘 vs Blob检测对比

特征类型检测依据数学工具
边缘二阶导数过零点LoG零交叉
Blob多边缘叠加的极值区域LoG尺度空间极值

总结

Blob检测核心要点

  1. 目的

    • 找圆形区域(亮/暗斑),尺度不变
  2. 两种方法

    • LoG:用 σ 2 ∇ 2 G \sigma^2 \nabla^2 G σ22G找极值, σ = r / 2 \sigma = r/\sqrt{2} σ=r/2 时最强
    • DoG G k σ − G σ G_{k\sigma}-G_\sigma GGσ快速近似LoG
    • LoG准但慢,DoG快(如SIFT用)
  3. 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=GGσ

http://www.xdnf.cn/news/8766.html

相关文章:

  • 进程通信-内存共享
  • 使用Java制作贪吃蛇小游戏
  • 历年福州大学保研上机真题
  • Java字符编码转换:从UTF-8到GBK的实现原理与实践
  • 【多线程】Java 实现方式及其优缺点
  • 智能语音通信新标杆——A-29P神经网络AI降噪回音消除模块深度解析
  • 【AI Study】第三天,Python基础 - 同NumPy类似的类库
  • Go语言中常见的6个设计模式
  • 2025-5-22Vue3快速上手
  • 华为OD机试真题—— 货币单位换算(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 把本地项目上传github上
  • 前端绘图基础——SVG详解
  • SprigBoot整合rocketmq-v5-client-spring-boot
  • Kafka Broker 总体工作流程
  • c++总结-04-智能指针
  • 嵌入式学习笔记 - freeRTOS 列表,链表,节点跟任务之间关系
  • 深度图数据增强方案-随机增加ROI区域的深度
  • 制造业主要管理哪些主数据范围
  • 云迹机器人底盘调用
  • 从AD9361 到 ADSY1100 ,中间的迭代产品历史
  • 软考 系统架构设计师系列知识点之杂项集萃(73)
  • 【MPC控制 - 从ACC到自动驾驶】5. 融会贯通:MPC在ACC中的优势总结与知识体系构建
  • 云手机是什么?哪个云手机便宜好用,掌派云手机流畅不卡顿
  • 前端垫片chimp
  • 贪心算法应用:Ford-Fulkerson最大流问题详解
  • 【C语言干货】free细节
  • 弦序参量(SOP)
  • 【MySQL】第10节|MySQL全局优化与Mysql 8.0新增特性详解
  • 【图像大模型】ControlNet:深度条件控制的生成模型架构解析
  • 如何确定是不是一个bug?