首页> 中国专利> 通过稳健视觉方案识别分拨中心粗暴处理的系统和方法

通过稳健视觉方案识别分拨中心粗暴处理的系统和方法

摘要

一种用于检测粗暴处理的方法和系统。系统具有相机和计算设备。计算设备被配置为:接收由相机捕获的视频流;从视频流的视频帧中检测人物和包裹;基于检测到的人物和包裹构造人物轨迹和包裹轨迹;识别一个人物轨迹和一个包裹轨迹之间的动作,其中,动作包括该人物拿起、持有和放下该包裹;以及在放下该包裹后的预定帧,当该包裹的移动距离大于阈值距离,且该包裹的移动速度大于阈值速度时,确定粗暴处理的存在。

著录项

  • 公开/公告号CN114898267A

    专利类型发明专利

  • 公开/公告日2022-08-12

    原文格式PDF

  • 申请/专利权人 网银在线(北京)科技有限公司;

    申请/专利号CN202210540907.1

  • 发明设计人 张越;王欣尧;罗斯;薄列峰;

    申请日2022-05-17

  • 分类号G06V20/40(2022.01);G06V40/20(2022.01);G06V10/22(2022.01);G06T7/90(2017.01);G06T7/20(2017.01);G06T5/30(2006.01);G06T5/00(2006.01);G06Q10/08(2012.01);

  • 代理机构中科专利商标代理有限责任公司 11021;

  • 代理人杨静

  • 地址 100080 北京市海淀区苏州街49-3号1层109室

  • 入库时间 2023-06-19 16:22:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):G06V20/40 专利申请号:2022105409071 申请日:20220517

    实质审查的生效

说明书

交叉引用

在本公开的描述中引用和讨论了一些参考文献,其可能包括专利、专利申请和各种出版物。提供此类参考文献的引用和/或讨论仅用于阐明本公开的描述,并不承认任何此类参考文献是本文所述公开的“现有技术”。在说明书中引用和讨论的所有参考文献通过引用整体并入本文,与每篇参考文献通过引用单独并入的程度相同。

技术领域

本公开总体上涉及图像处理,更具体地,涉及用于使用稳健视觉方案识别分拨中心中的粗暴处理的系统和方法。

背景技术

在此提供的背景描述是为了概括地呈现本公开的上下文。在本背景部分中描述的范围内,本公开人的工作,以及在申请时可能不符合现有技术条件的说明书的各个方面,在本公开中既不明示也不默示地承认为现有技术。

分拨中心是一个仓库,用于接收、存储大量货物并将其重新分配到其他目的地。这些中心大多雇用工人来处理进出货物,工人经常需要手工卸货和处理包裹,尤其是在托盘包装或传送带附近。粗暴处理是分拨中心工人粗暴处理货物时出现的问题。工人可能会将包裹扔到传送带上,或者将包裹重重地摔在地上,或者将包裹推到难以撞击其他货物的地方。这些粗暴的搬运行为可能会导致货物损坏,并对分拨中心或包裹所有者造成损失。作为回应,一些分拨中心雇佣员工来监控中心的搬运工人。但是,工作人员很难同时监控多个工人,并会给大型中心带来巨大的人力成本。

因此,在本领域中存在解决上述缺陷和不足的需要。

发明内容

在某些方面,本公开涉及一种用于检测粗暴处理的系统,包括成像设备和计算设备,所述计算设备包括处理器和存储有计算机可执行代码的存储设备。所述计算机可执行代码在所述处理器处执行时被配置为:

接收由所述成像设备捕获的包括多个视频帧的视频流;

从所述多个视频帧中获得多个人物边界框和多个包裹边界框;

基于获得的所述人物边界框和所述包裹边界框,构造多个人物轨迹和多个包裹轨迹;

识别所述多个人物轨迹中的一个人物轨迹和所述多个包裹轨迹中的一个包裹轨迹之间的动作,其中,所述动作包括所述多个人物轨迹中的一个人物轨迹中的相应的一个人拿起、持有和放下所述多个包裹轨迹中的一个包裹轨迹中的相应的一个包裹;以及

在放下所述相应的一个包裹后的预定帧,当所述相应的一个包裹的移动距离大于阈值距离,且所述相应的一个包裹的移动速度大于阈值速度时,确定粗暴处理的存在。

在某些实施例中,所述计算机可执行代码被配置为,针对所述多个视频帧中的每个视频帧,通过以下操作获得所述多个人物边界框和所述多个包裹边界框:

从所述每个视频帧中检测人物,以获得所述多个人物边界框;

从所述每个视频帧中检测包裹,以获得检测到的包裹边界框;以及

从所述检测到的包裹边界框中删除静止的包裹边界框,以获得所述多个包裹边界框。

在某些实施例中,所述计算机可执行代码还被配置为:

计算所述每个视频帧与所述每个视频帧的前一帧之间的帧差;

将所述每个视频帧的具有高帧差的区域定义为前景区域;以及

将所述检测到的包裹边界框中与所述前景区域不重叠的包裹边界框定义为所述静止的包裹边界框。

在某些实施例中,所述计算机可执行代码还被配置为,向获得的所述包裹边界框添加附加包裹边界框,其中,当所述前景区域中的一个前景区域与检测到的人物边界框和检测到的包裹边界框之间没有重叠时,所述附加包裹边界框位于所述前景区域中的一个前景区域。

在某些实施例中,所述计算机可执行代码被配置为,当在所述人物轨迹的两个位置之间存在缺失位置时,在所述人物轨迹中的一个人物轨迹中插入人物边界框,当所述包裹轨迹的两个位置之间存在缺失位置时,在所述包裹轨迹中的一个包裹轨迹中插入包裹边界框。

在某些实施例中,所述计算机可执行代码还被配置为,通过检测获得与获得的所述多个人物边界框中的每个人物边界框对应的人物关键点。

在某些实施例中,所述人物关键点包括手腕关键点,当所述手腕关键点与所述包裹边界框中相应的一个包裹边界框的最近距离小于10像素时,所述相应的一个人拿起所述相应的一个包裹,当拿起后的最近距离小于10像素时,所述相应的一个人持有所述相应的一个包裹,当持有后的最近距离等于或大于10像素时,所述相应的一个人放下所述相应的一个包裹。

在某些实施例中,所述阈值距离是与所述相应的一个人的躯干的像素大小d

在某些实施例中,所述相应的一个人在第(t-u)帧拿起所述相应的一个包裹,在第(t-u+1)帧到第(t-1)帧持有所述相应的一个包裹,在第t帧放下所述相应的一个包裹;从第(t+x)帧开始计算每帧的所述移动距离和所述移动速度,直到所述移动距离大于所述阈值距离且所述移动速度大于所述阈值速度;对于第(t+y)帧,所述移动距离由d

在某些方面,本公开涉及一种用于检测粗暴处理的方法。在某些实施例中,所述方法包括:

由成像设备捕获包括多个视频帧的视频流;

由计算设备从所述多个视频帧中获得多个人物边界框和多个包裹边界框;

由所述计算设备基于获得的所述人物边界框和所述包裹边界框,构造多个人物轨迹和多个包裹轨迹;

由所述计算设备识别所述多个人物轨迹中的一个人物轨迹和所述多个包裹轨迹中的一个包裹轨迹之间的动作,其中,所述动作包括所述多个人物轨迹中的一个人物轨迹中的相应的一个人拿起、持有和放下所述多个包裹轨迹中的一个包裹轨迹中的相应的一个包裹;以及

