行人检测识别系统、方法、设备及计算机可读存储介质与流程

文档序号:21084930发布日期:2020-06-12 16:50阅读:1232来源:国知局
行人检测识别系统、方法、设备及计算机可读存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种行人检测识别系统、方法、设备及计算机可读存储介质。



背景技术:

行人检测是目标检测技术中的一项关键技术,广泛应用于行人检索、特定人员追踪、复杂场景人流分析等安防关键技术之中。目前安防技术中的行人检测主要使用监控摄像头提供的图像连续帧作为检测的输入图片来源。各类检测网络通过训练后,接受这些图片输入,并生成图片中每个行人对象的检测矩形框,用于后续的特征抽取,追踪和特征比对等。

目前的行人检测器主要有以下一些问题:1、检测网络输入的图片尺寸固定,但普遍较小,如主流的一阶段多预设框检测器(singleshotmultiboxdetector,简称为ssd)检测框架接受图片像素尺寸最高为512*512。但为行人检测系统在公共场所,如车站,广场等地的正常工作,往往需要高清摄像头或摄像头阵列来提供分辨率更高的图片输入,如果仍然为满足网络输入需要而单纯缩放图片,则会损失高清摄像头提供的人员信息,也会对检测的精度产生影响。2、目前行人检测网络仍然在低分辨率摄像头,或者其他非监控场景拍摄的图片(如街景拍摄,室内拍摄)的数据集下训练,在这些数据集本身的测试集上精度往往较高,但无法泛化到实际的监控场景中,导致实际系统表现较差。



技术实现要素:

本发明实施例提供一种行人检测识别系统、方法、设备及计算机可读存储介质,用以解决现有技术中的上述问题。

本发明实施例提供一种行人检测识别系统,包括:

视频采样模块,用于对监控摄像头输入的视频流进行抽帧处理,得到采样图片;

滑窗分割模块,用于通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

分块检测模块,用于调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

结果融合模块,用于将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

本发明实施例还提供一种行人检测识别方法,包括:

对监控摄像头输入的视频流进行抽帧处理,得到采样图片;

通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

本发明实施例还提供一种行人检测识别设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现上述行人检测识别方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有信息传递的实现程序,程序被处理器执行时实现上述行人检测识别方法的步骤。

采用本发明实施例,行人检测效果均优于原有模型3%以上,能够在监控摄像头阵列获取的图片下具有良好的检测效果。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例的行人检测识别系统的示意图;

图2是本发明实施例的行人检测识别系统的滑窗采样的示意图;

图3是本发明实施例的对目标的保留和舍弃策略的示意图;

图4是本发明实施例的行人检测识别系统的系统架构示意图;

图5是本发明实施例的输出结果示意图一;

图6是本发明实施例中输出结果示意图二;

图7是本发明实施例中输出结果示意图三;

图8是本发明实施例的行人检测识别方法的示意图;

图9是本发明实施例的行人检测识别设备的示意图。

具体实施方式

本发明实施例提供了一种行人检测识别系统、方法、设备及计算机可读存储介质,本发明实施例的系统针对检测模型的输入和行人检测数据集两个问题做出了改进,一方面设计了一种基于滑动窗口的检测方式,可以直接处理高分辨率的图片输入,另一方面在最新发布的高分辨率行人检测用数据集上进行训练,数据集采样自实际监控场景中的高清摄像头阵列,在实际使用中有较好的表现。

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

系统实施例

根据本发明实施例,提供了一种行人检测识别系统,首先需要说明的是,本发明实施例的采用mmdetection检测库,其是一个开源的通用检测模型库,mmdetection检测库中配置有在通用目标检测数据集mscoco上预训练的检测模型,本发明实施例提供了适用于mmdetection的行人检测模型训练配置文件和在行人单类数据集上调优的模型。也就是说,需要预先对行人检测模型进行训练。

本发明实施例的训练模块通过预定大小的滑动窗口以预定步长沿采样图片的长和宽进行分割,获取多个图片区域,将多个图片区域输入到行人检测模型进行训练,在生成与多个图片区域对应的标注时,对标注进行筛选,保留目标面积占滑窗面积的百分比超过预定占比阈值的标注,并将筛选完的数据集转换成pascalvoc格式的数据集。其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

具体地,训练过程中需要对标注进行裁剪,而单个滑窗中如果残留极少部分的目标面积,如果将其视为一个目标会影响训练精度,所以在实际生成中,设置保留面积阈值为50%,也就是说,只有在滑窗中保留超过50%面积的标注才会被予以保留。

在具体实现过程中,系统会将数据集裁剪的同时转换成pascalvoc格式,pascalvoc是一种被广泛采用的通用目标检测数据集格式,因此,采用这种数据集格式可以兼容更多的数据,为之后的系统扩展和模型调优做准备。

此外,mmdetection检测库对目标检测模型的部署提供了极大的便利,但是mmdetection中只支持一些通用的目标检测数据集,并提供了这些数据集上的训练模型,这与行人检测的实际应用场景不符,为此本发明实施例在mmdetection库中进行了如下改进:

1.针对行人检测数据集添加了新的数据集配置,该数据集配置只包括行人单类,方便对行人检测模型进行训练

2.将mmdetection在mscoco通用目标检测数据集(一种常用目标检测数据集)上预训练的模型在本数据集上调优,形成精度满足需求的行人检测模型,实验结果表明,调优后的模型在行人检测任务上表现更好,平均有3%以上的精度提升。

