Machine Vision Technology:Lecture3 Edge detection | Fitting

Machine Vision Technology:Lecture3 Edge detection | Fitting

    • Finite difference filters有限差分滤波器
    • Effects of noise噪声对边缘检测影响
    • Derivative theorem of convolution卷积的导数定理
    • Derivative of Gaussian filter高斯滤波器的导数
    • Smoothing vs. derivative filters平滑滤波器与导数滤波器
    • Canny edge detector
    • Fitting拟合
    • Least squares line fitting最小二乘直线拟合

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


Finite difference filters有限差分滤波器

还有其他近似的导数滤波器:
在这里插入图片描述

对于 Sobel 算子:

[ − 1 0 1 − 2 0 2 − 1 0 1 ] = [ 1 2 1 ] [ − 1 0 1 ] = A B \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 \\ 2 \\ 1 \\ \end{bmatrix} \begin{bmatrix} -1 & 0 & 1 \\ \end{bmatrix} = A B 121000121 = 121 [101]=AB

可以发现Sobel算子先对图像使用 B B B 进行卷积:求取图像边缘,然后使用 A A A 进行卷积:高斯平滑(高斯核的近似值)。

总之:提取边缘、高斯平滑。


此外,对于Roberts算子, M x M_x Mx 提取的是 135度方向的边,在边中像素差距不大,边的两边像素差距大。同理 M y M_y My 提取的是 45度方向的边。

Effects of noise噪声对边缘检测影响

考虑一个真实的图像 f ( x ) f(x) f(x),有很大的噪声干扰:
在这里插入图片描述

使用边缘滤波器进行卷积 d d x f ( x ) \frac{d}{dx}f(x) dxdf(x)

在这里插入图片描述

由于噪声影响太大,一阶导数的极值点有很多,便很难找到边缘。于是便有下面先平滑去噪、再边缘检测。

使用高斯 g g g 滤波器去噪:

在这里插入图片描述

这时,边缘在一阶导的极值点处。

Derivative theorem of convolution卷积的导数定理

  • 因为微分是卷积,卷积具有结合律Differentiation is convolution, and convolution is associative。

这样便有如下公式:
d d x ( f ∗ g ) = f ∗ d d x g \frac{d}{dx} (f*g) = f * \frac{d}{dx}g dxd(fg)=fdxdg

在这里插入图片描述

Derivative of Gaussian filter高斯滤波器的导数

高斯函数的一阶导数不可分离。

在这里插入图片描述

白色表示权重越高,黑色表示负的权值绝对值越大。

  • Scale of Gaussian derivative filter高斯导数滤波器的大小对图像提取边缘的效果

高斯一阶导的方差可以改变高斯导数滤波器的大小。

在这里插入图片描述

1pixel可以看到斑马的胡须细节,而7pixels变得模糊了便看不到这些细节。

去除了噪声但模糊了边缘。

Smoothing vs. derivative filters平滑滤波器与导数滤波器

在这里插入图片描述

平滑滤波器:平滑去噪

  • 高斯滤波器能够去除高频成分,是低通滤波器。
  • 平滑滤波器的值没有负的。
  • 平滑滤波器的值加和为1。不改变图像的强度。

在这里插入图片描述

导数滤波器:边缘提取

  • 高斯导数滤波器:等价于先平滑去噪,再微分求边缘。
  • 导数滤波器的值可以是负的。
  • 导数滤波器的值求和为0。
  • 高对比度处的高绝对值。High absolute value at points of high contrast

Canny edge detector

  • 原始图像:

在这里插入图片描述

  • norm of the gradient:梯度的L2范数

∣ ∣ ∇ f ∣ ∣ = ( ∂ f ∂ x ) 2 + ( ∂ f ∂ y ) 2 || \nabla f || = \sqrt{(\frac{\partial f}{\partial x})^2 + (\frac{\partial f}{\partial y})^2} ∣∣∇f∣∣=(xf)2+(yf)2

对原图进行卷积操作:使用x方向的卷积模版求x方向的导数,使用y方向的卷积模版求y方向的导数。

然后求L2范数得到如下边缘强度的图:

在这里插入图片描述

  • 使用阈值thresholding对边缘强度低的进行过滤。

在这里插入图片描述

上面过程产生的问题:边缘太厚:如上图中的肩膀处。

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

如何将这些厚实的区域梯度变成曲线?How to turn these thick regions of the gradient into curves?

  • 非极大值抑制Non-maximum suppression:用于消除边缘检测中的冗余边缘信息,只保留最具代表性的边缘。

检查像素是否沿渐变方向是局部最大值,选择沿边缘宽度的单个最大值。