由所述计算设备在放下所述相应的一个包裹后的预定帧,当所述相应的一个包裹的移动距离大于阈值距离,且所述相应的一个包裹的移动速度大于阈值速度时,确定粗暴处理的存在。

在某些实施例中,获得所述多个人物边界框和所述多个包裹边界框包括:

从每个视频帧中检测人物,以获得所述多个人物边界框;

从所述每个视频帧中检测包裹,以获得检测到的包裹边界框;以及

从所述检测到的包裹边界框中删除静止的包裹边界框,以获得所述多个包裹边界框。

在某些实施例中,所述方法还包括:

计算所述每个视频帧与所述每个视频帧的前一帧之间的帧差;

将所述每个视频帧的具有高帧差的区域定义为前景区域;以及

将所述检测到的包裹边界框中与所述前景区域不重叠的包裹边界框定义为所述静止的包裹边界框。

在某些实施例中,所述方法还包括:

向获得的所述包裹边界框添加附加包裹边界框,

其中,当所述前景区域中的一个前景区域与检测到的人物边界框和检测到的包裹边界框之间没有重叠时,所述附加包裹边界框位于所述前景区域中的一个前景区域。

在某些实施例中,所述方法还包括获得与获得的所述多个人物边界框中的每个人物边界框对应的人物关键点。

在某些实施例中,所述人物关键点包括手腕关键点,当所述手腕关键点与所述包裹边界框中相应的一个包裹边界框的最近距离小于10像素时,所述相应的一个人拿起所述相应的一个包裹,当拿起后的最近距离小于10像素时,所述相应的一个人持有所述相应的一个包裹,当持有后的最近距离等于或大于10像素时,所述相应的一个人放下所述相应的一个包裹。

在某些实施例中,所述阈值距离是与所述相应的一个人的躯干的像素大小d

在某些实施例中,所述相应的一个人在第(t-u)帧拿起所述相应的一个包裹,在第(t-u+1)帧到第(t-1)帧持有所述相应的一个包裹,在第t帧放下所述相应的一个包裹;从第(t+x)帧开始计算每帧的所述移动距离和所述移动速度,直到所述移动距离大于所述阈值距离且所述移动速度大于所述阈值速度;对于第(t+y)帧,所述移动距离由d

在某些方面,本公开涉及一种用于存储计算机可执行代码的非暂时性计算机可读介质。当所述计算机可执行代码在计算设备的处理器处执行时,被配置为执行上述方法。

本公开的这些和其他方面将通过结合以下附图和它们的标题对优选实施例的以下描述而变得显而易见,尽管在不脱离本公开的新颖概念的精神和范围的情况下可以影响其中的变化和修改。

附图说明

附图示出了本公开的一个或多个实施例,附图与书面描述一起用于解释本公开的原理。在可能的情况下,贯穿附图使用相同的附图标记来指代实施例中的相同或相似元件。

图1示意性地描绘了根据本公开的某些实施例的粗暴处理识别系统。

图2示意性地描绘了根据本公开的某些实施例的用于帧背景减除的概念性工作流程。

图3A示意性地描绘了根据本公开的某些实施例的帧的人物和包裹检测结果。

图3B示意性地描绘了对应于图3A的帧的背景减除结果。

图4A示意性地描绘了根据本公开的某些实施例的用于更新人物和包裹轨迹的概念性工作流程。

图4B示意性地描绘了根据本公开的某些实施例的轨迹的更新。

图4C示意性地描绘了根据本公开的某些实施例的轨迹的更新,其中执行插入。

图4D示意性地描绘了根据本公开的某些实施例的新轨迹的初始化。

图4E示意性地描绘了根据本公开的某些实施例的轨迹的更新,其中轨迹保持相同而没有任何变化。

图4F示意性地描绘了根据本公开的某些实施例的轨迹的删除,其中大量帧的轨迹没有匹配的人物或包裹。

图5A示意性地描绘了根据本公开的某些实施例的从人物到包裹的距离的计算。

图5B示意性地描绘了根据本公开的某些实施例的用于更新动作的概念性工作流。

图5C示意性地描绘了根据本公开的某些实施例的用于确定动作是否是粗暴处理动作的概念性工作流程。

图5D示意性地描绘了根据本公开的某些实施例的动作。

图5E示意性地描绘了根据本公开的某些实施例的人物躯干计算。

图5F示意性地描绘了根据本公开的某些实施例的不同帧中的人物与的包裹之间以及不同帧中的包裹之间的某些距离的计算。

图6示意性地描绘了根据本公开的某些实施例的粗暴处理识别系统的概念性工作流程。

图7示意性地描绘了根据本公开的某些实施例的识别粗暴处理动作的方法。

具体实施方式

在以下示例中更具体地描述本公开,这些示例仅旨在作为说明,因为其中的许多修改和变化对于本领域技术人员来说将是显而易见的。现在详细描述本公开的各种实施例。参考附图,贯穿视图,相同的数字指示相同的部件。除非上下文另有明确规定,否则本文的描述中和整个权利要求中使用的“一个”、“一”和“所述”的含义包括复数。此外,如在本公开的描述和权利要求书中所使用的,除非上下文另有明确规定,“在”的含义包括“在……中”和“在……上”。说明书中为了方便读者可以使用标题或副标题,这不影响本公开的范围。此外,本说明书中使用的一些术语在下面有更具体的定义。

本说明书中使用的术语在本领域中、在本公开的上下文中以及在使用每个术语的特定上下文中通常具有它们的普遍含义。用于描述本公开的某些术语在下文或说明书中的其他地方讨论,以向从业者提供关于本公开的描述的额外指导。可以理解,同样的事情可以用不止一种方式表达出来。因此,替代语言和同义词可用于此处讨论的任何一个或多个术语,对于此处是否详细阐述或讨论术语没有任何特殊意义。本公开提供了某些术语的同义词。一个或多个同义词的陈述不排除使用其他同义词。本说明书中任何地方的示例的使用,包括本文讨论的任何术语的示例,仅是说明性的,决不限制本公开内容或任何示例性术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。

除非另有定义,本公开使用的所有术语(包括技术术语和科学术语)与本公开所属领域的普通技术人员通常理解的含义相同。还应当理解,除非有明确定义,术语,例如在常用词典中定义的那些,应当被解释为具有与其在相关领域和本公开的上下文中的含义一致的含义,不会被理想化地解释或具有过于正式的意义。

如本文所述,术语“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”等应理解为是开放式的,即意味着包括但不限于。

如本文所述,短语A、B和C中的至少一个应解释为表示逻辑(A或B或C),使用非排他性逻辑或(OR)。应当理解,在不改变本公开的原理的情况下,方法内的一个或多个步骤可以以不同的顺序(或同时)执行。如本文所用,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。

如本文所述,术语“模块”可指代属于或包括专用集成电路(ASIC)、电子线路、组合逻辑电路、现场可编程门阵列(FPGA)、执行代码的处理器(共享的、专用的、或组)、提供所描述功能的其他合适的硬件组件、或以上部分或全部的组合,例如在片上系统中。术语模块可以包括存储由处理器执行的代码的存储器(共享的、专用的、或组)。

本文使用的术语“代码”可以包括软件、固件和/或微代码,可以指程序、例程、函数、类和/或对象。上面使用的术语共享意味着可以使用单个(共享)处理器执行来自多个模块的部分或全部代码。此外,来自多个模块的部分或全部代码可以存储在单个(共享)存储器中。上面使用的术语组意味着可以使用一组处理器执行来自单个模块的部分或全部代码。此外,可以使用一组存储器来存储来自单个模块的一些或全部代码。

