一种基于CNN的市场摊区违规摊位检测方法与流程

文档序号:21598947发布日期:2020-07-24 16:49阅读:334来源:国知局
一种基于CNN的市场摊区违规摊位检测方法与流程

本发明属于计算机视觉及深度学习技术领域,具体涉及一种基于cnn的市场摊区违规摊位检测方法。



背景技术:

随着信息时代的到来和城市化建设日益发展,智慧城市的概念也逐渐映入人们的视野。2009年ibm公司最早提出了智慧城市的设计理念和实践模型,在网络上一时掀起智慧城市的热潮。市场摊区作为智慧城市中的重要一环,在新时代城市建设中扮演了重要角色。2019中国城市规划年会在重庆开幕,年会中提出,目前仍存在大量的市场摊区隐患亟待解决。流动商贩在街道上进行占道经营,不仅带来了食品安全问题,还增加了很多交通安全问题。

目前,城市管理人员主要通过摄像头辅助和现场执法的方式来进行市场摊区管理,虽然能够取得一定的执法效果,但非法摊位的流动性和时间随机性给城管执法造成很大的人力物力的消耗,同时管理效率较为低下。针对此类问题,研究人员提出利用监控视频结合运动目标检测跟踪的方式来进行摊区目标检测。由于实际场景中市场摊区环境较为复杂,传统的运动目标检测跟踪并不能从实质上识别摊区,相似目标和物体遮挡、背景混乱、光照污染等因素进一步弱化了运动目标检测跟踪的效果,远远达不到预期目标。因此,研究精确的、智能化的市场摊区监控目标检测识别方法有着重要的意义。

在已有的文献中效果较好的方法主要包括:1.采用市场治理公平机制:calamep,freyssj,garandeauv.ladémocratieenmiettes:pourunerévolutiondelagouvernance[m].paris:descartes&cie,2003:5-6.提出市场治理必须在公正和透明化的前提下进行,指出市场治理者和被治理者要在相互信任的条件下,分工治理;2.城管增量调整和存量调整:宋功德.城管强制的合法化出路[j].国家行政学院学报,2010(2):72-76.提出在城管的增量调整和存量调整中,要考虑地方性法规的合理性;3.依靠新型城市监控报警体系进行智能监控:尹涛烽.以新型城市监控报警体系构建智慧城市[j].甘肃科技纵横,2013,42(6):11-13.提出以信息化为载体,提高报警系统的灵活接入能力、集中管控功能,并尽可能整合分散的网络;4.利用小数据集进行非法摊区检测:宋乐陶,刘正熙,熊运余.基于深度卷积神经网络的非法摊位检测[j].现代计算机,2018(2):65-71.提出利用imagenet数据集,在fasterr-cnn网络模型上进行预训练,并非法摊区小数据集上进行非法摊区检测实验,达到了80%的准确率。



技术实现要素:

本发明的目的在于提供针对当前市场摊区监管缺乏有效数据集,市场摊区监管准确率低的问题,利用深度神经网络对监控视频进行检测识别,实现自动高效的市场摊区违规摊位检测的一种基于cnn的市场摊区违规摊位检测方法。

本发明的目的通过如下技术方案来实现:包括以下步骤:

步骤1:构建训练集;采集监控视频,从中挑选市场摊区图像,统一尺寸后对图像进行标注;选用实际市场摊区监控视频构建数据集,当图像属于合法摊区时标为legal,当图像属于非法摊区时标为illegal;

步骤2:数据集扩充;利用opencv对原始数据集中的图像进行多种变换,包括镜像变换、随机裁剪、图像旋转、局部变形和色彩抖动;

步骤3:以googlenet模型作为cnn预训练模型,提取市场摊区数据集的特征图谱;

googlenet是在imagenet数据集基础上进行训练的图像分类模型,其中的inception结构不仅提高了网络深度同时扩大了网络宽度,准确率较高同时中间参数较少;对googlenet中的瓶颈层进行冻结,保留除全连接层和分类器之外的结构和参数权重,从而获得网络在全连接前一层激活的特征图谱,即模型bottleneck特征;

步骤4:利用迁移学习训练市场摊区目标分类模型,并对多个超参数进行微调优化,获取最佳分类模型;