本发明实施例改进后的模型的训练数据来源是当前最新的高分辨率监控场景行人数据集,该数据集覆盖20多种监控场景,如广场,街道,车站等地,包含超过100000个行人样本,具有良好的泛化性。未来我们还希望在其他数据集上进行进一步的泛化。

从上述描述可以看出,在训练过程中,本发明实施例采用与下述行人检测相同的方式处理训练数据集,在生成与采样结果对应的标注(类标)时,为了不使被分割的目标对训练造成过大的影响,将被分割的目标进行筛选,在采样结果中保留50%以上面积的目标将被保留,图3显示了对目标的保留和舍弃策略。

通过上述技术方案进行了行人检测模型训练后,以下对本发明实施例的主要模块进行说明,图1是本发明实施例的行人检测识别系统的示意图,如图1所示,根据本发明实施例的行人检测识别系统具体包括:

视频采样模块10,用于对监控摄像头输入的视频流进行抽帧处理,得到采样图片;具体地,本发明实施例使用opencv-python库,其是一个开源的图像处理库,通过opencv-python库对输入视频流进行抽帧处理。opencv-python库既可接入远程rtmp协议视频流或者网络摄像机,也可直接对本地视频文件进行处理,本发明实施例也预留了三种视频源接口,在系统内部不再需要针对视频源类别进行额外处理。系统默认对本地视频进行0.125帧/秒的抽取,避免无用的重复检测。

滑窗分割模块12,用于通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

在本发明实施例中,将图片进行滑窗分割处理会遇到部分人员被滑窗分割,可能会出现漏检或者重复检测等问题。在系统的实现过程中,本发明实施例通过为相邻滑窗设置一个重叠率来避免人员分割导致的漏检现象,而重复检测则由后续的融合算法来处理。在具体实现中,本发明实施例预设的滑窗大小为1333*800像素,与mmdetection中的检测器输入大小相匹配,同时经过多次实验,本发明实施例选择0.2作为滑窗移动步长,即下一个滑窗在宽/高上移动的距离是滑窗宽/高的0.2倍,实验表明较高的重叠率会提升检测的精度。

滑窗分割模块12进一步用于:通过python中的迭代器来构建滑动窗口,将采样图片的前景进行进一步缩放,并使用相同大小的滑动窗口进行分割。

也就是说,在具体的实现方法中,本发明实施例使用python中的迭代器来构建图片滑窗,这样的好处是每个区域只有在被需要时才被计算出并进入内存,否则高分辨率的图片会带来较高的内存开销。同时,考虑到图片前后景行人尺寸相差过大,满足后景检测要求的滑窗尺寸可能对前景人群过小,会造成滑窗无法包括整个行人目标的情况,为此,本发明实施例将前景进行进一步缩放,仍然使用相同大小滑窗进行检测。

从上面的描述可以看出,本发明实施例使用一种滑窗检测和训练方式,在高分辨率数据集下调优当前的主流检测模型,其中在滑窗检测部分,将原图片分割成小尺寸的区域输入检测网络进行训练和检测。通过一个滑动窗口沿图片的长宽进行采样,此外,在分割的过程中,考虑到会分割图片中的对象,不同滑窗采样之间彼此重叠,避免漏检的发生。图2显示了滑窗的采样过程,最后将采样的图片区域输入行人检测模型进行处理。

分块检测模块14,用于调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

分块检测模块14具体用于:调用mmdetection检测库中调优后的行人检测模型对每个图片区域进行检测,并将每个检测框以左上角坐标和右下角坐标的形式予以保留,并最终记录单张采样图片在每个区域上的检测结果,其中,左上角坐标和右下角坐标是针对该图片区域的相对位置的坐标。

结果融合模块16,用于将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

结果融合模块16用于:将分块检测模块得到的各个图片区域的行人检测结果的坐标对齐至整张图片左上角,将位于单个区域边缘的检测框且长宽比超过正常范围的检测框舍弃,并采用非极大值抑制算法对各个图片区域的行人检测结果进行去重。

具体地,分块检测结果14的坐标是针对该区域的相对位置,在结果融合模块16中,首先将所有的分块检测结果坐标对齐至整张图片左上角。同时,对一些滑窗检测引入的新的检测问题进行处理,主要有以下两部分。

1.人员的部分检测:由于滑窗分割导致一些人员的部分图像被保留在某一图片区域的边缘,而效果较好的检测器会将其识别为一个新的人员检测框,这会使得该目标产生一个不完整且多余的错误结果。在实际的系统中,发现这样的检测框对应的长宽比比比较极端,因此,设置长宽比在1/5至5之间的检测框为正常结果,超过这一边界,且位于单个区域边缘的检测框都会被舍弃。实际实验表明,上述处理能够筛选去除掉大部分的不完整检测结果。

2.人员的重复检测:如上所述,滑窗重叠率的加入解决了目标的漏检问题,但会导致目标的重复检测,此模块中,系统将主流检测模型的尾处理算法非极大值抑制(nonmaximumsuppression,简称为nms)的算法应用至所有检测结果中,这一算法的基本思想为按置信度顺序和交并比大小为每个检测结果匹配一个最适合的目标,结果与标记一一对应后,抛弃掉剩余未匹配的结果。这一算法可以有效去除重复的检测,在实际系统中发现,这一算法可以将整幅图片的检测结果从2000个压缩至200个左右。

