课程简介
《手写数字识别器》是一个机器学习算法的项目实战课程,课程中应用了 Python Tkinter GUI、支持向量机、方向梯度直方图(HOG)、OpenCV 等知识,带着同学们从基础知识学习、数据构建、算法训练、算法优化,一步一步来解决项目开发过程中的问题。课程共计 43 个视频,13 个小时。
《手写数字识别器》是一个机器学习算法的项目实战课程,课程中应用了 Python Tkinter GUI、支持向量机、方向梯度直方图(HOG)、OpenCV 等知识,带着同学们从基础知识学习、数据构建、算法训练、算法优化,一步一步来解决项目开发过程中的问题。课程共计 43 个视频,13 个小时。
手写数字识别是计算机视觉领域的经典问题之一,具有广泛的应用。本课程将深入介绍使用支持向量机(SVM)技术来构建一个高效的手写数字识别系统。学生将学习如何使用SVM进行分类,以及如何提取和使用 HOG 特征来实现数字图像的准确识别。课程目标如下: 学习和应用支持向量机算法进行算法模型训练和推理 学习和应用方向梯度直方图算法进行图像特征提取 探讨《手写数字识别器》优化方法和改进程序性能 /archiv... 查看完整内容
我们的开发环境:Win11 + PyCharm 2021.1.3 + Python 3.8.5 /?p=68695 使用下面的命令创建虚拟环境 digit-env: mkvirtualenv digit-env -p python3.8 在虚拟环境中,安装以下项目所需要的工具包: pip install numpy==1.23.0 -i https://pypi.tuna.tsinghua.edu... 查看完整内容
在我们的《手写数字识别》项目中,需要提供一个用于手写数字的绘图板作为用户界面,便于获得用户手写的数字输入算法模型以便能够进行识别。这一章节,我们主要介绍关于绘图板开发过程中用到的相关技术。主要包括: 画布构建图形绘制相关事件 1. 画布构建 在 Tkinter 中各种图形的绘制需要在画布上进行,构建画布需要两个步骤: 构建主窗口构建画布区域 import tkinter as tk def tes... 查看完整内容
前面我们已经学习了 Tkinter Canvas 控件相关的技术,现在我们将会使用前面学习的内容来实现用于手写数字的绘画板。绘画板主要包括四个部分,分别是: 主窗口界面顶部工具栏中心绘画区底部状态栏 1. 主窗口界面 主界面编写时,包括三个文件: Config.py 配置文件MainFrame.py 主窗口类App.py 入口文件 Config.py 文件内容如下: # 屏幕大小 SCREEN_W... 查看完整内容
《手写数字识别》项目基于支持向量机算法的,该算法的背后有着坚实的数学理论作为支撑,为算法的有效性和可靠性提供了坚实的基础。接下来,我们将会从以下第五个方面来讲解: 算法思想初探算法训练内容算法推理过程惩罚参数作用核函数的作用 1. 算法思想初探 一共有 13 个样本(二维向量), 6 个红色的、7 个黑色的,其在空间中的分布如下: 我们的目标是在该空间中找到一条直线(超平面)将黑色和红色类别样本正... 查看完整内容
《手写数字识别器》中会应用支持向量机算法、以及相关的参数搜索方法。这两个在 Scikit-Learn 中都有实现。这一节,我们将会学习两个相关的 API 的使用。 数据介绍算法使用网格搜索 1. 数据介绍 鸢尾花数据集是一个非常有名的机器学习数据集,它由美国统计学家 R.A. Fisher 收集。这个数据集包含了150个鸢尾花的测量数据,每个数据包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征... 查看完整内容
这一节,我们主要给大家讲解图像相关的基础知识,以及操作方法。 1. 图像知识 图像可以被视为一系列像素的集合,每个像素分别对应 0 到 255 之间的整数,0 表示黑色,255 表示白色。图像可以根据其颜色模式分为灰度图像和彩色图像、二进制图。 灰度图像(又称为黑白图像)只有一个分量表示像素的颜色,即灰度级别。每个像素的灰度级别介于 0 到 255 之间。灰度图像没有颜色,仅用灰度来表示图像的内容... 查看完整内容
经过前面的准备,我们将会进行初次的算法模型训练以及封装,并测试效果。从中去分析不足,然后在后续内容中针对不足进行优化。 import numpy as np from sklearn.svm import SVC import cv2 from skimage import io import glob import pickle import os 1. 数据处理 首先,我们先对训练数据进行读取... 查看完整内容
在先前的训练阶段,我们发现算法模型在训练集上达到了1.0的准确率,然而,其在测试集上的表现却不尽如人意,这暗示着模型可能出现了过拟合现象。 我们的算法模型是直接依据每个数字图像的像素数据进行学习的。因此,当遇到新的数字图像时,只要像素的位置或值稍有变动,就可能导致预测结果的不准确。 例如,在训练过程中,模型可能只是机械地学习了2+3=5。这意味着,当你输入3+2或4+3时,模型可能无法给出正确的计... 查看完整内容
经过第八章节的特征优化,我们的手写数字识别准确率有着明显的提升。但是仍然存在一个显而易见的问题,即:我们绘制的数字是对位置很敏感的。接下来,我们将会去探讨解决这一问题的方法。 1. 图像数据增强 数据增强是一种通过对训练图像进行一系列随机改变,从而扩大训练数据集规模的技术。这种技术的核心目标是降低模型对某些属性的依赖性,以提高模型的泛化能力。 具体来说,我们可以采用不同方式,让感兴趣的物体出现在图... 查看完整内容
/archives/68483 1. Windows 打包步骤 首先,进入到项目根目录下然后,在项目根目录下执行命令:接着,拷贝 source、data、model 目录到 dist 目录下,保证和 exe 同级目录最后,可以分发给没有 Python 环境的机器就可以直接运 pyinstaller --noconsole --add-data source;source --add-data mo... 查看完整内容
冀公网安备13050302001966号