如本文所述,术语“接口”通常是指在组件之间的交互点处用于执行组件之间的数据通信的通信工具或装置。一般而言,接口可以在硬件和软件层面都适用,可以是单向或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、端子和其他I/O设备或组件。与接口通信的组件可以是例如计算机系统的多个组件或外围设备。

本公开涉及计算机系统。如附图所示,计算机组件可以包括物理硬件组件,其显示为实线块,以及虚拟软件组件,其显示为虚线块。本领域普通技术人员将理解,除非另有说明,否则这些计算机组件可以以软件、固件或硬件组件或其组合的形式来实现,但不限于这些形式。

本文描述的装置、系统和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储和光存储。

现在将在下文中参考附图更全面地描述本公开,其中示出了本公开的实施例。然而,本公开可以以许多不同的形式体现,不应被解释为限于这里阐述的实施例;相反,提供这些实施例是为了使本公开彻底和完整,并将本公开的范围充分传达给本领域技术人员。

在某些方面,本公开涉及具有检测分拨中心的工人对包裹的粗暴处理的功能的粗暴处理系统和方法。在某些实施例中,本公开提供了用于智能识别粗暴处理的稳健的视觉解决方案和算法,实时识别粗暴处理动作并警告分拨中心以推迟进一步的粗暴处理动作。例如,如果工人将包裹快速抛向空中或将包裹重重地摔在地上,系统能够识别该动作,定位工人,立即定位动作区域,然后通知分拨中心的工作人员检查包裹并通知工人更小心地处理货物。需要注意的是,根据本公开的某些实施例的系统能够在云上、在本地桌面上或者甚至在轻量级和低成本的嵌入式设备上服务。同时,该系统功能强大,适用于各种大型分拨中心或小型分拨室。总之,本公开的某些实施例旨在通过检测、跟踪和理解工人的动作来构建智能且稳健的粗暴处理识别系统。

图1示意性地描绘了根据本公开的某些实施例的粗暴处理识别系统。如图1所示,系统100包括成像设备110、计算设备130、检测模型服务170和显示设备190。成像设备110、计算设备130、检测模型服务170和显示设备190通过网络120相互通信。

在某些实施例中,成像设备110是红绿蓝(RGB)相机、灰度相机、RGB深度(RGBD)相机或其他类型的图像捕获设备。在某些实施例中,成像设备110是普通或广角RGB相机。在某些实施例中,有多个成像设备110,每个成像设备110安装在监控场景中,例如电子商务平台的包裹分拨中心中的传送带。一名或数名工人在传送带处工作,成像设备110的视野覆盖工人和传送带上或旁边的包裹。成像设备110被配置为实时捕获视频流,并将捕获的视频流或视频帧发送到计算设备130的粗暴处理识别应用138。因为粗暴处理识别应用138可以并行处理大量视频帧,所以成像设备110及其覆盖的工人和包裹的数量可以很大。在某些实施例中,成像设备110被配置为以例如30帧每秒(fps)、60fps或任何其他合适的帧速率来捕获视频帧。

网络120可以是有线或无线网络,并可以是各种形式。网络的示例可以包括但不限于局域网(LAN)、包括因特网的广域网(WAN)或任何其他类型的网络。在某些实施例中,网络120可以是接口,例如系统接口、USB驱动器、闪存驱动器、硬盘驱动器、软盘、SD卡或光驱,或任何其他类型用于将计算设备130与成像设备110、检测模型服务170和显示没备190通信连接的接口。在某些实施例中,网络120可以包括多个不同的网络,每个网络用于设备或服务110、130、170和190中的两个或更多个之间的通信。

在某些实施例中,计算设备130可以是管理粗暴处理识别系统的云计算机、服务器计算机、集群或本地通用计算机。在某些实施例中,计算设备130是具有有限处理、内存和存储容量的专用计算机,这降低了系统100的成本,同时仍然具有足够的能力来实现系统100的功能。在某些实施例中,计算设备130是嵌入式设备。如图1所示,计算设备130可以包括但不限于处理器132、存储器134和存储设备136。在某些实施例中,计算设备130可以包括其他硬件组件和软件组件(未示出)来执行其相应的任务。这些硬件和软件组件的示例可以包括但不限于其他所需的存储器、接口、总线、输入/输出(I/O)模块或设备、网络接口和外围设备。

处理器132可以是中央处理单元(CPU),其被配置为控制计算设备130的操作。处理器132可以执行计算设备130的操作系统(OS)或其他应用。在一些实施例中,计算设备130可以具有多于一个CPU作为处理器,例如两个CPU、四个CPU、八个CPU或任何合适数量的CPU。存储器134可以是易失性存储器,例如随机存取存储器(RAM),用于在计算设备130的操作期间存储数据和信息。在某些实施例中,存储器134可以是易失性存储器阵列。在某些实施例中,计算设备130可以在多于一个的存储器134上运行。存储设备136是用于存储操作系统(未示出)和计算设备130的其他应用的非易失性数据存储介质。存储设备136的示例可以包括非易失性存储器,例如闪存、存储卡、USB驱动器、硬盘驱动器、软盘、光驱、固态驱动器(SSD)或任何其他类型的数据存储设备。在某些实施例中,存储设备136可以是本地存储、远程存储或云存储。在某些实施例中,计算设备130可以具有多个存储设备136,它们可以是相同的存储设备或不同类型的存储设备,计算设备130的应用可以存储在计算设备130的一个或多个存储设备136中。在某些实施例中,计算设备130是云计算机,处理器132、存储器134和存储设备136是通过互联网按需提供的共享资源。在某些实施例中,计算设备130是为粗暴处理识别而设计的嵌入式系统,可以包含具有集成存储器和外围接口的微处理器,或者包含普通微处理器。

如图1所示,存储设备136包括粗暴处理识别应用138。粗暴处理识别应用138被配置为提供粗暴处理识别并向管理分拨中心的工作人员发送警告消息,以便工作人员可以警告粗暴处理包裹的工人。在某些实施例中,警告会自动传递给有粗暴处理问题的工人。粗暴处理识别应用138包括视频捕获模块140、视频解码器142、背景减除(BGS)模块144、检测模块146、后处理模块148、跟踪模块150、动作识别模块152、输出模块154和用户接口156。在某些实施例中,粗暴处理识别应用138可以包括粗暴处理识别应用138的操作所必需的其他应用或模块。需要说明的是,各个模块由计算机可执行代码或指令实现,共同构成一个应用。在某些实施例中,每个模块还可以包括子模块。或者,一些模块可以组合为一个堆栈。在其他实施例中,某些模块可以实现为电路而不是可执行代码,计算设备130可以由简单的电路板实现,其他附件组件安装在电路板上。在某些实施例中,粗暴处理识别应用138的一些或所有模块可以位于远程计算设备处或分布在云中。

视频捕获模块140被配置为在粗暴处理识别应用138初始化时,指示成像设备110捕获感兴趣区域(例如包裹或产品分拨中心)的视频流,并发送捕获的视频流到视频解码器142。在某些实施例中,视频流的视频帧是RGB图像。当存在多个成像设备110时,每个成像设备110具有设备标识(ID)或相机ID,每个视频帧具有获取视频帧的成像设备110的相机ID、视频帧的时间戳或帧号,以及RGB图像本身。

