深度学习笔记(21) 边缘检测


1. 边缘检测简介

在计算机视觉中使用的比较多的就是卷积神经网络
卷积运算是卷积神经网络最基本的组成部分
边缘检测相对比较容易理解,就把它作为卷积运算的入门样例

在人脸识别中:

在这里插入图片描述
神经网络的前几层有可能是检测边缘的
后面的层有可能检测到物体的部分区域
更靠后的一些层可能检测到完整的物体
这个例子中就是人脸


2. 过滤器

在这里插入图片描述

给了上面这样一张图片,让电脑去搞清楚这张照片里有什么物体
可能做的第一件事是检测图片中的垂直边缘
比如说,在这张图片中的栏杆就对应垂直线
与此同时,这些行人的轮廓线某种程度上也是垂线
这些线是垂直边缘检测器的输出

同样,可能也想检测水平边缘
比如说这些栏杆就是很明显的水平线

在这里插入图片描述
看一个例子,这是一个6×6的灰度图像
因为是灰度图像,所以它是6×6×1的矩阵
而不是6×6×3的,因为没有RGB三通道

为了检测图像中的垂直边缘,可以构造一个3×3矩阵
在共用习惯中,在卷积神经网络的术语中,它被称为过滤器
构造一个3×3的过滤器,像这样在这里插入图片描述
在论文它有时候会被称为 ,而不是过滤器
对这个6×6的图像进行卷积运算,卷积运算用 “ * ” 来表示
用3×3的过滤器对其进行卷积

这个卷积运算的输出将会是一个4×4的矩阵,可以将它看成一个4×4的图像
为了计算第一个元素,在4×4左上角的那个元素,使用3×3的过滤器,将其覆盖在输入图像
然后进行元素乘法(element-wise products)运算,所以

在这里插入图片描述
然后将该矩阵每个元素相加得到最左上角的元素
即3+1+2+0+0+0+(-1)+(-8)+(-2)=-5

一步一步向右移动,到达边缘时,移动下一行
重新从左向右移动,得到下图

在这里插入图片描述
为了更清楚一点,这个 -16 是通过底部右下角的3×3区域得到的


3. 垂直和水平边缘检测

来看另外一个例子,了解垂直边缘检测是怎么做到的

在这里插入图片描述
这是一个简单的 6×6 图像,左边的一半是10,右边一般是0
如果把它当成一个图片,左边像素值10是比较亮的像素值,右边像素值0比较暗

有一个特别明显的垂直边缘在图像中间
这条垂直线是从黑到白的过渡线,或者从白色到深色

这里的维数似乎有点不正确,检测到的边缘太粗了
因为在这个例子中,图片太小了
如果用一个1000×1000的图像,而不是6×6的图片
会发现其会很好地检测出图像中的垂直边缘

在这个例子中,在输出图像中间的亮处
表示在图像中间有一个特别明显的垂直边缘

从垂直边缘检测中可以得到的启发是,因为使用3×3的矩阵(过滤器)
所以垂直边缘是一个3×3的区域
左边是明亮的像素,中间的并不需要考虑,右边是深色像素

在这个6×6图像的中间部分,明亮的像素在左边,深色的像素在右边
就被视为一个垂直边缘
卷积运算提供了一个方便的方法来发现图像中的垂直边缘

相似的,水平边缘过滤器也是一个3×3的区域,它的上边相对较亮,而下方相对较暗

在这里插入图片描述
总而言之,通过使用不同的过滤器,可以找出垂直的或是水平的边缘


4. 合适的过滤器

在历史上,在计算机视觉的文献中,曾公平地争论过怎样的数字组合才是最好的

所以还可以使用Sobel的过滤器:在这里插入图片描述
还有一种叫做Scharr的过滤器:
在这里插入图片描述
它的优点在于增加了中间一行元素的权重,这使得结果的鲁棒性会更高一些
它有着和之前完全不同的特性,实际也是一种垂直边缘检测
如果将其翻转90度,就能得到对应水平边缘检测

当真正想去检测出复杂图像的边缘
不一定要去使用那些研究者们所选择的这九个数字,但可以从中获益匪浅

把这矩阵中的9个数字当成9个参数,并且在之后可以学习使用反向传播算法
其目标就是去理解这9个参数
将矩阵的所有数字都设置为参数,通过数据反馈,让神经网络自动去学习它们
会发现神经网络可以学习一些低级的特征,例如这些边缘的特征

尽管比起那些研究者们要更费劲一些
但确实可以动手写出这些东西
不过构成这些计算的基础依然是卷积运算

使得反向传播算法能够让神经网络学习任何它所需要的3×3的过滤器
并在整幅图片上去应用它
去输出这些,任何它所检测到的特征
不管是垂直的边缘,水平的边缘,还有其他奇怪角度的边缘
所以这种将这9个数字当成参数的思想,已经成为计算机视觉中最为有效的思想之一


参考:

《神经网络和深度学习》视频课程


相关推荐:

深度学习笔记(20) 端到端学习
深度学习笔记(19) 多任务学习
深度学习笔记(18) 迁移学习
深度学习笔记(17) 误差分析(二)
深度学习笔记(16) 误差分析(一)


谢谢!

  • 10
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氢键H-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值