一眼就会用的KNN手写数字识别+字母识别代码+详细解读 您所在的位置:网站首页 y书写体小写 一眼就会用的KNN手写数字识别+字母识别代码+详细解读

一眼就会用的KNN手写数字识别+字母识别代码+详细解读

2023-06-27 21:42| 来源: 网络整理| 查看: 265

KNN数字字母分类识别

1.设计流程

1.1应用场景

 

使用电脑自带的摄像头,对四个窗口的字母进行实时识别,其中每个窗口都是黑色小正方形,被一个大的外围黑色矩形框所包围。对数字进行识别,其中数字被一个大的外围黑色矩形框所包围。

1.2程序设计思路

字母识别:首先对大的黑色矩形边框进行识别,并裁切图片保存,再对保存的图片进行尺寸处理(转换为等整数比例的尺寸),再对每个窗口字母进行识别。方法一:在矩形黑框内再对每个小正方形黑框进行识别,识别后作裁切并保存图片用于识别;优点是裁切后的图片完整方正,识别到正方形黑框后可直接使用于字母识别;缺点是同时对多个小尺寸的正方形黑框判定难度较大且不稳定,实时摄像头判定多个黑框实时性不高且容易误判漏判。方法二:在对大的黑框进行判定且进行尺寸处理后,使用像素值坐标定位的方法进行四个窗口的切割并保存为图片进行识别;优点是只对一个大的矩形黑框进行检测实时性好,基于坐标定位的方法编程较为简单;缺点是定位的方法受图片摆放和黑框位置判定的影响大,且定位需针对实际应用场景作对应调整。综合考虑,选用方法二进行窗口切割,最后对每张图片进行分类识别。

数字识别:沿用字母识别中识别大黑色矩形框并切割保存图片的方法,后续由左至右进行数字轮廓检测,分类识别数字。

1.3环境配置(自行官网或搜索配置下载)

pycharm2021社区版

Python3.6;

Opencv4.5.3

Numpy1.19.5

scikit-learn 0.19.2

2.编程设计

2.1字母分类模型训练和保存

图3  字母分类模型训练

2.2数字分类模型训练和保存

图4  数字分类模型训练

2.3数字识别代码

代码见box_forDATA.py

参数修改:

①初始化置信度为0.70;把单引号里的路径修改为‘knn_data.pkl’所在的路径,注意‘\’;

②判断每个数字后的图片裁切尺寸为100×100;

③读取摄像头初始化为0代表读取电脑自带摄像头,可通过读取IP地址的方式读取手机摄像头或其      它设备摄像头,感兴趣请自行搜索;

④初始化二值化处理的分割值为127,表示色彩值大于127的变为255,小于127的变为0;其中1代      表白色,0代表黑色;

⑤对矩形框的最小面积进行限定,如果矩形框的像素面积小于10000则无法检测到;

⑥我将矩形黑框大小转换为了‘600×400’,可根据矩形框实际比例进行调整;

    把‘box_data.jpg’更改为自己想要的图片命名格式,这是裁切到的大矩形框的图片;

⑦把“双引号内的路径更改为自己想保存裁切后的各个数字小图片的路径”,

    digit_{index}.jpg采用了索引的命名方法,即从0到“index”依次保存图片,前缀名为digit_’,后缀      为序号,格式为jpg;

⑧路径和上面小图片保存的路径一致;

⑨启动‘os.remove’可删除上面定义路径下的所有图片(包括其它文件)。

github源码链接

百度源码链接:knn8



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有