KNN手写字体识别任务的优化-二值处理和归一化处理

归一化处理

参考文章:图像归一化
其实我们经常对图像进行的一种预处理方式是归一化处理,

我们这门课是以实战为主,因此部分理论的知识,会点到为止,大量的时间将用于理论与问题的结合上。

图像归一化简介

图像归一化是计算机视觉、模式识别等领域广泛使用的一种技术。所谓图像归一化, 就是通过一系列变换, 将待处理的原始图像转换成相应的唯一标准形式。

归一化的作用

首先要记住,归一化处理不会改变图像的对比度,其次,归一化最直观的理解就是将所有的像素值从原来的[0,255]区间,转化到[0,1]区间。

再者,其作用总的来说是:

  • 图像归一化使得图像可以抵抗几何变换的攻击,它能够找出图像中的那些不变量,从而得知这些图像原本就是一样的或者一个系列的。(在本场景中主要)
  • 避免具有不同物理意义和量纲的输入变量不能平等使用。
  • 神经网络中归一化是为了加快训练网络的收敛性或者是归纳统一样本的统计分布性。
图像归一化的几种方式

(1) 线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
y=0.1+(x-min)/(max-min)*(0.9-0.1)(归一到0.1-0.9之间)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
(2) 对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
(3) 反余切函数转换,表达式如下:
y=atan(x)*2/PI
(4) Z-score标准化方法
这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
y = x − μ σ y = \frac {x - \mu} {\sigma} y=σxμ
其中 μ \mu μ为所有样本数据的均值, σ \sigma σ为所有样本数据的标准差。

我们主要将线性转换和Z-score转换
首先指出,如果不做二值处理和归一化处理时的分类准确率是:
准确率:0.7138
F1-Score:0.833

线性转换
img_arr = (img_arr - img_arr.min())/(img_arr.max() - img_arr.min())

试验结果是:

准确率:0.8852
F1-Score:0.9391

Z-Score
img_arr = (img_arr - img_arr.mean())/(img_arr.var())

试验结果是:

准确率:0.8569
F1-Score:0.9229

二值化处理

二值化处理,其实是将一个图像的像素点,根据与自定义的阈值的比较,将其转化为1或0。

其实这种方式,是最合理的,因为在手写字体识别过程中,我们并不需要知晓黑色的深浅,只需要知道黑色的部分是否不是黑色。因为不是白色的位置,就意味着是字体的一部分。

而之前提及过,灰度图中白色的像素值是255,黑色是0。
于是代码有:

    # 二值处理
    for indexi, i in enumerate(img_arr):
        for indexj, j in enumerate(i):
            if j != 255:
                img_arr[indexi][indexj] = 1
            else:
                img_arr[indexi][indexj] = 0

实验结果是:
准确率:0.9451
F1-Score:0.9718

那么如果两者结合会怎样呢?

  • 先执行归一化处理,再执行二值处理。
    线性:
    准确率:0.1015
    F1-Score:0.1843
    Z-score:
    准确率:0.1015
    F1-Score:0.1843

  • 先执行二值,再归一。
    线性:
    准确率:0.9451
    F1-Score:0.9718
    Z-score:
    准确率:0.9451
    F1-Score:0.9718

经过上述比较,最终将会使用二值处理在之后的每一次尝试中都会用到。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值