基于卷积神经网的网上爬取图片的自动分类

2019-09-10 04:46陈磊李鹤喜
现代信息科技 2019年15期
关键词:图像分类网络爬虫神经网络

陈磊 李鹤喜

摘  要:本文采用网络爬虫技术,根据关键字自动收集所用图片数据集,并对爬取到的图片进行除杂与标注,省去了人工收集的过程,提高了制作数据集的效率。搭建并训练了一个9层的卷积神经网络模型用于处理爬取图片的自动分类,经实验证明,训练后的模型对6类球和5类犬的识别准确率可达90%以上,可以用于网络爬取图片的自动分类。

关键词:网络爬虫;图像分类;神经网络;深度学习

中图分类号:TP391.4      文献标识码:A 文章编号:2096-4706(2019)15-0091-04

Automatic Classification of Crawling Pictures Based on Convolutional Neural Network

CHEN Lei,LI Hexi

(Department of Intelligent Manufacturing,Wuyi University,Jiangmen  529020,China)

Abstract:In this paper,web crawler technology is used to automatically collect image data sets according to keywords,and to remove clutter and label the crawled images,which saves the process of manual collection and improves the efficiency of data collection. A 9-layer convolution neural network model is constructed and trained to process the automatic classification of crawling pictures. Experiments prove that after training,the recognition accuracy of six kinds of balls and five kinds of dogs can reach more than 90%,which can be used for the automatic classification of crawling pictures on the network.

Keywords:web crawler;image classification;neural network;in-depth learning

0  引  言

圖片分类是计算机视觉领域中的基本研究课题之一。每天互联网上都产生大量的图片信息,有时我们需要收集这些图片信息作为基本的数据源,为提高效率,采用网络爬虫技术实现图片自动爬取[1]。然而爬取的海量图片、视频数据绝大多数是没有类别标签的,对其进行人工分类必定会花费很多时间和精力,如果能开发一个分类能力强且能够自动分类海量图片或自动识别特定物体的系统,无疑将大大方便我们对这些图片信息的高效组织和对有用图像的快速提取,本文的目标就是采用深度学习的卷积神经网来实现网络爬取图片的自动分类与管理。

1  图像爬取与标签制作

1.1  图像爬取

采用网络爬虫爬取网上图片一般要经过以下步骤:(1)设置一个种子URL,由此开始获取待抓取的URL队列;(2)读取URL并解析下载网页;(3)进行网页文件解析,筛选扩展名为jpg、png等文件;(4)判断文件名与关键字是否相关;(5)将图片文件存入指定目录。如果需要加快速度可以放置多个线程并行爬取,图片爬取流程如图1所示。

1.2  图像标签的制作

以爬取的图片作为卷积神经网络模型的训练集,需要做批量标注,即每个图片都要建立对应的标签,下面以爬到的球类训练数据集为例(分类6种球)说明标签的制作过程。虽然爬取图片时是按关键字爬取的,但是爬取结果也会有掺杂,所以,每个类别都要经过人工剔除无效图片,去除无效图片时要遵循以下原则:(1)去除与此类无关的图片;(2)去除模糊的图片;(3)去除水印面积过大的图片;(4)去除尺寸过小的图片;(5)内容过于杂乱的图片。保留那些高清的、与类别有关的图片。

完成所有图片除杂工作后,接着要制作数据集和标签,其具体方法是:遍历每个训练集的文件夹,每一个文件夹下面的图片作为一个类,给它们编一个向量号码,比如排球目录下的所有图片的标签记录为0类,则其对应的标签数组为[1,0,0,0,0,0];篮球目录下的所有图片的标签记录为1类,则其对应的标签数组为[0,1,0,0,0,0],并且读取对应图片三个通道的颜色值,对其进行归一化处理,统一缩放为50×50×3的尺寸大小,用txt文件保存类别名,这样方便模型训练和预测时使用标签名。

2  卷积神经网络模型的搭建

设计的卷积神经网络的结构如图2所示,共有9层,它包括2个卷积层、2个池化层和3个全连接层,中间每层使用ReLU激活函数,最后一层输出使用Softmax激活函数。

2.1  卷积层

此卷积神经网络模型用了两次卷积,第一次用了32个5×5的卷积核,获得了特征图为50×50×32;第二次用64个3×3的卷积核,获得了特征图为25×25×64,卷积的步长都为1。为了解决卷积运算在卷积核移动到图像边缘时就结束,导致边缘像素计算少这一问题[2]。在卷积操作前对输入图片扩充,即在图片外围补充一些像素点,把这些像素点初始化为0,使卷积层的输出图片尺寸与输入一致。

2.2  ReLU激活函数

只要神经元数量足够,神经网络可以任意精度逼近任意函数。为了拟合非线性函数,需要向神经网络中引入非线性变换,即激活函数。从梯度下降的训练时间而言,采用饱和的非线性激活函数tanh(如式1)比使用非饱和的非线性激活函数ReLU(如式2)要慢得多[3]。在本次网络的搭建中,多次使用了ReLU激活函数,这样不但可以引入更多非线性因素,提高模型表达能力,而且可以缩短训练时间。

tanh(x)=                             (1)