在这里插入图片描述
在这里插入图片描述
在边上的某一点,沿着该点的梯度方向(与边的方向垂直),寻找左右两个邻居像素点,如对上面的q点,找到梯度方向的两个点r和p,如果q比r与q都大,则保留q点,如果q比r与q都小,则q剔除不保留。

在这里插入图片描述

上面的过程中还有个问题就是Lena的下巴的边缘消失了。产生的原因是上面使用thresholding阈值设置太高了。但如果阈值设置的太低,一些伪边就会产生。为此便有下面的双门限法:

  • Hysteresis thresholding滞后阈值法:使用高阈值提取出强边缘、然后使用低阈值会产生许多弱边缘,此时根据噪声边缘不会与强边缘有连接关系的假设,便可以剔除一些噪声边。

在这里插入图片描述

原始图像:

在这里插入图片描述

high threshold:提取强边缘。高门限结果:

在这里插入图片描述

low threshold:提取出弱边缘。低门限结果:

在这里插入图片描述

hysteresis threshold:滞后阈值法。双门限法:

在这里插入图片描述

Canny edge detector:

  • 1.使用高斯导数滤波器处理图像。去噪、提取边缘。
  • 2.求梯度的大小和方向Find magnitude and orientation of gradient:非极大值抑制使用。
  • 3.非极大值抑制Non-maximum suppression:使边缘的厚度下降到单个像素的宽度。粗边细化。
  • 4.链接和滞后阈值法Linking and thresholding (hysteresis):定义两个阈值low and high,使用高阈值开始边缘曲线,使用低阈值继续边缘曲线
edge(image, ‘canny’); # matlab

Fitting拟合

前面我们能够检测出边缘,但边缘表示的信息我们不知道,我们不知道是不是圆形、汽车的形状等等。

我们希望通过根据简单模型对多个特征进行分组,从而形成一个更高级别、更紧凑的图像中特征的表示。

拟合:选择一个参数模型来表示一组特征Choose a parametric model to represent a set of features

在这里插入图片描述

拟合面临的问题:

  • 测量特征位置中的噪声Noise in the measured feature locations
  • 无关外部数据:杂乱(异常值),多条线Extraneous data: clutter (outliers), multiple lines
  • 缺失数据:遮蔽区域Missing data: occlusions

在这里插入图片描述


Overview概述:

  • 1.如果我们知道哪些点属于这条直线,我们如何找到“最佳”线路参数?最小二乘法Least squares

找到了属于这条线上的点,拟合这条线,使用最小二乘法。

  • 2.如果有异常值怎么办?抗差拟合Robust fitting, RANSAC

这些点中有一些噪声点。噪声点少时使用Robust fitting,噪声点多时使用RANSAC。

  • 3.如果有很多条线呢?投票方式:RANSAC、Hough变换Voting methods: RANSAC, Hough transform

有很多条线,拟合一条线时,其余的点都是噪声点。噪声点比较多使用RANSAC方法,或者使用霍夫变换。

  • 4.如果我们甚至不确定这是一条线呢?Model selection

不知道图形的数学方程,如汽车边缘。可以使用Snake蛇形模型方法。

Least squares line fitting最小二乘直线拟合

在这里插入图片描述

Normal equations正规方程法。

上面是垂直Vertical最小二乘法,使用点到直线的垂直距离。会有下面问题:

  • 没有旋转不变性Not rotation-invariant。
  • 对于垂直线完全无效Fails completely for vertical lines。

Total lease squares 全最小二乘:最小化点到直线的距离。

Unit normal单位法向量: ( a , b ) a 2 + b 2 = 1 (a,b) \qquad \sqrt{a^2 + b^2}=1 (a,b)a2+b2 =1

在这里插入图片描述

对d求导,令导数等于0得到a和b表示的d,然后带入使用矩阵求:

在这里插入图片描述

最后等价于求 ( U T U ) N = 0 (U^T U)N=0 (UTU)N=0 N N N 的解,可以看成线性方程组的解,也可以看做是求 U T U U^TU UTU 的特征值0对应的特征向量 N N N

在这里插入图片描述

其中称 U T U U^TU UTU 为二阶矩矩阵second moment matrix。

在这里插入图片描述

上图中,直线 a x + b y = d ax + by = d ax+by=d 是我们要寻找的直线,单位法向量为 N = ( a , b ) N=(a,b) N=(a,b) ,带入 ( 0 , 0 ) (0,0) (0,0) 点,则 d d d 为零点到直线的距离。 ( x ˉ , y ˉ ) (\bar{x},\bar{y}) (xˉ,yˉ) 是直线上的点,则 U N UN UN 表示点在单位法向量上的投影,即求点在单位法向量上投影的和的最小值满足的 N ( a , b ) N(a,b) N(a,b)


使用概率的方式理解:

噪声点对直线的偏移服从均值为0,标准差为 σ \sigma σ 的正态分布。

在这里插入图片描述

