自动驾驶感知——图像数据处理数学方法

news2024/11/26 9:48:15

文章目录

  • 1. 二值化操作
  • 2. 卷积操作
  • 3. 均值滤波
  • 4. 高斯滤波
  • 5. 图像梯度算子
    • 5.1 Prewitt梯度算子
    • 5.2 Sobel梯度算子
    • 5.3 Laplace二阶梯度
  • 6. 边缘特征点提取算子
  • 7. 基于规则的特征点提取
  • 8. 最小二乘拟合方法
  • 9. RANSAC曲线拟合
  • 10. Hough Transform 霍夫变换
  • 11. 基于学习的特征点提取
  • 12. 神经网络的学习过程
  • 题目汇总

1. 二值化操作

    图像二值化定义:单通道图像 I I I,对其任意像素值 I ( x , y ) I(x, y) I(x,y)有:
{ I ( x , y ) = 255 , i f I ( x , y ) > = T h r e s h o l d , I ( x , y ) = 0 , e l s e . \left\{ \begin{array}{l}I(x,y) = 255,ifI(x,y) > = Threshold,\\I(x,y) = 0,else.\end{array} \right. {I(x,y)=255,ifI(x,y)>=Threshold,I(x,y)=0,else.     T h r e s h o l d Threshold Threshold的设置,一般根据经验值或可动态设置。
在这里插入图片描述
    根据彩色图像的形成原理,一般的彩色图像都是由红色(Red),绿色(Green)蓝色(Blue)三原色像素点按照一定的比例构成的RGB色彩空间图像。在OpenCV中,图像的色彩空间通常是BGR形式的,与一般情况下不同,所以需多加注意。如果需要对样品进行灰度化处理,就必须先用具体的色度值对每一种颜色进行参数的量化,以便区分。按照色度处理的惯例,通常将画面的色度值从0到255进行划分,一共包含了256个色度级别。其中,级别0和级别255分别代表了黑和白两种色彩。RGB图像数据的本质是一个三维整数矩阵,矩阵元素(0-255)

    通过实验发现,当图像中的红色,绿色,蓝色三种像素点分别按照30%,59%,11%重新分配之后,能够得到与车道线灰度特征最为相近的灰度图。根据上述论调,可以得到RGB图像和灰度图像之间转换关系,为: X = 0.30 ∗ R + 0.59 ∗ G + 0.11 ∗ B X = 0.30*R + 0.59*G + 0.11*B X=0.30R+0.59G+0.11B

2. 卷积操作

在这里插入图片描述

在这里插入图片描述

得到3通道图片的feature map

3. 均值滤波

    由归一化卷积框完成。用卷积框覆盖所有像素的平均值来代替中心元素。下式为3×3的归一化卷积框。 K = 1 9 [ 1 1 1 1 1 1 1 1 1 ] K = \frac{1}{9}\left[ {\begin{array}{ccccccccccccccc}1&1&1\\1&1&1\\1&1&1\end{array}} \right] K=91 111111111 在这里插入图片描述

4. 高斯滤波

    采用了加权滤波平均的方式对图像进行去噪,减少随机性噪声的影响。卷积核的系数采用高斯分布,框中心的值最大,其余方框内的值根据与中心元素的距离递减,构成一个高斯“小山包”。高斯滤波可以有效从图像中去除高斯噪音。
    设定卷积核边长为 2 n + 1 2n+1 2n+1时,像素 ( u , v ) (u,v) (u,v)处的灰度按下式计算 G ′ ( u , v ) = ∑ j = − n n ∑ i = − n n P ( u + i , v + j ) G ( u + i , v + j ) P N ˜ ( ( u , v ) , σ 2 ) \begin{array}{l}G'(u,v) = \sum\limits_{j = - n}^n {\sum\limits_{i = - n}^n {P(u + i,v + j)G(u + i,v + j)} } \\P\~N((u,v),{\sigma ^2})\end{array} G(u,v)=j=nni=nnP(u+i,v+j)G(u+i,v+j)PN˜((u,v),σ2)在这里插入图片描述

5. 图像梯度算子

    定义:图像函数 f ( x , y ) f(x,y) f(x,y)在点 ( x , y ) (x,y) (x,y)的梯度是一个具有大小和方向的矢量,设为 G x G_x Gx G y G_y Gy 分别表示 x x x方向和 y y y方向的梯度,这个梯度的矢量可以表示为: G = [ G x , G y ] G = [{G_x},{G_y}] G=[Gx,Gy]    梯度以及梯度的方向: E d g e _ G r a d i e n t ( G ) = G x 2 + G y 2 A n g l e ( θ ) = tan ⁡ − 1 ( G x G y ) \begin{array}{c}Edge\_Gradient(G) = \sqrt {G_x^2 + G_y^2} \\Angle(\theta ) = {\tan ^{ - 1}}(\frac{{{G_x}}}{{{G_y}}})\end{array} Edge_Gradient(G)=Gx2+Gy2 Angle(θ)=tan1(GyGx)

5.1 Prewitt梯度算子

特点:Prewitt算子利用像素点上下、左右邻点的灰度差
在这里插入图片描述
    Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

5.2 Sobel梯度算子

特点:Sobel算子认为与中心像素相邻的像素重要性更大
在这里插入图片描述    在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 。与Prewitt算子相比,Sobel算子对于象素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。

    Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

5.3 Laplace二阶梯度

特点:Laplace算子认为与二阶偏导也可以发现边缘,且旋转不变
在这里插入图片描述
    拉普拉斯算子(Laplace Operator)是n维欧几里德空间中的一个二阶微分算子,定义为梯度 (▽ f ) (▽f) f的散度 (▽ ⋅ f ) (▽·f) f。拉普拉斯算子也可以推广为定义在黎曼流形上的椭圆型算子,称为拉普拉斯-贝尔特拉米算子。

6. 边缘特征点提取算子

  • 边缘是图像中的重要的结构性特征。
  • 边缘往往存在于目标和背景之间,不同的区域之间。
  • 图像边缘指的是那些附近像素点色度值普遍发生阶跃的地方,即梯度产生明显变化。

     Canny边缘检测是一种常见的边缘检测算法,其主要分为以下步骤:

  1. 噪声去除:由于边缘检测很容易受到噪声的影响,常需要滤波器(高斯滤波等)进行降噪。
  2. 计算图像梯度:对于平滑后的图像使用Sobel算子,计算出水平方向和竖直方向的一阶导数。根据梯度找到边界的梯度与方向。
  3. 非极大值抑制:在获得梯度的方向和大小后,应对整个图像做一个扫描,去除那些非边界上的点。对每一个的进行扫描,看这个点的梯度是不是周围具有相同梯度方向的点中最大的,仅保留梯度大的边缘
  4. 滞后阈值(双阈值):现在要确定那些边界才是真正的边界。这时我们需要设置两个阈值: minVal 和 maxVal 。当图像的灰度梯度高于 maxVal 时被认为是真的边界,那些低于 minVal 的边界会被抛弃。如果介于两者之间的话,就要看这个点是否与某个被确定为真正的边界点相连,如果是就认为它也是边界点,如果不是就抛弃。如下图所示。在这里插入图片描述    A高于阈值 maxVal 所以是真正的边界点, C 虽然低于 maxVal但高于minVal 并且与 A 相连,所以也被认为是真正的边界点。而 B 就会被抛弃,因为他不仅低于 maxVal 而且不与真正的边界点相连。
        所以选择合适的 maxVal 和 minVal 对于能否得到好的结果非常重要。
        通过这一步的处理,一些小一点的噪声点也会被除去,因此我们假设边界都是长线段,以防止线段过短被当作噪点而除去。

7. 基于规则的特征点提取

    SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,可以提供对尺度和方向不敏感的特征描述子。在这里插入图片描述
    SIFT第一步是寻找对尺度不敏感的待筛选特征点,接下来的步骤如下:
在这里插入图片描述    SIFT将一个像素点周围比较大的区域(16x16)编码成一个高维的描述子,较单像素点具有更强的描述能力,方便去寻找两张图片中对应的特征点。
    用途:连续帧的处理,反求解运动关系,反求解空间关系。

8. 最小二乘拟合方法

在这里插入图片描述

输入:二值图输出的属于车道线的 n n n个像素点 I ( x i , y i ) = ( u i , v i ) , i = ( 1 , 2 , 3 , … . , n ) I(x_i, y_i) = (u_i, v_i), i = (1,2,3,….,n) I(xi,yi)=(ui,vi),i=(1,2,3,.,n)
输出:将像素拟合成的曲线(直线为例)

方法:曲线拟合问题,可采用最小二乘法求解,转换为参数估计问题。

  1. 直线方程 y = k ∗ x + b , i = 1 , 2 , … , n y = k*x + b, i=1,2,…,n y=kx+bi=1,2,,n
  2. 定义优化函数
    M i n f ( k , b ) = s u m ( ( y i – ( k ∗ x i + b ) ) 2 ) , i = 1 , 2 , … , n Min f(k, b)= sum((y_i – (k*x_i + b))^2), i = 1, 2,…,n Minfk,b=sum((yi(kxi+b))2),i=1,2,,n
    求解此优化问题,可得 k , b k,b kb参数。

9. RANSAC曲线拟合

问题:最小二乘方法极容易受到数据中噪声的影响,对拟合的影响很大。
解决方法:鲁棒参数估计,如随机一致性采样方法( RANSAC )在这里插入图片描述
最小二乘拟合:最小化所有样本残差,使距离很远的噪点形成很大残差从而严重影响拟合效果
RANSAC拟合:尽可能使更多的样本位于拟合线附近误差范围内

10. Hough Transform 霍夫变换

霍夫变换是直线特征检测中常用的参数估计的方法
霍夫变换目的是在含有噪声的特征提取结果上拟合出直线
霍夫变换由Paul Hough在1962年提出,目的是找到图片中的直线.

     霍夫(Hough)变换是较为普遍使用的间断边缘连接方法的一种。霍夫变换的中心思想就是通过坐标系变换来检测直线,后来经过改进,可以检测椭圆。
     在笛卡尔坐标系下,直线方程有点斜式、截距式等,以 y = k x + b y=kx+b y=kx+b为例,很明显,此式难以表达垂直于 x x x轴时直线的情况,而极坐标系则避免了此状况,通常情况下,极坐标系的表达式为 ρ = x cos ⁡ θ + y sin ⁡ θ \rho = x\cos \theta + y\sin \theta ρ=xcosθ+ysinθ,直线在极坐标系下转换的图像如图所示:在这里插入图片描述在这里插入图片描述     如上图所示,笛卡尔坐标系中的任意一点在 ρ − θ ρ-θ ρθ坐标系下的图像为正弦曲线。图(b)中,红色、绿色以及蓝色曲线都为一条直线上的点,图像表明,同一直线上的不同点在 ρ − θ ρ-θ ρθ坐标系中会经过同一点。
     霍夫变换工作原理
     每一条直线都可以用 ( ρ , θ ) ( ρ ,θ) ρ,θ表示。所以首先创建一个2维数组(累加器),初始化累加器,所有的值都为0。行表示 ρ ρ ρ ,列表示 θ θ θ。这个数组的大小决定了最后结果的准确性。如果希望角度精确到1度,就需要180列。对于 ρ ρ ρ ,最大值为图片对角线的距离。所以如果精确度要达到一个像素的级别,行数就应该与图像对角线的距离相等。对于图像空间内的直线,需对其每一个像素点进行极坐标转换,得到一系列关于 ( ρ , θ ) ( ρ ,θ) ρ,θ的数值对。每得到一对数值对 ( ρ , θ ) ( ρ ,θ) ρ,θ,便往累加器中相应的值加上1。遍历直线上所有的点,当遍历完时,找出累加器中最大值对应的数值队 ( ρ 1 , θ 1 ) ( ρ_1 ,θ_1) ρ1,θ1 ρ 1 ρ_1 ρ1为该直线到原点的距离, θ 1 θ_1 θ1为其垂线与横轴的夹角。

11. 基于学习的特征点提取

    基于学习的特征点提取本质也是卷积操作
    特征提取常用参数– 卷积核尺寸,即卷积核的宽度、高度大小。根据需求确定。常见为3x3,5x5,7x7.在这里插入图片描述
    特征提取常用参数- 步长,即卷积核滑动运算时,每步跳过的图像像素数.在这里插入图片描述
    特征提取常用参数– 补零位数,为便于卷积操作,有时会在输入图像四周补相应的像素(一般补充0像素),不改变卷积运算输出的情况下,适应卷积操作。在这里插入图片描述    特征提取常用操作– 池化层(Pooling)

  • 池化层作用一般用于减小特征图尺寸(降采样)凸显有用特征
  • 可分为最大池化(Max Pooling和平均池化 Average Pooling)
  • 池化层的参数为:池化核尺寸(Kernel Size),步长(Stride)在这里插入图片描述
        特征空间变换 – 全连接层。全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。全连接的核心操作是矩阵乘法,本质上是把一个特征空间变换到另一个特征空间。

在这里插入图片描述
卷积运算类似于矩阵的叉乘。(稀疏矩阵的相乘)
在这里插入图片描述在这里插入图片描述
图像矩阵的卷积可以等效为图像向量空间的线性变换

为什么深度学习网络可以提取信息?

  • 网络中卷积核参数在监督学习中,不断去拟合,逼近某种提取
  • 参数调整好的网络,其本质是特征向量的空间变换+非线性组合
    在这里插入图片描述

深度学习卷积核和梯度算子的卷积核有什么区别?

  • 两种运算本质上都是一次矩阵相乘操作
  • 区别是两种卷积核参数的来源不同(深度学习的卷积核参数是通过学习的方式获得的,图像梯度算子的卷积核参数是依据数学或物理人为定义的)

12. 神经网络的学习过程

卷积核里的参数怎么去拟合?
解决方法:神经网络,误差反向传播算法
在这里插入图片描述

  • 计算模型输出与标准答案的误差反向调节隐藏层的参数
  • 隐藏层的参数包含了卷积核的数值

题目汇总

正确项:
PS1:二值化方法适合提取黑色地面的白色车道线
PS2: Canny算子可以将过于细节的边缘滤除
PS3: Canny算子可以处理有高斯噪声的图片
PS4: SIFT特征在图片放大时具有一定的稳定性
PS5: 在窗口边缘处的种子描述子重要性相对较低
PS6: 最小二乘法会有过拟合问题
PS7: RANSAC需要知道拟合对象的模型
对于YOLO-V1:
其全连接层不是必须的,可以用卷积层替换
卷积核的参数是通过误差反向传播过程拟合的

错误项:
PS1: Canny算子提取的边缘比Sobel算子模糊
PS2: Canny算子认为梯度全局最大的点才是边缘点
PS3: SIFT特征没有利用梯度信息
PS4: SIFT特征的主方向仅由中心像素点的梯度决定
PS5: RANSAC只能拟合直线
PS6: 同一直线上的点霍夫变换后的直线相互平行

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

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

相关文章

图论(4)Floyd算法

一、概述 floyd算法主要作用有:1.找最短路 2.求传递闭包 3.找最小环 4.求出恰好经过k条边的最短路 本文章将介绍floyd求最短路的证明以及以上四个作用的实践。 二、floyd算法求最短路的证明 之前就多次提到过图论与dp问题的联系,floyd算法可以…

Go依赖管理

"做讨厌潮汐的稚童,祈祷月球失踪。"一、背景我们写一个程序,例如输出hello world 或者 一个猜数字游戏,这些用到的单体函数接口,只需要依赖一些原生的SDK即可。但是,面对复杂的实际问题、工程,仅…

使用构建工具创建Vue项目

使用构建工具创建Vue项目一、使用vue-cli脚手架构建vue项目创建步骤:二、使用 Vite构建vue项目创建步骤:一、使用vue-cli脚手架构建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 1 通过 vue/cli 实现的交互式…

演讲比赛流程管理系统

1. 演讲比赛程序需求 1.2程序功能 2. 项目创建 创建名为speech_contest的目录名称 3. 创建管理类 功能描述: 提供菜单界面与用户交互 对演讲比赛流程进行控制 与文件的读写交互 3.1 创建文件 在头文件和源文件的文件夹下分别创建speech…

ubuntu 学习笔记

环境:Ubuntu 22.04 桌面版和server版 一、更换国内源,下载更快 1、源文件路径:/etc/apt/sources.list,到这个路径下备份一下源文件。 #备份原有配置文件命令 sudo cp -r /etc/apt/sources.list /etc/apt/sources.list.backup …

C primer plus学习笔记 —— 14、限定关键字(const、volatile、restrict、_Atomic)

文章目录const 关键字修饰变量修饰指针修饰形参修饰全局变量volatile关键字restrict关键字_Atomic关键字(c11)const 关键字 修饰变量 将变量变为只读 const int nochange; nochange 4; //不允许 const int a 5; //没问题const int a[3] {3, 5, 6};…

Hive--14---使用sum() over() 实现累积求和

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Hive中使用over()实现累积求和1.总求和sum(需要求和的列) over(partition by 分组列 )数据准备需求1以地区号网点号币种 为唯一键,求总的金额需求2以地区…

python图像处理(高斯滤波)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在谈高斯滤波之前,我们不妨回顾一下之前谈到的均值滤波和中值滤波。均值滤波,就是对像素点以及周围的8个点计算平均值,然后赋值给新像素点。而中值滤波,则是对像素点及周围的8个…

6. 初识多线程编程

1. 多线程 多线程非常重要,工作中用到的也是非常多,面试时也100%会问多线程。 关于多线程的相关知识,可以参考《计算机操作系统(第四版)》,或者自行百度查看有关文章以及视频都可以,此处不再赘述。 2. python中的多…

常用网址-2023整理

办公&效率人民币大写转换 人民币大写 人民币RMB数字转大写汉字工具我的账单 - 支付宝Bypass - 分流抢票Zen Flowchart - 在线流程图MindMaster - 在线思维导图【抠图】在线抠图软件_AI抠图证件照换底色-稿定设计Visio模板推荐与VisualNet图库转化语音转文字iconfont-阿里巴…

LeetCode动态规划经典题目(九):middle

学习目标: 进一步了解并掌握动态规划 学习内容: 4. LeetCode62. 不同路径https://leetcode.cn/problems/unique-paths/ 5. LeetCode63. 不同路径 IIhttps://leetcode.cn/problems/unique-paths-ii/ 6. LeetCode343. 整数拆分https://leetcode.cn/pro…

人工智能学习06--pytorch06--神经网络骨架nn.Module scipy下载 现有网络模型的使用及修改(VGG16)

神经网络骨架nn.Module 括号里nn.Module表示继承Module类init 初始化 调用父类初始化函数forward scipy下载 pip install scipy -i https://pypi.douban.com/simple/ 现有网络模型的使用及修改(VGG16) pretrained为True时需要下载,在ima…

1. Spring 基础入门

文章目录1. 初识 spring1.1 系统架构1.2 学习路线1.3 核心概念2. IoC 与 DI 入门案例(xml版)2.1 IoC(控制反转)2.2 DI(依赖注入)3. bean 配置3.1 bean 基础配置3.2 bean 别名配置3.3 bean 作用范围配置4. b…

file控件与input标签的属性type=“hidden“标签

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>file控件于与input标签的属性type"hidden"标签</title> </head> <body bgcolor"antiquewhite"> …

k8s中使用Deployment控制器实现升级、回滚、弹性伸缩

前置条件&#xff1a;linux机器已安装k8s集群基于yaml文件创建pod,本次创建pod使用的web.yaml如下apiVersion: apps/v1 kind: Deployment metadata:creationTimestamp: nulllabels:app: webname: web spec:replicas: 2selector:matchLabels:app: webstrategy: {}template:metad…

从零开始的数模(八)TOPSIS模型

一、概念 1.1评价方法概述 1.2概念 TOPSIS &#xff08;Technique for Order Preference by Similarity to an Ideal Solution &#xff09;模型中文叫做“逼近理想解排序方法”&#xff0c;是根据评价对象与理想化目标的接近程度进行排序的方法&#xff0c;是一种距离综合评…

SAP入门技术分享六:搜索帮助

搜索帮助1.概要&#xff08;1&#xff09;利用ABAP数据字典的搜索帮助&#xff08;2&#xff09;利用画面的搜索帮助&#xff08;3&#xff09;Dialog程序中的搜索帮助&#xff08;4&#xff09;报表选择屏幕PARAMETERS的搜索帮助&#xff08;5&#xff09;搜索帮助类型2.创建搜…

plot4gmns:面向通用建模网络范式(GMNS)的快速可视化【v0.1.1】

一款面向通用建模网络范式&#xff08;GMNS&#xff09;的快速可视化工具 目录1. 标准数据框架2. 标准数据框架下的生态2.1 数据解析2.2 数据处理2.3 数据可视化3. 标准数据框架下的可视化3.1 基础语法3.2 进阶语法1. 标准数据框架 制定一套标准的数据框架&#xff0c;可实现不…

python图像处理(中值滤波)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 中值滤波和均值滤波的区别,有点像中位数收入和平均收入的区别。比如有三个人,年收入分别是10万、1万和1千,那么他们的平均收入就是(10+1+0.1)/3,平均数是3.3万左右,但是中位数…

《真象还原》读书笔记——第二章 编写 MBR 主引导记录

2.1 计算机的启动过程 开机后运行的第一个程序是 BIOS 。 BIOS 搬运 MBR 并 跳转运行 MBR… 2.2 软件接力第一棒 BIOS 全名 基本输入输出系统。 2.2.1 实模式下的 1MB 内存分布 2.2.2 BIOS 是如何苏醒的 BIOS本身不需要修改&#xff0c;于是被写入了ROM中&#xff0c;被映…