发明内容
鉴于以上内容,有必要提供一行人侦测系统及方法,能够方便、快速,提高侦测及判别效率的行人侦测系统及方法。
一种行人侦测系统,该行人侦测系统包括摄影装置及云端服务器,所述云端服务器包括:
一入口节点,用于接收摄影装置摄取到的影像资料,并将该影像资料分析、拆解为若干个子工作区,及用于提取一百分比的子工作区,以待分配;
若干运算节点,用于接收来自入口节点分配的一百分比的子工作区,并将该百分比的子工作区进行分布式平行处理。
一种行人侦测方法,应用于一行人侦测系统中,该行人侦测系统包括摄影装置及云端服务器,所述云端服务器包括一入口节点及一若干节点单元该方法包括步骤:
通过摄影装置对监控场景进行拍摄,并实时摄取行人影像画面;
入口节点接收所述实时影像资料,并将该影像资料分析、拆解为若干个子工作区;
入口节点提取一百分比的子工作区,并平均分配给所述若干运算节点。
每一运算节点接收来自入口节点分配的一百分比的子工作区,并将该百分比的子工作区进行分布式平行处理。
相较于现有技术,本发明入口节点不断将行人侦测影像应执行运算的子工作区按比例发送至云端服务器的各运算节点,并通过若干运算节点将一定百分比的子工作区进行分布式平行处理,从而,可以加快处理时间,提高行人影像侦测及判别的效率。
具体实施方式
下面结合附图及较佳实施方式对本发明作进一步详细描述:
参考图1,是行人侦测系统10较佳实施例的示意图。在本实施例中,所述的行人侦测系统10包括,但不仅限于,一摄影装置11及一云端服务器12。在本实施例中,所述摄影装置11为一单眼视觉机器人,所谓单眼视觉机器人主要用计算机来模拟人的单眼视觉功能,但并不仅仅是人眼的简单延伸,更重要的是具有人脑的一部分功能一一从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、测量和控制。一并参考图2,摄影装置11内建一网络模组110,所述摄影装置11通过内建的网络模组110来将摄取到的实时影像画面传送至所述云端服务器12。所述云端服务器12包括一入口节点122及运算节点单元123。所述入口节点122包括若干子节点P1、P2、P3(以三个节点为例)。
请参照图3,为云端服务器12的方框示意图。所述入口节点122包括一控制单元220、及与控制单元220相连的一影像侦测单元221、一数据分解单元222、一数据分配单元223。所述控制单元220控制影像侦测单元221接收摄影装置11摄取到的影像资料,且控制所述数据分解单元222将该影像资料分析、拆解为若干个子工作区,每一子工作区分布于每一子节点P1、P2、P3。所述控制单元220还控制所述数据分配单元223提取一百分比(本实施例中以1%为例)的子工作区,以分配给所述运算节点单元123。所述运算节点单元123包括若干运算节点C1、C2、C3(以三个运算节点为例),每一运算节点平均接收子工作区总量的1%的子工作区(如图4所示)。在本实施例中,每一运算节点为有运算及处理能力的计算机或虚拟机。
请参照图5,为本发明行人侦测系统10的每一运算节点的方框示意图。所述每一运算节点包括一处理器单元232、一判断单元234及一效能判定单元236,所述处理器单元232包括若干处理器。所述每一运算节点根据自身处理器的数量产生相应数量的工作线程,并将所接收到的子工作区平均分配至对应的工作线程,以通过工作线程同时运算所接收到的子工作区。在本实施例中,每一工作线程每次只处理一个子工作区。所述判断单元234用以判断所述每一运算节点的工作线程是否将所有子工作区全部运算完毕,并将判断结果反馈给入口节点122的控制单元220。所述效能判定单元236用以在所述工作线程处理完相应子工作区后,计算相应运算节点的当前运算效能,并将所述每一运算节点的当前运算效能反馈给所述判断单元234,所述判断单元234将接收到的判断结果反馈给入口节点122的控制单元220。所述入口节点122控制单元220用于根据所接收到的相应运算节点的当前运算效能的判断结果,来控制所述数据分配单元223下一次分给每一运算节点的子工作区的数量及比例。
在本实施例中,所述效能判定单元236根据如下公式来计算相应运算节点的当前运算效能:每一运算节点的运算成本:
(公式一),每一运算节点的运算效能:
(公式二),其中,Mi为工作线程的总数, 为各个工作线程运算时间的加总。
以运算节点C1可动态产生四个工作线程为例,假设运算节点C1完成运算作业后,分别记录各个工作线程的运算时间为6ms、12ms、14ms、8ms。以公式一进行运算,可得知运算节点C1的运算成本CCi为10ms,再以公式二进行推算,便可取得运算节点C1的运算效能(CPi)为1/10,如此,运算节点C1便将所有子工作区的运算结果以及自身的运算效能(CPi)回传至入口节点122的控制单元220中(可参照图6)。
所述入口节点122的控制单元220根据接收到的各运算节点反馈的运算效能(CPi),按照如下公式三来比较每一运算节点的运算效能的状态,并以此来调整下一次分配至各运算节点的子工作区的数量比例,各运算节点分配的子工作区的数量比例Wi的计算如下: (公式三),
其中,CPi为某一运算节点的运算效能, 为各个运算节点运算效能的加总。
以计算分配至运算节点C1的子工作区的数量比例Wi1为例,假设运算节点C2、C3回报的运算效能分别为1/20、1/5,入口节点122的控制单元220便可根据接收到的各运算节点的运算效能信息,经由公式三之进行运算可以得出分配至运算节点C1的子工作区的数量比例Wi1为28.6%,运算如下:
Wi1=(1/10)/(1/10+1/20+1/5)*100%=28.6%
通过同样的方式,入口节点122的控制单元220可计算出分配给运算节点C2、C3的子工作区的数量比例。如此,入口节点122的控制单元220可根据该分配比例,控制数据分配单元223下一次分给每一运算节点的子工作区的数量及比例。
所述入口节点122的控制单元220通过判断单元234判断每一运算节点的工作线程是否将所有子工作区全部运算完毕,若没有运算完毕,则控制单元220控制数据分配单元223提取子工作区总量的10%的子工作区,平均分配至各运算节点进行平行处理。
假设,单张影像应执行的子工作区总量为385,803次运算作业为例,入口节点122的控制单元220接下来每次将分派总工作量之10%至各运算节点,将其中38,580次运算工作平均分配至各运算节点同时进行分布式平行处理。
参考图7所示,是应用于上述行人侦测系统10的行人侦测方法的较佳实施例的流程图。在本实施例中,该方法能够快速地完成行人侦测及判别工作,步骤包括如下:
步骤S801,通过摄影装置11对监控场景进行拍摄,并实时摄取行人影像画面,在本实施例中,所述摄影装置11为一单眼视觉机器人,所述摄影装置11通过内建的网络模组110将摄取到的实时影像画面传送至云端服务器12。
步骤S802,所述入口节点122通过所述影像侦测单元221接收所述实时影像资料。
步骤S803,所述入口节点122通过数据分解单元222对接收到的实时影像进行分析,并将该影像资料分析、拆解为若干个子工作区。
步骤S804,所述入口节点122的控制单元220控制数据分配单元223提取一百分比(本实施例中以1%为例)的子工作区,并平均分配给所述运算节点单元123。
步骤S805,每一运算节点根据自身实际处理器的数量产生相应数量的工作线程,并将所接收到的子工作区平均分配至对应的工作线程,以通过工作线程同时运算所接收到的子工作区。在本实施例中,每一工作线程每次只处理一个子工作区。
步骤S806,所述每一运算节点的效能判定单元236用以在所述工作线程处理完相应子工作区后,计算相应运算节点的当前运算效能,并将所述每一运算节点的当前运算效能反馈给所述判断单元234。
步骤S807,所述入口节点122的控制单元220通过判断单元234接收每一运算节点的运算效能信息,并根据该运算效能信息调整下一次应分配至各运算节点的子工作区的数量比例。
步骤S808,判断单元234判断每一运算节点的工作线程是否将所有子工作区全部运算完毕,若没有运算完毕,执行步骤S809;若全部运算完毕,则结束进程。
步骤S809,控制单元220控制数据分配单元223提取子工作区总量的10%的子工作区,平均分配至各运算节点进行平行处理,并根据接收到的各运算节点的运算效能信息调整分配至各运算节点的子工作区的数量比例。
如此,入口节点122的控制单元220便依据上述结构及步骤,不断将行人侦测影像应执行运算的子工作区发送至云端所有运算节点,并依据各运算节点每次回报之实时运算效能状态,调整下一次发派至各运算节点的工作量比例,直到所有子工作区运算完毕,即完成本次行人侦测的判别作工作。
综上,通过多个运算节点对子工作区进行同时处理,不仅可节省购置多组高阶运算设备的高额花费,且可不断盘点云端计算资源的实时状况,随时调整分配至各运算节点的工作量比例,可避免发生某云端服务器的某一运算效能无预警地变动,造成单一行人侦测的运算作业的资源降低,及所分配的作业量无法迅速完成等状况发生,进而有效提升基于单眼视觉机器人的行人侦测的运算、判别能力。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换都不应脱离本发明技术方案的精神和范围。