本发明实施例的系统还包括:

指标评测模块,用于对行人检测识别结果进行评估;

具体地,针对某一特定模型,往往需要一些评测指标证明其效果优劣性,为此,系统中预留了一些测评的接口,便于比较不同模型的指标。系统中实现了如下评测指标:

1、mscoco标准的平均预测精度(averageprecision,简称为ap)和平均召回率(averagerecall,简称为ar)计算。

2、对数平均漏检率(logaveragemiss-rate,简称为lamr)曲线。lamr曲线是一种评测检测结果的常用指标,由于在matlab中已经有较好的实现,系统中为其准备了对应格式的输出和matlab代码供用户调取。

3、错误负例(falsenegative,简称为fn)占比统计。fn指的是被错误判断为背景的正例目标,通常在要求查全率较高的应用下,fn的数量较为关键,系统中可以直接输出模型在一定数据下检测到的fn和总数比例条形图。

需要强调的是,是否对模型进行评测并不影响其正常使用和结果输出,评测部分只作为一个预留的接口提供给需要训练新模型的用户。

本发明实施例的系统还包括:

可视化模块,用于将行人检测识别结果进行可视化展现。该模块对模型在图片上的输出结果进行可视化,用户可以选择画出对应的框图,每个目标的置信度。

综上所述,在本发明实施例中,系统架构如图4所示,该系统部署于监控摄像头后端,在测试过程中,首先对监控摄像头的输出帧序列进行采样,得到高分辨率图片,之后通过滑窗分割模块产生图片区域,使用训练好的mmdetection库(一个开源的通用检测模型库)中模型对图片区域进行检测,之后将不同区域检测结果进行融合,最后可以针对需要评估检测结果,或输出检测结果的可视化图片。在训练过程中,使用相同的滑窗分割算法对数据集图片进行划分,同时对标注进行筛选,再使用这些图片区域对mmdetection检测库中的模型进行训练。本发明实施例的系统各部分耦合度低,便于在实际部署中根据需要进行调整,每部分通过相应的配置文件设置参数。

在本发明实施例中,如图5-7所示的检测结果的示意图,使用该系统在高分辨率行人数据集上调优并使用主流检测模型测试检测效果,经测试,行人检测效果均优于原有模型3%以上,同时,本发明实施例的系统还能够可视化结果显示,并在监控摄像头阵列获取的图片下可以有良好的检测效果,这是目前其他常用检测模型所无法实现的。

方法实施例

根据本发明的实施例,提供了一种行人检测识别方法,在对本发明实施例的具体处理步骤进行说明之前,首先对训练过程进行说明。

本发明实施例的采用mmdetection检测库,其是一个开源的通用检测模型库,mmdetection检测库中配置有行人单类数据集和在通用目标检测数据集mscoco上预训练的行人检测模型,并将行人检测模型在行人单类数据集上调优;也就是说,需要预先对行人检测模型进行训练。

本发明实施例通过预定大小的滑动窗口以预定步长沿采样图片的长和宽进行分割,获取多个图片区域,将多个图片区域输入到行人检测模型进行训练,在生成与多个图片区域对应的标注时,对标注进行筛选,保留目标面积占滑窗面积的百分比超过预定占比阈值的标注,并将筛选完的数据集转换成pascalvoc格式的数据集。其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

具体地,训练过程中需要对标注进行裁剪,而单个滑窗中如果残留极少部分的目标面积,如果将其视为一个目标会影响训练精度,所以在实际生成中,设置保留面积阈值为50%,也就是说,只有在滑窗中保留超过50%面积的标注才会被予以保留。

在具体实现过程中,本发明实施例会将数据集裁剪的同时转换成pascalvoc格式,pascalvoc是一种被广泛采用的通用目标检测数据集格式,因此,采用这种数据集格式可以兼容更多的数据,为之后的系统扩展和模型调优做准备。

此外,mmdetection检测库对目标检测模型的部署提供了极大的便利,但是mmdetection中只支持一些通用的目标检测数据集,并提供了这些数据集上的训练模型,这与行人检测的实际应用场景不符,为此本发明实施例在mmdetection库中进行了如下改进:

1.针对行人检测数据集添加了新的数据集配置,该数据集配置只包括行人单类,方便对行人检测模型进行训练

2.将mmdetection在mscoco通用目标检测数据集(一种常用目标检测数据集)上预训练的模型在本数据集上调优,形成精度满足需求的行人检测模型,实验结果表明,调优后的模型在行人检测任务上表现更好,平均有3%以上的精度提升。

本发明实施例改进后的模型的训练数据来源是当前最新的高分辨率监控场景行人数据集,该数据集覆盖20多种监控场景,如广场,街道,车站等地,包含超过100000个行人样本,具有良好的泛化性。未来我们还希望在其他数据集上进行进一步的泛化。

从上述描述可以看出,在训练过程中,本发明实施例采用与下述行人检测相同的方式处理训练数据集,在生成与采样结果对应的标注(类标)时,为了不使被分割的目标对训练造成过大的影响,将被分割的目标进行筛选,在采样结果中保留50%以上面积的目标将被保留,图3显示了对目标的保留和舍弃策略。

图8是本发明实施例的行人检测识别方法的示意图,如图8所示,根据本发明实施例的行人检测识别方法具体包括:

