图像识别技术解析:手写数字识别(一)

news/2024/5/9 5:12:29/文章来源:https://blog.csdn.net/m0_49380401/article/details/129134035

        本文通过构建一个手写数字识别的程序来解析来自机器学习与深度学习的不同算法的特点,以及如何对识别效果进行改进。

一、如何构建一个手写数字识别程序

首先可以考虑构建一个简单的页面用于用户输入,也就是前端;接下来需要准备一个后端用于调用模型进行预测。具体逻辑是:当用户在前端页面输入一个数字后,点击“识别”按钮,程序通过HTTP请求发送用户输入的数字到后端,之后由模型进行预测,返回预测值给用户,即返回识别结果。模型识别数字效果好坏决定了用户的体验是否良好,我们期望的是程序能够大概率准确识别用户输入的数字。

二、训练数据准备

可以使用现成的手写数字数据集(下面这组图片所属的数据集包含了7万个数据),但是存在分辨率低,书写不太规范的问题,譬如下面是从数据集中提取到的数字“5”的图片:

打印第1个图片后得到的效果如下:

另外一种方案就是可以通过手写数字前端输入页面来生成自己的数据集,为了能提高识别准确率,在前端输入时会尽量书写规范,以下就是新建数据集中数字“5”的图片打印出来的效果(原图片的分辨率为280x280,这里缩小为与上图一致的尺寸):

按照数字0 – 9 通过前端页面手写输入的方式,合计生成了1200个左右的新图片作为训练数据集(这里只是做demo演示用,所以数量不多):

三、使用机器学习的算法构建模型

在机器学习的算法中,随机森林能够体现“集成学习”的思想,即通过一批“被打残”的决策树来做集体预测,从而达到单体模型(譬如单个决策树)所不能达到的效果。对于机器学习的模型来说,其训练过程可以看做是“一杆子捅到底”,不具有迭代的过程。

首先看下训练数据集的情况:

X_train代表训练样本,维度为28 x 28,即784

y_train代表样本所对应的标签,如数字“1”图片对应的标签值为1

接下来是构建模型及训练的过程,这里使用了sklearn的函数train_test_split来切分训练数据集与测试数据集:

打印出来的模型基于测试集的预测准确率为0.77 左右,并不算高,但不影响用于本次手写数字程序的模型预测测试:

四、构建手写数字程序的前端和后端

前端使用简单html页面即可,具体效果如下,输入页面的重点是加了一个简单的方框以及提示语,引导用户尽量规范输入,从而提高识别准确率,这点在工程化实践中比较重要:

当用户拖动鼠标写入数字后,点击“识别”按钮,从而通过HTTP的方式把数据发送到后端并保存起来,在实际实践中,用户的输入应该被存储起来,一是可以作为后续训练数据集的补充,另外也可用于后续算法及模型改善的用途等等。

以下是简单保存图片的做法:

接下来就是调用模型读入上面保存的图片进行预测:

然后后端把预测值y_pred返回给用户,演示画面如下:

五、总结

在规范用户输入的情况下,使用机器学习的随机森林算法构建模型后,如果使用现成的数据集进行训练,得到的模型用于手写数字识别时,发现总体上识别准确率只有百分之三十左右,而新建数据集用于训练之后,识别准确率得到了很大改善,但是机器学习算法有其局限性,后面会使用深度学习中的CNN来做对比分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72093.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac 好用的类似Xshell工具

下载royal TSX 5.1.1 http://share.uleshi.com/f/9490615-685692355-33bf1e修改mac的etc/hosts文件权限访达(鼠标右键) -> 前往文件夹 ->输入/private --> 打开etc/hosts --> 显示简洁(鼠标右键) --> 权限改成读和写hosts文件写入如下内容:# Royal T…

空间直线方程及其与面线的夹角

