[D16] CNN应用

CNN在影像处理、辨识都是很重要的技术,在上一篇已经稍微了解 CNN 的概念後,现在来看看这个实用的技术会被运用在哪里吧!

CNN应用场景:

应用场景包括机器学习、文档分析、和图像辨识等领域。
CNN 相当於眼睛的角色,以辨识不同物体,现在很多地方都会使用数位的手写功能,就算只拿数字来看,每个人写出来的样子也都不同,这时候辨识的功能就很重要。

实作

首先要先汇入 keras 中引入 mnist → minst 是一个手写数字的图像资料集!整个 dataset 是由 60,000 张 training set 和 10,000 张 testing set,手写 0~9 平均分布并且是 28 x 28 的灰阶图片所组成。

# 导入函式库
import numpy as np
from keras.models import Sequential
from keras.datasets import mnist
from keras.utils import np_utils  # 用来後续将 label 标签转为 one-hot-encoding
import cv2

再来我们要载入 MNIST 资料库的训练资料,并自动分为『训练组』及『测试组』和建立简单的线性模型去执行。

(X_train, y_train), (X_test, y_test) = mnist.load_data()
model = Sequential()

将 training 的 label 进行 one-hot encoding 和把 training 的 input 资料转为2维

One-hot encoding:例如数字 7 经过转换後是 0000001000,即第7个值为 1。

y_TrainOneHot = np_utils.to_categorical(y_train)
y_TestOneHot = np_utils.to_categorical(y_test)
X_train_2D = X_train.reshape(60000, 28*28).astype('float32')
X_test_2D = X_test.reshape(10000, 28*28).astype('float32')

数值正规化後进行预测

x_Train_norm = X_train_2D/255
x_Test_norm = X_test_2D/255
X = x_Test_norm[0:10,:]
predictions = model.predict_classes(X)

print(predictions)  # get prediction result

接下来就可以读取影像罗~

img=cv2.imread('C:/Users/User/Desktop/7.png', cv2.IMREAD_GRAYSCALE)
crop_size

cv2.imshow('My Image', img)  # 显示图片
                 
cv2.waitKey(0)         # 按下任意键则关闭所有视窗
cv2.destroyAllWindows()


得到最後结果!

img_2D = img.reshape(1,28*28).astype('float32')
img_norm=img_2D/255
img = img_norm
predictions = model.predict_classes(img)
# get prediction result
print(predictions)

<<:  [Day19]-档案读取与写入

>>:  007 2021线上看

#16 Automation (4)

今天写第二步「进入选课页面」、第三步「至加选页面」及第四步「查询你想要的课程」。 enter 这个函...

Day1 : M365上的离职人员邮件要怎麽处理呢?

常会遇到这问题 , 离职人员的邮件要怎麽处理呢? 又不想花钱只为了留下资料,那要怎麽做呢? 可以选择...

Day 18 AWS云端实作起手式第八弹 让开机器变得很自动自发Auto Scaling-WriteNode设置

Auto-Scaling设置内容较多,我们快速回顾一下昨天的架构图: 针对外面的流量,我们提供使用者...

Day17_HTML语法14

今天要介绍,当要让使用者输入数字,将< input>元素的type属性设定为"...

【Day 15】从零开始的 Debug 生活 - Debugger 原理

环境 Windows 10 21H1 x64dbg Aug 2 2020, 13:56:14 IDA...