步骤801,对监控摄像头输入的视频流进行抽帧处理,得到采样图片;具体地,本发明实施例使用opencv-python库,其是一个开源的图像处理库,通过opencv-python库对输入视频流进行抽帧处理。opencv-python库既可接入远程rtmp协议视频流或者网络摄像机,也可直接对本地视频文件进行处理,本发明实施例也预留了三种视频源接口,在系统内部不再需要针对视频源类别进行额外处理。本发明实施例默认对本地视频进行0.125帧/秒的抽取,避免无用的重复检测。

步骤802,通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

在本发明实施例中,将图片进行滑窗分割处理会遇到部分人员被滑窗分割,可能会出现漏检或者重复检测等问题。在本发明实施例的实现过程中,本发明实施例通过为相邻滑窗设置一个重叠率来避免人员分割导致的漏检现象,而重复检测则由后续的融合算法来处理。在具体实现中,本发明实施例预设的滑窗大小为1333*800像素,与mmdetection中的检测器输入大小相匹配,同时经过多次实验,本发明实施例选择0.2作为滑窗移动步长,即下一个滑窗在宽/高上移动的距离是滑窗宽/高的0.2倍,实验表明较高的重叠率会提升检测的精度。

在步骤802中,可以通过python中的迭代器来构建滑动窗口,将采样图片的前景进行进一步缩放,并使用相同大小的滑动窗口进行分割。

也就是说,在具体的实现方法中,本发明实施例使用python中的迭代器来构建图片滑窗,这样的好处是每个区域只有在被需要时才被计算出并进入内存,否则高分辨率的图片会带来较高的内存开销。同时,考虑到图片前后景行人尺寸相差过大,满足后景检测要求的滑窗尺寸可能对前景人群过小,会造成滑窗无法包括整个行人目标的情况,为此,本发明实施例将前景进行进一步缩放,仍然使用相同大小滑窗进行检测。

从上面的描述可以看出,本发明实施例使用一种滑窗检测和训练方式,在高分辨率数据集下调优当前的主流检测模型,其中在滑窗检测部分,将原图片分割成小尺寸的区域输入检测网络进行训练和检测。通过一个滑动窗口沿图片的长宽进行采样,此外,在分割的过程中,考虑到会分割图片中的对象,不同滑窗采样之间彼此重叠,避免漏检的发生。图2显示了滑窗的采样过程,最后将采样的图片区域输入行人检测模型进行处理。

步骤803,调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

具体包括如下处理:调用mmdetection检测库中调优后的行人检测模型对每个图片区域进行检测,并将每个检测框以左上角坐标和右下角坐标的形式予以保留,并最终记录单张采样图片在每个区域上的检测结果,其中,左上角坐标和右下角坐标是针对该图片区域的相对位置的坐标。

步骤804,将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

具体包括如下处理:将分块检测模块得到的各个图片区域的行人检测结果的坐标对齐至整张图片左上角,将位于单个区域边缘的检测框且长宽比超过正常范围的检测框舍弃,并采用非极大值抑制算法对各个图片区域的行人检测结果进行去重。

具体地,步骤803中的坐标是针对该区域的相对位置,在步骤804中,首先将所有的分块检测结果坐标对齐至整张图片左上角。同时,对一些滑窗检测引入的新的检测问题进行处理,主要有以下两部分。

1.人员的部分检测:由于滑窗分割导致一些人员的部分图像被保留在某一图片区域的边缘,而效果较好的检测器会将其识别为一个新的人员检测框,这会使得该目标产生一个不完整且多余的错误结果。在实际中,发现这样的检测框对应的长宽比比比较极端,因此,设置长宽比在1/5至5之间的检测框为正常结果,超过这一边界,且位于单个区域边缘的检测框都会被舍弃。实际实验表明,上述处理能够筛选去除掉大部分的不完整检测结果。

2.人员的重复检测:如上所述,滑窗重叠率的加入解决了目标的漏检问题,但会导致目标的重复检测,此模块中,本发明实施例将主流检测模型的尾处理算法非极大值抑制(nonmaximumsuppression,简称为nms)的算法应用至所有检测结果中,这一算法的基本思想为按置信度顺序和交并比大小为每个检测结果匹配一个最适合的目标,结果与标记一一对应后,抛弃掉剩余未匹配的结果。这一算法可以有效去除重复的检测,在实际系统中发现,这一算法可以将整幅图片的检测结果从2000个压缩至200个左右。

本发明实施例的方法还包括如下处理:

对行人检测识别结果进行评估;

具体地,针对某一特定模型,往往需要一些评测指标证明其效果优劣性,为此,本发明实施例中预留了一些测评的接口,便于比较不同模型的指标。本发明实施例中实现了如下评测指标:

1、mscoco标准的平均预测精度(averageprecision,简称为ap)和平均召回率(averagerecall,简称为ar)计算。

2、对数平均漏检率(logaveragemiss-rate,简称为lamr)曲线。lamr曲线是一种评测检测结果的常用指标,由于在matlab中已经有较好的实现,系统中为其准备了对应格式的输出和matlab代码供用户调取。

3、错误负例(falsenegative,简称为fn)占比统计。fn指的是被错误判断为背景的正例目标,通常在要求查全率较高的应用下,fn的数量较为关键,系统中可以直接输出模型在一定数据下检测到的fn和总数比例条形图。

