行人检测方法、系统、计算机可读存储介质及电子设备
技术领域
本发明属于图像处理与计算机视觉技术领域,涉及一种检测方法和系统,特别是涉及一种行人检测方法、系统、计算机可读存储介质及电子设备。
背景技术
行人检测是计算机视觉中一个重要的方向,无论是学术界还是工业界均在此领域花费大量的时间和资源。近年来,行人检测技术在实用化、产品化的道路上已取得很大的进展。该技术已广泛用于安防监控、商业客流分析、自动驾驶以及智能交通等领域。
行人检测技术,顾名思义即是一种对图像/视频进行分析,检测出其中所有行人位置的技术。行人检测技术往往与目标跟踪技术、行人行为分析以及行人身份重识别等技术紧密相连,在一定程度上可以认为是使用其他技术的前置条件。
目前在行人检测技术领域中,存在两种主流的技术分支:1)传统行人检测技术。2)基于深度学习的行人检测技术。前者特征为用人工设计的特征和分类器的组合,通常分别设计。后者特征为使用深度学习技术,将特征抽取和分类器可以看作为一个整体,由程序自行获得,非人工设计。基于深度学习的行人检测技术有着通用性强,其自行获取的特征有着很强的迁移能力。在检测精度上,目前已不逊于传统行人检测技术。但是,行人检测技术其中一项重要的指标是实时性要求。由于使用深度学习技术的模型计算量巨大,若要满足实时性要求必须使用高性能硬件,通常是昂贵的显卡设备。因此,商业上广泛应用的行人检测技术基本上属于传统方法,硬件使用的是廉价的嵌入式设备。
传统行人检测技术多为对直立姿态的人体进行检测。直立姿态的人体如图1A所示,G 为重垂线,H为行人身高。这引发出摄像机的部署受限于行人检测区域的问题。在多数情况下,摄像机的安装高度和角度必须满足监控的需求。如图2所示,A为行人检测区域,C1为摄像机部署的理想情况,C2为摄像机部署的实际情况,H为在检测区域上站立的行人。直立姿态的行人在C1中的画像如图1A所示,直立姿态的行人在C2中的画像如图1B所示。图 1B中的人体相较于图1A由大幅度的姿态变化。现有的行人检测技术只能适应有限度的人体姿态变化。因此现有技术最大的缺点是无法对任意监控环境的行人检测都保持较高的检出率和虚警率。
虽然有部分行人检测技术为解决这个问题,采用对部署现场标定之后,进行迁移学习。这种行人检测技术能有效缓解多姿态的检测问题,但缺点在于迁移学习耗时很长。在工程实施上,不能提供这种部署条件。
因此,如何提供一种行人检测方法、系统、计算机可读存储介质及电子设备,以解决现有技术无法对任意监控环境的行人检测都保持较高的检出率和虚警率,且采用迁移学习的检测方法耗时长,无法在工程上实施等缺陷,实以成为本领域技术人员亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种行人检测方法、系统、计算机可读存储介质及电子设备,用于解决现有技术无法对任意监控环境的行人检测都保持较高的检出率和虚警率,且采用迁移学习的检测方法耗时长,无法在工程上实施的问题。
为实现上述目的及其他相关目的,本发明一方面提供一种行人检测方法,包括:根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像;通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数;根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。
于本发明的一实施例中,所述训练样本集包括使用直立姿态行人图像的正样本和非行人图像的负样本。
于本发明的一实施例中,所述根据预先采集的训练样本集,训练出行人分类器的步骤包括:对所述训练样本集进行预处理,形成预处理后的样本集;其中,所述预处理包括先统一所述训练样本集中各样本的图像尺寸,然后再随机抖动、和/或镜像处理;基于所述预处理后的样本集,生成随机特征池;所述随机特征池用于循环训练所述样本集;从所述随机特征池中抽取强特征,对所述抽取的强特征进行训练,以生成当轮的行人分类器,并通过所述强特征组成强特征池;所述强特征用于区分出正样本和负样本;根据预设循环数,循环以上步骤;待循环结束后,训练所述强特征池中的所有强特征,以生成最终的行人分类器。
于本发明的一实施例中,所述基于所述预处理后的样本集,生成随机特征池的步骤包括:通过随机生成的特征模板,计算该特征模板对应的特征值,将所计算的特征值组成所述随机特征池;所述随机生成的特征模板包括模板积分通道的编号、模板的编号、模板外矩形的坐标及模板内矩形的坐标;所述模板积分通道的编号为1至9中任意整数;所述模板的编号为1至8中任意整数,模板内矩形的坐标需包含在所述模板外矩形的坐标内。
于本发明的一实施例中,所述从所述随机特征池中抽取强特征,对所述抽取的强特征进行训练,以生成当轮的行人分类器的步骤包括:从正样本中随机挑选预定量的检测样本;使用所述随机特征池中所有特征值对检测样本进行特征抽取;基于所抽取的特征值及梯度提升决策树算法,训练生成当轮的行人分类器。
于本发明的一实施例中,在生成当轮的行人分类器之后,所述根据预先采集的训练样本集训练出行人分类器的步骤的步骤包括:利用所述当轮的行人分类器对所述训练样本集进行预测,以收集所述训练样本集中的难例;所述难例指误判的正样本和误判的负样本;提高所述难例的权重,并将该难例加入所述训练样本集,以更新所述训练样本集;基于所更新的训练样本集,更新随机特征池。
于本发明的一实施例中,所述通过对监控画面进行标定的步骤包括:通过人机交互方式,在所述监控画面上定位行人的坐标,并在所述监控画面上行人位置显示行人标尺;通过调整获取所述监控画面的画面采集装置的状态,以在调整状态下所采集的监控画面中行人位置与行人标尺重合,同时获取所述转换矩阵参数;所述转换矩阵参数包括监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵、监控画面中地平面的点从世界坐标系到图像坐标系的转换矩阵、监控画面中行人腰部的点从世界坐标系到图像坐标系的转换矩阵、监控画面中行人颈部的点从世界坐标系到图像坐标系的转换矩阵、和/或监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵。
于本发明的一实施例中,所述根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并通过所述行人分类器对重构的图像区块进行分类,以判断出行人图像的步骤包括:利用所述转换矩阵参数,计算监控画面中非直立姿态重构成直立姿态所需映射关系;所述映射关系={θ,h,S头,S身体,S胳膊};其中,θ为监控画面中非直立姿态的行人倾斜角度;h为监控画面中行人的头顶到地面的距离;S头为监控画面中行人的头部与全身的比例;S身体为监控画面中行人的中躯干与全身的比例;S胳膊为监控画面中行人的腿部与全身的比例;基于预设步长,在世界坐标系中的地平面上构建网格,将所构建的网格映射至图像坐标系中;其中,所述网格的交点为地平面检测坐标;遍历所述地平面检测坐标,利用所述映射关系中的θ和 h,在所述待检测图像上截取图像区块;利用所述映射关系中的θ旋转所述图像区块,将旋转的图像区块中行人按照所述S头,S身体,S胳膊进行缩放,以形成重构的图像区块;通过所述最终的行人分类器对重构的图像区块进行分类。
本发明另一方面提供一种行人检测系统,包括:训练模块,用于根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像;交互模块,用于通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数;处理模块,用于根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。
于本发明的一实施例中,所述训练样本集包括使用直立姿态行人图像的正样本和非行人图像的负样本;所述训练模块包括:预处理单元,用于对所述训练样本集进行预处理,形成预处理后的样本集;其中,所述预处理包括先统一所述训练样本集中各样本的图像尺寸,然后再随机抖动、和/或镜像处理;特征池生成单元,用于基于所述预处理后的样本集,生成随机特征池;所述随机特征池用于循环训练所述样本集;训练单元,用于从所述随机特征池中抽取强特征,对所述抽取的强特征进行训练,以生成当轮的行人分类器,并通过所述强特征组成强特征池;所述强特征用于区分出正样本和负样本;循环单元,用于根据预设循环数,循环运行所述样本选择单元、预处理单元、特征池生成单元、及训练单元;待循环结束后,所述训练单元训练强特征池中的所有强特征,以生成最终的行人分类器。
于本发明的一实施例中,在生成当轮的行人分类器之后,所述训练单元还用于利用所述当轮的行人分类器对所述训练样本集进行预测,以收集所述训练样本集中的难例;所述难例指误判的正样本和误判的负样本;提高所述难例的权重,并将该难例加入所述训练样本集,以更新所述训练样本集;基于所更新的训练样本集,更新随机特征池。
于本发明的一实施例中,所述交互模块包括:行人标尺显示单元,用于通过人机交互方式,在所述监控画面上定位行人的坐标,并在所述监控画面上行人位置显示行人标尺;调整单元,用于通过调整获取所述监控画面的画面采集装置的状态,以在调整状态下所采集的监控画面中行人位置与行人标尺重合,同时获取所述转换矩阵参数;所述转换矩阵参数包括监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵、监控画面中地平面的点从世界坐标系到图像坐标系的转换矩阵、监控画面中行人腰部的点从世界坐标系到图像坐标系的转换矩阵、监控画面中行人颈部的点从世界坐标系到图像坐标系的转换矩阵、和/或监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵。
于本发明的一实施例中,所述处理模块包括:计算单元,用于利用所述转换矩阵参数,计算监控画面中非直立姿态重构成直立姿态所需映射关系;所述映射关系={θ,h,S头,S身体,S胳膊};其中,θ为监控画面中非直立姿态的行人倾斜角度;h为监控画面中行人的头顶到地面的距离;S头为监控画面中行人的头部与全身的比例;S身体为监控画面中行人的中躯干与全身的比例;S胳膊为监控画面中行人的腿部与全身的比例;映射单元,用于基于预设步长,在世界坐标系中的地平面上构建网格,将所构建的网格映射至图像坐标系中;其中,所述网格的交点为地平面检测坐标;图像处理单元,用于遍历所述地平面检测坐标,利用所述映射关系中的θ和h,在所述待检测图像上截取图像区块;利用所述映射关系中的θ旋转所述图像区块,将旋转的图像区块中行人按照所述S头,S身体,S胳膊进行缩放,以形成重构的图像区块;分类单元,用于通过所述最终的行人分类器对重构的图像区块进行分类。
本发明又一方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述行人检测方法。
本发明最后一方面提供一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述行人检测方法。
如上所述,本发明的行人检测方法、系统、计算机可读存储介质及电子设备,具有以下
有益效果:
本发明所述的行人检测方法、系统、计算机可读存储介质及电子设备适应于任意监控场景,能够快速便捷地解决上述难题,在适用任意监控场景的同时确保行人检测的检出率。
附图说明
图1A显示为摄像机部署的理想情况下直立姿态的人体示意图。
图1B显示为摄像机部署的实际情况下直立姿态的人体示意图。
图2显示为行人检测方法的应用场景示意图。
图3A显示为本发明的行人检测方法于一实施例中的流程示意图。
图3B显示为本发明的行人检测方法中S31的流程示意图。
图3C显示为本发明的行人检测方法中S32的流程示意图。
图3D显示为本发明的行人检测方法中S33的流程示意图。
图4显示为本发明的模板积分通道的积分示意图。
图5显示为本发明的场景标定示例图。
图6显示为本发明的地平面检测坐标的示意图。
图7A显示为本发明的截取图像区块的示意图。
图7B显示为本发明的重构的图像区块的示意图。
图8显示为本发明的行人检测系统于一实施例中的原理结构示意图。
元件标号说明
8 行人检测系统
81 训练模块
82 交互模块
83 处理模块
811 预处理单元
812 特征池生成单元
813 训练单元
814 循环单元
821 行人标尺显示单元
822 调整单元
831 计算单元
832 映射单元
833 图像处理单元
834 分类单元
S31~S33 步骤
S311~S315 步骤
S321~S322 步骤
S331~S335 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
实施例一
本实施例提供一种行人检测方法,包括:
根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像;
通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数;
根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。
以下将结合图示对本实施例所提供的行人检测方法进行详细描述。请参阅图3A,显示为行人检测方法于一实施例中的流程示意图。如图3A所示,所述行人检测方法具体包括以下几个步骤:
S31,根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像。所述训练样本集包括使用直立姿态行人图像的正样本和非行人图像的负样本。请参阅图3B,显示为S31的流程示意图。如图3B所示,所述S31包括以下几个步骤:
S311,对所述训练样本集进行预处理,形成预处理后的样本集;其中,所述预处理包括先统一所述训练样本集中各样本的图像尺寸,然后再随机抖动、和/或镜像处理。在本实施例中,对所述训练样本集所挑选的样本进行预处理的目的是为增加训练样本集中各样本的多样性,提高行人分类器的鲁棒性。
S312,基于所述预处理后的样本集,生成随机特征池;所述随机特征池用于循环训练所述样本集。
具体地,步骤S312通过随机生成的特征模板F={c,t,r0,r1},计算该特征模板对应的特征值,将所计算的特征值组成所述随机特征池;所述随机生成的特征模板包括模板积分通道的编号c、模板的编号t、模板外矩形的坐标r0及模板内矩形的坐标r1;所述模板积分通道的编号为1至9中任意整数;所述模板的编号为1至8中任意整数,模板内矩形的坐标需包含在所述模板外矩形的坐标内。请参阅图4,显示为模板积分通道的积分示意图。在如图4所示的9个通道中,前6个为不同梯度方向(每30°归为一个方向)的积分图,后3个是归一化后的YUV的积分图。
S313,从所述随机特征池中抽取强特征,对所述抽取的强特征进行训练,以生成当轮的行人分类器,并通过所述强特征组成强特征池;所述强特征用于区分出正样本和负样本。
具体地,所述S313包括从正样本中随机挑选预定量的检测样本;使用所述随机特征池中所有特征值对检测样本进行特征抽取;基于所抽取的特征值及梯度提升决策树算法,训练生成所述当轮的行人分类器。所述梯度提升决策树算法为一迭代的决策树算法,每次迭代都是学习前一次的梯度下降值,最终预测结果由所有决策树共同决定。最终预测结果为本实施例所需要的行人分类器。
S314,利用所述当轮的行人分类器对所述训练样本集进行预测,以收集所述训练样本集中的难例;提高所述难例的权重,并将该难例加入所述训练样本集,以更新所述训练样本集,基于所更新的训练样本集,更新随机特征池。所述难例指误判的正样本和误判的负样本。
S315,根据预设循环数,循环运行S311至S314。
S316,待循环结束后,使用强特征池中的所有强特征进行训练,以生成最终的行人分类器。在本实施例中,采用梯度提升决策树算法对强特征池中的所有强特征进行训练。
S32,通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数。请参阅图3C,显示为S2的流程示意图。如图3C所示,所述S2包括以下两个步骤:
S321,通过人机交互方式,在所述监控画面上定位行人的坐标,并在所述监控画面上行人位置显示行人标尺。请参阅图5,场景标定示例图。如图5所示,H为行人,R1为行人标尺。
S322,通过调整获取所述监控画面的画面采集装置的状态,以在调整状态下所采集的监控画面中行人位置与行人标尺重合,同时获取所述转换矩阵参数。继续参阅图5,使行人标尺R1变为行人标尺R2。在本实施例中,画面采集装置为摄像机,调整画面采集装置的状态包括调整摄像机的安装高度、水平转角、俯仰角和倾斜角、视场角、畸变系数等等。
所述转换矩阵参数M包括监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵 Mc2w_g、监控画面中地平面的点从世界坐标系到图像坐标系的转换矩阵Mw2c_g、监控画面中行人腰部的点从世界坐标系到图像坐标系的转换矩阵Mw2c_w、监控画面中行人颈部的点从世界坐标系到图像坐标系的转换矩阵Mw2c_n、和/或监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵Mw2c_h。
S33,根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。请参阅图3D,显示为S33的流程示意图。如图3D所示,所述S33包括以下几个步骤:
S331,利用所述转换矩阵参数,计算监控画面中非直立姿态重构成直立姿态所需映射关系。所述映射关系={θ,h,S头,S身体,S胳膊};其中,θ为监控画面中非直立姿态的行人倾斜角度;h为监控画面中行人的头顶到地面的距离;S头为监控画面中行人的头部与全身的比例;S身体为监控画面中行人的中躯干与全身的比例;S胳膊为监控画面中行人的腿部与全身的比例。
具体地,设行人在监控画面中站长的位置坐标为P1(x0,y0),通过监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵Mc2w_g计算得到监控画面中地平面的点从图像坐标系到世界坐标系的地面坐标(x1,y1,z1),头顶坐标为(x1,y1,z2)。再由监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵Mw2c_h计算得到头顶在监控画面中的坐标 P2(x2,y2)。
tanθ=abs(x2-x0)/abs(y2-y0);
H=dist(P1,P2);
S头=dist(头,肩膀)/H;
S身体=dist(肩膀,腰)/H;
S胳膊=1-S头-S身体。
S332,基于预设步长,在世界坐标系中的地平面上构建网格,将所构建的网格映射至图像坐标系中;其中,所述网格的交点为地平面检测坐标。请参阅图6,显示为地平面检测坐标的示意图。如图6所示,A点为地平面检测坐标。
S333,遍历所述地平面检测坐标,利用所述映射关系中的θ和h,在所述待检测图像上截取图像区块。请参阅图7A,显示为截取图像区块的示意图。如图7A所示,N1为截取图像区块的示例图。
S334,利用所述映射关系中的θ旋转所述图像区块,将旋转的图像区块中行人按照所述S头,S身体,S胳膊进行缩放,以形成重构的图像区块。请参阅图7B,显示为重构的图像区块的示例图。如图7B所示,N2位重构的图像区块。
S335,通过所述最终的行人分类器对重构的图像区块进行分类,以判断出行人图像。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述行人检测方法中步骤S31至S33。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
现有行人检测技术应用于监控场景时,受限于相对固定安装角度。同时必须根据安装高度及监控范围选择恰当焦距的镜头,存在部署不灵活、不适合特殊安装需求的缺陷。本实施例提所述的行人检测方法适应于任意监控场景,能够快速便捷地解决上述难题,在适用任意监控场景的同时确保行人检测的检出率。
实施例二
本实施例提供一种行人检测系统,包括:
训练模块,用于根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像;
交互模块,用于通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数;
处理模块,用于根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。
以下将结合图示对本实施例所提供的行人检测系统进行详细描述。需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC),或,一个或多个微处理器(digitalsingnalprocessor,简称DSP),或,一个或者多个现场可编程门阵列 (FieldProgrammableGateArray,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessingUnit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统 (system-on-a-chip,简称SOC)的形式实现。
请参阅图8,显示为行人检测系统于一实施例中的原理结构示意图。如图8所示,所述行人检测系统8包括:训练模块81、交互模块82、及处理模块83。
所述训练模块81用于根据预先采集的训练样本集,训练出行人分类器;所述行人分类器用于判断待检测图像是否为行人图像。所述训练样本集包括使用直立姿态行人图像的正样本和非行人图像的负样本。请继续参阅图8,所述训练模块81包括预处理单元811、特征池生成单元812、训练单元813、及循环单元814。
所述预处理单元811对所述训练样本集进行预处理,形成预处理后的样本集;其中,所述预处理包括先统一所述训练样本集中各样本的图像尺寸,然后再随机抖动、和/或镜像处理。在本实施例中,对所述训练样本集所挑选的样本进行预处理的目的是为增加训练样本集中各样本的多样性,提高行人分类器的鲁棒性。
与所述预处理单元811耦接的所述特征池生成单元812基于所述预处理后的样本集,生成随机特征池;所述随机特征池用于循环训练所述样本集。
具体地,所述特征池生成单元812通过随机生成的特征模板F={c,t,r0,r1},计算该特征模板对应的特征值,将所计算的特征值组成所述随机特征池;所述随机生成的特征模板包括模板积分通道的编号c、模板的编号t、模板外矩形的坐标r0及模板内矩形的坐标r1;所述模板积分通道的编号为1至9中任意整数;所述模板的编号为1至8中任意整数,模板内矩形的坐标需包含在所述模板外矩形的坐标内。本实施例中,9个通道中,前6个为不同梯度方向(每30°归为一个方向)的积分图,后3个是归一化后的YUV的积分图。
与所述特征池生成单元812耦接的所述训练单元813从所述随机特征池中抽取强特征,对所述抽取的强特征进行训练,以生成当轮的行人分类器,并通过所述强特征组成强特征池;所述强特征用于区分出正样本和负样本。
具体地,所述所述训练单元813从正样本中随机挑选预定量的检测样本;使用所述随机特征池中所有特征值对检测样本进行特征抽取;基于所抽取的特征值及梯度提升决策树算法,训练生成所述当轮的行人分类器。所述梯度提升决策树算法为一迭代的决策树算法,每次迭代都是学习前一次的梯度下降值,最终预测结果由所有决策树共同决定。最终预测结果为本实施例所需要的行人分类器。在生成当轮的行人分类器后,所述训练单元813继续利用所述当轮的行人分类器对所述训练样本集进行预测,以收集所述训练样本集中的难例;提高所述难例的权重,并将该难例加入所述训练样本集,以更新所述训练样本集,基于所更新的训练样本集,更新随机特征池。所述难例指误判的正样本和误判的负样本。
与所述预处理单元811、特征池生成单元812、及训练单元813耦接的循环模块814根据预设循环数,循环运行所述预处理单元811、特征池生成单元812、及训练单元813。在本实施例中,待循环结束后,所述训练单元813使用强特征池中的所有强特征进行训练,以生成最终的行人分类器。在本实施例中,采用梯度提升决策树算法对强特征池中的所有强特征进行训练。
与所述训练模块81耦接的交互模块82用于通过对监控画面进行标定,以获取图像坐标系到世界坐标系或世界坐标系到图像坐标系的转换矩阵参数。请继续参阅图8,所述交互模块82包括行人标尺显示单元821和调整单元822。
通过人机交互方式,所述行人标尺显示单元821在所述监控画面上定位行人的坐标,并在所述监控画面上行人位置显示行人标尺。
与所述行人标尺显示单元821耦接的调整单元822通过调整获取所述监控画面的画面采集装置的状态,以在调整状态下所采集的监控画面中行人位置与行人标尺重合,同时获取所述转换矩阵参数。在本实施例中,画面采集装置为摄像机,调整画面采集装置的状态包括调整摄像机的安装高度、水平转角、俯仰角和倾斜角、视场角、畸变系数等等。
所述转换矩阵参数M包括监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵 Mc2w_g、监控画面中地平面的点从世界坐标系到图像坐标系的转换矩阵Mw2c_g、监控画面中行人腰部的点从世界坐标系到图像坐标系的转换矩阵Mw2c_w、监控画面中行人颈部的点从世界坐标系到图像坐标系的转换矩阵Mw2c_n、和/或监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵Mw2c_h。
与所述训练模块81和交互模块82连接的处理模块83用于根据该转换矩阵参数,生成用于将监控画面中非直立姿态重构成直立姿态所需映射关系,生成地平面检测坐标;将所述地平面检测坐标映射到所述监控画面中,在所述待检测图像上截取图像区块,利用所述映射关系,将所述图像区块进行重构,并利用所述行人分类器对重构的图像区块进行分类,以判断出行人图像。继续参阅图8,所述处理模块83包括:计算单元831、映射单元832、图像处理单元833、及分类单元834。
所述计算单元831利用所述转换矩阵参数,计算监控画面中非直立姿态重构成直立姿态所需映射关系;所述映射关系={θ,h,S头,S身体,S胳膊};其中,θ为监控画面中非直立姿态的行人倾斜角度;h为监控画面中行人的头顶到地面的距离;S头为监控画面中行人的头部与全身的比例;S身体为监控画面中行人的中躯干与全身的比例;S胳膊为监控画面中行人的腿部与全身的比例。
具体地,设行人在监控画面中站长的位置坐标为P1(x0,y0),所述计算单元831通过监控画面中地平面的点从图像坐标系到世界坐标系的转换矩阵Mc2w_g计算得到监控画面中地平面的点从图像坐标系到世界坐标系的地面坐标(x1,y1,z1),头顶坐标为(x1,y1,z2)。再由监控画面中行人头顶的点从世界坐标系到图像坐标系的转换矩阵Mw2c_h计算得到头顶在监控画面中的坐标P2(x2,y2)。
tanθ=abs(x2-x0)/abs(y2-y0);
H=dist(P1,P2);
S头=dist(头,肩膀)/H;
S身体=dist(肩膀,腰)/H;
S胳膊=1-S头-S身体。
与所述计算单元831耦接的映射单元832基于预设步长,在世界坐标系中的地平面上构建网格,将所构建的网格映射至图像坐标系中;其中,所述网格的交点为地平面检测坐标。
与所述映射单元832耦接的图像处理单元833遍历所述地平面检测坐标,利用所述映射关系中的θ和h,在所述待检测图像上截取图像区块。在截取图像区块后,所述图像处理单元833利用所述映射关系中的θ旋转所述图像区块,将旋转的图像区块中行人按照所述S头, S身体,S胳膊进行缩放,以形成重构的图像区块。
与所述图像处理单元833耦接的分类单元834通过所述最终的行人分类器对重构的图像区块进行分类,以判断出行人图像。
实施例三
本实施例提供一种电子设备,包括:处理器、存储器、收发器、通信接口和系统总线;存储器和通信接口通过系统总线与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于和其他设备进行通信,处理器和收发器用于运行计算机程序,使该电子设备执行如实施例一所述的行人检测方法的各个步骤。
上述提到的系统总线可以是外设部件互连标准(PeripheralPomponentInterconnect,简称 PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备 (例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器 (RandomAccessMemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,由于现有行人检测技术应用于监控场景时,受限于相对固定安装角度。同时必须根据安装高度及监控范围选择恰当焦距的镜头,存在部署不灵活、不适合特殊安装需求的缺陷。本发明所述的行人检测方法、系统、计算机可读存储介质及电子设备适应于任意监控场景,能够快速便捷地解决上述难题,在适用任意监控场景的同时确保行人检测的检出率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。