F(x)=max(0,x)                          (2)

激活函数tanh与ReLU的图像分别如图3、图4所示。可以看出,当输入很大或者很小的时候,饱和的神经元会带来梯度消失,为防止这一现象的出现,本文选择使用ReLU函数。

2.3  池化层

经过激活函数增加了非线性因素,但是输出的数据维度并没有改变。为了减少计算量,提高模型的泛化能力,使池化层可以在降低维度的同时,还可以保留最重要的信息,池化的目的还有保持图像某种不变性(旋转、平移、伸缩等)[4]。通常池化方式有最大值、平均值或求和。本次网络模型中使用了2次最大池化,且都是规定一个区域,比如2×2,取4像素的最大值作为下一层的输入。

2.4  全连接层

卷积操作的目的是提取图像的局部特征,通过有序堆叠变成一维特征向量,全连接层就是把这个特征向量通过加权映射成输出的图像类别[5]。本文的网络模型的全连接层是逐步把最后一次的池化输出数据降到1024,512,256个数据,如图2的标注所示。在最后的输出层使用Softmax激活函數,将一个含任意实数的k维向量z“降维”到另一k维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的总和为1,这里k=6。Softmax激活函数的表达式如式(3)所示。

σ(z)j=                              (3)

3  模型训练

前面几个步骤把训练图像输入神经网络,经卷积、ReLU、池化操作、完全连接层一系列前向传播后,得到每个类别的输出概率。例如输入的图片是羽毛球,经过全连接层的输出预测概率假设为[0.5,0.1,0.1,0.05,0.15,0.1],羽毛球在标签制作中是第0类,所以羽毛球对应的目标概率[1,0,0,0,0,0],这样我们可以定义交叉熵损失函数来按批量梯度下降法训练模型,交叉熵损失函数见式(4)。

C=-yilnai                                 (4)

其中yi是目标概率,ai是预测概率。

神经网络搭建使用的深度学习框架为Keras,设置每次训练所选取的样本batch_size为128,训练轮次Epoches为1600,学习率为0.1。本文实例中分类6种球,训练约1200张图片,在普通电脑上训练耗时1小时左右,把训练结果把训练好的网络模型保存为“H5”文件。

4  模型预测与实验结果

已经训练好的模型“H5”文件里包含了每层网络节点的权重、偏置值等参数。预测时只需装入模型然后输入图片,就可以获取图片分类的概率。在模型的训练中,我们已经把图片做了归一化处理,即把所有图片都缩放为50×50的三通道图片,所以在接下来的分类预测中也要把待预测的图片做相同的处理。

使用Keras深度学习框架训练出来的模型可以通过load_model()方法读取模型参数及predict()方法按前向传播完成预测。其返回值是表示测试图片属于每一个类别的概率。

某个标签对应概率值越大说明预测结果为某个类别的可能性越大,图5、图6、图7、图8分别网球、羽毛球、藏獒、哈士奇的预测结果。

从测试结果来看,模型的准确率在90%以上,可见模型预测能力较强。为了训练出更好的模型,可以多增加几次卷积操作,这样会增加更多非线性因素,模型表达能力更强[6]。不过这也意味着神经网络的深度会加深,训练耗时也会增加。

5  结  论

采用网络爬虫技术根据关键字自动收集图片数据集提高了制作数据集的效率。根据图片分类的需要搭建了一个具有2个卷积层和2个池化层的卷积神经网络模型,在处理的图片分类数目不大时,网络结构基本可以通用。通过输入图片和输出类别的归一化处理,本模型预测的准确率可达90%以上。

参考文献:

[1] 杨定中,赵刚,王泰.网络爬虫在Web信息搜索与数据挖掘中应用 [J].计算机工程与设计,2009,30(24):5658-5662.

[2] 李彦冬,郝宗波,雷航.卷积神经网络研究综述 [J].计算机应用,2016,36(9):2508-2515+2565.

[3] 田娟,李英祥,李彤岩.激活函数在卷积神经网络中的对比研究 [J].计算机系统应用,2018,27(7):43-49.

[4] 张铃,张钹,吴福朝.对图形识别具有平移、旋转、伸缩不变性的神经网络 [J].计算机学报,1998,21(2):127-136.

[5] 江彤彤,成金勇,鹿文鹏.基于卷积神经网络多层特征提取的目标识别 [J].计算机系统应用,2017,26(12):64-70.

[6] 黄文坚,唐源.TensorFlow实战 [M].北京:电子工业出版社,2017(2):18-20.

作者简介:陈磊(1996.07-),男,汉族,广东湛江人,本

科,工学学士,研究方向:计算机应用技术;李鹤喜(1961.11-),男,汉族,辽宁昌图人,教授,博士,研究方向:人工智能与机器视觉。

猜你喜欢
图像分类网络爬虫神经网络
基于人工智能LSTM循环神经网络的学习成绩预测
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
基于云计算的图像分类算法
炼铁厂铁量网页数据获取系统的设计与实现
基于锚点建图的半监督分类在遥感图像中的应用
一种基于引导滤波和MNF的高光谱遥感图像分类方法
基于社会网络分析的权威网页挖掘研究
主题搜索引擎中网络爬虫的实现研究