目录
前言
毕业论文是关于图像处理方面,先对一些基本概念、小点子进行记录!
一、数据增强
1.为什么?
数据不足时,不能使神经网络表现到最好。当你训练一个机器学习mode时候,你真正做的就是调参以便它能将输入(比如图片)映射到输出(比如标签)。我们优化目标是追求我们模型损失较低的最佳点,当参数以正确的方式调整时就会发生这种情况最领先的神经网络有着数百万的参数!显然,如果你有很多参数,你需要给你的模型足够比例的样本。同样,你需要的参数的个数与你任务的复杂度成比例。
2.怎么做?
翻转(Flip):从左侧开始,原始图片,水平翻转的图片,垂直翻转的图片。
旋转(Rotation):旋转90°。
缩放比例(Scale):向外缩,向内缩。
裁剪(Crop):裁剪图像某一部分。
移位(Translation):向上、下、左、右移动图像,迫使卷积神经网路看到所有角落。
高斯噪声(Gaussian Noise):当您的神经网络试图学习可能无用的高频特征(大量出现的模式)时,通常会发生过度拟合。具有零均值的高斯噪声基本上在所有频率中具有数据点,从而有效地扭曲高频特征。这也意味着较低频率的组件(通常是您的预期数据)也会失真,但你的神经网络可以学会超越它。添加适量的噪音可以增强学习能力。一个色调较低的版本是盐和胡椒噪音,它表现为随机的黑白像素在图像中传播。这类似于通过向图像添加高斯噪声而产生的效果,但可能具有较低的信息失真水平。
高级增强技术:考虑到拍摄季节,如果我们的神经网络不了解某些景观可以在各种条件下(雪,潮湿,明亮等)存在的事实,它可能会将冰冻的湖岸虚假地标记为冰川或湿地作为沼泽。所以需要采用条件对抗神经网络(Conditional GANs)。使用CycleGAN来改变季节,方法是稳健的,但计算密集。更便宜的替代品将被称为神经风格转移(neural style transfer)。它抓取一个图像(又称“风格”)的纹理、氛围、外观,并将其与另一个图像的内容混合。使用这种强大的技术,我们产生类似于条件GAN的效果。
常数(Constant):最简单的插值方法是用一些常数值填充未知区域。这可能不适用于自然图像,但可以用于在单色背景下拍摄的图像。
关键是,在使用增强技术时,我们必须确保不增加不相关的数据!!!!
二、聚类概念
对于“监督学习(supervised learning)”其训练样本是带有标记信息的,监督学习的目的是对带有标记的数据集进行模型学习,从而便于对新的样本进行分类。而在“无监督学习(unsupervised learning)”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。对于无监督学习,应用最广的便是"聚类(clustering)”。
"聚类算法"试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇(cluster)“,通过这样的划分,每个簇可能对应于一些潜在的概念或类别。
无监督问题:手里没标签了
聚类:相似的东西分到一组
难点:如何评估,如何去调参
当需要将其划分为四个簇时,即 k=4 时:
二、聚类先验框
1.先验框
先验框有助于准确预测待检测目标,是根据待检测目标的长宽尺寸比例得到的矩形框。YOLOv5 目标检测网络的先验框是基于 coco 数据集或 voc 数据集训练过程中聚类得到的,coco 数据集和 voc 数据集分别由 80 和 20 个类别目标组成,目标框的大小不一致,所以不同类别的锚框尺寸也不一致。
2.聚类
为此,为了更好地适应整体数据特征,原始模型的先验框差距较大,需进一步对先验框进行调整重新聚类。
三、K-means算法
C均值算法又叫K-Means算法, YOLOv5 算法使用 K-means 对数据集中的边界框聚类,进而得到合适的锚框,K-means 聚类的具体过程如下:
1、随机选取聚类中心(Clustering center),簇个数 k 的选择;
2、计算出数据集中每个数据点到每个聚类中心的距离,对距离最近的聚类中心上的每个样本数据点8-进行回归,将同一聚类中心内的所有样本数据点归为一类;
3、对第2步归为一类的数据点重新进行计算,然后根据计算的均值,再一次得到每个类的聚类中心;
4、回到第二步继续聚类,直到聚类中心不再发生变动或者达到迭代次数使得误差平方和最小,算法结束。
使用误差平方和(Sum of the Squared Error,SSE)作为聚类的目标函数,多次进行如下式所示的计算,进而产生不同的聚类中心,最终选择误差平方和的最小值作为所需的聚类中心。
欧氏距离:
误差平方和:
从上述 K-means 聚类过程的原理可看出,该聚类的第一步就是随机选取 k 个聚类中心点。此过程很容易使得随机初始化过程中,聚类中心的分布有分到一簇中的情况,此时此算法容易导致局部最优,无法收敛全局最小值,进而使得聚类结果出错。
为了避免初始化聚类中心的缺点,采用 K-means++算法进行改进,步骤如下:
1、在所有的数据集 x 样本中,初始化一个随机样本点,作为第一个聚类中心c1 ;
2、计算各个数据点到已选取的c1 中心点的最短距离d(x);
3、根据轮盘法选择一个新的点作为新的聚类中心c2 ,通过如下式 所示的计算方式,推算所有的样本点成为聚类中心c2 的概率值 (P)(x)( 的最大值对应的样本点即为另一个聚类中心。
样本点距离现有聚类中心越远,被选中的概率就越高。
4、重复执行2、3两步的操作,当得到所需的 K 个聚类中心,就可以把这 K个样本中心点作为 K-means 算法第(1)步中的初始聚类中心。
最终,将两种数据集的标注框信息输入上述算法,通过不停迭代试验,K 值越大得出的先验框越具体,多次试验进行对比。
总结
我猜测:基于无人机图像进行车辆目标检测和跟踪,针对航拍数据集问题,采集大量城市多种路况的航拍视频,先对图像一帧画面进行提取,分析,计算其坐标,并将其最终整合为数据集,为了进行目标检测,首先根据特征提取目标物体,搞一个先验框,方便后续预测下一帧坐标,最后通过 K-means 算法聚类先验框、输入维度等实验训练出最佳参数的 YOLOv5 航拍车辆目标检测模型。