自动驾驶TPM技术杂谈 ———— 边缘检测

news2024/11/23 21:27:08

文章目录

  • 介绍
  • 边缘检测与微分运算
  • 离散信号的差分滤波
    • Robert算子
    • Prewitt算子
    • Sobel算子
    • 拉普拉斯算子

介绍

 计算机视觉(Computer Vision,CV)是一门使用计算机模拟生物视觉的学科,目的是使用计算机代替人眼实现对目标的识别、分类、跟踪和场景理解。计算机视觉是人工智能的重要分支,也是人工智能最为活跃的研究方向之一。
 人类的感知信息绝大部分是通过视觉获取的。周围物体在可见光的照射下,在人眼的视网膜上形成图像,有感光细胞转化成神经脉冲信号,经神经纤维传入大脑皮层进行处理和理解。视觉,不仅指对光信号的感受,还包括了对视觉信息的获取、传输、处理、存储和理解的全过程。 根据下图的视觉通路,我们可以看到眼、外侧膝状核与视皮层构成对视觉信息处理的三个层次结构。不同区域的神经细胞具有不同的功能。视觉通路上各层次的神经细胞从简单到复杂,它们所处理的信息分别对应于视网膜上的一个局部区域。层次越深入,该区域就越大,这就是感受野(Receptive Field)和感受野等级假设。
在这里插入图片描述
 视觉传导通路由三级神经元组成。第一级神经元未视网膜的双极细胞,第二级神经元是节细胞,第三级神经元的胞体在外侧膝状核内。其中第一级神经元中,视网膜上的神经节细胞(Gauglion Cell,GC)将感光细胞上接受的光信号转换成电信号,再由他的轴突传出。但每一个GC只能接收视网膜上一个局部区域信号,该区域是GC的感受野,其对光信号的转换作用如下:
   (1)对空间亮度变化敏感的感受野,形状可用两个同心圆标识。其同心圆形状的感受野按其对光信号的转换作用可分为中心兴奋区、周边抑制区组成的on-中心型以及中心抑制、周边兴奋区组成的off-中心型。当视网膜上的光信号为一边亮一边暗的具有一定对比度的信号时,只有当亮暗边缘线过同心圆中心时,GC的输出与感受野收到均匀光照时一样为平均输出。而当边缘线位于同心圆其他位置时,输出分别高于或低于该平均输出。如将输出看作实际输出减去平均输出,则由GC的输出与感受野位置可以检测亮暗边缘线,这也是边缘抽取的生物学基础。
   (2)除了GC细胞(x型细胞)外,还存在一种y型细胞,它相应对亮度空间变化不敏感,而对时间变化敏感。即当感受野圆形区域内的亮度随时间变化时,GC输出会增大或减少,y性细胞可以划分为on型或off型。这种对局部亮度随时间变化敏感的性质,是对物体运动分析的基础。


 上述的x/y型细胞是视觉信息处理的中视觉传导通路第一级神经元。对于更高层次,包括外侧膝状核细胞与初级视皮层,也是存在相似的性质。感受野的等级假设与局部性质主要支持视觉信息处理的自下而上的额分层次串行处理性质。但视觉系统的任务不是单一的,它要识别物体的形状和颜色,要得到三维物体的深度信息,要检测物体的方位与运动参数。另外,物体的空间与时间频率性质也有很大差异。神经生物学的研究表明,视觉通路的各层次上存在着基本互相独立的并行通道,分别完成不同的视觉任务,具体通道如下:
   (1)x、y型通道 —— 由于x、y型感受野的不同,x型通道传递高空间分辨率的、时间上变化的信息与颜色信息;y型通道传递低空间分辨率的、高时间变化率的信息。
   (2)空间与时间频率通道 —— x、y型细胞分别对具有空间频率或时间频率的信息敏感。心理物理学实验证明,外侧膝状核上的某一个神经细胞并不对所有频率的信息敏感,而是对某一频率的信息呈现较强的反应,在视觉皮层也发现了相似的证据。这些证据可以表明视觉通路中存在处理不同频率信号的独立通道。
   (3)颜色信息通道 —— 视网膜存在不同的光感受细胞,即锥状细胞与杆状细胞,其中杆状细胞对颜色不敏感,而锥状细胞又分为对不同光谱(红、绿、蓝)敏感的三种细胞,对外侧膝状核与视觉皮层17区的分析也表明,他们都存在专门的区域从事颜色信息的处理与识别。
   (4)左右眼信息通道与立体视觉 —— 从视觉通路的图片中,可以看出眼睛、外侧膝状核与视皮层都存在左右侧。分析表明,左右两侧的神经细胞分别处理来自左右半侧的信息。也就是说,每一个眼睛的左右侧视野信息是交叉投射到左右侧外侧膝状核与视皮层。视皮层处理来自两眼的信息,其得到两眼视察信息,即立体视觉的基础。只有比较两眼的信息,才能使我们有深度感。
   (5)空间方位信息通道 —— 早期对视觉通路信息处理的研究认为,视皮层细胞对空间几何元素的方位敏感。阮迪云等对外侧膝状核细胞的研究表明,这种方位敏感也存在于外侧膝状核细胞。
   (1)视皮层对形状、颜色、运动与深度信息的并行处理 —— 对视皮层17区至更高层次的研究表明。对物体的形状、颜色、运动与深度等不同视觉信息的处理已明显分离开。


 边缘检测使图像处理和计算机视觉中的最基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括深度上的不连续、表面方向的不连续、物质属性变化和场景照明变化。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

