1 图像基础理论
视网膜上分布光线接收的神经细胞,分为锥状体和杆状体。每只眼睛有600万- 700万个锥状体,其对颜色灵敏度很高,负责亮光视觉。有7500万- 15000万杆状体,杆状体没有颜色感觉,负责暗视觉。
多数传感器的输出是连续的电压波形,图像数字化就是将一副画面的数据转换为计算机能够处理的数字形式。
采样后得到离散图像的尺寸称为图像分辨率。分辨率是数字图像可辨别的最小细节。分辨率由宽(width)和高(height)两个参数构成。宽表示水平方向的细节数,高表示垂直方向的细节数。
数字图像中的每一个采样点,被称之为像素(Pixel)。像素可以由它在图像中的位置坐标(x,y)来描述。对于一副M∗ N分辨率的数字图像,通常我们把左上角的像素记为原点(0,0)。水平方向的坐标范围是[0,M-1],垂直方向的坐标范围是[0,N-1]。
灰度
灰度级(depth)表征了每个采样点的传感器输出中可分辨的最小变化。灰度级通常是2的整数次幂。我们用m级或者n位来表示灰度级。图像数据的灰度级越多视觉效果就越好。计算机中最常用的是8位图像。单通道的数字图像被称为灰度图。通常,单通道记录了采样点的亮度信息。
通道
为了表示彩色图像,我们需要使用多通道数字图像。最普遍的方式是使用RGB颜色空间。RGB颜色空间中每个像素点有三个维度,分别记录在红(Red)、绿(Green)、蓝(Blue)三原色的分量上的亮度 。例如:
按照(r,g,b) 的方式:
-
(255,0,0) 纯红
-
(124,252,0) 草坪绿
-
(135,206,235) 天蓝色
2 手写数字与SVM结合
2.1 项目实现流程
-
对图片进行处理
- 获取图片数据
- 标签数据
-
模型训练
- 模型调参
- 模型训练
- 模型保存
-
模型测试
- 调用训练好的模型
- 获取测试数据集信息
- 显示测试集数据
2.2 手写数字图片
- 图像简单:灰度图、尺寸小
- 多分类:0-9数字识别
- 差别:风格迥异
2.3 模型保存处理操作
模型保存库 :joblib
, 安装方法
pip install joblib
-
模型保存语法:joblib.dump(模型对象, ‘模型名称.model’)
-
模型读取:模型对象 = joblib.load(model_path)
#!/usr/bin/python3 #code-python(3.6) #导入鸢尾花数据集 from sklearn import datasets #导入内置数据集模块 iris=datasets.load_iris() #导入鸢尾花的数据集 x=iris.data #样本数据共150个,每个样本4个属性分别为花瓣和花萼的长、宽 y=iris.target #样本数据的标签,共150个 #训练模型-SVM from sklearn import svm #导入sklearn模块中svm model = svm.SVC(gamma=0.1,C=100) #定义一个svm分类器 model.fit(x, y) #用训练集构建模型 #训练模型的保存与恢复 from sklearn.externals import joblib joblib.dump(model,'dump_model.pkl') #将模型保存到本地 model2 = joblib.load('dump_model.pkl') #调入本地模型 #model为用训练集训练好的模型 score_test = model2.score(x,y) #计算模型准确度 print(score_test)
3 效果可视化处理
3.1 可视化效果展示
1)主界面效果
2)点击选择图片按钮
3)显示预测效果
4)可视化页面设计
页面UI设计;页面预测效果(调用SVM模型,预测效果,页面展示)
3.2 模型测试
-
1)获取模型位置并加载
-
2)获取测试图片路径:将图片和标签进行处理
-
3)模型预测结果
-
4)统计用时及准确率
3.3 界面设计
采用可视化页面工具Pyqt5
pip install pyqt5
优势:简单;功能强;跨平台;性能高
-
1)界面外观:尺寸设计;显示窗口;按钮
-
2)功能操作:点击显示图片功能;窗口回调功能
若需需项目代码可私聊!