机器学习包含多种途径和方法,其中一些使用在SVM(支持向量机)和ANN(人工神经网络),如K近邻,决策树,或深度学习,而在某些情况下,大型神经网络算法被用于卷积中。
这些方法和手段被OpenCV支持、实现;OpenCV中实现了8中机器学习算法,他们都继承自StatMode类
·人工神经网络
·提升算法
·随机树
·最大期望
·K近邻
·logistic回归分析
·一般贝叶斯分类器
·支持向量机SVM
可以在下图中看到机器学习类的层次结构:
StatModel类提供了对机器学习参数和训练数据十分重要的read/write函数。
机器学习中,最耗时的部分是training函数。Training函数根据数据的大小和机器学习结构的复杂度可能花费数秒到数周,甚至数月。
这意味着不能每次启动程序都训练,要讲训练好的模型保存下来。
计算机视觉和机器学习的工作流程
带有机器学习的计算机视觉应用有通用的基本结构。这种结构被分割成不同步骤,并在几乎所有的计算机视觉应用中重复使用。下图展示所涉及的不同步骤:
几乎所有计算机视觉应用程序都从对输入图像的预处理阶段开始启动。预处理涉及去除光亮条件和噪声、阈值、模糊等。
在所需图像预处理步骤之后,第二部是分割。在分割步骤中,从图像中提取我们感兴趣的部分,并将每个部分分割成独一无二的对象。举例来说,人脸识别系统需要把脸和屏幕的其他部分分割开来。
得到图像内的对象之后,提取对象的特征。特征是物体特点的向量。一个特征可以描述物体,可以是物体的一部分、轮廓、纹理图案等。
得到物体的描述符。训练成模型。
训练一个数据集合时,当给出一个新的特征向量或者未知标签时,模型学习所有需要预测的参数;