边缘检测与微分运算

 对于二维图像而言,边缘一般发生在一阶微分的最大值处或者二阶微分的过零点处。设二维图像信号为f(x, y),这里(x, y)表示像素点的位置。则其一阶导数为:
在这里插入图片描述
 而对于二阶导数,一般采用激光一种各向同性的二阶微分算子,即拉普拉斯算子:
在这里插入图片描述
 由于实际信号常存在噪声,如果只是按照一阶和二阶微分的最大值和过零点检测边缘点,会由于噪声的存在出现很多的假边缘点。因此,在实际运用过程中需要优先去除噪声。噪声信号通常为高频信号,可以通过对其进行平滑滤波,去除噪声。平滑滤波器表示为h(x, y),滤波过程实际是在空域上的一个卷积运算。具体如下
在这里插入图片描述
 将一阶和二阶微分操作和滤波去噪的过程结合,并利用卷积操作的性质,可以分别得到下述表达式:
在这里插入图片描述
 则可以线计算出平滑滤波器的一阶微分和二阶微分,而后和图像本身做一次卷积操作即可。平滑滤波器一般选择为高斯滤波器,其二维表示及其一阶和二阶微分如下所示:
在这里插入图片描述

在这里插入图片描述

离散信号的差分滤波

 实际存储与计算机内的信号为离散信号,离散卷积运算可以看作算子运算,即将下述窗口算子沿信号移动,在每一点滤波后的值等于窗口内信号的加权平均。常用的表示微分操作的算子包括Robert算子,Prewitt算子,Sobel算子和拉普拉斯算子。

Robert算子

 图示算子分别为两个45°方向的一阶差分滤波器,成为Robert算子。用它们对图像滤波,可以计算沿两个45°方向的一阶差分。
在这里插入图片描述

Prewitt算子

 左边为y方向一阶差分与x方向的平滑滤波,右边为x方向一阶差分和y方向的平滑滤波。
在这里插入图片描述

Sobel算子

 左边为y方向一阶差分与x方向的平滑滤波,右边为x方向一阶差分和y方向的平滑滤波。与Prewitt算子在平滑部分的加权值存在差异。
在这里插入图片描述

拉普拉斯算子

 二阶差分滤波器,也称为拉普拉斯算子,该算子不包含平滑滤波器。
在这里插入图片描述
 上述滤波器窗口一般都是3*3滤波器,也可以用σ较大的高斯函数的差分或者其他平滑函数差分设计较大窗口的差分算子,以有效抑制噪声。但窗口越大,计算复杂性越高。

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

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

相关文章

3.2. 数学类(Math、BigInteger、BigDecimal)