需要强调的是,是否对模型进行评测并不影响其正常使用和结果输出,评测部分只作为一个预留的接口提供给需要训练新模型的用户。

本发明实施例的方法还包括如下处理:

将行人检测识别结果进行可视化展现。即对模型在图片上的输出结果进行可视化,用户可以选择画出对应的框图,每个目标的置信度。

综上所述,在本发明实施例中,系统架构如图4所示,该系统部署于监控摄像头后端,在测试过程中,首先对监控摄像头的输出帧序列进行采样,得到高分辨率图片,之后通过滑窗分割模块产生图片区域,使用训练好的mmdetection库(一个开源的通用检测模型库)中模型对图片区域进行检测,之后将不同区域检测结果进行融合,最后可以针对需要评估检测结果,或输出检测结果的可视化图片。在训练过程中,使用相同的滑窗分割算法对数据集图片进行划分,同时对标注进行筛选,再使用这些图片区域对mmdetection检测库中的模型进行训练。本发明实施例的系统各部分耦合度低,便于在实际部署中根据需要进行调整,每部分通过相应的配置文件设置参数。

在本发明实施例中,如图5-7所示的检测结果的示意图,使用该系统在高分辨率行人数据集上调优并使用主流检测模型测试检测效果,经测试,行人检测效果均优于原有模型3%以上,同时,本发明实施例还能够可视化结果显示,并在监控摄像头阵列获取的图片下可以有良好的检测效果,这是目前其他常用检测模型所无法实现的。

装置实施例一

本发明实施例提供一种边缘节点设备,如图9所示,包括:存储器90、处理器92及存储在所述存储器90上并可在所述处理器92上运行的计算机程序,所述计算机程序被所述处理器92执行时实现如下方法步骤:

本发明实施例的采用mmdetection检测库,其是一个开源的通用检测模型库,mmdetection检测库中配置有在通用目标检测数据集mscoco上预训练的检测模型,本发明实施例提供了适用于mmdetection的行人检测模型训练配置文件和在行人单类数据集上调优的模型。也就是说,需要预先对行人检测模型进行训练。

本发明实施例通过预定大小的滑动窗口以预定步长沿采样图片的长和宽进行分割,获取多个图片区域,将多个图片区域输入到行人检测模型进行训练,在生成与多个图片区域对应的标注时,对标注进行筛选,保留目标面积占滑窗面积的百分比超过预定占比阈值的标注,并将筛选完的数据集转换成pascalvoc格式的数据集。其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

具体地,训练过程中需要对标注进行裁剪,而单个滑窗中如果残留极少部分的目标面积,如果将其视为一个目标会影响训练精度,所以在实际生成中,设置保留面积阈值为50%,也就是说,只有在滑窗中保留超过50%面积的标注才会被予以保留。

在具体实现过程中,本发明实施例会将数据集裁剪的同时转换成pascalvoc格式,pascalvoc是一种被广泛采用的通用目标检测数据集格式,因此,采用这种数据集格式可以兼容更多的数据,为之后的系统扩展和模型调优做准备。

此外,mmdetection检测库对目标检测模型的部署提供了极大的便利,但是mmdetection中只支持一些通用的目标检测数据集,并提供了这些数据集上的训练模型,这与行人检测的实际应用场景不符,为此本发明实施例在mmdetection库中进行了如下改进:

1.针对行人检测数据集添加了新的数据集配置,该数据集配置只包括行人单类,方便对行人检测模型进行训练

2.将mmdetection在mscoco通用目标检测数据集(一种常用目标检测数据集)上预训练的模型在本数据集上调优,形成精度满足需求的行人检测模型,实验结果表明,调优后的模型在行人检测任务上表现更好,平均有3%以上的精度提升。

本发明实施例改进后的模型的训练数据来源是当前最新的高分辨率监控场景行人数据集,该数据集覆盖20多种监控场景,如广场,街道,车站等地,包含超过100000个行人样本,具有良好的泛化性。未来我们还希望在其他数据集上进行进一步的泛化。

从上述描述可以看出,在训练过程中,本发明实施例采用与下述行人检测相同的方式处理训练数据集,在生成与采样结果对应的标注(类标)时,为了不使被分割的目标对训练造成过大的影响,将被分割的目标进行筛选,在采样结果中保留50%以上面积的目标将被保留,图3显示了对目标的保留和舍弃策略。

根据本发明实施例的行人检测识别方法具体包括:

步骤801,对监控摄像头输入的视频流进行抽帧处理,得到采样图片;具体地,本发明实施例使用opencv-python库,其是一个开源的图像处理库,通过opencv-python库对输入视频流进行抽帧处理。opencv-python库既可接入远程rtmp协议视频流或者网络摄像机,也可直接对本地视频文件进行处理,本发明实施例也预留了三种视频源接口,在系统内部不再需要针对视频源类别进行额外处理。本发明实施例默认对本地视频进行0.125帧/秒的抽取,避免无用的重复检测。

步骤802,通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

在本发明实施例中,将图片进行滑窗分割处理会遇到部分人员被滑窗分割,可能会出现漏检或者重复检测等问题。在本发明实施例的实现过程中,本发明实施例通过为相邻滑窗设置一个重叠率来避免人员分割导致的漏检现象,而重复检测则由后续的融合算法来处理。在具体实现中,本发明实施例预设的滑窗大小为1333*800像素,与mmdetection中的检测器输入大小相匹配,同时经过多次实验,本发明实施例选择0.2作为滑窗移动步长,即下一个滑窗在宽/高上移动的距离是滑窗宽/高的0.2倍,实验表明较高的重叠率会提升检测的精度。

