基于卷积神经网络和关键词的目标检测系统

2021-04-22 16:10施懿浦昕鑫沈刘潼徐也
电脑知识与技术 2021年8期
关键词:卷积神经网络模块

施懿 浦昕鑫 沈刘潼 徐也

摘要:该文以互联网上的图片数据为训练数据,结合使用深度学习技术,实现了一种基于卷积神经网络和检测关键词的目标检测系统。系统根据用户输入的检测关键词,利用网络爬虫技术搜集图像用于训练。对每张图像,使用预训练的神经网络模型提取图像特征,并采用金字塔池化技术得到图像表达向量。系统基于图像表达向量学习分类器,并利用分类器对用户上传的图片进行目标检测。系统的实现具有实际意义,理想情况下可对任意具体目标实现检测(如行人、车辆、动物等)。

关键词: 计算机视觉;目标检测; 卷积神经网络; 网络爬虫; 检索关键词

中图分类号: TP311        文献标识码:A

文章编号:1009-3044(2021)08-0162-03

Abstract:This paper proposes a novel object detection system, which utilizes the images stored on the Internet as training images, and adopts the deep learning technology to achieve the object detection tasks. According the keywords typed by users, this system runs the web crawlers to gather the images related to the keywords. For each image, a pre-trained convolutional neural network model is used to extract the features from this image, and then the pyramid pooling technology is applied to generate the image representation vector of this image. This system learns a binary classifier on the image representation vectors, and uses it to detect the objects in the images uploaded by users. Ideally, this system is capable of detecting any object such as pedestrian, car, animal and so on.

Key words:computer vision; object detection; convolutional neural network; web crawler; keyword

目标检测[1]是计算机视觉领域中重要的研究方向之一,是计算机识别图像、理解图像的基础,亦是计算机进行判断、推理和决策的前提。它广泛地存在于安防中的遥感图像敌军目标检测,医疗中的计算机辅助诊断, 红外目标跟踪与识别工作, 智能视频监控等诸多应用领域。目前已经出现了很多基于深度学习技术的目标检测系统。例如,陈辰[2]等人提出了一种基于FPGA的深度学习目标检测系统。王俊强[3]等人基于深度学习技术,提出了应用于遥感图像领域的目标检测定位系统。卢虹竹[4]等人提出了基于深度学习算法的人脸识别管理系统。

通过分析发现,现有的系统并没有利用互联网上海量的图片数据作为训练数据来源,并且也不支持对未包括在训练数据种类中的类别进行检测。针对这一情况,本文以互联网上海量的图片数据为训练数据来源,结合使用当前流行的深度学习技术,设计并实现了一种基于卷积神经网络和检测关键词的目标检测系统。该系统支持用户输入任意检索关键词,对用户上传的批量图片进行目标检测。例如,当用户输入“熊猫”檢测关键词后,系统对用户上传的每张图片进行目标检测,并将检测结果展现给用户。

本系统实现的关键功能包括了:1)根据用户输入的关键词,利用网络爬虫技术搜集训练图片;2)使用预训练网络(如ResNet[5])提取图像特征,并在卷积层应用金字塔池化技术得到图像表达向量;3)基于图像表达向量和种类标签信息训练分类器;4)利用分类器对用户上传的图片进行目标检测。本系统采用Python语言开发,利用Scrapy爬虫框架实现训练图像数据的获取,利用Pytorch框架实现图像特征的提取和分类器学习,利用Django框架实现Web系统。本系统的实现具有实际意义,理想情况下可对任意具体目标实现检测。

1 系统设计

本系统基于Django框架按照MVC模式进行设计。图1显示了系统的关键功能模块。下面依次介绍各个模块。

1.1 训练图片爬取模块

训练图片爬取模块基于Scrapy框架进行实现。该模块在获得用户输入的检索关键词后,通过程序访问现有的图片搜索网站(如、百度图片搜索、谷歌图片搜索等),爬取这些网站依据关键词检索出的图片。爬取的图片交由训练图片管理模块进行存储。模块在实现过程中,利用了浏览器伪装、代理服务应对反爬虫技术,利用了Selenium模拟用户操作浏览器。该模块允许用户设置爬取的目标网站、图片张数、图片大小、图片格式等参数。爬虫在爬取过程中依据用户设置的参数对图片进行筛选。