采用bottleneck特征作为输入连接新构建的全连接层和二分类softmax,并利用earlystopping法来确定模型训练的收敛最优值;采用adam梯度优化算法寻找代价函数极值点,不仅结合了梯度的均值估计,同时考虑了梯度未中心化方差,具有较快的收敛速度;采用指数减缓的方式进行学习率调整,以下为学习率调整公式:

其中,第一个公式表明了学习率对梯度下降的影响,θ为梯度,α为学习率;第二个公式是学习率依照指数衰减调整的过程,dlr为每一轮优化时使用的学习率,lr为事先设定的初始学习率,decay_rate为衰减系数,gs为衰减计算的全局步数,ds为衰减速度;

步骤5:构建模型输入模块:对市场摊区视频进行图像预处理,减少图像噪点,同时进行roi区域划分,提高违规摊位检测精度;

步骤6:构建报警控制模块:将市场摊区目标分类模型移植到应用后台中,并通过丢帧算法、容错算法、时间控制三个模块对cnn模型预测结果进行后续处理,实现自动化的市场摊区违规摊位检测;使用tensorflowapi的labelimage接口进行模型移植和图像预测,通过丢帧算法、容错算法、时间控制对市场摊区视频进行连续预测标签处理,并判断是否报警。

本发明的有益效果在于:

本发明在数据集构建中采用实际市场摊区监控视频,并通过数据扩增充分获取到市场摊区图像特征,引入cnn深度神经网络进行市场摊区目标分类,通过googlenet预训练模型和深度迁移学习实现了市场摊区精确分类,并通过跨语言移植接口将cnn模型与监管应用后台联系起来,极大地提高了市场摊区智能化监管的准确度。

附图说明

图1是本发明的流程图。

图2是深度学习图像分类示意图。

图3是googlenet模型的inception结构示意图。

图4是市场摊区迁移学习示意图。

图5是市场摊区分类模型示意图。

图6是微调优化后的网络训练示意图。

具体实施方式

下面结合附图对本发明做进一步描述。

本发明提供的是一种基于cnn的市场摊区违规摊位检测方法。包括如下步骤:(1)构建训练集:采集监控视频,从中挑选市场摊区图像,统一尺寸后对图像进行标注;(2)数据集扩充:利用opencv对原始数据集中的图像进行多种变换,包括镜像变换、随机裁剪、图像旋转、局部变形和色彩抖动;(3)以googlenet模型作为cnn预训练模型,提取市场摊区数据集的特征图谱;(4)利用迁移学习训练市场摊区目标分类模型,并对多个超参数进行微调优化,获取最佳分类模型;(5)构建模型输入模块:对市场摊区视频进行图像预处理,减少图像噪点,同时进行roi区域划分,提高违规摊位检测精度;(6)构建报警控制模块:在实际应用中,通过丢帧处理、容错处理、时间控制三个模块对cnn模型预测结果进行后续处理,实现自动化的市场摊区违规摊位检测。本发明在多种复杂环境下进行了大量应用测试,有效解决了市场摊区违规摊位检测问题,具有较高的实用价值。

包括以下步骤:

步骤1:构建训练集:采集监控视频,从中挑选市场摊区图像,统一尺寸:后对图像进行标注;选用实际市场摊区监控视频构建数据集,当图像属于合法摊区时标为legal,当图像属于非法摊区时标为illegal;

步骤2:数据集扩充:利用opencv对原始数据集中的图像进行多种变换,包括镜像变换、随机裁剪、图像旋转、局部变形和色彩抖动;

步骤3:以googlenet模型作为cnn预训练模型,提取市场摊区数据集的特征图谱;

googlenet是在imagenet数据集基础上进行训练的图像分类模型,其中的inception结构不仅提高了网络深度同时扩大了网络宽度,准确率较高同时中间参数较少;对googlenet中的瓶颈层进行冻结,保留除全连接层和分类器之外的结构和参数权重,从而获得网络在全连接前一层激活的特征图谱,即模型bottleneck特征;

步骤4:利用迁移学习训练市场摊区目标分类模型,并对多个超参数进行微调优化,获取最佳分类模型;

采用bottleneck特征作为输入连接新构建的全连接层和二分类softmax,并利用earlystopping法来确定模型训练的收敛最优值;采用adam梯度优化算法寻找代价函数极值点,不仅结合了梯度的均值估计,同时考虑了梯度未中心化方差,具有较快的收敛速度;采用指数减缓的方式进行学习率调整,以下为学习率调整公式:

