机器视觉及图像分类
撰写本科毕业论文前期文献准备
扩大课题在知乎上查相关的文献并且下载,之后导入Endnote里面,如果下的是CAJ文件的话,需要再下载一个CAJViewer阅读器。
因为是第一次看论文。但每篇都做了相关的笔记。看完30多偏后,对自己的课题有了一个总体的框架,并且和导师聊了下后续的进展。
分享一下自己做的笔记
长文警告:
(1) 一种机器视觉的书籍类整理识别系统设计
知识点;
(2) 一种基于卷积神经网络参数优化棉花等级分类算法
分类:VGG16卷积神经网络-迁移学习-搭建模型-梯度下降优化算法-重复训练模型-确定最佳参数值
卷积神经网络中InceptionV3模型,迁移学习,对预先处理好的深度学习网络进行学习,提高效率和识别精度
利用图像采集技术建立采集样本图像
利用Keras深度学习框架实现对VGG16网络模型搭建。对图像进行预处理后再进行迁移学习
神经网络模型的训练?
通过公式;确定超参数值和轮次数对模型进行训练,机损分类正确率。选择交叉熵作为损失函数
现成的神经网络库比如Keras、Tensorflow
神经网络-吴恩达老师教程
VGG16: 基于大量真实图像的ImageNet图像库预训练的网络
导入必要库
使用Keras建立VGG16模型?
预测;写一个方法来加载并处理图片,读取VGG16的类别文件,开始预测
神经网络:我们可以在计算机上创建神经网络,来对这个过程进行建模,且并不需要模拟分子级的生物复杂性,只要观其大略即可。为了简化起见,我们只模拟一个神经元,含有三个输入和一个输出。
利用所得样本集作为训练集来训练这个神经元。当加入一个新的情况时来自动判断结果即输出
训练过程:但是如何教会神经元来正确的回答这个问题呢?我们要给每个输入赋予一个权重,权重可能为正也可能为负。权重的绝对值,代表了输入对输出的决定权。在开始之前,我们先把权重设为随机数,再开始训练过程:
1.从训练集样本读取输入,根据权重进行调整,再代入某个特殊的方程计算神经元的输出。
2.计算误差,也就是神经元的实际输出和训练样本的期望输出之差。
3.根据误差的方向,微调权重。
4.重复10000次。
最终权重达到训练集的最优值。再用神经元去思考一个新的形势来得到预测。
计算神经元输出方程:
构建Python代码。–网页收藏9行Python代码搭建神经网络
图片输入:像素值构成数组。像素值组成的矩阵
卷积:从输入图片中特征提取 基于一个小矩阵,也就是卷积核 -过滤器,在上面所说的每层像素矩阵上不断按步长扫过去的,扫到数与卷积核对应位置的数相乘,然后求总和,每扫一次,得到一个值,全部扫完则生成一个新的矩阵。卷积核如何设置可以参考卷积神经网络的卷积核大小、个数,卷积层数如何确定呢?一般取(3,3)的小矩阵,卷积核里面每个值就是我们需要寻找(训练)的神经元参数(权重),开始会随机有个初始值,当训练网络时,网络会通过后向传播不断更新这些参数值,直到寻找到最佳的参数值。如何知道是“最佳”?是通过损失函数去评估。
不同的卷积核对不同的图像信息敏感,可以用于提取不同的特征
最后一个输出层与前一层是全连接,但其输出最终的结果,起到分类器的作用
卷积神经网络对数据进行多次深度的抽象,不断学习优化的过程也称为深度学习
卷积神经网络CNNS:可以避免对数据负载预处理过程的优点,直接将原始图片作为模型输入
卷积特征值
LeNet架构-深度学习领域的卷积神经网络之一:卷积(对原图像特征增强,降低噪声,从而得到特征图)-非线性-池化(降低每个特征映射的维度)或下采样-分类
卷积+池化=特征提取器
全连接层=分类器-------网页收藏卷积
通过卷积神经网络对图像分析得到特征图
(3) 基于深度学习技术的生活垃圾分类模型设计
结合图像识别,分类模型,inception –V39(卷积网络)神经模型-谷歌开源cnn模型
可以直接利用谷歌的inception模型来完成分类(Inception为Google开源的CNN模型,至今已经公开四个版本,每一个版本都是基于大型图像数据库ImageNet中的数据训练而成。因此我们可以直接利用Google的Inception模型来实现图像分类。)—使用代码调用图像可以直接完成分类作用,识别
深度神经网络模型-图像识别
Inceptionv3-imagenet训练参数模型-特征提取-图像处理-softmax回归完成图像分类
Tensflow里面的教程,可以在Gitub里面找已经训练好的模型代码
迁移学习:利用任务、数据、模型之间具有的相似特征,将在源
领域中已经学习过的模型应用于新领域的而免去生成样 本一种学习过程就叫迁移学习。迁移学习的思想是使用大型数据集先进行模型的预训 练,之后采用已经训练好的参数对小的学习样本进行参数 微调,这样使得我们最终训练出来的模型具有快速、高精 度的双重优势。
2021、1/22 DAY 2
(4) 基于机器视觉的小桐种子识别分类研究
(5) 基于K-means聚类+BP神经网络算法分类的水果等级识别与应用
K-means聚类算法-基于划分的算法:计算距离聚类中心的距离,并选择最小值的类作为该对象的所属类别
物体图像采集(相机)-图像预处理(彩色空间选择和滤波)
BP神经网络-增加精准度。实现识别分类器。结合后进过深度学习可以生成一个可以实现的分类算法,对待测样本进行预测。
训练样本-待测试样本
(6) 基于机器视觉的生活垃圾智能分拣系统的设计与实现
深度学习:通过对院图像信号进行逐层特征变换,建立模型模拟大脑的神经连接结构,将样本在原空间的特征表示变换到新的特征空间,通过多个变换阶段分层对数据特征进行描述,进而给出数据的分类或者特征的可视化。
视觉识别:针对图像采集和处理的过程
训练样本-特征提取-训练分类集
深度网络CNN进行提取卷积特征,训练SVM分类器进行窗口回归修正
机器视觉—自己通过相机采样物体图片
如果是基于某某算法的分类-可以通过机器视觉。也可以知己利用已有的图像集在模型中进行训练后,预测。
如何选择机器学习分类器
看训练集大小-贝叶斯-决策树-SVM
机器学习中建模过程
数据处理-特征工程-模型选择-寻找最佳超参数-模型分析与模型容融合
2021.1.29 day4
(7) 基于机器视觉的汽车零部件自动分拣系统设计
Halcon软件(机器视觉软件)完成图像处理—与VS2010 结合
halcon:底层功能算法多,运算性能快,开发需要一定软件功底和图像处理理论。
需求主要有二维三维二维:(1)识别定位;(2)OCR识别;(3)二维码识别;(4)测量;(5)缺陷检测;(6)机器控制等三维:(1)多目标定(2)三维重建(3)三维匹配等
机器视觉工程师:图像处理的基本理论知识(图像理论的基础知识)B、图像增强(对比度拉伸、灰度变换等)C、图像的几何变换(仿射变换,旋转矩阵等)D、图像的频域处理(傅里叶变换、DFT、小波变换、高低通滤波器设计)E、形态学(膨胀、腐蚀、开运算和闭运算以及凸壳等)F、图像分割G、图像复原H、运动图像I、图像配准(模板匹配等)J、模式识别(分类器训练,神经网络深度学习等)(2)软件编程功底具备C,C++,及MFC界面开发的功底A、C语言的学习主要看谭浩强写的C语言相关知识B、C++主要看C++primerplus书籍C、MFC的学习主要看孙鑫编写的《VC++深入详解》这本书及相应的视频教程,并在VC++6.0软件或VS2010等软件上编写程序和实践。D、C#可以看书籍《C#从入门到精通》、《C#入门经典》、《C#图解教程》(3)光学知识:光学知识主要在你设计方案时相机、光源、镜头等选型时起到关键作用。
最好是先用HALCON实现图像处理部分,然后在VS2010开发软件中利用MFC图形界面实现出来,实践学习是最好的方法。
(8) 深度学习的图实例分割方法综述
(9) 机器人视觉识别抓物取件
图像处理技术:灰度处理技术(凸显图中信息)-滤波处理技术(将图像中的噪点进行减弱,显现其他关键的信息点,保证图像的有效性)-二值化处理技术(对图像像素点灰度值简化)(保证阈值的正确性)
(10) 基于机器视觉的火车驾驶员动态手势识别方法
识别方法:神经网络、SVM、卷积神经网络、
SVM对二分类处理效果明显、其训练集之外的数据能够做到预测准确,泛华错误率低。和实时性能好
SVM算法训练分类器
样本库-DTW算法最优匹配
2021.1.30 day5
(11) 基于深度卷积神经网络的细粒度图像识别与分类算法研究
图像识别:传统图像识别(选择),细粒度图像识别
传统图像识别过程:
训练阶段:样本经过与处理后,提取特定的特征,将这些特征进行统一的编码,形成人工特征描述子,建立分类模型
分类器的设计采用BP神经网络算法
测试阶段:测试样本经过分类器统一的处理过程,得到特征描述子后,与已存在的特征库中的特征进行匹配,输出识别的分类结果
全局特征:颜色,形状,轮廓
局部特征:方向梯度直方图HOG特征,尺度不变特征转换SIFT特征,局部二值模式LBP特征
卷积神经网络能降低网络的复杂度和训练参数的数量级及难度
强监督:
弱监督:
卷积神经网络的模型训练:基于梯度误差的反向传播算法
(12) 垃圾分类之自动识别技术探索
垃圾类型:可回收垃圾(纸类,金属,塑料,玻璃),厨余垃圾,有害垃圾,其他垃圾
(13) 基于图像视觉的垃圾分类机器人识别控制系统算法设计
相机完成垃圾图像的采集并将图像信息传递给图像数据存储器,再传递给中央处理器,中央处理器接受数字图像信息完成对垃圾图像的预处理(图像增强,边缘检测,噪声滤波)和目标轮廓特征提取并且对比预设模型数据(尺寸和中心坐标信息)
(14) 基于Keras的卷积神经网络的图像分类算法研究
Keras:模块化的神经网络库
CIFAR-10 图像数据集
图像预处理:合并全部训练图片及其标签将像素灰度值归一化—对数据进行图像增强—将标签进行one-hot编码以达到使用softmax进行预测目的—导出预处理后的训练数据
2021.1.31 day6
(15) 基于机器学习的音频分类
分类器–SVM:支持向量机分类器、朴素贝叶斯分类器、人工神经网络
(16) 垃圾分类的意义及原则
作为背景信息使用
(17) 基于卷积神经网络的垃圾分类系统的研究
通过设备采集图像信息-利用深度学习网络(卷积神经网络)将一个完整图片分割成许多个小部分,把每个小部分里的特征提取出来-汇总特征进行图像识别
(18) 基于深度学习的垃圾分类识别技术
模型训练—垃圾图片采用深度学习模型进行训练,先对垃圾数据集进行分类,将90%的图像作为训练集(模型训练-配置模型网络、选型激活函数、损失函数、优化函数),10%作为验证集。
(19) 基于深度学习实现自动垃圾分类
机器学习过程:将收集到的大量数据输入到已有的模型中区,对其进行训练,使机器经过反复的运算得到变量之间最优的关系-将新的数据输入到训练好的机器中,对输出值进行预测,数据输入给机器后,机器每次根据新的数据来进行学习。 梯度下降法-机器学习模型求解
机器通过神经网络进行自主学习
垃圾分类:识别—二分类
(20) 基于深度学习的小目标检测算法综述
2021.2.1 day7
(21) 基于机器视觉的金针菇分类识别方法研究
深度学习是由多个卷积层,池化层以及全连接层等组成的网络模型,可以通过多层网络学习提取数据的抽象特征
应用深度学习技术对图像进行分类,卷积神经网络适合于图像的分类,通过这个架构可以缩短神经网络的训练时间。
深度学习的学习工具:torch&overfeat, tensorflow,theano,mxnet,caffe
图像数据库构建:拍照—图像预处理—建立分类模型
迁移学习:运用从丰富数据量中学习到的知识迁移运用到数据稀缺的环境。
将包含图像的imagenet数据集作为数据源,imagenet数据集种类丰富,数量大用从imagenet上训练好的模型进行迁移学习。
神经网络经典的两个网络模型:Alex,VGG
VGG-16的迁移学习金针菇根部分类模型:将VGG-16网络在imagenet中学习到的特征层迁移到具有较少数据的金针菇根部分类问题。
用局部二值模式特征对图片进行特征提取,再用支持向量机进行分类
(22) 基于机器视觉的废纸箱分类识别技术研究
对比技术参数,选择相机类型及光源采集不同类型的废弃纸箱图像建立数据集
—对采集的图像样本进行预处理,图像压缩,图像增强以及图像平滑(突出需要的特征、去除噪声,最大程度上回复图像原貌),图像灰度化
图像平滑技术:中值滤波,均值滤波、高斯滤波
–图像分割-边缘检测(特征提取和模式识别手段)用梯度算子,拉普拉斯算子,Canny算子
–形态学处理:将图像中非目标区域去吹,只保留住有用的感兴趣的信息
对预处理后的纸箱进行阈值分割处理,将目标区域与背景区域相分离,再对分割后的图像运用边缘检测技术,为后续的形态特征提取做准备。对图像进行形态学处理可以除掉多余的小区域。
–图像特征提取(将属于特征的像素从图像中分离出来)与分类
:–纹理特征提取灰度共生矩阵的方法、形态特征(周长面积圆形度)
–基于SVM(监督式的机器学习方法)分类
将随机选定的训练数据输入到SVM分类器模型中进行训练,得到SVM分类模型后,在将剩下的数据添加到SVM模型中进行分类。
2021.2.2 day8
(23) 基于ROS和计算机视觉的智能垃圾分类系统设计
通过颜色、形状、质地、大小、材料来区分垃圾种类
使用深度学习模型判断图像种类
模块化程序:主程序、图像处理子程序(opencv)、训练学习子程序
图像识别子程序等
模型学习是利用深度学习tensorflow库,训练已有图片,得到训练后的模型,识别系统工作是使的图像处理技术(阈值处理、高斯模糊等)调整图片,并使用模型来识别经过处理后的图片。
(24) 基于tensorflow2.0的图像分类算法研究 最保守选择
与传统的图像分类方法不同,深度学习能够自主地学习图像特征,并提取出更高维的 图像特征,具有很强的泛化能力和表达能力。
TensorFlow 是基于数据流图的数值计算软件库,为实现机器学习或深度学习算法提供接口和计算框架。
使用 TensorFlow2.0 的 Keras 高级 API 构建一个卷积神 经网络模型,来解析 TensorFlow2.0 图像分类的实现 过程。
步骤:
数据预处理:采用cifar-10数据集,从从 TensorFlow2.0 中下载获取 CIFAR-10 数据集, 并传入训练集和测试集的数据和对应标签。将训练集和测试集的图片像素值归一化处理。
模型构建与训练:TensorFlow2.0 提供了完整的模型构建参数,包括基本的构建模块,如卷积层、池化层、全连接层、递归神 经网络模块和非线性激活函数等来完成神经网络模型 从输入到输出的计算;各种损失函数,如交叉熵、均方 误差等来构建神经网络模型的前向传递;自微分(auto⁃ diff)函数和模型优化器,如 adam、adagradumizer 等来自动构建神经网络的向后传递操作。
结果分析
(25) 基于倒谱与BP网络的船舶生活垃圾分类方法研究
据 BP 网络理论,在MATLAB 中编程实现基于 BP 网络的声波特征分类算法,程
(26) 基于深度学习的生活垃圾
数据集:阿里云天池举办的垃圾分类比赛中的数据集,网上爬取的生活垃圾照片
数据集分类:干垃圾:一次性快餐盒、污损塑料、烟蒂、牙签、破碎花瓶、碗碟、竹筷
湿垃圾:剩饭剩菜、大骨头、水果果皮、果肉、茶叶渣、菜叶菜根、蛋壳、鱼骨
可回收垃圾:充电宝、包、插头电线、旧衣服、易拉罐、枕头、毛绒玩具、洗发水瓶、破礼品、皮鞋、砧板、纸板箱、酒瓶、金属食品罐、锅、饮料瓶
有害垃圾:干电池、软膏、过期药物
一部分作为训练集使用,一部分作为测试集
训练集使用labeimage(专门用来进行数据标注的常用软件,对图像数据进行目标检测和实例分割的标注)软件进行标注,生成对应的xml文件
(27) 基于GPU深度学习的家用智能垃圾桶设计
数据集:使用 opencv 处理图像数据,将图片加载到 MobileNet 模型中进行预测并将输出放入全连接层中训练其权重,调用 MobileNet 的底层来预处理图片。
模型构建:先要使用 Python 调用 TensorFl ow 的库来构建模型
的顶层,之后使用之前生成好的 npy 数据集来训练模型,期 间使用 GPU 进行加速
模型优化:①激活函数:softmax 函数 ②优化器:随机梯度下降法——深度学习中寻找最优解的方法。 fx e x i ie xi ③损失函数:本设计中使用的是 categorical_cros sentropy(交叉熵损失函数)。 ④正则化:过拟合会对测试机数据的准确率产生较大影响,出现过拟合现象。
(28) TensorFlow手写数字识别分析
。TensorFlow支持多种训练模型,例如卷积 神经网络,递归神经网络。在机器学习领域Python编程语言 是最热门的编程语言。利用 pip install tensorflow命令可以将 TensorFlow 安装集成到 Python 中。在 Python3.8.5 中建立工程并利用 import tensorflow将 TensFlow 导入 Python 中。为了分析迭代次数对训练学 习时间的影响需要利用 import time 将时间库导入。
利用 TensorFlow 深度学习平台构建神经网络仅需要设置所要构建神经网络的 层次及节点信息,定义损失函数,设计学习率更新参数以及 设计合适的迭代次数保证学习结果的收敛。
利用 TensorFlow.Variable 将输入参数初始化并 利用 random.truncated_normal 函数生成基于正态分布的 参数。定义损失函数为均方差,搭建神经网络使用自动求导 函数 tape.gradient 作为激励函数计算参数的梯度。参数更 新用参数原值减去该参数与学习率的乘积。
了方便多维度矩阵计算及 可视化计算结果,利用 import nmpy 和 import matplotlib 将数学库nmpy及绘图库matplotlib也一并导入Python中。 nmpy 不是 Python 的标准库,需要利用 pip install nmpy 将该软件包安装到 Python 中。
(29) 基于机器视觉的垃圾自动分类系统设计
利用迁移学 习对 Inception v3 模型进行重新设计,利用预训练 模型在本文的垃圾数据集上重新训练得到垃圾识 别模型,与 LeNet、AlexNet、Vgg 和 ResNet 网络模型进行对比,验证模型的准确性。
即使题目写的是机器视觉可以不我认为要通过相机实时抓取物体图片,利用网上已有的垃圾图片构成数据集,数据集来源于网上和现实生活拍照,共 14 种物体 4 168 张图片.
加快训练速度,采用 迁移学习方法对 Inception v3 模型进行重训练. 基 于 ImageNet 数据集进行预训练,得到预训练模 型。
训练批次大小为
32,激活函数选择 ReLU 函数,学习率为 0.001. 基 于 ImageNet 数据集进行预训练,得到预训练模 型;将 Inception v3 全连接层的输出由原来的 1 000 变为 14,在本文的垃圾数据集上进行重新训练。
(30) 基于深度卷积神经网络的物体识别算法
关键技术有特征提取和训练分类器
深度图像上提取的特征是 Spin Images,实验证明了将彩色 和深度图像的特征结合起来训练分类器的方法能显著提高分 类精度。
图像预处理:
用深度卷积神经网络对图像提取特征的一个好处是不用 对原始的图片作一些底层的图像处理操作,可以把原始的图 片直接输入给网络模型。
但由于计算机计算能力有限,现在 还不能达到完全依赖增加训练数据来训练大的模型这样的程 度,而是要对训练数据增加一些先验知识,也叫作数据增强处 理。主要方法是从原始的图片中随机选取出几张大的图片 块,并对这些图片块作左右翻转,将得到的图片块都作为训练 数据的一部分,这样做的好处是可以减少过拟合。
卷积层的每张特征图表示的是图像的一种特征,层数越高,特征越抽象,加上全连接层的目的是将底层各特征图的特 征结合到一起,然后用 SVM 进行分类
2021.2.4 day9
(31) 基于深度卷积神经网络的物体识别算法
(32) 基于深度学习的贝母分类算法研究与实现
传统机器学习在,的分类算法:决策树、K近邻、朴素贝叶斯、支持向量机、聚类
深度学习:图像分类的核心算法,卷积神经网络是重要组成部分。梯度下降算法训练卷积神经网络。反向传播算法来指示机器应该如何改变内部参数数据集中复杂的结构。深度学习开源框架:tensorflow、Keras、caffeine、pTorch。
数据集:imagenet 采用数据增强的方法来增加训练集的大小,因为在图像分类任务中类别信息对于许多变换是保持不变的,数据增强随机改变了训练样本,可以降低模型对某些特征属性的依赖,从而提高模型的鲁棒性,避免过拟合,增强模型的泛化能力。方法:反转或者镜像,旋转,高斯噪声
在分类识别问题中,数据、特征、模型、是机器学习的三要素,数据预处理是基础,特征提取是关键,特征分类是目标。
训练模型(学习过程)-从已知特征中找出潜在的规律或者差异,获得模型自动的完成任务。进行模型训练前-确定合适的学习算法(决策树、K近邻、朴素贝叶斯、支持向量机、聚类)-确定算法后,应对模型的训练过程进一步调优(不断迭代的过程,直到达到最优的状态)-模型训练完成后通过测试数据对学习模型进行评估。通过真实数据和预测结果进行对比来判定模型性能的好坏。
传统机器学习流程
特征提取:灰度共生矩阵:反映灰度空间相关性。方向梯度直方图:表示图像目标区域的外形轮廓。
(33) 基于机器视觉的苹果特征选择和分类识别系统
Svm实现-DSP
(34) 基于深度学习的图像分类处理
Tensorflow:通过深度学习框架可以直接调用卷积、池化、激活函数等模块来搭建模型
网络搭建中加入激活函数来解决模型线性表达单一的问题:sigmoid、tanh、relu、
迁移学习:提高样本数据利用率,提高机器学习的效率,解决样本数据不足