OpenCV Python KNN数字识别
KNN代表K最近邻算法,是一种基于监督学习的机器学习算法。它试图将新的数据点放入最相似的可用类别中。所有可用的数据被分类为不同的类别,根据相似性将新的数据点放入其中之一。
KNN算法工作原理如下−
- 尽量选择一个奇数作为要检查的邻居数量K。
- 计算它们之间的欧几里德距离。
- 根据计算得到的欧几里德距离选择K个最近邻。
- 计算每个类别中的数据点数量。
- 数据点数量最多的类别是新数据点所归类的类别。
作为使用OpenCV实现KNN算法的示例,我们将使用以下图像digits.png,其中包含5000个手写数字的图像,每个图像大小为20X20像素。
首先将这张图片分成5000个数字。这是我们的特征集。将其转换为NumPy数组。下面是程序的示例−
现在我们将这些数据分为训练集和测试集,每个大小为(2500,20×20),如下所示−
接下来,我们需要为每个数字创建10个不同的标签,如下所示 –
我们现在有条件开始KNN分类了。创建分类器对象并训练数据。
选择k的值为3,获取分类器的输出。
将输出结果与测试标签进行比对,以检查分类器的性能和准确率。
该程序在准确检测手写数字方面显示了91.64%的准确率。