其中,第一个公式表明了学习率对梯度下降的影响,θ为梯度,α为学习率,第二个公式是学习率依照指数衰减调整的过程,dlr为每一轮优化时使用的学习率,lr为事先设定的初始学习率,decay_rate为衰减系数,gs为衰减计算的全局步数,ds为衰减速度;

步骤5:构建模型输入模块:对市场摊区视频进行图像预处理,减少图像噪点,同时进行roi区域划分,提高违规摊位检测精度;

步骤6:构建报警控制模块:在实际应用中,将市场摊区目标分类模型移植到应用后台中,并通过丢帧算法、容错算法、时间控制三个模块对cnn模型预测结果进行后续处理,实现自动化的市场摊区违规摊位检测;使用tensorflowapi的labelimage接口进行模型移植和图像预测,通过丢帧算法、容错算法、时间控制对市场摊区视频进行连续预测标签处理,并判断是否报警。

本发明使用自己构建的市场摊区数据集进行深度神经网络训练。由于市场摊区目标分类没有公开数据集,本发明对实际市场摊区监控视频进行采集,从中挑选了400张具有代表性的合法摊区图像和非法摊区图像,以jpg图像的形式进行保存。为了统一深度神经网络的输入尺寸,本发明利用opencv中的resize_image函数将采集图像调整为299*299大小,并对图像进行标注,当图像属于合法摊区时标为legal,当图像属于非法摊区时标为illegal,接着按照4:1的比例将数据集划分为训练集和验证集。

深度神经网络模型的泛化能力与数据集的规模密切相关,当数据集过小时,网络更容易出现过拟合现象。为了将有限的样本特征尽可能多的利用起来,本发明利用opencv将400张原始图像扩充为规模4000的数据集,扩充方式主要有以下几种:

①镜像变换

图像的镜像变换主要分为水平镜像和垂直镜像,水平镜像是将原始图像的左半边像素和右半边进行调换,垂直镜像是以图像的水平中线为界将上下部分像素进行调换。

②随机裁剪

通过对图像随机位置进行裁剪,并对裁剪后的图像进行审核,去除掉毫无意义的信息块,增加了数据集的随机性。

③图像旋转

将原图像进行水平旋转后作为新图像,在0到180度间以30度为基准进行旋转。

④局部变形和色彩抖动

由于实际应用中拍摄角度不同会造成输入图像的不一致,因此对数据集进行局部变形,并对原图像的像素分布加入轻微抖动,从而增大模型训练的泛化能力。

(2)googlenet提取市场摊区特征图谱:

本发明使用imagenet数据集上预训练的googlenet模型来提取市场摊区的特征图谱。googlenet模型共有1000个分类输出,具有较高的分类准确率,同时inception模块的网络优化减少了计算复杂度,不会像vgg一样产生庞大的中间参数。在特征提取过程中,通过使用1*1卷积核来进行向量维度的升降,并将多尺寸卷积核集合成联合过滤器,对图像矩阵进行卷积和聚合的同步操作。利用googlenet预训练模型,在多尺寸卷积核上获得了市场摊区图像丰富的特征向量,并利用softmaxloss对不同深度增加梯度值,解决了梯度消散问题,

(3)市场摊区分类模型迁移学习

对于构建的市场摊区数据集,其规模相对imagenet数据集较小,且在数据空间中两者具有相似的参数分布,因此采用googlenet的特征提取层直接获取市场摊区浅层网络和高层网络的权重系数。在这个过程中小数据容易带来过拟合问题,因此要调整超参数对深度迁移网络进行优化,涉及参数主要有:epoch值、微调方法、梯度优化算法、学习率。

①epoch值

1个epoch代表数据集中的样本被训练一次。随着epoch的增加,cnn模型中各网络层的权重系数被更新的次数也不断增加,模型一般会经历欠拟合到较好收敛,再到过拟合的过程。本发明通过预训练实验发现,当epoch低于100时,市场摊区分类模型训练还处于上升阶段,当epoch达到1000时,大部分训练模型都已完成了收敛过程。因此在实验中设定1000为epoch固定值,通过tensorboard可视化工具对整个训练过程进行监控,当cnn模型训练的损失函数不再减小,同时10轮以内准确率没有提升时,认为该点对应的epoch为最优值。

②微调方法

