惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
博客园 - 聂微东
小众软件
小众软件
P
Proofpoint News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
TaoSecurity Blog
TaoSecurity Blog
博客园 - 司徒正美
罗磊的独立博客
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
S
Security @ Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
月光博客
月光博客
S
Secure Thoughts
P
Proofpoint News Feed
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Forbes - Security
Forbes - Security
H
Heimdal Security Blog
W
WeLiveSecurity
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
L
LangChain Blog
T
The Blog of Author Tim Ferriss
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
Cloudbric
Cloudbric
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
博客园 - 三生石上(FineUI控件)
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
Project Zero
Project Zero
SecWiki News
SecWiki News
爱范儿
爱范儿
The Register - Security
The Register - Security
AI
AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
L
Lohrmann on Cybersecurity
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy International News Feed
J
Java Code Geeks
S
Securelist
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog

编程与诗|飒白的个人博客|飒白的闲话仓库|一位主播和程序员的奇妙组合体

侯捷c++笔记:c++泛型与高级用法 侯捷c++笔记:c++面向对象的指针类 侯捷c++笔记:c++面向对象的无指针类 03《穷查理宝典》 查理·芒格丨读书笔记 02《穷爸爸富爸爸》 罗伯特·清崎丨读书笔记 01《影响力》罗伯特・西奥迪尼丨读书笔记 基于结构光投影三维重建:格雷码编码与解码 给CNN添加TVloss的随记 三维重建论文笔记 DeMoN:Depth and Motion Network for Learning Monocular Stereo 三维扫描系列 点云绪论 修改DCNN使其输入从无监督变为有监督模型 茫茫摄影路:好照片的基本三要素 pytorch学习日记:创建Tensor pytorch学习日记:张量数据类型 研究生涯005 利用蒙特卡洛方法实现21点问题的最优解 研究生涯004 基于深度学习的水质图像分类 研究生涯002 汽车模糊推理系统实验 研究生涯001 浅析机器视觉在医疗影像处理中的应用 人工智能问答NO.8 决策树与随机森林
研究生涯003 基于最近邻法手写数字识别设计
飒白 · 2020-11-28 · via 编程与诗|飒白的个人博客|飒白的闲话仓库|一位主播和程序员的奇妙组合体

本实验代码已上传面包多,请点击购买,或者关注[全都是码农]公众号,回复[最近邻],限时免费获取!

实验概述

本实验皆在运用OpenCV、Python等工具采用适当的算法对手写体数字进行识别与检测,可以提供训练集与测试集进行训练,并可以输入手写字体进行测试检验。

通过独立的完成本实验,可以极大地提高本人对于Python、OpenCV的理解,掌握手写数字的特征提取技术和最近邻模板匹配法。

环境说明

系统:window 10

软件:PyCharm Community Edition 2020.2.2 x64

语言:python 3.6

环境:cv2,numpy,matplotlib.pyplot,time

数据集

本数据集为100张图片,分别为数字0-9,每个数字10张图片,8张训练集,2张测试集。如下:

0-1 图 1 数字零 1-1 图 2 数字一
2-1 图 3 数字二 3-1 图 4 数字三

术语定义

训练集:可以训练模型参数,使模型拟合于正确的预测函数。

测试集:通过训练过的模型进行检验,评估最终模型泛化能力。

验证集:用于调超参数,监控模型是否发生过拟合。

需求说明

实验内容

\1. 学习利用行列扫描的方法获取手写数字的上、下、左、右位置的子程序。

\2. 设计手写数字的特征提取算法,并编写对应特征提取程序。

\3. 编写基于最近邻模板匹配的手写数字识别程序。

实验结果与分析

记录输入数字0-9各10个,程序运行后相应的识别结果,并对结果进行深入分析。

\1. 记录每个样品的特征提取效果图。

\2. 记录该样品对应的归一化后的特征值。

\3. 统计每个数字正确识别率。并对错误识别的情况进行深入分析。

软件设计

一、体系设计图

img

函数清单

函数名 函数功能简述 函数接口简述
ImgToNp() 将图片的路径导入到矩阵中。 输入:无 输出:图片路径矩阵
outFeature() 处理特征函数并贴标签。 输入:图片路径矩阵 输出:训练图片矩阵集与标签集
star() 程序按照预设好的结构进行循环测试与输出。 输入:训练图片矩阵集与标签集 输出:训练结果
TestImgToNp() 输入测试图片,并转化为矩阵。 输入:测试图片地址。 输出:测试图片矩阵。
outfeatureImg() 输出特征图与特征值。 输入:训练图片矩阵集 输出:保存特征图与特征值为文件。\

代码介绍

(一)Mainapp.py代码

mainapp.py为主程序,表1函数清单中的函数均包含于其中。

运行程序后,程序先行运用ImgToNp()函数将img文件夹中0-9文件夹里的80个样本图片转化为矩阵保存于变量中并将其返回。

image-20201128202625504

image-20201128202640461

image-20201128202720385

image-20201128202731144

四、实验结果

运行mainapp.py后,输出框如下所示:

\1.   图片地址以导入矩阵...... 

\2.   准备提取特征...... 

\3.   特征以存储于feature矩阵...... 

\4.   准备贴标签...... 

\5.   标签以贴完...... 

\6.   是否输出特征图与特征值?y/n: 

输入y时,程序将输出80张样本的特征值与特征图,分别存储于”./fandimg/{0-9}”,以及”./fandimg/featureArray/{0-9}”中。如下图:

4img)img

程序继续运行,输出框输出:
1.    3-9.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[3. 7. 1.]]但是正确结果为:3  
2.    4-9.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[1. 1. 1.]]但是正确结果为:4  
3.    5-10.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[5. 1. 1.]]但是正确结果为:5  
4.    6-10.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[1. 1. 1.]]但是正确结果为:6  
5.    7-9.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[1. 1. 1.]]但是正确结果为:7  
6.    8-9.bmp 这张图判断错误了,系统判断为:3 最接近的三个结果为:[[8. 9. 3.]]但是正确结果为:8  
7.    8-10.bmp 这张图判断错误了,系统判断为:9 最接近的三个结果为:[[8. 9. 9.]]但是正确结果为:8  
8.    9-9.bmp 这张图判断错误了,系统判断为:1 最接近的三个结果为:[[9. 7. 1.]]但是正确结果为:9  

f