视频解码器142用于在接收到视频流后,将视频流解码为视频帧,并将每个视频帧发送给BGS模块144和检测模块146。在某些实施例中,每个视频帧被存储在存储设备136中的特定位置,并被分配有指针,粗暴处理识别应用138中的模块可以使用指针来操作视频帧。在某些实施例中,当视频帧为模拟图像时,视频解码器142还被配置为将视频帧的模拟信号转换为数字信号。在某些实施例中,来自每个相机的视频帧具有相同的相机ID,并被放置在相同的队列中。下面的讨论将以一个排队的视频帧为例,多个成像设备110捕获的多个排队的视频帧的处理基本相同。在该示例中,排队的视频帧由一个成像设备110捕获,并具有T个帧:1、...、t-1、t、t+1、...、T。第t帧为当前帧,T和t为正整数。由于粗暴处理识别应用138的功能是并行执行的,因此视频解码器142无需将视频帧依次发送到BGS模块144和检测模块146。例如,视频解码器142被配置为每当帧可用时将视频帧发送到BGS模块144和检测模块146。每个视频帧都有其对应的相机ID(或队列ID)和时间戳(或/和帧号),以便模块能够识别帧并逻辑地组织帧的信息。

BGS模块144被配置为在从视频解码器142接收到当前帧时,从当前帧中减去前一帧,以获得当前帧的前景区域,并将前景区域发送到后处理模块148。成像设备110所捕获的视频帧中的信息可能比较复杂,粗暴的处理动作只发生在移动包裹或运动包裹上。因此,过滤掉帧中的静止区域,只关注有移动的区域,可以帮助加快下游流程的运行时间,提高结果的准确性。在某些实施例中,为了简单和高效,BGS模块144被配置为使用帧差法进行前景计算。在某些实施例中,移动区域将在两个连续帧上具有较大的像素差异,BGS模块144的目标是在第t帧中找到这些区域。具体地,BGS模块144被配置为计算第t帧与其前一帧第(t-1)帧的像素差,将像素差记为I,将I用移动阈值二值化,并生成二值掩码Im。在某些实施例中,第t帧和第(t-1)帧中的每像素在减除之前被转换为0~255范围内的灰度值,移动阈值设置在1~100范围内。在某些实施例中,移动阈值设置在10~30的范围内。在某些实施例中,移动阈值设置为15。在某些实施例中,差值等于或高于移动阈值的像素被二值化为1,而差值小于移动阈值的像素被二值化为0。也就是说,如果第t帧和第(t-1)帧中的像素的差值(绝对值)大于15,则赋值为1。因此,二值掩码I

返回参考图1,检测模块146被配置为在从视频解码器142接收到当前帧后,与检测模型服务170通信以检测当前帧中的针对人物的边界框和关键点以及针对包裹的边界框,并发送检测到的人物边界框和人物关键点以及包裹边界框到后处理模块148。在某些实施例中,检测模型服务170是独立的服务,其从检测模块146接收当前第t帧,检测第t帧中的人物和包裹,并将检测到的人物和包裹返回给检测模块146。来自检测模块146的检测结果包括人物和静止/移动的包裹。检测模型服务170可以由例如云计算设备或服务器计算机来实现。为了最大限度地利用硬件资源,检测模型服务170作为独立服务在所有相机视频流之间共享。然而,检测模型服务170也可以是作为检测模块146的一部分包括的本地服务。在某些实施例中,检测模型服务170可以使用多种检测模型。在某些实施例中,检测模型是基于深度学习的检测模型。在某些实施例中,检测模型是CenterNet,它为本公开的场景提供了良好的性能和高效率。如上所述,检测模型服务170在从检测模块146接收到多个帧的副本之后可以并行处理多个帧,每个处理被命名为推理模型实例。当检测结果从检测模型服务170发送回检测模块146时,该信息包括相机ID和对应帧的时间戳(帧号),这样就可以根据相机ID和时间戳很好地组织检测结果。在某些实施例中,检测包括人物类别和包裹类别。人物检测结果包括从第t帧检测到的每个人物的边界框和多个关键点。关键点可以包括,例如,头部中心(多个关键点)、颈部中心(1个关键点)、肩部(2个关键点)、肘部(2个关键点)、腕部(2个关键点)、臀部(2个关键点)、膝盖(2个关键点)和脚踝(2个关键点)。人物检测结果用

后处理模块148被配置为,在接收到来自BGS模块144的前景区域和来自检测模块146的检测到的人物边界框和关键点以及检测到的包裹边界框时,基于前景区域从检测到的边界框移除静止包裹边界框,基于前景区域添加附加包裹边界框以获得移动包裹边界框,并将检测到的人物边界框和关键点以及移动包裹边界框发送到跟踪模块150。需要注意,检测到的人物边界框通常在前景区域内,无需进一步处理检测到的人物边界框和关键点。对于检测到的包裹边界框,后处理模块148被配置为去除场景背景中的静止包裹。具体地,后处理模块148被配置为计算包的边界框与任何前景区域重叠的比例。如果该比例等于或大于预定的重叠阈值,则将检测到的包裹视为移动包裹并保留,其中重叠阈值可以为0.4。否则,删除检测到的包裹。在某些实施例中,后处理模块148还被配置为基于人物边界框和包裹边界框的大小来过滤它们。例如,如果一个连通区域对应于一个人物边界框,该连通区域小于40像素×60像素,则删除相应的人物边界框。如果一个连通区域对应一个包裹边界框,连通区域小于25像素×25像素,则删除对应的包裹边界框。人物和包裹边界框的大小阈值可以根据成像设备110与人物/包裹之间的距离、图像的分辨率和/或实际包裹大小而变化。后处理模块148还被配置为为没有被检测模型服务170捕获的快速移动的包裹提供额外的检测结果。由于快速移动的包裹在帧中非常模糊,检测模型服务170很难检测到这些快速移动的包裹。然而,快速移动的包裹在背景减除结果中是清楚的。因此,后处理模块148被配置为将这些包裹检测加上高速信号标记,将这些快速移动的包裹从背景减除中带入最终的检测结果,以方便包裹追踪。边界框删除和添加如图3A和3B所示。图3A示意性地描绘了检测模型服务170(或检测模块146)对当前帧的检测结果。如图3A所示,检测结果包括检测到的人p

跟踪模块150用于在接收到当前帧中检测到的人物边界框和关键点以及移动包裹边界框后,并行跟踪人物和包裹,并将更新后的人物的轨迹和包裹的轨迹发送给动作识别模块152。如上所述,有k个检测到的人物边界框和l′个移动包裹边界框,当前帧是第t帧,本公开假设有m个人物跟踪轨迹和n个包裹跟踪轨迹,它们在处理第t帧时是可用或激活的。m个人物跟踪轨迹中的每一个跟踪特定人物随时间的位置,轨迹包括在第t帧之前的多个连续帧中的连续的人物边界框和关键点。一帧对应的人物边界框和关键点也称为轨迹中的位置。n个包裹跟踪轨迹中的每一个跟踪特定移动包裹随时间的位置,该轨迹包括在第t帧之前的多个连续帧中的连续包裹边界框。一帧对应的包裹边界框也称为轨迹中的一个位置。在当前帧是视频的第一帧时,还没有轨迹,也没有前景计算。在从第一帧检测到人物和包裹之后,为每个检测到的人物和每个检测到的包裹初始化轨迹。