在步骤802中,可以通过python中的迭代器来构建滑动窗口,将采样图片的前景进行进一步缩放,并使用相同大小的滑动窗口进行分割。

也就是说,在具体的实现方法中,本发明实施例使用python中的迭代器来构建图片滑窗,这样的好处是每个区域只有在被需要时才被计算出并进入内存,否则高分辨率的图片会带来较高的内存开销。同时,考虑到图片前后景行人尺寸相差过大,满足后景检测要求的滑窗尺寸可能对前景人群过小,会造成滑窗无法包括整个行人目标的情况,为此,本发明实施例将前景进行进一步缩放,仍然使用相同大小滑窗进行检测。

从上面的描述可以看出,本发明实施例使用一种滑窗检测和训练方式,在高分辨率数据集下调优当前的主流检测模型,其中在滑窗检测部分,将原图片分割成小尺寸的区域输入检测网络进行训练和检测。通过一个滑动窗口沿图片的长宽进行采样,此外,在分割的过程中,考虑到会分割图片中的对象,不同滑窗采样之间彼此重叠,避免漏检的发生。图2显示了滑窗的采样过程,最后将采样的图片区域输入行人检测模型进行处理。

步骤803,调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

具体包括如下处理:调用mmdetection检测库中调优后的行人检测模型对每个图片区域进行检测,并将每个检测框以左上角坐标和右下角坐标的形式予以保留,并最终记录单张采样图片在每个区域上的检测结果,其中,左上角坐标和右下角坐标是针对该图片区域的相对位置的坐标。

步骤804,将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

具体包括如下处理:将分块检测模块得到的各个图片区域的行人检测结果的坐标对齐至整张图片左上角,将位于单个区域边缘的检测框且长宽比超过正常范围的检测框舍弃,并采用非极大值抑制算法对各个图片区域的行人检测结果进行去重。

具体地,步骤803中的坐标是针对该区域的相对位置,在步骤804中,首先将所有的分块检测结果坐标对齐至整张图片左上角。同时,对一些滑窗检测引入的新的检测问题进行处理,主要有以下两部分。

1.人员的部分检测:由于滑窗分割导致一些人员的部分图像被保留在某一图片区域的边缘,而效果较好的检测器会将其识别为一个新的人员检测框,这会使得该目标产生一个不完整且多余的错误结果。在实际中,发现这样的检测框对应的长宽比比比较极端,因此,设置长宽比在1/5至5之间的检测框为正常结果,超过这一边界,且位于单个区域边缘的检测框都会被舍弃。实际实验表明,上述处理能够筛选去除掉大部分的不完整检测结果。

2.人员的重复检测:如上所述,滑窗重叠率的加入解决了目标的漏检问题,但会导致目标的重复检测,此模块中,本发明实施例将主流检测模型的尾处理算法非极大值抑制(nonmaximumsuppression,简称为nms)的算法应用至所有检测结果中,这一算法的基本思想为按置信度顺序和交并比大小为每个检测结果匹配一个最适合的目标,结果与标记一一对应后,抛弃掉剩余未匹配的结果。这一算法可以有效去除重复的检测,在实际系统中发现,这一算法可以将整幅图片的检测结果从2000个压缩至200个左右。

本发明实施例的方法还包括如下处理:

对行人检测识别结果进行评估;

具体地,针对某一特定模型,往往需要一些评测指标证明其效果优劣性,为此,本发明实施例中预留了一些测评的接口,便于比较不同模型的指标。本发明实施例中实现了如下评测指标:

1、mscoco标准的平均预测精度(averageprecision,简称为ap)和平均召回率(averagerecall,简称为ar)计算。

2、对数平均漏检率(logaveragemiss-rate,简称为lamr)曲线。lamr曲线是一种评测检测结果的常用指标,由于在matlab中已经有较好的实现,系统中为其准备了对应格式的输出和matlab代码供用户调取。

3、错误负例(falsenegative,简称为fn)占比统计。fn指的是被错误判断为背景的正例目标,通常在要求查全率较高的应用下,fn的数量较为关键,系统中可以直接输出模型在一定数据下检测到的fn和总数比例条形图。

需要强调的是,是否对模型进行评测并不影响其正常使用和结果输出,评测部分只作为一个预留的接口提供给需要训练新模型的用户。

本发明实施例的方法还包括如下处理:

将行人检测识别结果进行可视化展现。即对模型在图片上的输出结果进行可视化,用户可以选择画出对应的框图,每个目标的置信度。

综上所述,在本发明实施例中,系统架构如图4所示,该系统部署于监控摄像头后端,在测试过程中,首先对监控摄像头的输出帧序列进行采样,得到高分辨率图片,之后通过滑窗分割模块产生图片区域,使用训练好的mmdetection库(一个开源的通用检测模型库)中模型对图片区域进行检测,之后将不同区域检测结果进行融合,最后可以针对需要评估检测结果,或输出检测结果的可视化图片。在训练过程中,使用相同的滑窗分割算法对数据集图片进行划分,同时对标注进行筛选,再使用这些图片区域对mmdetection检测库中的模型进行训练。本发明实施例的系统各部分耦合度低,便于在实际部署中根据需要进行调整,每部分通过相应的配置文件设置参数。