由于要拟合的各点独立同分布iid于正态分布,利用极大似然估计,已经发生的事件概率最大化,再求对数似然估计:

在这里插入图片描述

最大化对数似然估计,等价于最小化:
∑ i = 1 n ( a x i + b y i − d ) 2 \sum_{i=1}^{n}(ax_i + by_i -d)^2 i=1n(axi+byid)2
这便转换为了上面的全最小二乘。


使用最小二乘拟合红点:

在这里插入图片描述

最小二乘与离群值(异常点)拟合:受外点影响较大。

在这里插入图片描述

使用下面的鲁棒最小二乘法。


Robust estimators稳健估计:

定义Robust function鲁棒函数 ρ \rho ρ
ρ ( u ; σ ) = u 2 σ 2 + u 2 \rho(u;\sigma) = \frac{u^2}{\sigma^2 + u^2} ρ(u;σ)=σ2+u2u2
函数图像如下:其中水平方向为 u u u σ \sigma σ 为已知参数。

在这里插入图片描述

y = x 2 y=x^2 y=x2 作为对比。

u u u 较小时,近似等价于 u u u 的平方, σ \sigma σ 越小这种近似越明显。 u u u 较大时,趋近于1。

针对上面的问题,此时可以把 u u u 看做点到直线的距离 r i ( x i , θ ) r_i(x_i,\theta) ri(xi,θ),于是最小二乘改进为最小化:
∑ i = 1 n ρ ( r i ( x i , θ ) ; σ ) \sum_{i=1}^{n} \rho(r_i(x_i, \theta) ; \sigma) i=1nρ(ri(xi,θ);σ)
σ \sigma σ 为0.1时, u u u 很小就可饱和,超过 u u u 之后的点就不用管了。 σ \sigma σ 可以形象理解为控制 u u u 超过多少以后的点不用管了。 σ \sigma σ 越小,点到直线的距离很小时该点才可以作为拟合点。 σ \sigma σ 越大,点到直线的距离大一点也可以作为拟合点。

选择的 σ \sigma σ 刚刚好just right,优化的结果异常值的影响被最小化

在这里插入图片描述

选择的 σ \sigma σ 太小too small:每个点的误差值几乎相同,拟合很差。

在这里插入图片描述

选择的 σ \sigma σ 太大too large:和最小二乘差不多。

在这里插入图片描述

Robust estimations:Details

  • 鲁棒拟合是一个非线性优化问题,必须通过迭代求解。
  • 最小二乘法求出的(a,b,d)参数可用于初始化。
  • σ \sigma σ 的选择:approx. 1.5 times median residual大约1.5倍平均残差 u u u

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2、设计模式之单例模式详解(Singleton)

单例模式详解 一、什么是单例模式 单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建者模式,它提供了一种访问对象的最佳方式。 这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个…

后端系统开发之——创建SpringBoot工程

原文地址:后端框架系统开发之——创建SpringBoot工程 - Pleasure的博客 下面是正文内容: 前言 现在的市场环境,如果你单单只是作为前端工程师或者是后端工程师,在开发Web应用的时候都需要去读取企业提供的接口文档。而当你前后端…

【ARM】UBL本地服务器离线激活license

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 UBL本地服务器离线激活license。 2、 问题场景 解决有用户外出时激活 license。 3、软硬件环境 1)、软件版本:MDK5.39 2)、电脑环境:Ubuntu 20.04 LTS 3&…

NCV4275CDT50RKG稳压器芯片中文资料规格书PDF数据手册引脚图图片价格功能

产品概述: NCV4275C 是一款低漏稳压器,可用于严酷汽车环境。它包括了较宽的运行温度范围和输出电压范围。输出调节为 5.0 V 或 3.3 V,额定输出电流为 450 mA。它还提供过电流保护、超温保护和可编程微处理器重置等多种功能。NCV4275C 采用 D…

linux ffmpeg编译

下载源码 https://ffmpeg.org/ csdn下载源码包 不想编译可以直接下载使用静态版本 https://ffmpeg.org/download.html https://johnvansickle.com/ffmpeg/ 根据cpu类型,下载解压后就可以直接使用了。 linux编译 安装底层依赖 yum install gcc yum isntall …

机器学习模型—CatBoost

机器学习模型—CatBoost 作为俄罗斯科技公司Yandex推出的开源机器学习库,CatBoost可以说是当前Gradient Boosting算法发展的新里程碑。相较于广为人知的XGBoost,CatBoost在处理类别特征、纵向样本采样和有序训练数据方面做出了创新性的改进,展现了卓越的性能。 我们经常遇到包…

接口测试和功能测试有什么区别

本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分&#xff1…

vue3项目随笔1