本发明对googlenet的瓶颈层base_model进行冻结,并在此基础上对市场摊区数据进行bottleneck特征提取,将获得的bottleneck特征作为输入连接新构建的全连接层和二分类softmax。为了确定模型训练的最优值,采用earlystopping法来进行收敛衡量。earlystopping通过降低模型参数维度的有效规模来进行正则化,它的主要步骤是:对于划分好的市场摊区训练集和验证集;先在训练集上训练模型,并按一定周期计算模型在验证集上的误差;设定停止标准,当验证集误差低于标准时停止训练;将停止前一次的结果作为模型最终结果。本发明为了得到earlystopping下最好的验证误差,使用泛化损失标准(generalizationloss),当泛化损失超过一定阈值时停止训练。

③梯度优化算法

在神经网络模型中为了确认网络拟合效果,本发明使用用代价函数作为量化指标,并采用梯度下降法寻找代价函数极值点。本发明在训练优化器中采用adam梯度优化算法,它结合了adagrad和rmsprop两种算法的优点,通过计算梯度的均值估计和未中心化方差,且不断更新步长,实现了有限内存中高效的计算,同时参数更新不受梯度伸缩变换影响。

④学习率

学习率是微调过程中最重要的超参数,它直接决定了模型训练的梯度更新量级。学习率太大,则容易发生梯度爆炸,错过最优值,学习率太小则更新速度太慢。如下列公式所示,其中,第一个公式表明了学习率对梯度下降的影响,θ为梯度,α为学习率,第二个公式是学习率依照指数衰减调整的过程,dlr为每一轮优化时使用的学习率,lr为事先设定的初始学习率,decay_rate为衰减系数,gs为衰减计算的全局步数,ds为衰减速度。

由于刚开始训练距离最优值较远,因此初始化学习率为较大的值,在后续模型训练中,逐渐降低学习率,并利用tensorboard监控模型在验证集上的准确率和损失函数变化,确定最优收敛的学习率。本发明首先通过预训练进行学习率的初始化估计,对于adam梯度优化算法,当学习率高于1e-4时损失函数震动幅度大,且模型难以收敛,因此设置了以下3个学习率实验:1e-4,1e-5,1e-6,表1为不同学习率的实验结果,epoch代表达到最优收敛所需的训练轮数,准确率和损失函数是对应模型在验证集上的结果。

从表中可以看到,对于adam梯度优化算法,学习率在1e-4时能较快收敛,在逐渐减小学习率的过程中可以发现,网络模型的收敛速度越来越慢,在验证集上准确率有一个从低到高再下降的过程,这说明了在学习率达到1e-6时,学习率过低造成训练次数太多,复杂的特征维度产生了过拟合现象。因此在adam梯度优化算法下,模型对应的最佳学习率是1e-5,准确率达到了97.44%。

表1不同学习率实验结果

(4)构建模型输入模块

本发明通过接入市场摊区监控摄像头,并对原始监控视频进行相关处理输入到cnn模型中。对于原始监控视频输入,首先利用图像预处理模块对视频帧进行图像提取,并利用图像去噪、直方图均衡化、形态学滤波技术对图像进行优化。在roi区域划线模块中,城市管理人员可以自定义地选择重点监控的roi区域,系统将集中对重点区域进行检测识别处理,若不进行划线则默认区域为整个监控画面。

(5)构建报警控制模块:

本发明通过构建报警控制模块,对市场摊区目标分类模型的连续预测结果进行后续处理。首先要对cnn模型进行跨语言移植,本发明利用tensorflow中的api接口将python环境中的模型移植到java应用系统后台中,首先将cnn模型的网络结构和权重系数分别保存到json文件和h5文件中,对原始模型的节点进行冻结并将interencegraph进行pb格式转换,最终将原始网络模型固化成一个独立的pb模型,接着利用tensorflowapi的labelimage接口进行模型加载和图像预测,对模型输入模块中传来的的监控图像进行分类预测,并输出最佳匹配类型。

实际应用使用中视频传输速度和深度神经网络预测速度不一致,同时需要对连续帧的预测输出进行序列判断,本发明通过以下三部分来对预测结果进行后续处理:

①丢帧算法

在系统实际应用中,由于视频传输速率高于深度学习模型的预测速度,因此需要进行丢帧处理,具体方式为识别一帧就通知线程传来下一帧,舍弃掉中间帧数。

②容错算法