在当前第t帧(t大于1),有m个人物跟踪轨迹和n个包裹跟踪轨迹,m和n为正整数(或某些情况下为0),可用轨迹的更新如下。首先,对于k个检测到的人物边界框中的每一个,跟踪模块150被配置为将检测到的人物边界框与每个人物跟踪轨迹中与最新位置对应的人物边界框进行比较。在某些实施例中,通过计算检测到的人物边界框的中心与人物跟踪轨迹的最新位置的边界框的中心之间的欧氏距离来执行匹配,并使用贪婪搜索优化算法根据最近邻度量找到最佳匹配。在某些实施例中,还可以通过将检测到的人物的关键点与最佳匹配人物的关键点进行比较来确认最佳匹配。当确定最佳匹配的人物边界框时,将检测到的人物(他的边界框和当前帧中的关键点)添加到具有匹配人的人物跟踪轨迹中。如果在对应的人物跟踪轨迹的最新位置匹配的人物边界框是第(t-1)帧检测到的边界框,则人物跟踪轨迹会将检测到的人物边界框和关键点添加为人物跟踪轨迹的最后位置。

当最佳匹配的人物边界框被确认,但匹配的人物边界框是在第(t-1)帧之前的帧中检测到的边界框时,跟踪模块150被配置为针对当前帧和具有匹配边界框的帧之间的帧,插入人物边界框。插入的人物边界框的中心可以是当前帧中对应的人物边界框的中心与匹配的边界框的中心之间的均匀分布的点。插入后的人物的各个关键点可以是当前帧中对应人物关键点与匹配帧中对应人物关键点之间均匀分布的点。

如果检测到的人物边界框没有匹配,则跟踪模块150被配置为初始化新的人物跟踪轨迹,将检测到的人作为新的人物跟踪轨迹的起始位置。

在k个检测到的人物边界框全都被匹配之后,跟踪模块150还被配置为检查没有匹配的检测到的人物边界框的人物跟踪轨迹。如果人物跟踪轨迹的最新位置是第(t-10)帧,则删除人物跟踪轨迹。如果人物跟踪轨迹的最新位置在第(t-9)帧到第(t-1)帧之间,则保留人物跟踪轨迹。需要注意,此处的人物轨迹删除阈值10是预定的正整数,人物轨迹删除阈值可以是从例如2~30的范围中的任意数字。在某些实施例中,本公开基于帧速率设置人物轨迹删除阈值。例如,当每秒帧数(fps)为25时,阈值可以约为10,而当fps为5时,阈值可以约为5。

在某些实施例中,跟踪模块150被配置为以相同的方式处理移动包裹边界框和包裹跟踪轨迹,只是包裹边界框没有关键点。

图4A示意性地描绘了跟踪模块150的功能的流程图400。如图4A所示,由后处理模块148生成的当前帧的检测到的人物边界框和移动包裹边界框402是可用的,跟踪模块150在先前帧中建立的轨迹404是可用的。将边界框与轨迹的最新位置进行比较(人物边界框与人物跟踪轨迹进行比较,包裹边界框与包裹跟踪轨迹进行比较)。在406,如果边界框与一个轨迹的最新位置匹配,则如果当前帧与最新位置帧之间没有帧,则在410将边界框添加为轨迹的最后位置。如果当前帧与最新位置帧之间存在一帧或多帧,则在412添加边界框作为轨迹的最后位置,并为当前帧与具有最新位置的帧之间的每一帧添加插入内容。

在408,如果边界框与轨迹的任何最新位置都不匹配,则在414初始化新轨迹,边界框作为初始化轨迹的第一个位置。如果轨迹与任何边界框不匹配,轨迹的最新位置在当前帧以前不到10帧,则在416保留轨迹。如果轨迹与任何边界框都不匹配,轨迹的最新位置在当前帧以前的10帧(或更多),则丢弃该轨迹。