1. Math类 Math类提供了一些基本的数学函数,如求平方根、绝对值、三角函数等。它是一个final类,并且所有的方法都是static的,因此无需创建对象,直接使用类名调用方法即可。 以下是Math类的一些常用方法: abs(double…

抖音seo源码-抖音搜索源码-抖音下拉词-抖音关键词排名系统搭建

为了优化抖音平台上的内容,开发抖音关键词排名系统成为了必要的措施。该系统可以针对搜索结果和下拉词进行分析,为用户提供更准确的搜索结果。为实现这一目标,开发团队进行了大量的市场调查和用户研究。 在开发过程中,团队利用了…

mysql8+忘记密码的详细解决方法

mysql8忘记密码的详细解决方法 不同的版本,可能处理的方式不一样,这里说一下8以上的版本处理密码忘记的问题,windows系统。 一.问题: 太久没用mysql ,忘记了原先的root密码 二:解决 1.关闭mysql服务,我的…

代码随想录算法训练营第四十八天 | 力扣 198.打家劫舍, 213.打家劫舍II, 337.打家劫舍III

198.打家劫舍 题目 198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警…

word文档生成PDF文档时候自动生成书签方法

0 Preface/Foreword 在日常工作中,经常需要写技术文档,为了排版美观,一般会选择word,这样就可以生成目录。 word文件可以很方便生产PDF文档,方便分享给同事。 在阅读PDF文档时,看到有些PDF文档在左侧有一…

Kafka入门(安装和SpringBoot整合)

文章目录 一、Docker安装Kafka1. 创建网络2. 安装zookeeper3. 安装Kafka 二、Kafka介绍1. Kafka简介 三、SpringBoot整合Kafka1. 引入pom依赖2. application.propertise配置3. Hello Kafka(Producer)4. Consumer Kafka5. 带回调的生产者6. 自定义分区器7. kafka事务提交8. 指定…

如何将 O2OA (翱途) 集成到阿里钉钉

O2OA 平台拥有配套的原生开发的安卓和 IOS 移动 APP,可以以微应用的方式集成到阿里钉钉,同步钉钉的企业通讯录作为本地组织人员架构,并且可以将待办等通知直接推送到钉钉进行消息提醒。本篇主要介绍如何将 O2OA 集成到阿里钉钉实现钉钉办公。…

欧科云链(01499.HK)成格林威治经济论坛钻石级行业独家合作伙伴

5月30日讯,欧科云链控股有限公司(“欧科云链控股”,1499.HK)官宣成为全球高端经济峰会格林威治经济论坛(Greenwich Economic Forum,下称GEF论坛)的钻石级行业独家合作伙伴。该论坛将于6月15日至16日,首次在…

【维生素C语言】附录:Github 使用教学

👑 全新Python高级软件实践专栏: 一起玩蛇啊 👉 《一起玩蛇》🐍 💭 写在前面:本章我们将介绍 Git 的基本使用方法,包括注册 GitHub 账号、设置 Git、创建本地存储库、复制本地存储库、导入远程…

electron24整合vite4+vue3创建跨端桌面程序

基于Electron集成Vite4.x构建桌面端exe应用 electron24-vite4-vue3 运用最新版本electron结合vite4.x创建vue3桌面端应用程序。 // 版本信息 vite: ^4.3.2 vue: ^3.2.47 electron: ^24.4.0 electron-builder: ^23.6.0创建vitevue3项目 // 初始化项目 npm create vitelatest el…

Echarts绘制K线图,文末源码地址!

文章目录 K线图Apache Echarts绘制K线图完整源码地址 本文中仅展示部分关键代码,文末有完整源码地址,欢迎下载! K线图 K线图是一种常见的股票价格走势图表,它是用于显示股票价格变化的一种图表形式。K线图以日、周、月等周期为单…

聊聊分布式解决方案Saga模式

Saga模式 Saga模式使用一系列本地事务来提供事务管理,而一个本地事务对应一个Saga参与者,在Saga流程里面每一个本地事务只操作本地数据库,然后通过消息或事件来触发下一个本地事务,如果其中一个本地事务失败了,Saga就…

一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU)

深度学习算法之前的机器学习算法,并不需要对训练数据作概率统计上的假设;但为了让深度学习算法有更好的性能,需要满足的关键要素之一,就是:网络的输入数据服从特定的分布: 数据分布应该是零均值化的&#…

内核调试环境搭建

内核调试环境搭建 目录 经过测试好用的内核调试环境搭建过程ubuntu和linux版本 查看commit所属的内核版本查看Ubuntu版本号等信息 下载与安装内核 下载内核ubuntu更换内核手动下载并切换到指定源码用apt下载源码使用git下载对应版本 编译并安装linux内核(使用linu…

Redis自学之路—分布式锁(四)

目录 分布式锁定义 靠谱的分布式锁具备的特征 【互斥性】 【锁超时释放】 【可重入性】 【高性能和高可用】 【安全性】 Redis分布式锁方案 一、SETNX EXPIRE 二、SETNX value值是(系统时间过期时间) 三、使用Lua脚本(包含SETNXE…

【Web服务器集群】Apache网页优化

文章目录 一、Apache网页优化概述1.优化内容2.网页压缩2.1gzip概述2.2作用2.3Apache的压缩模块概述mod_gzip模块与mod_deflate模块 3.配置网页压缩功能3.1启用网页压缩功能步骤3.2具体操作步骤 4.配置网页缓存功能4.1启用网页压缩功能步骤4.2具体操作步骤 二、Apache安全优化1.…

Unity嵌入AndroidStudio(二) IL2CPP打包

首先建立Unity工程,话不多说直接上图: 导出Android工程: 得到如下文件,备用: 接下来创建安卓项目: 注意包名要和unity里面的一致,sdk版本也要一致 等待编译完成: 打开setting.grade…

2-网络初识——IP地址和端口号

目录 1.IP地址(分为IPV4(默认情况下)和IPV6) 1.1.概念 1.2.格式 1.3.特殊IP 2.端口号 2.1.概念 2.2.格式 2.3.注意事项 网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是…

SpringMVC源码分析:SpringMVC初始化(一)

一、概述 SpringMVC的初始化大概分为Spring的初始化和SpringMVC的初始化两个部分,他们之间的关系如下图。下面我将按照这个顺序进行详细介绍。 二、Spring初始化 ContextLoaderListener.contextInitialized进行容器的初始化。 继续点进去ContextLoader.initWebApp…

Redis五大数据结构的底层实现(未完成)

一)String类型:可以使用object encoding name就可以查看字符串的编码 SDS,flags的值不同,那么len和alloc所表示的值的数据范围也不同,所以flags的只是为了标识SDS头的总大小; alloc和len刚开始进行申请内存空间的时候都是相同的 S…