一、空间直线的方程 1.1 空间直线的一般方程 空间直线 LLL 可以看做是两个平面 Π1\Pi_1Π1​ 和 Π2\Pi_2Π2​ 的交线,那么就可以用两个平面方程来表示这个直线: {A1xB1yC1zD10A2xB2yC2zD20(1)\left\{ \begin{aligned} A_1xB_1yC_1zD_10\\ A_2xB_2yC…

卷起来了,2023金三银四自动化测试面试题精选【字节二面】

面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来…

Office 365 备份与恢复

Microsoft Office 365中的不同服务几乎可以随时访问,这要归功于Microsoft的99.9%正常运行时间记录。但是,Office 365步履蹒跚的一个方面是提供了一种从意外数据丢失中恢复的方法。Microsoft 提供的数据保留功能并非适用于所有数据丢失情况的可行解决方案…

简述操作系统的文件系统

前言 文件系统是操作系统中负责管理持久数据的子系统,将用户的文件保存在硬盘等硬件设备中,即使断电了数据也不会丢失。 对于用户而言,文件是存储的最小单位,再少的数据也需要以文件的形式存储在外部存储器中。以硬盘为例&#…

FLV-初学总结

FLV-初学总结 从零开始仅学习了一下午的总结,本文非常稚嫩… 本文为纯初学者的学习记录,为了方便理解,内容未必严谨,可以用作纯新手的入门了解篇。本文主要的参考链接如下⬇️ 详细了解FLV:FLV官方文档(Ve…

论文解读 | [CVPR2019] 基于自适应文本区域表示的任意形状场景文本检测

目录 1 研究背景及意义 2 总体设计 3 方法论 3.1 自适应文本区域表示 3.2 文本建议 3.3 建议改进 4 损失函数 5 实验及结果 1 研究背景及意义 现有的场景文本检测方法使用固定点数的多边形来 表示文本区域。例如,水平文本使用2个点(左上/右下)表示文本区域&…

VR全景带你打卡《狂飙》经典取景地!

热度“狂飙”!电视剧《狂飙》的取景地——江门墟顶老街人气火爆,720VR全景带您了解,这个具有新活力的老街区,蛙色3DVR提供技术支持!通过航拍VR全景,全方位展示江门历史文化街区,720浏览&#xf…

【Java基础】反射

概述 引入 package ref;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r…

Revit项目浏览器的标准设置应用和快速视图样板?

一、Revit项目浏览器的标准设置应用 设计院阶段的BIM应用,主要是Revit出施工图方面,需要涉及到很多标准的制定方面的问题,而且这个标准不仅仅是一个命名标准,还有很多的符合本院的出图标准等等,本期就不做详细讨论&…

实验室通风橱通风柜的构成

一、实验室通风橱通风柜简介通风柜是一个密闭的同时又能排风的工作空间。其设计目的是为了控制、稀释以及排除这个密闭空间内产生制造的烟气、气雾和微粒,同时它也是实验室预防泄露控制的重要组成部分。在大多数实验室中,通风柜是保护实验室操作者免受有…

vulnhub LordOfTheRoot_1.0.1

总结:端口敲门,CVE-2015-8660提权, 目录 下载地址 漏洞分析 信息收集 端口敲门 网站分析 方法一 ssh登录提权 方法二 下载地址 LordOfTheRoot_1.0.1.ova (Size: 1.6 GB)Download: http://www.mediafire.com/download/m5tbx0dua05szjm…

OpenGL学习日记之模型绘制

自己编译运行过程中遇到的一些问题 下载Assimp已编译的lib(因为我们公司的电脑有很多权限和限制,也不能自己安装一些没有报备的软件,所以愁方便我就没有用cMake自己编译了)找到一位免费分享的博主的。 https://blog.csdn.net/lady_killer9/article/deta…

【论文阅读】SCRFD: Sample and Computation 重分配的高效人脸检测

原始题目Sample and Computation Redistribution for Efficient Face Detection中文名称采样和计算 重分配的 高效人脸检测发表时间2021年5月10日平台ICLR-2022来源Imperial College, InsightFace文章链接https://arxiv.org/pdf/2105.04714.pdf开源代码官方实现&…

STM32开发(13)----获取唯一设备标识符UID

获取唯一设备标识符UID前言一、什么事UID二、实验过程1.CubeMx配置2.代码实现3.实验结果总结前言 这一章节介绍如何获取STM32芯片中的唯一的ID号的两种方法。 一、什么事UID 在许多项目中,识别设备是必要的。从简单的设备描述到更复杂的设备,如 USB 串…

uboot / linux添加/去除 版本号LOCALVERSION

背景 偶然的机会,在insmod驱动模块的时候,遇到报错: 查找原因,说是当前系统内核版本和模块编译使用版本不同! 使用如下命令查看当前系统内核版本: uname -r 使用modinfo命令(嵌入式设备没有此…

2022年中国前10电商GMV总结

我是卢松松,点点上面的头像,欢迎关注我哦! 1,阿里8万亿;2,京东3万亿;3,拼多多3万亿;4,小程序私域电商3万亿;5,抖音电商1.4万亿。6,抖音本地生活服务电商600亿。7&#xf…

广东望京卡牌科技有限公司,2023年团建活动圆满举行

玉兔初临,春天相随,抖擞精神,好运连连。春天是一个万物复苏的季节,来自广东的望京卡牌科技有限公司,也迎来了新年第一次团建活动。在“乘风破浪、追逐梦想”的口号声中,2023望京卡牌目标启动会团结活动正式…

Fortinet推出新一代自研安全芯片,跨所有网络边缘加速网络与安全融合

专注网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT),近日宣布推出新一代自研安全芯片 FortiSP5,作为 Fortinet ASIC 技术的最新突破,有力推动了分布式网络边缘安全的重大飞跃。FortiSP5 源自 F…

快鲸scrm发布快递行业私域运营解决方案

现如今,快递行业竞争格局日益激烈,前有“四通一达”等传统快递企业,后有自带互联网基因、绑定电商流量新贵快递企业,如菜鸟、京东等。在这一背景下,很多快递企业开启了增长破局之旅,他们纷纷搭建起私域运营…