1,Eslint Prettier 报错情况: 解决办法: (1)下载Prettier - code formatter (2)配置setting.json文件 文件 -> 首选项 -> 设置 -> 用户 -> Eslint "editor.defaultFormatter":…

浅易理解:非极大抑制NMS

什么是非极大抑制NMS 非极大值抑制(Non-Maximum Suppression,简称NMS)是一种在计算机视觉和图像处理领域中广泛使用的后处理技术,特别是在目标检测任务中。它的主要目的是解决目标检测过程中出现的重复检测问题,即对于…

nuxtjs 如何通过ecosystem.config.js配置pm2?

在 Nuxt.js 项目中,您可以通过 ecosystem.config.js 文件来配置 PM2,以便使用 PM2 来管理 Nuxt.js 应用的进程。ecosystem.config.js 是一个特殊的配置文件,它允许您定义应用的各种属性,如脚本路径、环境变量、日志设置等。 下面…

mysql笔记:14. 权限管理

文章目录 MySQL权限授予权限查看权限撤销权限权限生效机制访问控制的实现 在实际生产中,为了保证数据的安全,数据库管理人员需要为不同的操作人员分配不同的权限,限制登录MySQL服务器的用户只能在其权限范围内操作。同时管理员还可以根据不同…

金三银四,风控建模面试高频问题大全

随着春天的到来,招聘市场的“金三银四”也悄然而至。公众号的小伙伴问我有没有面试相关指导课程,上完课后,把整理的部分材料通过文章分享给更多有需要的朋友。预祝大家顺利获得心仪的职位。 文章目录 一、建模经验高频面试问题1.简单描述风控建模流程:2.请谈谈在过去风控建…

药用植物与生药学试卷

1【单选题】以下不属于植物特有的细胞器是 C A、细胞壁 B、叶绿体 C、高尔基体 D、液泡 2【单选题】四强雄蕊的雄蕊数目是 A A、6个 B、4 C、2个 D、8个 3【单选题】根类药材采收时期通常是 A A、秋季至次年早春植株开始生长时期 B、开花前或果实成熟前 C、花开放…

【物联网】Modbus 协议简介

Modbus 协议简介 QingHub设计器在设计物联网数据采集时不可避免的需要针对Modbus协议的设备做相关数据采集,这里就我们的实际项目经验分享Modbus协议 你可以通过QingHub作业直接体验试用,也可以根据手册开发相应的代码块。 qinghub项目已经全面开源。 …

认清趋势的力量!北大请摆摊鹅姨做演讲!阿伟告白失败,AI有资格做僚机?——早读(逆天打工人爬取热门微信文章解读)

趋势的力量,AWSL 引言Python 代码第一篇 人民日报 【夜读】最好的伯乐,是努力的自己第二篇 来啦新闻早班车要闻社会政策 结尾 “识时务者为俊杰,通机变者为英豪” 生活中,我们如骑行者穿越车水马龙 察觉人潮车流的趋势 不论体能优…

DCAI:Data-Centric AI 以数据为中心的AI

1. 什么是DCAI? 1.1. 当下的研究背景 想象当中的数据集:通常是干净且精选的(例如猫或狗的图片)。 猫就是猫,狗就是狗 实际现实生活中的数据集:非常混乱~ https://labelerrors.com/ 比如这个网站里提供了一些人们常用的开源数据集…

产品推荐 - ALINX XILINX FPGA开发板 Artix-7 XC7A100T-2FGG484I

01开发板介绍 此款开发板采用核心板扩展板的模式,方便用户对核心板的二次开发利用。FPGA使用的是Xilinx公司的ARTIX-7系列的芯片,型号为XC7A100T-2FGG484I。在核心板使用了2片MICRON公司的MT41J256M16HA-125 DDR3芯片,组合成32bit的数据总线…

栈的应用——括号匹配

用栈实现 1、初始化一个栈,用来存左括号 2、遍历扫描括号字符串 如果遇到左括号,无脑入栈如果遇到右括号,此时栈空返回false,不空的话进行括号匹配。匹配不成功返回false,匹配成功将栈顶的那个左括号出栈。 遍历完之后…

MongoDB聚合运算符:$firstN

文章目录 语法使用空值或缺失值的处理 f i r s t N 与 firstN与 firstN与topN对比关于窗口功能和聚合表达式的支持内存限制 举例查找单场比赛的前三名运动员得分查找多场比赛中前三名运动员的得分 s o r t 与 sort与 sort与firstN一起使用根据group的键计算n在聚合表达式中使用…

Git中的换行符CRLF和LF问题

目录 第一章、问题分析1.1)Git报错提示1.2)报错分析 第二章、解决方式2.1)在Windows上开发并需要与Unix或macOS上的开发人员协作2.1)在Unix或macOS开发并需要与Windows上的开发人员协作2.3)不需要与其他操作系统的开发…