在本发明实施例中,如图5-7所示的检测结果的示意图,使用该系统在高分辨率行人数据集上调优并使用主流检测模型测试检测效果,经测试,行人检测效果均优于原有模型3%以上,同时,本发明实施例还能够可视化结果显示,并在监控摄像头阵列获取的图片下可以有良好的检测效果,这是目前其他常用检测模型所无法实现的。

装置实施例二

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传输的实现程序,所述程序被处理器92执行时实现如下方法步骤:

本发明实施例的采用mmdetection检测库,其是一个开源的通用检测模型库,mmdetection检测库中配置有在通用目标检测数据集mscoco上预训练的检测模型,本发明实施例提供了适用于mmdetection的行人检测模型训练配置文件和在行人单类数据集上调优的模型。也就是说,需要预先对行人检测模型进行训练。

本发明实施例通过预定大小的滑动窗口以预定步长沿采样图片的长和宽进行分割,获取多个图片区域,将多个图片区域输入到行人检测模型进行训练,在生成与多个图片区域对应的标注时,对标注进行筛选,保留目标面积占滑窗面积的百分比超过预定占比阈值的标注,并将筛选完的数据集转换成pascalvoc格式的数据集。其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

具体地,训练过程中需要对标注进行裁剪,而单个滑窗中如果残留极少部分的目标面积,如果将其视为一个目标会影响训练精度,所以在实际生成中,设置保留面积阈值为50%,也就是说,只有在滑窗中保留超过50%面积的标注才会被予以保留。

在具体实现过程中,本发明实施例会将数据集裁剪的同时转换成pascalvoc格式,pascalvoc是一种被广泛采用的通用目标检测数据集格式,因此,采用这种数据集格式可以兼容更多的数据,为之后的系统扩展和模型调优做准备。

此外,mmdetection检测库对目标检测模型的部署提供了极大的便利,但是mmdetection中只支持一些通用的目标检测数据集,并提供了这些数据集上的训练模型,这与行人检测的实际应用场景不符,为此本发明实施例在mmdetection库中进行了如下改进:

1.针对行人检测数据集添加了新的数据集配置,该数据集配置只包括行人单类,方便对行人检测模型进行训练

2.将mmdetection在mscoco通用目标检测数据集(一种常用目标检测数据集)上预训练的模型在本数据集上调优,形成精度满足需求的行人检测模型,实验结果表明,调优后的模型在行人检测任务上表现更好,平均有3%以上的精度提升。

本发明实施例改进后的模型的训练数据来源是当前最新的高分辨率监控场景行人数据集,该数据集覆盖20多种监控场景,如广场,街道,车站等地,包含超过100000个行人样本,具有良好的泛化性。未来我们还希望在其他数据集上进行进一步的泛化。

从上述描述可以看出,在训练过程中,本发明实施例采用与下述行人检测相同的方式处理训练数据集,在生成与采样结果对应的标注(类标)时,为了不使被分割的目标对训练造成过大的影响,将被分割的目标进行筛选,在采样结果中保留50%以上面积的目标将被保留,图3显示了对目标的保留和舍弃策略。

根据本发明实施例的行人检测识别方法具体包括:

步骤801,对监控摄像头输入的视频流进行抽帧处理,得到采样图片;具体地,本发明实施例使用opencv-python库,其是一个开源的图像处理库,通过opencv-python库对输入视频流进行抽帧处理。opencv-python库既可接入远程rtmp协议视频流或者网络摄像机,也可直接对本地视频文件进行处理,本发明实施例也预留了三种视频源接口,在系统内部不再需要针对视频源类别进行额外处理。本发明实施例默认对本地视频进行0.125帧/秒的抽取,避免无用的重复检测。

步骤802,通过预定大小的滑动窗口以预定步长沿采样图片的宽/高进行分割,获取多个图片区域;

其中,滑动窗口的预定大小与mmdetection检测库中的检测器输入大小相匹配;预定步长为0.2,即,下一个滑动窗口在宽/高上移动的距离是滑动窗口宽/高的0.2倍。

在本发明实施例中,将图片进行滑窗分割处理会遇到部分人员被滑窗分割,可能会出现漏检或者重复检测等问题。在本发明实施例的实现过程中,本发明实施例通过为相邻滑窗设置一个重叠率来避免人员分割导致的漏检现象,而重复检测则由后续的融合算法来处理。在具体实现中,本发明实施例预设的滑窗大小为1333*800像素,与mmdetection中的检测器输入大小相匹配,同时经过多次实验,本发明实施例选择0.2作为滑窗移动步长,即下一个滑窗在宽/高上移动的距离是滑窗宽/高的0.2倍,实验表明较高的重叠率会提升检测的精度。

在步骤802中,可以通过python中的迭代器来构建滑动窗口,将采样图片的前景进行进一步缩放,并使用相同大小的滑动窗口进行分割。

也就是说,在具体的实现方法中,本发明实施例使用python中的迭代器来构建图片滑窗,这样的好处是每个区域只有在被需要时才被计算出并进入内存,否则高分辨率的图片会带来较高的内存开销。同时,考虑到图片前后景行人尺寸相差过大,满足后景检测要求的滑窗尺寸可能对前景人群过小,会造成滑窗无法包括整个行人目标的情况,为此,本发明实施例将前景进行进一步缩放,仍然使用相同大小滑窗进行检测。