市场摊区目标分类模型尽管具有很高的准确率,但实际应用过程中仍有识别出错的情况,因此对系统进行容错处理,提高系统报警的准确度。定义0为非法摊区,1为合法摊区,本发明针对两种出错情况进行处理:第一种是非法摊区错误识别成了合法摊区,例如一段预测序列01000110000111,则提出容错规则a:对于一段连续的预测输出序列,若1连续出现超过3次,则认定此刻摊区确实为合法情况。第二种是合法摊区错误识别成了非法摊区,例如一段预测序列011011011011,此时1的次数比0多,该区域极大可能为合法摊区,则提出容错规则b:对于一段连续的预测输出序列,当1出现的总次数比0多且达到6次时,认定此刻监控区域为合法摊区。

③时间控制

为了对检测识别出的摊区进行持续监控,本发明利用计时器进行时间控制。当检测识别出非法摊区时,计时器开启,当检测识别出合法摊区时,关闭计时器。通过对实际摊区进行考察估计,本发明设定非法摊区持续150s时触发报警,当计时器计时达到设定阈值时产生报警,进行实时抓拍,并将报警信息存入数据库。

本发明在测试阶段对系统性能进行衡量,对于市场摊区检测识别系统,定义系统准确率为sacc。对于基于cnn实现的市场摊区监管系统,定义该系统最终检测识别与实际符合的数量为ns,ns包括识别正确的合法摊区和识别正确的非法摊区,下列公式为sacc计算公式。

测试过程中共使用了50个市场摊区视频进行系统测试实验,其中人为检测识别共发现327个摊区,其中有179个摊区为合法摊区,148个摊区为非法摊区。通过对市场摊区目标分类模型进行训练,在此基础上设计实现了基于cnn的市场摊区检测识别系统。对于327个市场摊区,系统测试实验共识别正确308个,整体的系统准确率sacc=0.9419。为了评估系统在实际应用中多种复杂情况下的效果,本发明从三种不同的角度设计实验对系统进行测试分析:

第一组实验是测试市场摊区在一天不同时刻状况下的检测识别效果。利用新的市场摊区监控目标检测识别系统,在早市、午市、夜市三种情景下对市场摊区视频进行实验,表2给出了不同时刻下的sacc和bacc准确率统计情况。由表2可知,市场摊区检测识别系统在早市和午市都有很高的准确率,在夜市情景下由于视频画面较为模糊,准确率相对低一些。但可以发现,三种时刻下系统准确率均超过90%。

表2不同时刻下sacc和bacc准确率统计

第二组实验是测试市场摊区在不同天气状况下的检测识别效果。将50个视频中晴天、阴天、雨天、雪天四种天气下的视频进行筛选,分别在各自天气下进行市场摊区监控目标检测识别,并对实验结果进行统计。表3为不同天气下sacc和bacc准确率统计情况。

表3不同天气下sacc和bacc准确率统计

从表3中可以看到,市场摊区检测识别系统在晴天和阴天的准确率最高,在雨天和雪天的准确率相对低一些。分析可知,在恶劣天气下,监控目标周围通常分布着较密的雨水和冰雪等干扰物,因此检测目标的图像特征混杂了其它物体的特征,影响了市场摊区检测识别系统的准确率。但无论哪种天气下,基于cnn的市场摊区违规摊位检测准确率都超过了85%,验证了该系统的鲁棒性和精确性。

第三组实验是测试市场摊区在小目标区域中的检测识别效果。实际系统应用中,当摄像头角度不佳时会导致摊区在整个监控画面中占比非常小,导致该区域内cnn模型的可分析信息也会很少,进而影响到监控目标的预测结果。本组实验对视频画面中的边缘区域进行roi划线,模拟小目标区域情况下市场摊区违规摊位检测效果,实验结果如表4所示。

表4不同占比的摊区下系统准确率

从表4中可以看到,随着市场摊区目标在监控画面中的占比越来越小,系统准确率也逐渐降低。在占比低于10%时,系统准确率下降到0.9以下,说明此时摊区目标信息量过小,输入的图像特征与训练集图像差别过大,因此市场摊区目标分类模型预测的准确性降低,进而影响到系统准确率。实际应用中市场摊区在监控画面的占比一般都在10%以上,因此系统整体的准确率能稳定在90%以上。通过三组不同角度的实验可以发现,本发明中基于cnn的市场摊区违规摊位检测方法具有很高的准确率和较好的鲁棒性,在50个视频整体测试下达到94.19%的准确率,具有很大的实际应用价值。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1