正文
聚类算法
有时,系统获取的图片不是很清晰,使得物体难以定位检测。有时,分类算法有丢失检测物体的可能,这样就不能分类和报告给系统。这些可能是不连续的数据造成的,数据点太少了,或者图片分辨率太低了。聚类算法的特点在于从数据点中发现模式。像回归分析一样,聚类算法是指一类方法和问题。典型的聚类算法有层次聚类,基于质心的聚类算法。这些算法都关注数据的内在模式,完美地把数据分解成拥有最大相似性的簇。K-均值,多分类神经网络(Multi-class Neural Network)是最常用的算法。
K-均值算法
K-均值是著名聚类算法,它找出代表聚类结构的k个质心。如果有一个点到某一质心的距离比到其他质心都近,这个点则指派到这个最近的质心所代表的簇。依次,利用当前已聚类的数据点找出一个新质心,再利用质心给新的数据指派一个簇。
K-均值算法——在上图中用“x"表示 聚类质心,用点表示训练样本。(a) 原始数据集。(b) 随机初始化聚类质心。(c-f) k-均值迭代2次的示意图。在每次迭代中每个训练样例都指派到一个最近的聚类质心,每个聚类质心被移动到分配给它的点的平均值。
模式识别算法(分类模型)
在高级辅助驾驶系统(ADAS)中,利用感应器获取的图像包含各种各样的环境数据。对图像进行过滤变得十分必要,以剔除一些不相关的样本得到用于分类的实例数据。在分类前,关键步骤是在一个数据集上的模式识别。这类算法称为数据约简算法。
数据约简算法有助于降低数据集的边缘、对象的直线(拟合出来的线段)和圆弧的边缘。线段与边缘匹配,到直角后,该匹配会产生一段线段。和弧线一样,圆弧与一串直线段匹配。用不同的方式,图像特征(圆弧和线段)组合起来形成特征,用来判断对象。
利用PCA(主成分分析)和HOG(方向梯度直方图),SVM(支持向量机)通常在ADAS中用做识别算法。也会用K-邻近(KNN)和贝叶斯决策规则。
支持向量机(SVM)
SVM依赖于决策平面概念,后者定义了决策边界。决策平面可以把明显有类关系的对象分隔开. 如下图示。这张图片中,对象分为红色和绿色两类。分离的边界线把红色和绿色的对象分离了。落在线左边的新对象标记为红色类,落在右边标为绿色。
回归算法
这类算法善于做事件预测。回归分析评估两个或两个以上变量的关系,以及变量在不同尺度上的贡献,主要受三个指标影响:
1、 回归线的形状
2、非独立变量的类型
3、独立变量的数量
(摄像头或者雷达收集到的)图像在ADAS的驱动和定位上起了重要作用。对于任一算法,最大的挑战是利用基于图像的模型来做特征选择和预测。
环境的可重复性,对回归算法为图像和该图像中某物体位置之间的关系,构建统计模型起了杠杆作用。利用采样图像的统计模型,可以快速在线识别和离线学习。这个模型可以进一步延伸到不需要大量人类建模的其他对象。算法返回的对象位置,作为在线阶段的输出和对象出现的概率。
回归算法能够用来短程预测和长程训练。这类回归算法中用到自动驾驶上,有决策森林回归、神经网络回归、贝叶斯回归等等。
神经网络回归模型
神经网络可以用到回归、分类或者其他无监督学习上,来汇总没有标记的数据,分类这些数据,或者在监督学习后预测一个连续值。神经网络常在最后一层用逻辑斯特回归把连续值转换成形如1或0的变量(二值变量)。
在上图中,“x”是输入,特征从前一层神经元传播而来。到最后隐藏层的每个神经元,有很多’x'会喂进来,每个'x',乘以相应的权重w。对于偏置,乘积求和后加上偏置,然后输入到激活函数。激活函数常用的是ReLU(修正线性单元),因为它不会像sigmoid激活函数在浅层梯度膨胀。ReLU在隐藏层输出的激活值a,经过求和后成为输出层的输出。这暗示:一个神经网络用做回归时只有一个输出节点。这个节点把激活值求和后乘以1向量。网络的估计值,‘y帕’作为结果。‘Y帕’是所有'x'映射出来的独立变量。你可以这样用神经网络得到与‘x’(多个非独立向量)相关的函数,可以求出你要预测的'y'(独立变量)。