对计算机视觉与深度学习有所了解的同学应该知道图像卷积可以识别出物体,在神经网络的前几层,识别出物体最基础的例如垂直或是水平的边缘。在之后的隐藏层慢慢可以识别出物体的部分,直到最后几层可以识别出完整的物体。

本篇文章主要介绍卷积层为何可以检测出这些。

先介绍一个概念,过滤器:


这是一个3*3的过滤器,是一个矩阵,数值如上所示,一会介绍这是干嘛用的。

假设我们有一个6*6的灰度图像:


把这个图像与过滤器进行卷积运算,卷积运算在此处用“*”表示。


我们看一下发生了什么事,把过滤器最准图像左上方3*3的范围,逐一相乘并相加,得到-5。

同理,将过滤器右移进行相同操作,再下移,直到过滤器对准图像右下角最后一格。依次运算得到一个4*4的矩阵。

OK,了解了过滤器以及卷积运算后,让我们看看为何过滤器能检测物体边缘:

举一个最简单的例子:


这张图片如上所示,左半边全是白的,右半边全是灰的,过滤器还是用之前那个,把他们进行卷积:


可以看到,最终得到的结果中间是一段白色,两边为灰色,于是垂直边缘被找到了。为什么呢?因为在6*6图像中红框标出来的部分,也就是图像中的分界线所在部分,与过滤器进行卷积,结果是30。而在不是分界线的所有部分进行卷积,结果都为0.

在这个图中,白色的分界线很粗,那是因为6*6的图像实在太小了,若是换成1000*1000的图像,我们会发现在最终结果中,分界线不粗且很明显。

这就是检测物体垂直边缘的例子,水平边缘的话只需将过滤器旋转90度。
---------------------  
作者:超屌的温jay  
来源:CSDN  
原文:https://blog.csdn.net/wenqiwenqi123/article/details/79248626  
版权声明:本文为博主原创文章,转载请附上博文链接!

深度学习--简述卷积层如何检测物体边缘原理相关推荐

  1. Ng深度学习笔记-卷积神经网络-目标检测

    目标定位 符号表示: 图片左上角的坐标为(0,0)(0,0)(0,0),右下角标记为(1,1)(1,1)(1,1). 红色方框的中心点(bxb_{x}bx​,byb_{y}by​),边界框的高度为bh ...

  2. 深度学习:卷积层的实现

    文章目录 卷积层的数据shape和普通层的数据shape差别: 卷积层实现 实现池化层 实现 CNN 中的特殊层结构 实现 LayerFactory 网络结构 卷积层的数据shape和普通层的数据sh ...

  3. 深度学习之卷积神经网络(11)卷积层变种

    深度学习之卷积神经网络(11)卷积层变种 1. 空洞卷积 2. 转置卷积 矩阵角度 转置卷积实现 3. 分离卷积 卷积神经网络的研究产生了各种各样优秀的网络模型,还提出了各种卷积层的变种,本节将重点介 ...

  4. Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集

    Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集 一.相关介绍 二.下载数据集 三.代码示例 1.导入keras库,并显示版本号 2.构建网络 3.数据预处理 4.使用数据增强 四.使用 ...

  5. 深度学习之卷积神经网络(8)BatchNorm层

    深度学习之卷积神经网络(8)BatchNorm层 BatchNorm层概念 BatchNorm层实现 1. 向前传播 2. 反向更新 3. BN层实现 4. 完整代码 卷积神经网络的出现,网络参数量大 ...

  6. 深度学习之卷积神经网络(7)池化层

    深度学习之卷积神经网络(7)池化层 在卷积层中,可以通过调节步长参数s实现特征图的高宽成倍缩小,从而降低了网络的参数量.实际上,处理通过设置步长,还有一种专门的网络层可以实现尺寸缩减功能,它就是这里要 ...

  7. 深度学习之卷积神经网络(3)卷积层实现

    深度学习之卷积神经网络(3)卷积层实现 1. 自定义权值 2. 卷积层类  在TensorFlow中,既可以通过自定义权值的底层实现方式搭建神经网络,也可以直接调用现成的卷积层类的高层方式快速搭建复杂 ...

  8. [十三]深度学习Pytorch-卷积层(1D/2D/3D卷积、卷积nn.Conv2d、转置卷积nn.ConvTranspose)

    0. 往期内容 [一]深度学习Pytorch-张量定义与张量创建 [二]深度学习Pytorch-张量的操作:拼接.切分.索引和变换 [三]深度学习Pytorch-张量数学运算 [四]深度学习Pytor ...

  9. 基于深度学习识别模型的缺陷检测

    根据读者反映,咱们的这个PCB素材设置的不对,应该是没有漆,铜线等等,应该是黑白的.额,具体我也知道,但没去过工厂,实在很难获得这些素材... 所以就当是一次瑕疵识别的实践,具体的数据集你可以自己定义 ...

最新文章

  1. libev源码解析——I/O模型
  2. 今天准备正式开博了!专注于Silverlight!
  3. 我爸和在我们小区里的一位老大爷
  4. php控制器无限极分类,thinkphp无限极分类实现方法
  5. Python二十个小技巧
  6. Consul集群搭建
  7. JS调用后台方法大全
  8. 域名转让代码_互联网域名转让协议(中英)
  9. delphi 如何判断 socket 连接成功_Linux下的C++ socket编程实例
  10. 传智播客到底在坚持什么?
  11. Java-mail发送邮件
  12. 解读加多宝的营销案例分析
  13. Bootstrap 格栅 row-cols-X row-cols-3 row-cols-5
  14. Linux创建用户密码修改
  15. 互联网日报 | 小米市值突破6600亿港元;水滴筹上线“水滴行者”风控系统;2020世界互联网大会开幕...
  16. [BT_Books]《无线蓝牙技术深入探讨》笔记
  17. Qt实现屏幕中间显示小点,打游戏瞬狙,你还在屏幕中间贴红点吗?
  18. 制造企业生产管理创新理念
  19. 语音、图像和视频数据的格式
  20. 多重盒子嵌套下,子盒子撑开父盒子,父盒子宽度随子盒子内容自适应

热门文章

  1. boost::random模块使用多精度类型测试所有与浮点相关的生成器和分布的测试程序
  2. boost::math::quadrature::exp_sinh用法的测试程序
  3. boost::math::quadrature::gauss用法的测试程序
  4. boost::filtered_graph用法的测试程序
  5. boost::local_time模块custom_time_zone 和 posix_time_zone 的简单示例
  6. Boost:测试使用大小为0的类array <>特化
  7. OpenCV转换PyTorch分类模型并使用OpenCV C ++启动
  8. Qt Creator与调试器进行交互
  9. C++rat maze老鼠迷宫算法(附完整源码)
  10. C++不同排序算法的比较(附完整源码)