1.2 训练图片管理模块

训练图片管理模块使用MySQL数据库存储图片文件信息,支持用户进行图片的增删查改。该模块支持人工筛选数据,允许用户删除图片质量差、与关键词语义匹配度低的图片。此外,该模块还支持用户上传训练图片以应对训练图片质量差、数量少的情况。

1.3 神经网络训练模块

神经网络训练模块基于Pytorch框架进行实现。该模块利用预训练卷积神经网络抽取训练图像的图像特征,然后在卷积层应用金字塔池化技术[6]得到图像表达向量,最后基于图像表達向量和种类标签信息学习分类器。训练所需的数据集由10000张背景图片和爬取的图片构成,其中,爬取的图片作为正例,背景图片作为负例。预训练模型采用当前流行的深度卷积神经网络,如VGG-16[7]、ResNet[5]等。在本系统中,预训练模型作为特征提取器被使用。通过在位于末尾的卷积层上应用金字塔池化技术得到固定长度的图像表达向量。在获得所有正负样本的图像表达向量后,学习一个二类分类器,如SVM、罗杰斯特回归。训练完成的模型交由神经网络模型管理模块进行保存。

1.4 神经网络识别模块

神经网络识别模块利用预训练卷积神经网络和分类器,对用户上传的图片进行目标检测。该模块采用了SPP-Net[6]的识别方式。具体地,对于每张图片,第一步,利用候选框生成算法[6]在该图片上生成大量的候选框(如2000个);第二步,利用卷积神经网络进行特征提取,并计算每个候选框对应的特征图区域;第三步,采用空间金字塔池化技术对每个特征图区域包含的特征分别进行池化,得到每个候选框所在区域的图像表达向量;第四步,利用训练得到的分类器对每个候选框对应的图像表达向量进行分类,并保留判定结果为正例的候选框;第五步,利用非极大值抑制技术对上一步得到的候选框进行进一步的过滤,剩下的候选框作为该图片的识别结果。

1.5 神经网络模型管理模块

神经网络模型管理模块使用MySQL数据库对训练完成的模型进行管理,支持用户进行模型的新增(训练新模型)、删除、修改(重新训练模型)和查看操作。该模块支持用户直接使用系统中训练完成的模型进行识别,避免了模型的重复训练。如果系统提供的模型不能满足需要,则用户可以训练新模型。

2 工作流程

图2显示了用户使用本系统进行目标检测的工作流程。

3 系统效果

图3显示了用户上传图像后,进行目标检测后的系统截图。用户在输入“猫”关键字并点击“检测”按钮后,系统将图片中的“猫”用矩形框进行标识。

4 结论

本文以互联网上海量的图片数据为训练数据来源,结合使用当前流行的深度学习技术,设计并实现了一种基于卷积神经网络和检测关键词的目标检测系统。该系统支持用户输入任意检索关键词,对用户上传的批量图片进行目标检测。在实验中发现,目标检测的检测效果非常依赖于训练图片的质量和数量。对于一些较常见的目标(如猫、狗等),因为容易获得大量高质量的训练图片,检测效果较好,而对于一些不常见的目标,爬取的训练图片质量低,还需要人为补充训练图片来提高检测效果。

参考文献:

[1] 袁功霖.基于卷积神经网络的目标识别技术[D].北京:中国电子科技集团公司电子科学研究院,2019.

[2] 陈辰,严伟,夏珺,等.基于FPGA的深度学习目标检测系统的设计与实现[J].电子技术应用,2019,45(8):40-43,47.

[3] 王俊强,李建胜,程相博,等.基于深度学习的目标检测定位系统设计与实现[J].测绘与空间地理信息,2020,43(1):133-136,144.

[4] 卢虹竹.基于深度学习算法的人脸识别管理系统[J].信息技术,2019,43(12):121-124,130.

[5] He K,Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition, IEEE Computer Society, 2016.1-12.

[6] He K,Zhang X, Ren S, et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 37(9): 1904-1916.

[7] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[C].IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2014.1-14.

【通联编辑:唐一东】

猜你喜欢
卷积神经网络模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
基于3D-Winograd的快速卷积算法设计及FPGA实现
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
一种基于卷积神经网络的性别识别方法