【计算机视觉40例】案例15:KNN数字识别

网友投稿 367 2022-08-22

【计算机视觉40例】案例15:KNN数字识别

本文截取书中部分内容如下:

我们的目标是构建一个使用KNN实现手写数字识别的应用程序。为此,我们需要一些训练数据和测试数据。OpenCV自带一幅包含5000个手写数字的图像digits.png。该图像中,每个手写数字有5行、100列、共计500个(5×100)。其中,每个手写数字的图像大小是20×20像素。如图16- 1所示,是从digits.png左上角截取的一部分。

图1  图像digits.png部分

将图像digits划分为训练集和测试集两部分,使用训练集训练KNN模型,使用测试集测试模型准确率。需要注意的,KNN模型对于数据集的格式有要求,所以我们需要将训练集和测试集处理为符合要求的形式。

划分数据集是使用KNN模型前的预处理过程,具体步骤图2所示。其中:

Step 1: 初始化。该步骤从磁盘读入图像文件、并将图像文件由彩色图像处理为灰度图像。Step 2: 拆分数字。该操作针对的是图像digits,将其中的每个数字拆分为一个个独立的图像,得到大小为20×20像素的单个数字图像。Step 3:拆分数据集。将所有的数据划分为两部分,一般为训练集、一半为测试集;具体来说,将每个数字在图像内左侧的250个样本作为训练集,右侧的250个样本作为测试集。Step 4: 塑形。将大小为20×20的图像重塑为1*400像素大小的形式;也就是说,将每个20x20大小的单个数字的图像展平为一行400个像素。值得注意的是,在这里我们直接使用了每个数字图像的像素值作为其特征值。Step 5: 贴标签。为每个手写数字贴上其对应的标签。该标签是其实际所对应的数字值。Step 6: KNN。使用KNN模型完成识别。Step 7:验证。计算识别结果的准确率。

图2 预处理

在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第16章《KNN字符识别》获取详细内容。

《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python中字典常用方法
下一篇:详解python中@的用法(Python中的_)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~