图4B~图4F示意性地描绘了更新轨迹的某些实施例。如图4B所示,存在轨迹420。轨迹420的第一个位置是(t-11)帧,轨迹420的最新位置是(t-1)帧中的位置(边界框)422。当后处理边界框(检测到的人物边界框或移动包裹边界框)424与最新位置422处的边界框匹配时,添加后处理边界框424作为轨迹420的最后位置。如图4C所示,存在轨迹426。轨迹426的第一个位置是t-9帧,轨迹426的最新位置是t-3帧中的位置(边界框)428。后处理边界框434匹配最新位置428处的边界框,添加后处理边界框434作为轨迹426的最后位置,在最新位置428和后处理边界框434之间插入两个位置430和432。在某些实施例中,430和432的位置均匀分布在位置428和434之间。例如,如果位置/边界框428的中心是(x

需要注意,图4B~图4F示出的轨迹可以是人物跟踪轨迹或边界框跟踪轨迹,该轨迹可以从首先检测到人物或包裹的任何帧开始。后处理的人物/包裹边界框与人物/包裹轨迹的最新位置的边界框之间的匹配只需要边界框。在某些实施例中,关键点也可以用于匹配后处理的人物边界框,但是它消耗大量计算资源,不是优选的。在某些实施例中,跟踪模块150被配置为执行双重跟踪以并行跟踪人物和包裹,仅将后处理的人物边界框与人物跟踪轨迹的最新位置进行比较,仅将后处理的包裹边界框与包裹追踪轨迹的最新位置进行比较。在某些实施例中,跟踪模块150被配置为使用如上所述的检测跟踪框架来分别开始和更新人物和包裹的轨迹。在某些实施例中,跟踪模块150还可以使用其他测量来代替计算检测到的人物/包裹边界框到人物/包裹轨迹的最新位置之间的欧氏距离,并使用基于最近邻度量的贪婪搜索优化算法来找到最佳匹配的方法。例如,可以使用检测到的边界框、对象的边缘、颜色的外观相似度或深度特征和相关算法,例如多假设跟踪、基于超图的关联、姿势估计和跟踪,来完成人物跟踪和包裹跟踪任务。在更新人物跟踪轨迹和包裹跟踪轨迹之后,跟踪模块150还被配置为将更新的轨迹发送到动作识别模块152。

动作识别模块152被配置为在从跟踪模块150接收到更新的人物跟踪轨迹和包裹跟踪轨迹时,使用接收到的人物跟踪轨迹和移动包裹跟踪轨迹来更新动作,从更新的动作中识别粗暴的处理动作,以及将粗暴处理动作发送到输出模块154。如上所述,从跟踪模块150接收的每个人物跟踪轨迹包括在每个时间点或每个帧的人物的边界框和关键点,从跟踪模块150接收的每个包裹跟踪轨迹包括在每个时间点或每个帧的包裹的边界框。一个完整的动作包括人物轨迹的多个连续帧和对应的包裹轨迹。动作识别模块152在人物拿起包裹时开始动作,在人物持有并放下包裹时继续动作,并在放下后预定数量的帧之后结束。预定数量在5~50帧的范围内。在某些实施例中,预定数量是10~25帧。在某些实施例中,预定数量为20。假设当前时刻为t(或当前帧t),而前一时刻为t-1(或前一帧t-1),则动作识别模块152具有上一时刻t-1的动作,并将使用已使用帧t更新的人物和包裹轨迹来更新动作。每个动作可以包括人物拿起包裹,可选地还可以包括人物和可选地持有和放下包裹。令

在时刻t,有人p

图5B示意性地描绘了根据本公开的某些实施例的用于更新动作的流程图500,但本公开不限于此。参考图5B,在步骤502,动作识别模块152计算在当前时刻t(或在当前帧t)检测到的每个人物与每个包裹之间的距离。对于每个轨迹,可以存在为轨迹中的人物或包裹添加的插入位置。在步骤504,动作识别模块152还针对每个插入人物计算插入人物与此时的包裹或插入包裹之间的距离(在具有插入人物的位置的帧中);针对每个插入包裹,计算该插入包裹与此时的人物或插入人物之间的距离(在具有插入包裹的位置的帧中)。在某些实施例中,每个计算出的距离都被标记,使得同一帧中同一人物(或插入人物)与同一包裹(或插入包裹)之间的距离不会重复计算。

在步骤506,动作识别模块152确定用于计算距离的人物和包裹是否属于动作,即,在人物和包裹之间是否已经存在动作,将距离与预定距离进行比较。在某些实施例中,阈值距离是10像素。

如果动作识别模块152在步骤506确定用于计算距离的人物与包裹不属于动作,计算出的它们之间的距离等于或小于10像素的预定距离,则在步骤508,动作识别模块152开始动作,并将当前时间的动作状态定义为拿起。如果人物与包裹不属于动作,且距离大于10像素,则无需进一步分析,因为人与包裹之间没有交互。在某些实施例中,当存在人物或包裹的插入时,动作识别模块152可以从距离小于10像素的最早插入帧开始动作,以及动作开始之后的帧中动作的状态根据各个插入帧中的距离更新为持有或放下。在步骤508之后,继续处理其他人物-包裹对,或者如果所有人物-包裹对都已被分析,则继续到下一帧。

如果动作识别模块152在步骤506确定人物和包裹属于动作,它们之间的距离等于或小于10像素的预定距离,则在步骤510,在当前时间动作的状态被定义为持有,因为在之前的一个帧(动作的第一帧)中已经有拿起动作。在某些实施例中,当存在人物或包裹的插入时,动作识别模块152可以根据各个插入帧中的距离来更新动作中插入帧的状态。在步骤510之后,继续处理其他人物-包裹对,或者如果已经分析了所有人物-包裹对,则继续到下一帧。

如果动作识别模块152确定人物和包裹属于同一动作,且它们之间的距离大于10像素,则在步骤512,动作识别模块152确定该动作是否是粗暴处理,如下文所述。先前帧中动作的状态可以是拿起、持有或放下。

图5C示意性地描绘了根据本公开的某些实施例的用于确定动作是否是粗暴处理的流程图520,但本公开不限于此。参考图5C,在步骤522,动作识别模块152计算放下后包裹和人物的距离和速度;在步骤524,动作识别模块152基于计算的距离和速度确定是否存在粗暴的处理动作;在步骤526,当动作被确定为粗暴处理动作时,动作识别模块152基于预定标准为粗暴处理动作提供分数;在步骤528,动作识别模块152可以使用神经网络确认粗暴的处理动作,其中该步骤是可选的;然后在步骤530,动作识别模块152将粗暴处理动作信息发送给输出模块154,并将分数发送给输出模块154。

计算显示在图5D~图5F中。图5D示出了人p

在某些实施例中,为了具有可靠的计算,距离和速度的计算在放下之后的几帧才开始,例如从第(t+2)帧开始,这在最后持有帧(t-1)的三帧之后。图5F示意性地描绘了从第(t-1)帧到第(t+2)帧的距离以及在第(t+2)帧处的速度的计算。在标准大小的帧中,(t-1)-q

(1)包裹水平距离d

(2)包裹垂直距离d

(3)包裹距离d

(4)人物-包裹像素距离d

(5)人物-包裹距离,即d

(6)瞬时速度v

(7)根据当前帧的平均速度和前一帧的平均速度计算加速度a。因此,在第(t+3)帧处的加速度a

(8)当前帧的平均速度,即包裹从第(t-1)帧到当前帧移动的距离除以帧数和躯干。因此,第(t+2)帧的平均速度为

在某些实施例中,在计算出距离和速度之后,动作识别模块152被配置为从距离最后持有帧预定帧数的帧中,根据某些标准确定动作是否为粗暴处理。例如,预定数量的帧可以是2~12帧。在某些实施例中,预定数量被设置为6,返回参考图5D,最后持有帧为第(t-1)帧,判断动作是否为粗暴处理从第(t+5)帧开始,距第(t-1)帧6帧。在第(t+5)帧粗暴处理的标准包括:(1)d

在某些实施例中,在确定动作是粗暴处理之后,动作识别模块152可以进一步被配置为提供该动作的粗暴处理分数。在某些实施例中,粗暴处理动作被分类为高度粗暴处理动作或轻度粗暴处理动作,其中高度粗暴处理动作被给予3分,轻度粗暴处理动作被给予1分。高度粗暴处理的要求包括:累积距离>=3.0,或平均速度>=0.2,或最大速度>=0.3。相应地,轻度粗暴处理的要求包括:累积距离<3.0,平均速度<0.2,最大速度<0.3。以第(t+5)帧为例,第(t+5)帧累计距离为d

在某些实施例中,粗暴处理动作被分类为高度、中度或轻度粗暴处理动作,其中,高度粗暴处理动作打3分,中度粗暴处理动作打2分,轻度粗暴处理动作打1分。高度粗暴处理的要求包括:累积距离>=3.0,或平均速度>=0.2,或最大速度>=0.3。中度粗暴处理的要求是:3.0>累计距离>=1.5,0.2>平均速度>=0.15,0.3>最大速度>=0.25。凡是不符合高度要求或中度要求的粗暴处理动作都是轻度处理动作。

在某些实施例中,当插入帧可用时,还可以如上所述将插入帧作为当前帧分析以确定是否存在粗暴处理。

在某些实施例中,动作识别模块152还用于针对动作中的包裹判断当前帧中的包裹检测是否丢失。如果丢失,则删除包裹的跟踪,并删除动作。

当动作识别模块152在步骤512确定该动作不是粗暴处理,从第一放下帧到当前帧的放下帧的数量小于20帧时,在步骤514,当前帧的状态被更新为放下,继续处理其他人物-包裹对,或者如果已经分析了所有人物-包裹对,则继续到下一帧。

当动作识别模块152在步骤512确定该动作不是粗暴处理,从第一放下帧到当前帧的放下帧的数量等于或大于20帧时,在步骤516,动作识别模块152删除该动作,继续处理其他人物-包裹对,或者如果所有人物-包裹对都已被分析,则继续到下一帧。删除该动作是因为系统确定该动作不是在包裹被放下一段足以做出该判断的时间后的粗暴动作。

当动作识别模块152在步骤512确定动作是粗暴处理时,在步骤518,动作识别模块152结束动作,并将粗暴处理动作发送到输出模块154。然后继续处理其他人物-包裹对,或者如果已分析所有人物-包裹对,则继续到下一帧。动作结束是因为系统根据当前可用的放下帧确定该动作为粗暴动作,无需对该动作进行更多分析。在确定人p

在某些实施例中,动作识别模块152可选地被配置为,在将粗暴处理动作信息输出到输出模块154之前,将粗暴处理动作的视频片段应用于神经网络以确认该动作是否是粗暴处理。但上述判断已经具有很高的准确性,神经网络确认可以不是必需的。在某些实施例中,神经网络被实现为过滤器模型以去除粗暴处理动作的某些负面情况。该模块的输入是确定的粗暴处理动作的视频片段,以及相关的人物轨迹和包裹轨迹。在某些实施例中,模型是I3D,它是一种深度学习神经网络。I3D被配置为将输入视频片段分为两类:粗暴动作或正常动作。I3D模型是一个3D卷积神经网络,并通过两个动作类中的视频片段进行训练。值得注意的是,其他测量(例如,身体关键点轨迹和包裹轨迹)和关联算法(例如,姿势估计方法和其他动作识别方法等)也可以用于执行此任务。该模块的输出是网络过滤的正动作项目。

根据上面的描述,可以理解,动作可以在以下情况结束:(1)在第20帧之前确认这是粗暴动作时,或(2)如果动作在第20帧仍不是粗暴动作,则删除该动作(随着包裹的放下速度会降低,在第20帧之后不会是粗暴动作),或(3)第20帧前动作不是粗暴动作,并且包裹被人重新拿起,如果是,则再次循环拿起-持有-放下。

返回参考图1,输出模块154被配置为,在接收到粗暴处理动作信息(经过或不经过I3D模型过滤)后,准备粗暴处理报告,并将粗暴处理报告发送到用户接口156。准备工作可以包括制作粗暴处理动作的视频片段,记录视频片段中相关帧的计算距离和速度,记录粗暴处理动作的得分,可选地检索导致粗暴处理动作的人的完整轨迹并检索被粗处理的包裹的完整轨迹,并可选地针对粗暴处理准备警告录音或警告信息。

用户接口156用于在接收到准备好的报告后,将报告发送至显示设备190,用于显示报告。在某些实施例中,负责的管理员监控来自显示设备190的报告。当有粗暴处理报告时,管理员会在显示设备上查看该报告,尤其是该报告的视频片段,确认粗暴处理,通知引起粗暴处理的工人(人),并检查被工人粗暴处理的包裹。

在某些实施例中,不需要管理员参与该过程,显示设备190安装在工人可以看到的地方并具有扬声器或消息传递功能,使得显示设备190可以将警告录音广播到工人或向工人发送警告信息,工人可以作出相应的反应,例如注意自己的搬运习惯,并可能检查由他粗暴处理的包裹。

在某些实施例中,用户接口156还被配置用于系统管理员调整成像设备110、计算设备130、检测模型服务170、显示设备190、以及粗暴处理识别应用138的参数。

如上所述,检测模型服务170优选地是一个独立的服务,被配置为从检测模块146接收帧,检测帧中的人物和包裹,并将检测到的帧的人物和包裹发送给检测模块146。检测模型服务170中的帧可以并行处理。检测结果可以包括ID(例如帧的相机ID)、帧的时间戳或帧号、帧中检测到的人(包括人物的边界框和关键点),以及帧中检测到作为包裹边界框的包裹。

显示设备190被配置为在接收到来自用户接口156的输出时,将粗暴处理显示给管理员。在某些实施例中,显示设备190被配置为显示粗暴处理动作的视频片段,其中具有粗暴处理的工人的人物边界框和被粗暴处理的包裹的包裹边界框。在某些实施例中,计算的距离和速度,以及拿起、持有和放下的状态可以在显示器中隐藏,可以在管理员选择这样做时显示。显示设备190可以是电脑显示器、电视或甚至是配置为广播警告语音或警告消息的音频设备。在某些实施例中,显示设备190可以由计算设备130控制,或在某些实施例中,由计算设备130外部并与计算设备130通信的计算设备控制。

需要注意,系统100可以在需要时进一步包括其他组件,并且并非图1中所示的所有组件对于所有应用都是必需的。例如,当计算负载不重时,检测模型服务170可以不是必需的,检测模型服务170的功能直接放在跟踪模块150中。在某些实施例中,系统100实时监控粗暴处理。在其他实施例中,系统100还可以使用记录的视频来确定粗暴处理。

图6示意性地示出了根据本公开的某些实施例的粗暴处理识别系统的概念性工作流程600。如图6所示,从工人取包到放下,粗暴处理识别系统采集工人处理过程的信息,并实时反馈给后台工作人员。当系统识别出粗暴处理动作时,将粗暴处理动作的视频片段发送到后台,并提醒分拨工作人员该工人粗暴处理包裹。然后工作人员可以通知工人更加小心地处理包裹,减少潜在的包裹损坏损失。因此,一名员工能够同时服务于多个处理区域并监控工人的数量。这样可以帮助降低人工成本,降低包裹损坏率,并减少包裹所有者的潜在投诉。

在某些方面,本公开涉及一种用于识别或监控粗暴处理的方法。图7示意性地描绘了可以由图1所示的系统100实施的粗暴处理识别方法。在某些实施例中,图7中所示的方法700对应于粗暴处理识别应用138的功能。需要特别说明的是,除非本公开另有说明,该方法的步骤可以以不同的顺序排列,因此不限于图7所示的顺序。

如图7所示,在步骤702,视频捕获模块140指示成像设备110实时获取感兴趣区域的视频流,并将视频流发送到视频解码器142。成像设备110可以是广角监控相机,感兴趣的区域可以是电子商务公司的包裹分拨中心的工作区域。可以有多个成像设备110安装在多个不同的包裹分拨中心,每个成像设备110覆盖一个工作区域,该工作区域可以包括一条或几条传送带以及在区域中邻近传送带并处理包裹的一名或几名工人。每个视频流包括实时视频帧,每个视频帧具有识别捕获视频帧的成像设备110的相机ID,具有视频帧的时间戳或帧号,以及视频帧本身,例如,模拟或数字RGB图像。视频流的帧率可以因场景和硬件而异,例如可以为30fps。

在步骤704,在接收到来自成像设备110的视频帧后,视频解码器142将每个视频流解码为视频帧,并将每个视频帧发送到BGS模块144和检测模块146。在某些实施例中,视频解码器142将每个视频流中的视频帧存储为队列,队列ID与设备ID或相机ID相同或等效。在某些实施例中,视频流包括模拟视频帧,视频解码器142将模拟信号转换为数字信号。粗暴处理识别应用138的模块以相同的方式并行处理视频流,使用视频流之一来解释以下过程。示例视频流有其特定的相机ID,有T个帧:1,...,t-1,t,t+1,...,T。第t帧是当前帧,T和t是正整数。第t帧具有其相机ID、时间戳和数字图像。

在步骤706,当从视频解码器142接收到第t帧时,BGS模块144从第t帧中减去第(t-1)帧,以获得第t帧的第t前景区域,并将第t前景区域发送到后处理模块148。在某些实施例中,BGS模块144通过以下方式执行减除:将第(t-1)帧和第t帧像素的RGB值转换为0~255的灰度值,计算第(t-1)帧和第t帧的像素差,将差值的绝对值与预定的差值阈值进行比较,如果差值的绝对值等于或大于差值阈值,则将像素二值化为1,如果差值的绝对值小于差值阈值,则将像素二值化为0,膨胀和腐蚀二值值以获得包含值为1的连通区域的初始二值掩码,并使用连通区域阈值过滤初始掩码中的连通区域,得到第t帧的第t前景区域。在某些实施例中,预定差异阈值为20。在某些实施例中,连通区域过滤阈值为1000像素,即仅保留具有1000像素的连通区域,而删除较小的连通区域。因此,第t帧的第t前景区域包括相机ID、时间戳和第t帧的前景区域。第t前景区域表示为

在步骤708,在从视频解码器142接收到第t帧时,检测模块146从第t帧检测人物的边界框和关键点以及包裹边界框,并发送人物边界框和关键点以及包裹边界框到后处理模块148。在某些实施例中,检测模块146将检测模型服务170用于人物检测和包裹检测。在某些实施例中,检测模型服务170使用CenterNet来并行处理从检测模块146接收的帧。检测模型服务170使用两类检测,一类是人物检测,另一类是包裹检测。检测模型服务170针对人物类别对象检测边界框和关键点,针对包裹类别对象仅检测边界框。在某些实施例中,检测模块146也可以自己执行检测功能,而不使用检测模型服务170。第t帧的检测结果可以表示为

在过程710,在从BGS模块144接收到第t帧的第t前景区域以及从检测模块146接收到检测到的人物边界框和关键点以及包裹边界框时,后处理模块148基于第t前景区域移除检测到的静止包裹边界框并添加附加运动(或移动)包裹边界框,以获得移动包裹边界框,并将人物边界框和关键点以及移动包裹边界框发送到跟踪模块150。在某些实施例中,后处理模块148通过以下方式去除静止包裹边界框并添加附加的移动包裹边界框:将第t帧中检测到的包裹边界框与第t前景区域重叠,删除与第t前景区域没有重叠或只有少量重叠的检测到的包裹边界框,当第t前景区域的足够大的区域与检测到的任何人物边界框和包裹边界框都没有重叠,添加与这些前景区域对应的附加移动包裹边界框。在某些实施例中,每个附加的移动包裹边界框都被标记有高速信号标记。在某些实施例中,后处理模块148的结果由

在步骤712,在从后处理模块148接收到人物的边界框和关键点以及移动包裹边界框后,跟踪模块150跟踪人物和移动包裹以获得或更新人物跟踪轨迹和包裹跟踪轨迹,发送更新的人物跟踪轨迹和包裹跟踪轨迹到动作识别模块152。在当前帧是视频的第一帧时,还没有轨迹,不需要BGS模块146和后处理模块148执行它们的功能,为检测模块146检测到的每个人初始化人物轨迹,为从检测模块146检测到的每个包裹初始化包裹轨迹。在当前帧是第t帧时,在处理第t帧之前,有m个人物轨迹和n个包裹轨迹可用。每个人物的轨迹可以从他第一次被检测到时的任何先前帧初始化,并连续跟踪到第(t-1)帧或第(t-1)帧之前的一帧或几帧,即该人物仍然可见的最新帧。每个移动包裹轨迹可以从第一次检测到移动包裹时的任何先前帧初始化,并连续跟踪到第(t-1)帧或第(t-1)帧之前的一帧或几帧,这是仍然可以看到移动包裹的最新帧。换言之,仅当在预定数量的连续帧(例如5~20帧)内没有看到人物或包裹时,才删除人物轨迹或移动包裹轨迹,在一个示例中,预定的连续帧数为10。人物在其轨迹的最新帧中的位置是他的最后位置。包裹在其轨迹的最新帧中的位置是它的最后位置。上一步骤的结果包括来自第t帧的k个人

在步骤714,在从跟踪模块150接收到更新的人物跟踪轨迹和包裹跟踪轨迹时,动作识别模块152使用当前(更新的)人物跟踪轨迹和移动包裹跟踪轨迹来更新动作。每个动作包括多个连续的人物跟踪位置(或帧)和相应的包裹跟踪位置(或帧),从人拿起包裹开始,到人放下包裹后的预定帧数结束。假设在时刻(t-1)或第(t-1)帧的动作是

对于第t帧中的人p

动作识别模块152然后在步骤506确定人p

如果人p

如果人p

在步骤512,如果人p

在极少数情况下,当人p

通过上述过程,动作识别模块152在当前帧使用人物跟踪轨迹f

返回参考图7,在步骤716,动作识别模块152确定第t帧处的动作是否是粗暴处理动作。人p

在步骤718,在确定一个动作为粗暴动作之后,动作识别模块152可以可选地计算该动作的粗暴处理分数,并将所确定的粗暴处理动作及其粗暴处理分数发送到输出模块154。在某些实施例中,动作识别模块152定义高度粗暴处理分数为3以及轻度粗暴处理分数为1。粗暴处理动作在第(t+5)帧或在动作中第(t+5)帧之后的任何帧处被赋予高度粗暴处理分数:累积距离>=3.0,或平均值速度>=0.2,或最大速度>=0.3。这里的累积距离是当前帧中的包裹与最后持有帧中人的手腕关键点之间的距离,平均速度是包裹在最后三帧(当前帧及其前两帧)中的速度,最大速度是从第(t+3)帧到当前帧的一帧中的最大速度。在某些实施例中,动作识别模块152定义高度粗暴处理分数为3、中度粗暴处理分数为2和轻度粗暴处理分数为1。粗暴处理动作在累积距离>=3.0,或平均速度>=0.2,或最大速度>=0.3时给予高度粗暴处理分数,当3.0>累积距离>=1.5,0.2>平均速度>=0.15,0.3>max speed>=0.25时给予中度粗暴处理分数,当不满足高度或中度粗暴处理分数要求时,给予轻度粗暴处理分数。

在步骤720,在从动作识别模块152接收到粗暴处理动作及其粗暴处理分数后,输出模块154准备粗暴处理输出,并将处理输出发送到显示设备190。粗暴处理输出包括粗暴处理动作的视频片段、人物和包裹的轨迹(可以是与动作对应的轨迹的一部分)包括在每个位置的人物的边界框和关键点以及包裹的边界框,以及粗暴的处理分数。

显示设备190在接收到来自输出模块154的粗暴处理输出时,可以显示来自输出的某些信息。例如,显示设备190可以显示粗暴处理视频片段,在每一帧显示人物的边界框和包裹的边界框,在视频片段的顶部显示粗暴处理分数。人物关键点、距离、速度和加速度可以是输出的一部分,但不会显示。管理显示设备190的工作人员可以选择在需要时访问那些隐藏信息。

上述方法的变化是可用的。例如,该方法可以改变某些步骤的顺序,可以使用检测模块146来执行人物和包裹检测而不是使用检测模型服务170,可以改变阈值,可以从不同的帧中选择人体躯干作为参考,可以为动作选择不同的帧数,可以为起始距离和速度计算选择不同的帧。在某些实施例中,这些参数的改变可以使用用户接口156来配置。

在另一方面,本公开涉及一种存储计算机可执行代码的非暂时性计算机可读介质。当在计算设备的处理器处执行代码时,可以执行如上所述的方法。在某些实施例中,非暂时性计算机可读介质可以包括但不限于任何物理或虚拟存储介质。在某些实施例中,非暂时性计算机可读介质可以实现为如图1所示的计算设备130的存储设备136。

综上所述,本公开的某些实施例提供了一种粗暴处理识别应用,其具有以下优点。(1)系统自动识别粗暴处理,节省粗暴处理监控成本。(2)系统在判断粗暴处理方面具有稳健性,无需复杂的配置即可安装在不同的环境或场景中。(3)系统可以通过安装本地相机,通过网络连接到一台或几台云计算设备来实现。因此,对计算能力几乎没有限制,实现简单而新颖,易于扩展。(4)系统可以实时识别粗暴处理动作,提高了定位和纠正问题的效率。(5)BGS模块、检测模块、检测模型服务可以并行执行功能,分析速度快。(6)系统利用帧差计算背景,利用背景去除静止包裹和添加高速包裹,弥补了检测模型服务的不足。(7)系统对人物和包裹轨迹采用插入技术,确保准确确定动作的拿起、持有或放下状态的时间。(8)系统结合不同的距离、速度和加速度进行粗暴判断,这去除了噪声并准确、稳健地判断了粗暴处理。

本公开的示例性实施例的前述描述仅出于说明和描述的目的而呈现,不旨在穷举或将本公开限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。

选择和描述实施例是为了解释本公开的原理及其实际应用,从而使本领域的其他技术人员能够利用本公开和各种实施例以及适合于预期的特定用途的各种修改。在不脱离本公开的精神和范围的情况下,替代实施例对于本公开所属领域的技术人员将变得显而易见。因此,本公开的范围由所附权利要求而不是前述描述和其中描述的示例性实施例限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号