目录
考试:闭卷 17周周四随堂考(6.16)
记录:实验、光流3法对比+H-S、相机标定、 Kmeans+高斯混合
4道大题
一、[必]华为实验 30分
:做了什么(实验报告)、用了什么模型/框架/语言/大体、简单介绍(eg.Mindspore)、你用的深度学习模型进行简单介绍、实验流程、加分项是你做的改进
:实验内容、实验环境与配置介绍(模型)、实验过程
知识点 | 实验名称 | 实验简介 | 实验开发环境 |
图像分割 | 基于UNet的医学图像分割 (基于DeepLabv3的语义分割) | 使用MindSpore和Ascend芯片,实现基于UNet(DeepLabv3)模型的医学图像分割实验 | ModelArts MindSpore |
大津阈值法:OTSU是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出。从原理上来讲,又称最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景图像的类间方差最大。
super().__init__():继承父类的init方法
Mindspore介绍:MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景覆盖三大目标,其中易开发表现为API友好、调试难度低,高效执行包括计算效率、数据预处理效率和分布式训练效率,全场景则指框架同时支持云、边缘以及端侧场景。
总体架构中主要有:扩展层Mindspore Extend、前端表达层MindExpresssion、编译优化层MindCompiler、全场景运行时MindRT.
接下来A-B卷
二、相机模型
:概念、世界zbx->相机zbx的计算矩阵、内参RT/焦距-外参K-矩阵公式背下来|参数解释;
:相机标定,内外参计算(相机模型是如何进行相机标定);标准的相机标定的步骤/畸变要处理但公式不需要背下来;
(相机模型、相机标定)
整理
相机模型:
1、四个坐标系
2、三个转换
3、合并公式,KRT
相机标定:
步骤:1、打印一张棋盘格,把它贴在一个平面上,作为标定物。
2、通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向的照片。
3、从照片中提取棋盘格角点。
4、估算理想无畸变的情况下,五个内参和六个外参。
5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
6、极大似然法,优化估计,提升估计精度。
视频及相关学习
相机模型:
相机模型中的坐标系:
世界坐标系Pw(Xw, Yw, Zw):对应真实客观三维世界的坐标系,也称为客观坐标系,表征物体在真实世界中的位置坐标。世界坐标系是随着物体的大小和位置变化的,单位一般是长度单位。
相机坐标系PO(x, y, z):对应以相机的光心为原点的坐标系,其以平行于图像的x和y方向为x轴y轴,z轴与光轴平行,单位也为长度单位。
图像坐标系P’(x’, y’):对应以主光轴和图像平面交点为坐标原点的坐标系,单位仍为长度单位。
像素坐标系P(u, v):对应以图像的顶点为坐标原点的坐标系,u和v的方向平行于x’和y’方向,单位是像素
相机标定:
1、
世界坐标系->相机坐标系:先旋转再平移,使用齐次坐标系表示使得运算更方便/前乘系数不变;
相机坐标系->图像坐标系:小孔成像&相似三角形;
图像坐标系->像素坐标系:单位有差所以需要系数,然后再加上偏移量;
相机标定:为了能够从空间点的像素坐标映射到世界坐标
1、
相机模型:
旋转矩阵+平移矩阵确定了唯一的刚体变换
产生的畸变量与 图像上点到图像中心的距离成正比,所以所有k>0时产生枕型畸变
相机标定:
世界坐标系到图像坐标系经过三次矩阵连乘,矩阵中的参数就是需要标定的内容。(kp畸变参数)
小结:张正友提出一个较好的算术解,可以根据原始输入的三维点和二维点计算出一个大致的较好的初值,后面再将这个最优值用于优化,有较好的鲁棒性。(张正友方法中存在一些问题,eg检测精度有差但是不存在偏心误差;除了使用棋盘格作为标定板也可以使用圆|对于标定误差的纠正; 最少使用3张照片|照片越多抗噪能力越强一般十几张;重投影误差re-projection error来判定相机标定结果)
2、
3、
坐标系是确定物体的相对位置而建立的;世界坐标系用来表示摄像机与被摄物体的位置。
world->camera
首先将世界坐标系旋转到与相机坐标系平行的位置,然后再进行平移,使得世界坐标系与相机坐标系重合,从而达到从世界坐标系转换到相机坐标系的目的。(先旋转再平移表达更直观且合逻辑)
绕X轴旋转(不变),可以用欧式距离不变性进行验证。也可以类似绕其他轴旋转。
矩阵左乘-固定坐标系旋转-默认xyz轴不变;右乘-每次旋转都按照自身现在新的坐标系进行旋转
世界坐标系到相机坐标系:R旋转矩阵,T是XwYwZw三个方向的偏移量(第二行是齐次坐标系)
像素坐标系、图像坐标系
像素坐标系:
图像坐标系:
针孔成像、世界->像素坐标系:
畸变参数:
畸变是一种噪声
相机标定
单应性变换:应用及计算
张正友相机标定总结:
三、光流☆
AB卷的考察角度不一样
:概念、应用场景、方法[传统方法×3,dl种也算一种flownet]、(16周补充);三种方法AB卷中各抽了一种;
:优缺点、大概怎么用、公式及参数解释-xyuv、最后解的形式、(opencv调用)
整理
1、光流概念、作用和应用场景
(1)光流概念:光流是空间运动物体在观察成像平面上的像素运动的瞬时速度。光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。(简单来说就是两张图片中同一个像素点的位移矢量,即速度和方向)
(2)作用:光流表达了图像的变化,包含了目标物体的运动信息,可以确定目标的运动情况;也可以通过光流判断物体与我们的距离远近(近大远小);
(3)应用场景:在计算机视觉中,光流在目标对象分割、识别、跟踪、机器人导航以及形状信息恢复等方面有重要作用。(视频中物体追踪eg知名的TLD算法便借用了光流估计;SLAM同步定位与建图领域,光流作为图像特征点匹配的一种方式)
2、光流基本假设、基本约束
(1)基本假设:①亮度恒定不变(光强不变假设)②时间连续或“小运动”
①亮度恒定不变。即同一目标在不同帧间运动时,其亮度不会发生改变。这是基本光流法的假定(所有光流法变种都必须满足),用于得到光流法基本方程;
②时间连续或运动是“小运动”。即时间的变化不会引起目标位置的剧烈变化,相邻帧之间位移要比较小。同样也是光流法不可或缺的假定。
(2)基本约束:假设当前帧像素点 、在dt时间后移动(dx,dy)距离到下一帧
①根据亮度恒定假设:Ⅰ
②根据小运动假设,将等式右边泰勒展开:Ⅱ
③~为二阶无穷小,可忽略不计,将②带入①并两边同除以dt,得Ⅲ
设u=dx/dt,v=dy/dt分别为光流沿x轴和y轴的速度矢量;
令Ⅰx=~,Ⅰy=~,Ⅰt=~分别表示图像中像素点的灰度沿X,Y,T方向的偏导数
综上,Ⅲ式可以写成Ⅰx u+Ⅰy v+Ⅰt=0
其中Ⅰx/y/t可以通过图像数据求得,(u,v)即为所求光流矢量
[约束方程只有一个但是未知量有两个,因为要引入其他约束条件]
3、三种方法的异同点、优缺点
三者都是基于梯度(微分)的方法,特点是相对而言计算简单且有较好结果
Farneback是基于梯度的稠密光流算法;假设图像梯度恒定且局部光流恒定;
Farneback光流法在人群异常的检测方面明显优于H-S和L-K光流法
Horn-Schunck是基于全局的稠密光流算法;假设×3:亮度恒定、小运动、全局平滑假设;
H-S作为稠密光流算法,对图像中所有像素点都求光流,配准效果明显优于稀疏光流算法,但是缺点是计算量很大,时效性差;
Lukas-Kanade是一种两帧差分的稀疏光流算法;假设×3:亮度恒定、小运动、空间一致性;
L-K算法作为稀疏光流算法,计算开销相对较小,缺点是在有遮挡、旋转、光照变化等场景下容易跟踪不到物体;
(1)L-K算法:
2(2)①②③+引入第三个假设:空间一致性
(2)H-S算法:
视频及相关学习
1、
较全理论介绍、小结:[作用] 通过光流判断物体距离我们的远近。 一般而言,远景的物体相对来说光流较小,而近景物体光流较大,尤其是动态场景中的运动物体。
光流:光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。\\ 在计算机视觉中,光流扮演着重要角色,在目标对象分割、识别、跟踪、机器人导航以及形状信息恢复等都有着非常重要的应用。从光流中恢复物体三维结构和运动则是计算机视觉研究所面临的最富有意义和挑战性的任务之一。
最后提到应用:目标检测与目标跟踪
光流估计-从传统方法到深度学习:光流,从物理意义的角度看,描述了视频中物体、对象在时间维度上的关联性,从而建立了视频中连续图像之间的关联关系。因此,最为直接而自然的应用就是视频中物体的跟踪,在物体跟踪领域知名的TLD算法便借助了光流估计。\\ 在视觉里程计和SLAM同步定位与建图领域,光流可以作为图像特征点匹配的一种方式,比如知名的视觉惯性里程计开源算法VINS-Mono。英伟达也提供了基于其GPU的光流SDK,其中展示了利用光流进行视频动作识别(video action recognition)和视频插帧的应用。
2、光流算法
H–S光流算法用一种全局方法估计图像的稠密光流场(即对图像中的每个像素计算光流)
基于两个假设:①灰度不变假设(即使物体发生运动,物体上同一个点在图像中的灰度保持不变)②光流场平滑假设(图像的光流场应当是平滑的,只有在物体边界的地方才会出现光流的突变)
光流基本约束推导☆√:
稠密光流是一种针对图像或指定的某一片区域进行逐点匹配的图像配准方法,它计算图像上所有的点的偏移量,从而形成一个稠密的光流场。通过这个稠密的光流场,可以进行像素级别的图像配准。
Horn-Schunck算法以及基于区域匹配的大多数光流法都属于稠密光流的范畴。由于光流矢量稠密,所以其配准后的效果也明显优于稀疏光流配准的效果。但是其副作用也是明显的,由于要计算每个点的偏移量,其计算量也明显较大,时效性较差。
稀疏光流通常需要指定一组点进行跟踪,这组点最好具有某种明显的特性,例如Harris角点等,那么跟踪就会相对稳定和可靠。稀疏跟踪的计算开销比稠密跟踪小得多。上文提到的基于特征的匹配方法是典型的属于稀疏光流的算法。
3、计算公式
L-K算法:
(步骤用这个,但是具体公式直接换成下面二维的计算方式)
H-S算法:
4、三种方法对比
另一个光流算法Gunnar Farneba ̈ck的论文是这个,读一下摘要了解区别就行。
对比:
Horn–Schunck光流算法用一种全局方法估计图像的稠密光流场(即对图像中的每个像素计算光流)
Lucas-Kanada最初于1981年提出,该算法假设在一个小的空间邻域内运动矢量保持恒定,使用加权最小二乘法估计光流。由于该算法应用于输入图像的一组点上时比较方便,因此被广泛应用于稀疏光流场。
Farneback是一种基于梯度的方法,假设图像梯度恒定且假设局部光流恒定,计算出图像上所有像素点的光流。
相比Horn-Schunck光流法和Lucas–Kanade光流法,明显可以看到Farneback光流法在人群异常的检测方面存在较大的优势。
5、视频讲解
光流概念:光流是空间运动物体在观察成像平面上的像素运动的瞬时速度。光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。(简单来说就是两张图片中同一个像素点的位移矢量,即速度和方向)
光强不变假设:u,v分别是它在x,y方向上的速度
稀疏光流:对特征明显的点进行跟踪,如角点或边;
稠密光流:对图片中所有像素点都求光流;计算量较大也相对慢,但是没有跟踪问题
H-S算法:稠密光流算法、假设图片中处处光滑,即速度在图像上的变化几乎为0;
L-K算法:稀疏光流算法、光强不变假设(↓ 小窗口内所有像素点都符合光强不变)[线性拟合问题]
L-K算法在有遮挡、旋转、光照变化等情况下都会容易跟踪不到;选角点不选边就是(↓1)会存在在窗口选取不合理导致窗口内看到的没有变化;(↓2相差较大 通过缩小)
光流估计问题是一个欠约束问题
应用及难点:
四、经典的聚类算法
:K-means-10分 公式|做什么|步骤|特点|优缺点、(graf相关不考);
:由它引出的高斯模型|步骤|基本共识|优缺点|两三页ppt;
:meanshift(追踪/分割/聚类)、概念|步骤|公式|优缺点;
:霍夫变换、概念|步骤|公式|优缺点;
1、K-means
:K-means-10分 公式|做什么|步骤|特点|优缺点、(graf相关不考);
、整理
1、 算法介绍/原理
K-means是一种非监督学习算法,也称K均值聚类算法。其核心目标是将给定的数据集划分成K个簇,并给出每个样本数据对应的中心点。
其基本思想是通过迭代寻找K个簇(Cluster)的一种划分方案,使得聚类结果对应的损失函数最小。损失函数定义为各个样本距离各个簇中心点的误差平方和:一般采用欧氏距离作为相似性的评价标准(距离越近越相似)
2、算法步骤
①选择初始化的K个样本作为初始聚类中心:a=a1,a2,...ak;【k需要提前确定】
②给聚类中心分配样本:针对数据集中每个样本xi,计算它到k个聚类中心的距离,并将其分配到与它距离最近的聚类中心所对应的类当中;【初始中心的选择影响聚类结果】
③移动聚类中心:针对每个类别aj,重新计算它的聚类中心aj= ,即属于该类的所有样本的质心【可能存在空簇】
④重复上述步骤②③,直到达到终止条件(迭代次数、最小误差变化等).
3、优缺点
优点:
①算法原理简单,实现容易,且聚类效果较优;
②可解释性强,并且收敛速度快;
③调参只需要调类数K;
④处理大型数据集时,算法有较好的伸缩性;
缺点:
①K值的选取不好把握;
②对初始聚类中心敏感,初始中心的选择影响聚类结果;
③采用迭代的方式,可能只能得到局部最优解,不一定能得到全局最优解;
④对噪声和异常点比较敏感(异常点检测)
4、一些比较
、视频及资料学习
调优:
K-means算法采用的是迭代的方法,得到局部最优解
★ k-means介绍-video:
k-means介绍:K-means 是基于欧式距离的聚类算法,认为两个目标的距离越近,相似度越大。
优缺点:
2、高斯模型
:由它引出的高斯模型|步骤|基本共识|优缺点|两三页ppt;
、整理
1、概念
高斯混合模型(Gaussian Mixture Module,GMM),是一种聚类算法,使用高斯分布作为参数模型,并且使用期望最大(Expectation Maximization,EM)算法进行训练。使用多个高斯分布的组合来刻画数据分布。
从几何角度来看,它多个高斯分布的加权平均;
从混合模型角度来看(生成模型):
x-observable variable可观测变量;
z-latent variable隐变量,对应的样本x是属于哪一个高斯分布,z是离散随机变量
首先决定那个高斯分布,然后按照该高斯分布进行采样。
2、GMM步骤
3、优缺点/与kmeans比较
K-means算法可以被是为GMM的一种特殊形式。
优点:
①GMM有更强地描述能力,因为聚类时数据点的从属关系不仅与近邻有关,还会依赖于簇的形状。
②投影后样本点不是得到一个确定的分类标记,而是得到每个类的概率,使得GMM也可以用在概率密度上;
缺点1:
GMM方法比K-means有更多的初始条件要设置,比如kmeans不用考虑方差。
GMM比kmeans的迭代计算量大。
无监督ML算法都遵循一个简单的模式:给定一系列数据,训练出一个能描述这些数据规律的模型,训练过程通常要反复迭代,知道无法再优化参数为止。
缺点2:
①计算量较大,收敛较慢;
②对异常点敏感;
③数据量少时效果不好。当每个混合模型没有足够多的点时,估计协方差就困难了。
、课件
、视频及相关学习
GMM聚类步骤与推导 ★:
GMM: 高斯混合模型是生成模型
右下图中x属于c1也属于c2,但是它属于c1的概率更大
高斯混合模型(Gaussian Mixture Model,GMM)是一种聚类算法,使用了高斯分布作为参数模型,并使用了期望最大(Expectation Maximization,EM)算法进行训练。
高斯分布(Gaussian distribution)有时也被称为正态分布(normal distribution),是一种大量的存在且最为常见的分布形式。其概率密度分布公式:
相比只使用一个高斯来建模,现在我们可以用两个(或多个)高斯分布。
在特定约束条件下,K-means算法可以被看作是高斯混合模型(GMM)的一种特殊形式。
通俗理解GMM:
3、meanshit
:meanshift(追踪/分割/聚类)、概念|步骤|公式|优缺点;
、整理
1、概念/原理
meanshift是一种基于核密度的聚类算法,由mean(均值)和shift(偏移)组成。
原理:一个点x,它周围有很多点xi,计算x移动到每个点所需要的偏移量之和,再求平均,得到平均偏移量。|| 这个偏移量包含大小和方向,方向就是周围分布密集的方向。|| 然后点x往平均偏移量方向移动,再以此为新起点,不断迭代直到满足结束条件。
关键操作是根据感兴趣区域的数据密度变化计算中心点的偏移量,从而移动中心点进行下一次迭代,直到到达密度最大处(中心点不变)。
2、步骤×8
①从未被标记的数据点中随机选择一个点作为起始中心点center;
②找出以center为中心 r为半径的区域中 所有出现的数据点,认为这些点同属于一个聚类C;同时在该聚类中记录数据点出现的次数加1;
③以center为中心,计算从center开始到集合M中每个元素的向量。将这些向量相加得到向量shift;
④center=center+shift,即center沿着shift方向移动,移动距离为||shift||;
⑤重复步骤②③④直到shift很小(即迭代到收敛),记住此时的center。需要注意的是,这个迭代过程中遇到的点都应该归类到簇C;
⑥如果收敛时当前簇C的center与其他已经存在的簇C2中心的距离小于阈值,那么就把C与C2合并,数据点出现的次数也合并,否则就把C作为新的聚类;
⑦重复①~⑤直到所有的点都被标记为已访问;
⑧分类:根据每一个类对每一个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类。
3、优缺点/与k-means比较
优点:
①与k-means算法不同,meanshift算法可以自动决定类别的数目;
②不受离群点的影响;
③没有局部最小值,而是全局最优;
④计算量不大,在目标区域已知的情况下可以做到实时跟踪;
⑤采用核函数直方图模型,对边缘遮挡、目标旋转、变形和背景运动的场景不敏感;
缺点:
①在高位空间数据下表现不佳;
②无法指定聚类的数量
③跟踪过程中由于窗口大小保持不变,当目标尺寸有所变化时,跟踪就失败;
④直方图特征在目标颜色特征描述方面不足,缺少空间信息。
、课件
、视频及相关学习
建立在核密度估计 (kernel density estimation,KDE)的基础上的聚类算法
对K-means和meanshift两种算法的评估方式
meanshift目标跟踪、介绍、跟踪、
4、霍夫变换
:霍夫变换、概念|步骤|公式|优缺点;
、整理
霍夫变换(Hough Transform)
1、概念
霍夫变换是图像处理中的一种特征提取技术,用于提取图像中特定的形状(直线、圆)边界和特征,应用在图像分析、cv和数字图像处理领域。其目的是通过投票机制,在特定类型的形状内找到对象的不完美实例。
2、原理与步骤
其他总结:
以直线检测为例:
①一条直线在图像二维空间可用两个变量表示:笛卡尔坐标(b,m)极坐标(r,θ)。对于霍夫变换,采用第二种方式表示为:~化简为~
其中r是原点到直线上最短的距离,θ是原点与该距离最近点与x轴之间的夹角
因此将图像中每一个点与参数对(r,θ)相关联,其中参数对(r,θ)平面被称为霍夫空间。
②对于每个点,通过它的直线都同一定义为r=xcosθ+ysinθ,即每对(r,θ)代表一条通过该点的直线
③经过霍夫变换,将图像中空间中的点映射到霍夫空间,只绘制满足r>0和0<θ<2Π的点;
④对图像中所有点进行上述操作,若两个不同点在(r,θ)平面相交,说明它们经过同一条直线。
因此一条直线能够通过在(r,θ)平面寻找交于一点的曲线的数量来被检测到。越多曲线相交于一点,说明这个交点表示的直线由更多的点组成。
可以通过设置直线上的点的阈值来定义多少条曲线交于一点,从而认为检测到了一条直线。
小结:霍夫变换就是追踪图像中每个点对应曲线间的交点,若交于一点的曲线数量超过设定的阈值,则认为交点代表的参数对(r,θ)在原图像中为一条直线。
3、优缺点
优点:
抗干扰能力强,对图像中直线的残缺部分、噪声以及其他共存的非直线结构不敏感。
能容忍特征边界描述中的间隙,并且相对不受图像噪声的影响。
缺点:
①霍夫变换检测边缘只对边缘图片(经过canny或sobe算子提取特征后的图片)有效,对一般的图片无效;检测线条或圆意外的内容时,参数量和复杂度较高,要小心使用;
②Hough变换算法的特点导致其时间复杂度和空间复杂度都很高,并且在检测过程中只能确定直线方向,丢失了线段的长度信息。
、视频及相关学习
博客园-霍夫变换 :
霍夫变换是拟合的一种策略,通过将图像空间的坐标变换到参数空间来实现直线和曲线的拟合。
video:霍夫变换(直线检测) 、广义霍夫变换、霍夫圆变换、up主页
图像坐标系反过来,常识顺时针,图像逆时针
霍夫变换★:和
霍夫变换是一种特征提取技术,可用于提取图像中特定形状(直线,圆等)边界。目的是通过投票程序在特定类型的形状内找到对象的不完美实例。
比如某些城市场景下,较高建筑物被遮挡,如果我们想要找到建筑物的真实边缘,边缘检测器(例如Canny)无法很好地恢复这些信息。
霍夫变换可以检测到一些表示遮挡区域内建筑物边缘的直线,需要设置合理的相对阈值。
概念:霍夫变换是一种特征提取手段,用来提取形状(直线,圆等)边界。
缺点:霍夫变换检测边缘只对边缘图片(经过canny或者sobe算子提取特征后的图片)有效,对一般的图片无效。
opencv实现☆:霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。
附录:
1、实验