李政浩
图像分类是计算机视觉研究与许多专业领域的重要研究对象。良好的图像分类器能够针对特定的分类需求,快速准确的对某类图像进行分类,从而解决特定领域的特定问题。
当下,随着数据的爆炸增长,图像分类器在需要保证精度的同时,也需要拥有较快的速度。因此,实践中通常对大量图像进行粗分类后,然后再将粗分类结果作为新的数据集,再次进行细分类,以提高总分类速度。
本文探究了一种基于BP 神经网络的图像粗分类方法。通过反向传播算法,逐层传播误差。依据相似的图像拥有相似的直方图这一原理构建图像粗分类器,对图像样本进行快速的分类。实验结果表明,基于此方法搭建的神经网络非常稳健,在四分类问题中,最终分类准确率能够达到约70%,能够胜任图像粗分类任务的需求。
神经网络由多层神经元构成,通常包含输入层、隐藏层与输出层。每层由多个神经元构成,每层神经元的输入值有如下表示:
图1 不同图像对应的直方图
神经元的本质为一个非线性可导激活函数,本文采用的激活函数为Sigmoid 函数,通常使用表示,表达式如公式1,导数表达式如公式2:
根据如上神经元定义,当激活函数选用Sigmoid 函数时,即能够得到如下表示:
通过网络前向传播,最终便可得到输出层的输出值。
在有监督学习中,对于给定的输入值,数据中拥有已知的正确输出值。即需要神经网络在整个数据集上的误差最小。此时,需要引进损失函数。
损失函数是一类能够反映输出值与目标值差异的非线性可导函数。常用的损失函数有均方误差、绝对值误差、指数损失等,本文使用了平方差,表示如下:
使用C 表示损失函数;y 表示输出层神经元的目标输出值。
通过计算误差在不同参数上的敏感度,从而对误差进行调整,即可对权重以及偏置的差异进行调整。使用偏导数表示权重或偏置的差异程度,以权重为例,通过链式求导法则,能够得到代价C 对权重的敏感度表示如下:
同理,能够分别得到代价函数对偏置、上一层神经元输出以及上一层神经元权重的敏感度。
至此,误差即可从输出层通过隐藏层传播到输入层,经过多次训练,即可将网络的输出值趋向于某个稳健参数。
图像直方图是图像的特征之一。通过统计不同灰度像素值点的个数,从而得到图像在不同灰度权重的大小。
由图1 可见,相似图像的直方图形状也较为相似,不同类别的图像直方图差异也较大。
相似的图像拥有相似的直方图,因为一类图像中相同的色彩比例相似。依据这一原理,便能够根据图像的直方图形状判断图像是否属于一类。
本文训练集选用了四类风景图像,包含了海滩、森林、沙漠、夕阳图像各550 张。该问题为图像的四分类问题。针对此问题,构建了一个三层全连接网络模型。其中,输入层包含了768 个神经元;单个隐藏层包含了30 个神经元;输出层包含了4 个神经元。
在训练过程中,学习率为0.7,初始权重与偏置随机选用,神经元激活函数选用Sigmoid 函数,误差函数选用均方误差。
本文依据相似图像拥有相似直方图这一原理,构建了三层全连接神经网络,输入层有768 个神经元,分别对应图像红绿蓝通道0~255 灰度归一直方图的值;隐藏层具有30 个神经元;输出层有4个神经元,对应四类输出结果。
实验结果表明,基于此方法的分类器分类速度非常快,10 000 次前向传播,在本机环境下仅耗时约0.25s。在训练1 000 轮后,最终得到的分类准确率能够达到约70%,能够胜任图像粗分类的需求。
本文探究了基于BP 神经网络的图像分类器。介绍了神经网络以及BP 传播算法。通过该方法得到的分类器,能够在保证一定精度的同时,对图像进行快速的分类。
基于BP 全连接神经网络的图像分类器,具有速度快的特点。使用图像的直方图作为图像分类依据,在加快速度的同时,也增加了图像对平移、旋转、缩放的抗噪能力。