从上面的描述可以看出,本发明实施例使用一种滑窗检测和训练方式,在高分辨率数据集下调优当前的主流检测模型,其中在滑窗检测部分,将原图片分割成小尺寸的区域输入检测网络进行训练和检测。通过一个滑动窗口沿图片的长宽进行采样,此外,在分割的过程中,考虑到会分割图片中的对象,不同滑窗采样之间彼此重叠,避免漏检的发生。图2显示了滑窗的采样过程,最后将采样的图片区域输入行人检测模型进行处理。

步骤803,调用预先训练好的行人检测模型对每个图片区域进行行人检测,得到各个图片区域的行人检测结果;

具体包括如下处理:调用mmdetection检测库中调优后的行人检测模型对每个图片区域进行检测,并将每个检测框以左上角坐标和右下角坐标的形式予以保留,并最终记录单张采样图片在每个区域上的检测结果,其中,左上角坐标和右下角坐标是针对该图片区域的相对位置的坐标。

步骤804,将不同图片区域的行人检测结果进行融合,得到最终的行人检测识别结果。

具体包括如下处理:将分块检测模块得到的各个图片区域的行人检测结果的坐标对齐至整张图片左上角,将位于单个区域边缘的检测框且长宽比超过正常范围的检测框舍弃,并采用非极大值抑制算法对各个图片区域的行人检测结果进行去重。

具体地,步骤803中的坐标是针对该区域的相对位置,在步骤804中,首先将所有的分块检测结果坐标对齐至整张图片左上角。同时,对一些滑窗检测引入的新的检测问题进行处理,主要有以下两部分。

1.人员的部分检测:由于滑窗分割导致一些人员的部分图像被保留在某一图片区域的边缘,而效果较好的检测器会将其识别为一个新的人员检测框,这会使得该目标产生一个不完整且多余的错误结果。在实际中,发现这样的检测框对应的长宽比比比较极端,因此,设置长宽比在1/5至5之间的检测框为正常结果,超过这一边界,且位于单个区域边缘的检测框都会被舍弃。实际实验表明,上述处理能够筛选去除掉大部分的不完整检测结果。

2.人员的重复检测:如上所述,滑窗重叠率的加入解决了目标的漏检问题,但会导致目标的重复检测,此模块中,本发明实施例将主流检测模型的尾处理算法非极大值抑制(nonmaximumsuppression,简称为nms)的算法应用至所有检测结果中,这一算法的基本思想为按置信度顺序和交并比大小为每个检测结果匹配一个最适合的目标,结果与标记一一对应后,抛弃掉剩余未匹配的结果。这一算法可以有效去除重复的检测,在实际系统中发现,这一算法可以将整幅图片的检测结果从2000个压缩至200个左右。

本发明实施例的方法还包括如下处理:

对行人检测识别结果进行评估;

具体地,针对某一特定模型,往往需要一些评测指标证明其效果优劣性,为此,本发明实施例中预留了一些测评的接口,便于比较不同模型的指标。本发明实施例中实现了如下评测指标:

1、mscoco标准的平均预测精度(averageprecision,简称为ap)和平均召回率(averagerecall,简称为ar)计算。

2、对数平均漏检率(logaveragemiss-rate,简称为lamr)曲线。lamr曲线是一种评测检测结果的常用指标,由于在matlab中已经有较好的实现,系统中为其准备了对应格式的输出和matlab代码供用户调取。

3、错误负例(falsenegative,简称为fn)占比统计。fn指的是被错误判断为背景的正例目标,通常在要求查全率较高的应用下,fn的数量较为关键,系统中可以直接输出模型在一定数据下检测到的fn和总数比例条形图。

需要强调的是,是否对模型进行评测并不影响其正常使用和结果输出,评测部分只作为一个预留的接口提供给需要训练新模型的用户。

本发明实施例的方法还包括如下处理:

将行人检测识别结果进行可视化展现。即对模型在图片上的输出结果进行可视化,用户可以选择画出对应的框图,每个目标的置信度。

综上所述,在本发明实施例中,系统架构如图4所示,该系统部署于监控摄像头后端,在测试过程中,首先对监控摄像头的输出帧序列进行采样,得到高分辨率图片,之后通过滑窗分割模块产生图片区域,使用训练好的mmdetection库(一个开源的通用检测模型库)中模型对图片区域进行检测,之后将不同区域检测结果进行融合,最后可以针对需要评估检测结果,或输出检测结果的可视化图片。在训练过程中,使用相同的滑窗分割算法对数据集图片进行划分,同时对标注进行筛选,再使用这些图片区域对mmdetection检测库中的模型进行训练。本发明实施例的系统各部分耦合度低,便于在实际部署中根据需要进行调整,每部分通过相应的配置文件设置参数。

在本发明实施例中,如图5-7所示的检测结果的示意图,使用该系统在高分辨率行人数据集上调优并使用主流检测模型测试检测效果,经测试,行人检测效果均优于原有模型3%以上,同时,本发明实施例还能够可视化结果显示,并在监控摄像头阵列获取的图片下可以有良好的检测效果,这是目前其他常用检测模型所无法实现的。

本实施例所述计算机可读存储介质包括但不限于为:rom、ram、磁盘或光盘等。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

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

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