具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的判断摄像头是否异常系统的应用场景示意图。仅作为示例,如图1所示,本说明书所涉及的应用场景可以包括第一计算系统110、第二计算系统120和/或第三计算系统130。系统100中的组件可以以各种方式连接。
摄像头180(摄像头180-1、180-2、…、180-N)是指视频输入设备,可以获取目标物体的成像数据。在一些实施例中,成像数据可以是二维(2D)成像数据、三维(3D)成像数据、四维(4D)成像数据等或其任何组合。目标物体可以是生物体(例如,人、动物)或非生物体(例如,汽车、自行车)。成像数据组成的影像可以是彩色的,也可以是黑白的。在一些实施例中,摄像头180可以包括数字摄像头和模拟摄像头等设备,示例性设备可以包括电脑相机、电脑眼、电子眼等。
判断摄像头180是否异常所应用的场景可以包括商场、银行、车站、会议室等公共和私人场所。可以理解,在通过摄像头180进行监控的场所内,摄像头180可能会出现异常的情况。在一些实施例中,摄像头180可能被有意或无意地更改角度,导致摄像头180偏离正常工作角度,造成摄像头180异常。
网络140可以促进系统100的信息和/或数据的交换。在一些实施例中,系统100的一个或以上组件(例如,摄像头180、第一计算系统110、第二计算系统120或第三计算系统130)可以通过网络140与系统100的一个或以上其他组件交流信息和/或数据。例如,第一计算系统110、第二计算系统120和/或第三计算系统130可以经由网络140从摄像头180获取视频数据。
在一些实施例中,网络140可以具有分布式网络架构。在一些实施例中,系统100可包括分布式连接到网络140的至少两个服务器设备。在一些实施例中,网络140可以为任意形式的有线或无线网络或其任意组合。网络140可以是和/或包括公共网络(例如,互联网)、专用网络(例如,局部区域网络(LAN)、广域网(WAN)等)、有线网络(例如,以太网网络)、无线网络(例如,802.11网络、Wi-Fi网络等)、蜂窝网络(例如,长期演进(LTE)网络)、帧中继网络、虚拟专用网络(“VPN”)、卫星网络、电话网络、路由器、集线器、交换机、服务器计算机和/或其任何组合。仅作为示例,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内联网、无线局部区域网络(WLAN)、城域网(MAN)、公用电话交换网络(PSTN)、蓝牙网络、紫蜂(ZigBee)网络、近场通信(NFC)网络等或其任何组合。在一些实施例中,网络140可以包括一个或以上网络交换点。例如,网络140可以包括有线和/或无线网络交换点,例如基站和/或互联网交换点,系统100的一个或以上组件可以通过它们连接到网络140以交换数据和/或信息。
第一计算系统110可以获取数据150,数据150包含多个摄像头的基础特征和所述多个摄像头之间的关联关系。数据150可以通过预先训练好的模型和终端获取。数据150可以通过各种常见的方式进入第一计算系统110。通过第一计算系统110中的模型112,可以输出所述多个摄像头是否异常的输出结果160。公共网络可以是无线网络中的任意一种或多种。
模型122的参数可以通过训练得到。第二计算系统120可以获取多组样本数据170,每组训练样本包含多个摄像头的基础特征和所述多个摄像头之间的关联关系以及对应的所述多个摄像头是否异常的输出结果,第二计算系统120通过多组样本数据170更新模型122的参数,得到训练好的模型。模型112的参数来自于训练好的模型122。其中,参数可以以任何常见的方式传递。
第三计算系统130可以用于更新数据150的参数,第三计算系统130通过模型132更新数据150,模型132的参数来自于数据150。其中,参数可以以任何常见的方式传递。
模型(例如,模型112、模型122或/和模型132)可以指基于处理设备而进行的若干方法的集合。这些方法可以包括大量的参数。在执行模型时,所使用的参数可以是被预先设置好的,也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。
第一计算系统110、第二计算系统120和第三计算系统130可以相同也可以不同。第一计算系统110、第二计算系统120和第三计算系统130是指具有计算能力的系统,可以包括各种计算机,比如服务器、个人计算机,也可以是由多台计算机以各种结构连接组成的计算平台。
第一计算系统110、第二计算系统120和第三计算系统130中可以包括处理设备,处理设备可以执行程序指令。处理设备可以包括各种常见的通用中央处理器(centralprocessing unit,CPU),图形处理器(Graphics Processing Unit,GPU),微处理器,特殊应用集成电路(application-specific integrated circuit,ASIC),或其他类型的集成电路。
第一计算系统110、第二计算系统120和第三计算系统130中可以包括存储介质,存储介质可以存储数据、指令和/或任何其他信息。在一些实施例中,存储设备可以存储从摄像头180获得的数据或信息。例如,存储设备可以存储由摄像头180生成的视频数据。在一些实施例中,存储设备可包括大容量存储器、可移式存储器、易失性读写存储器、只读存储器(ROM)等或其任何组合。示例性的大容量储存器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括快闪驱动器、软盘、光盘、存储卡、压缩磁盘、磁带等。示例性易失性读写存储器可以包括随机存储器(RAM)。示例性RAM可包括动态随机存储器(DRAM)、双倍速率同步动态随机存储器(DDRSDRAM)、静态随机存储器(SRAM)、晶闸管随机存储器(T-RAM)和零电容随机存储器(Z-RAM)等。示例性只读存储器可以包括掩蔽型只读存储器(MROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(PEROM)、电可擦可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备可以在云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多云等或其任意组合。
第一计算系统110、第二计算系统120和第三计算系统130还可以包括用于内部连接和与外部连接的网络。也可以包括用于输入或输出的终端。网络可以是有线网络或无线网络中的任意一种或多种。
第一计算系统110、第二计算系统120和第三计算系统130可以是通用计算机或专用计算机。两者都可以用于实现本说明书的系统100。例如,系统100可以通过其硬件、软件程序、固件或其组合在第一计算系统110、第二计算系统120和第三计算系统130上实现。
关于多个摄像头的基础特征、所述多个摄像头之间的关联关系和各模型的更多细节参见图2-图5,此处不再赘述。
在一些实施例中,该系统100中可以包括获取模块、判断模块和确定模块。
获取模块,可以用于获取多个摄像头的基础特征以及所述多个摄像头之间的关联关系,其中,所述多个摄像头的基础特征包括摄像头流量变化、摄像头角度数据、摄像头缩放数据和摄像头白平衡数据中的至少一种,所述摄像头之间的关联关系包括所述摄像头之间的相对角度和所述摄像头之间的距离中的至少一种。
在一些实施例中,获取模块进一步用于:获取所述多个摄像头在N个历史时间段的特征序列,所述特征序列包括视频特征序列和/或码流特征序列;以及基于序列编码或循环神经网络模型对所述特征序列进行处理,确定所述摄像头流量变化。
在一些实施例中,获取模块进一步用于:获取所述多个摄像头在N个历史时间段的视频数据;基于特征提取模型对所述N个历史时间段的视频数据进行处理,确定所述N个历史时间段的视频特征序列。
获取模块的更多细节可以参见步骤210,此处不再赘述。
判断模块,可以用于将所述多个摄像头的基础特征以及所述多个摄像头之间的关联关系输入判断模型,其中,所述判断模型为GNN模型。
在一些实施例中,判断模块进一步用于:获取多个样本摄像头的多个训练数据及其标签,所述多个训练数据包括样本基础特征和样本关联关系,所述标签代表所述多个样本摄像头是否异常,所述标签通过随机设置故障摄像头获取;以及基于所述多个训练数据训练初始判断模型,得到所述判断模型。
判断模块的更多细节可以参见步骤220,此处不再赘述。
确定模块,可以用于基于所述判断模型的输出结果,确定所述多个摄像头是否异常。
确定模块的更多细节可以参见步骤230,此处不再赘述。
应当注意的是,图1所示的系统100的描述仅仅是为了说明的目的而提供的,并不意图限制本说明书的范围。对于本领域的普通技术人员来说,可以根据本说明书的描述,做出各种各样的修正和改变。例如,可以根据具体的实施方案修改或改变系统100的组装和/或功能。仅作为示例,可以将一些其他组件添加到系统100中,例如可以向系统100的一个或以上组件以及其他设备或模块供电的电源模块。
需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,图1中披露的获取模块、判断模块和确定模块可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图2是根据本说明书一些实施例所示的判断摄像头是否异常的方法的示例性流程图。
在一些实施例中,第一计算系统110可以通过图神经网络模型对多个摄像头的基础特征以及所述多个摄像头之间的关联关系进行处理,输出摄像头是否异常的输出结果。
在一些实施例中,多个摄像头的基础特征包括摄像头流量变化,摄像头流量变化可以通过多种方式获取。在一些实施例中,对于不同方式获取的摄像头流量变化,第三计算系统130可以通过特征提取模型132进行处理。
如图2所示,该判断摄像头是否异常的方法200可以包括:
步骤210,获取多个摄像头的基础特征以及所述多个摄像头之间的关联关系,其中,所述多个摄像头的基础特征包括摄像头流量变化、摄像头角度数据、摄像头缩放数据和摄像头白平衡数据中的至少一种,所述摄像头之间的关联关系包括所述摄像头之间的相对角度和所述摄像头之间的距离中的至少一种。具体的,该步骤210可以由获取模块执行。
摄像头作为前端视频图像信号的采集工具,可以包括数字摄像头、模拟摄像头和网络摄像头。数字摄像头可以直接捕捉影像,然后通过串、并口和/或USB接口传入储存设备;模拟摄像头可以将视频采集设备产生的模拟视频信号转换成数字信号,进而将其储存在储存设备中;网络摄像头是融摄像、视频编码、Web服务于一体的摄像设备,内嵌了TCP/IP协议栈,可以直接连接到网络。
多个摄像头为两个及以上数量的摄像头,所述多个摄像头之间相互具有关联性,所述关联性可以是直接的,也可以是间接的。在一些实施例中,关联性可以是基于摄像头拍摄的覆盖区域确定的。具体的,在拍摄期间,多个摄像头中每一个摄像头的拍摄覆盖区域都直接/间接地有重叠的部分。例如,摄像头A与摄像头B的拍摄覆盖区域有重叠的部分,则摄像头A与摄像头B具有直接的关联性。又例如,摄像头A与摄像头C的拍摄覆盖区域没有重叠的部分,而摄像头B分别与摄像头A和摄像头C的拍摄覆盖区域有重叠的部分,则摄像头A与摄像头C通过摄像头B具有间接的关联性。目标物体可以是生物体(例如,人、动物)或非生物体(例如,汽车、自行车)。多个摄像头之间相互具有关联性可以使判断模型在处理数据时更加充分地采集摄像头相关数据、获取对判断有帮助的信息,使判断模型取得更好的运行效率和判断准确度。
基础特征是指表征摄像头数据的特征。在一些实施例中,基础特征可以包括摄像头流量变化、摄像头角度数据、摄像头缩放数据和摄像头白平衡数据中的至少一种。
在一些实施例中,基础特征还可以包括色温参数、锐化程度参数、颜色饱和度参数、亮度参数、对比度参数、快门参数以及光圈参数等。在一些实施例中,上述基础特征可以混合或组合使用。摄像头流量是指摄像头在拍摄时,视频数据传输所占用的网络流量,如500Mb/s。摄像头流量变化是指摄像头在预设时间段内工作时流量的变化。在一些实施例中,时间段具有一定的时间长度,例如10秒。在一些实施例中,可以基于序列编码或循环神经网络模型获取摄像头流量。具体的,获取多个摄像头在N个历史时间段的特征序列,特征序列包括视频特征序列和/或码流特征序列;基于序列编码或循环神经网络模型对特征序列进行处理,确定摄像头流量变化。其中,视频特征序列可以通过特征提取模型获确定,具体的,获取多个摄像头在N个历史时间段的视频数据;基于特征提取模型对N个历史时间段的视频数据进行处理,确定N个历史时间段的视频特征序列。其中,特征提取模型的输入是多个摄像头在N个历史时间段的视频数据,输出是N个历史时间段的视频特征序列。特征提取模型是神经网络模型,具体的,可以是RNN模型。关于特征提取模型的更多细节参见图4,此处不再赘述。
在一些实施例中,还可以通过其他方式获取时间段,本实施例不作限制。
图6(a)所示为摄像头180在拍摄时的视角角度,该角度为α°。图6(a)所示为摄像头180-1和摄像头180-2在拍摄时相对于水平方向的角度,摄像头180-1相对于水平方向的角度为γ°,摄像头180-1相对于水平方向的角度为δ°,摄像头180-1和摄像头180-2之间的相对角度为β°。具体的内容在下文中进行描述。
摄像头角度数据是指摄像头在拍摄时的视角,例如,50°、120°。如图6(a)所示,摄像头180的角度为α°。在一些实施例中,摄像头角度可以包括锐角、直角和钝角。
摄像头缩放数据是指摄像头在拍摄时的缩放参数,即分辨率的调整。例如,将分辨率为544x288的视频画面缩放为480x360的视频画面。
白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标,是指在任何拍摄场景的光源下,都能将白色的物体还原为白色。摄像头白平衡数据可以包括阳光白平衡、白炽灯白平衡、闪光灯白平衡等数据。例如,一组白炽灯白平衡数据为:Incandesc -3 3150色调-1。又例如,一组闪光灯白平衡数据为:Flash -36200 色调-2。
在一些实施例中,可以通过获取模块获取摄像头角度数据、摄像头缩放数据和/或摄像头白平衡数据。具体的,使用超文本传输协议与摄像头建立交互,发送检测命令,利用实时传输协议或实时流传输协议解析从摄像头返回的信息,从中获取摄像头角度数据、摄像头缩放数据和/或摄像头白平衡数据。在一些实施例中,可以通过访问连接摄像头的服务器获取摄像头角度数据、摄像头缩放数据和/或摄像头白平衡数据。在一些实施例中,可以通过读取视频数据的相关参数、调用相关接口或其他方式获取摄像头角度数据、摄像头缩放数据和/或摄像头白平衡数据。
摄像头之间的关联关系是指表征摄像头之间关系的特征。在一些实施例中,摄像头之间的关联关系可以包括摄像头之间的相对角度和所述摄像头之间的距离中的至少一种。在一些实施例中,摄像头之间的关联关系可以包括多个摄像头的数量。例如,2个,10个。在一些实施例中,摄像头之间的关联关系还可以包括多个摄像头的拍摄覆盖区域的面积。例如,5m2,100m2。
摄像头之间的相对角度是多个摄像头相对于目标物体的夹角,例如,80°、120°。如图6(b)所示,图中摄像头180-1和摄像头180-2之间的相对角度为β°。一些实施例中,可以通过人工设置或读取摄像头设备参数的方式获取摄像头相对于水平方向的角度,即γ°和δ°,可以得出β°=180°-γ°-δ°。在一些实施例中,摄像头之间的相对角度可以包括锐角、直角和钝角。
摄像头之间的距离是多个摄像头之间的直线距离。例如,10m,50m。
在一些实施例中,多个摄像头的基础特征以及多个摄像头之间的关联关系可以通过设置获取。具体的,可以由相关工作人员执行设置操作。例如,设置摄像头之间的直线距离为10m。在一些实施例中,多个摄像头的基础特征以及多个摄像头之间的关联关系可以通过监测获取。具体的,可以以摄像头180作为监测终端与接口建立连接以获取该关联关系。在一些实施例中,多个摄像头的基础特征以及多个摄像头之间的关联关系可以从存储设备中读取。其中,所述存储设备可以是系统100自带的存储设备,也可以是不属于系统100的外部存储设备,例如,硬盘、光盘等在一些实施例中,多个摄像头的基础特征以及多个摄像头之间的关联关系可以通过接口读取,所述接口包括但不限于程序接口、数据接口、传输接口等。在一些实施例中,系统100工作时,可以自动从所述接口中提取多个摄像头的基础特征以及多个摄像头之间的关联关系。在一些实施例中,系统100可以被外部其他设备或系统调用,在调用时多个摄像头的基础特征以及多个摄像头之间的关联关系被传递给系统100。在一些实施例中,还可以采用本领域技术人员熟知的任意方式获取多个摄像头的基础特征以及多个摄像头之间的关联关系,本说明书对此不做限制。
步骤220,将所述多个摄像头的基础特征以及所述多个摄像头之间的关联关系输入判断模型,其中,所述判断模型为GNN模型。具体的,该步骤220可以由获取模块执行。
判断模型的输入是多个摄像头的基础特征和多个摄像头之间的关联关系,输出是多个摄像头是否异常的输出结果。在一些实施例中,在将多个摄像头的基础特征和多个摄像头之间的关联关系输入判断模型之前,可以对其特征值进行分桶,将特质用向量的方式表示。
在一些实施例中,GNN模型可以基于所述多个摄像头以及所述多个摄像头之间的关联关系构建图,以所述多个摄像头作为所述图的节点,以所述多个摄像头之间的关联关系作为所述图的边。
关于判断模型为GNN模型的详细描述参见图3,在此不再赘述。
在一些实施例中,判断模型可以通过训练获得,所述训练过程可以包括:获取多个样本摄像头的多个训练数据及其标签,所述多个训练数据包括样本基础特征和样本关联关系,所述标签代表所述多个样本摄像头是否异常,所述标签通过随机设置故障摄像头获取;基于所述多个训练数据训练初始判断模型,得到所述判断模型。在一些实施例中,训练的样本可以是有标签的样本。例如,对于摄像头角度的信息,可以由多个摄像头的角度信息组成训练数据,按经验人工定义标记类别,标签可以是摄像头是否异常。在一些实施例中,训练数据的负样本可以由真实数据和/或基于对正常的样本摄像头的样本基础特征或/和样本关联关系进行修改生成。
关于判断模型的训练方式的详细描述参见图5,在此不再赘述。
步骤230,基于判断模型的输出结果,确定多个摄像头是否异常。具体的,该步骤230可以由判断模块执行。
摄像头异常可以是指摄像头在工作期间内,摄像头的一个或多个参数数据出现异常。在一些实施例中,摄像头异常可以包括但不限于拍摄角度异常、缩放数据异常、白平衡数据异常、流量数据异常等,或其任意组合。拍摄角度异常、缩放数据异常、白平衡数据异常和流量数据异常是指摄像头的拍摄角度、缩放数据、白平衡数据和流量数据偏离预设值,即正常值,例如,高于或低于、大于或小于预设值。
判断模型的输出结果包括摄像头是否异常,例如,输出结果可以是“有异常”、“无异常”。在一些实施例中,输出结果还可以包括摄像头异常的具体类型。具体的,具体类型可以包括但不限于拍摄角度异常、缩放数据异常、白平衡数据异常、流量数据异常等,或其任意组合。例如,“有异常,角度异常”、“有异常,角度异常、缩放数据异常”。在一些实施例中,输出结果还可以包括摄像头是否异常及异常事件的量化表示。仅作为示例,输出结果可以是摄像头异常以及异常类型、表示异常的数值等。例如,输出结果可以是“有异常,角度-30°”,其中,“角度-30°”表示摄像头的角度异常并且角度偏离预设角度30°。
在一些实施例中,可以基于输出的摄像头的标签,确定摄像头是否异常。具体的,若输出结果为“无异常”,则摄像头正常;若输出结果为“有异常”,则摄像头异常。
在一些实施方式中,多个摄像头是否异常的输出结果可以在连接摄像头的监控设备界面直接显示。在一些实施例中,输出结果可以通过消息的形式发送给监控设备使用用户。例如,通过短信的方式发送给用户手机号。又例如,通过提示信息发送至用户的客户端。在一些实施例中,可以将输出结果传输至存储设备中进行存储。其中,所述存储设备可以是系统100自带的存储设备,也可以是系统100外的存储设备。例如,光盘、硬盘等。在一些实施例中,输出结果可以被传递给特定的接口,所述接口包括但不限于程序接口、数据接口、传输接口等。在一些实施例中,还可以采用本领域技术人员熟知的任意方式输出输出结果,本申请对此不做限制。
应当注意的是,上述有关流程210、220和230的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程210、220和230进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,可以通过其他方式获取多个摄像头的基础特征以及多个摄像头之间的关联关系。
图3是根据本说明书一些实施例所示的判断模型的示例性结构图。
判断模型为GNN模型,GNN(Graph Neural Network)模型是图神经网络模型,是一类基于深度学习的处理图域信息的方法,是一种广泛应用的图分析方法。
如图3所示,GNN模型由多个节点A、…和F和由多个节点组成的边构成,其中,A、…和F代表摄像头,a1 , a2 , a3、…和f1 , f2 ,f 3分别代表摄像头A、…和F的基础特征,摄像头A、…和F之间的连线代表其之间的关联关系。
在一些实施例中,可以基于多个摄像头以及多个摄像头之间的关联关系构建图,以多个摄像头作为图的节点,以多个摄像头之间的关联关系作为图的边。具体的,图中的每个节点都包含一个对应的输出结果,输出结果代表摄像头是否异常。例如,输出结果可以是“有异常”、“无异常”。
在一些实施例中,判断模型可以通过训练过程获取。具体的,基于训练数据对初始判断模型进行迭代训练,直至初始判断模型达到预设条件,得到所述判断模型。关于训练判断模型的方法的详细描述参见图5,在此不再赘述。
本说明书一个实施例实现了基于GNN模型以通过图的方式获取更加丰富的特征,从而得到摄像头是否异常的结果。图可以用来表示多个摄像头之间的关系,GNN模型可以联合所有相关的摄像头进行判断,保证准确率。例如,GNN模型可以联合多个摄像头的基础特征,包括但不限于摄像头流量变化、摄像头角度数据、摄像头缩放数据和摄像头白平衡数据中的至少一种。又例如,GNN模型还可以联合多个摄像头之间的关联关系,包括但不限于摄像头之间的相对角度和摄像头之间的距离中的至少一种,当目标物体出现在一个摄像头的拍摄区域中时,由于多个摄像头的拍摄区域有直接或间接的覆盖区域,摄像头之间的相对角度和/或摄像头之间的距离具有直接或间接的关联关系(如在一监控场景中,距离最远的两个摄像头之间的相对角度大于该场景中其他摄像头之间的相对角度,等于所有相邻摄像头的相对角度之和;对应的,摄像头之间的距离可基于相对角度根据三角函数定理计算得出),通过以上关联关系,即GNN中边的特征进行处理可以得到更准确的判断结果。基于GNN模型进行判断,可以基于更多、更丰富的摄像头相关特征,使判断结果具有更高的准确度。
图4是根据本说明书一些实施例所示的获取摄像头流量变化的模型的示例性结构图。
如图4所示,在一些实施例中,摄像头流量变化可以基于流量变化预测模型确定。流量变化预测模型是用于确认摄像头流量变化的模型。例如,所述流量变化预测模型的类型可以是RNN(Recurrent Neural Network,循环神经网络)模型。具体的,获取摄像头流量变化包括:获取多个摄像头在N个历史时间段的特征序列,特征序列包括视频特征序列和/或码流特征序列;基于流量变化预测模型对特征序列进行处理,确定摄像头流量变化。
历史时间段是以往时间上的某段时间,N为大于1的整数,N个历史时间段是距离上一次采集后时间上的N个时间段。在一些实施例中,历史时间段具有一定的时间长度,例如10秒。
在一些实施例中,N个历史时间段之间可以间隔相同的时间。例如,每隔300秒采集一段时间段。在一些实施例中,N个历史时间段的时间长度可以是相同的,也可以是不同的。在一些实施例中,获取模块可以通过人工预先设置间隔时间获取N个历史时间段。在一些实施例中,获取模块也可以基于上一个历史时间段获取的特征,通过算法自动调整间隔时间获取N个历史时间段。在一些实施例中,还可以通过其他方式获取N个历史时间段,本实施例不作限制。
视频特征是指视频中关键帧的特征,用于反映视频中关键帧内容的特征空间。帧(Frame)是视频的最小视觉单位,是一幅静态的图像,将时间上连续的帧序列合成到一起便形成动态视频。视频特征可以包括视觉特征和声音特征,视觉特征可以包括颜色特征、纹理特征和形状特征等静态特征和运动特征,声音特征可以包括响度特征、音调特征和音色特征。
码流特征是指视频文件在单位时间内使用的数据流量,是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。在一些实施例中,可以通过人工输入、读取存储的参数数据、调用相关接口或其他方式获取码流特征。
特征序列是表征摄像头在工作期间的视频特征和/或码流特征。在一些实施例中,特征序列可以是由多个视频特征和/或码流特征组成的序列。在一些实施例中,N个历史时间段的视频特征序列可以基于特征提取模型确定。具体的,获取多个摄像头在N个历史时间段的视频特征序列包括:获取多个摄像头在N个历史时间段的视频数据;基于特征提取模型对N个历史时间段的视频数据进行处理,确定N个历史时间段的视频特征序列。
特征提取模型是用于提取视频数据的特征的模型。视频数据是指连续的图像序列,其实质是由多幅时间上连续的静态图像组成,每幅静态图像为视频数据的一帧。在一些实施例中,视频数据可以是以电信号方式记录的动态影像。在一些实施例中,一个时间段的视频数据可以包含多幅静态图像。在一些实施例中,视频的格式可以包括高密度数字视频光盘(Digital Video Disc,DVD)、流媒体格式(Flash Video,FLV)、动态图像专家组(MPEG,Motion Picture Experts Group)、音频视频交错(Audio Video Interleaved,AVI)、家用录像系统(Video Home System,VHS )和视频容器文件格式(Real Media file format,RM)等中的一种或多种组合。
在一些实施例中,可以通过多种方式来获取多个摄像头在N个历史时间段的视频数据。例如,可以通过调用摄像头180相关接口获取视频数据。又例如,可以通过有线连接方式或无线连接方式获取存储于摄像设备中现有的视频数据。再例如,可以通过终端收集视频数据,然后通过接收所述终端所收集的视频数据,并将这些视频数据存储在本地的方式获取视频数据。
特征提取模型可以是CNN(Convolutional Neural Networks,卷积神经网络)模型。特征提取模型的输入是视频数据,输出是所述视频数据的视频特征序列。输入层用于基于码流对视频数据进行采样,采集码流较大的多个图像帧,例如,采集码流大于预设阈值的图像帧。至少一个卷积层可以用于对N个历史时间段的视频数据进行处理,具体的,对视频数据中的图像帧进行处理,获得N个历史时间段的视频数据中的图像帧对应的表示向量。在一些实施例中,所述至少一个卷积层可以采用包括基础卷积层和全连接层的常规卷积神经网络,例如,LeNet,AlexNet,GoogLeNet等。
具体的,将获取的多个摄像头在N个历史时间段的特征序列输入CNN模型中,通过CNN模型中的输入层采集视频数据中码流较大的图像帧,得到待处理的多个图像帧,通过CNN模型中的至少一个卷积层中的每层对所述多个图像帧进行卷积处理,得到卷积处理后的图像帧特征,通过CNN模型中的至少一个全连接层将所述图像帧特征进行权值矩阵处理,得到N个历史时间段的视频特征序列。
在一些实施例中,摄像头流量变化还可以基于序列编码确定。具体的,获取摄像头流量变化包括:获取多个摄像头在N个历史时间段的特征序列,特征序列包括视频特征序列和/或码流特征序列;基于序列编码对特征序列进行处理,确定摄像头流量变化。序列编码是指通过编码的方式将特征序列转换成机器存储数据(如0、1数据形式),即将字符流转换为字节流,编码的方式包括ASCII、Latin、GBK和UTF8等。
在一些实施例中,特征提取模型可以通过迁移学习得到。具体的,特征提取模型中的卷积核的参数可以通过对预先训练好的CNN模型中的卷积核的参数进行迁移获取,即将训练好的CNN模型中的卷积核的参数作为特征提取模型中卷积核的参数。例如,训练好的CNN模型中的卷积核的大小为3*3,则特征提取模型中卷积核的大小为3*3。其中,CNN模型可以是图像识别模型。图像识别模型是指用于处理图像数据的模型,通过对图像数据进行处理,得到特征向量。
在一些实施例中,所述流量变化预测模型可以通过端到端的训练获得。所述端到端的训练中流量变化预测模型可以包括用于基于视频数据提取视频特征序列的CNN模型以及用于基于视频特征序列生产摄像头流量变化的RNN模型,以将视频数据映射到摄像头流量变化中。在一些实施例中,可以通过损失函数进行端对端的训练,所述损失函数组合了基于CNN模型和RNN模型的错误评估。在一些实施例中,所述端到端的训练的训练数据可以是一组样本视频数据,所述样本视频数据的标签可以是对应的流量变化。例如,“100MB”、“800KB”。将所述训练数据输入到CNN模型,基于RNN模型输出的流量变化的结果和标签建立损失函数等。在一些实施例中,损失函数可以由等式(1)定义:
LossTotal=λCNNLCNN+λRNNLRNN (1)
其中,LCNN是CNN模型中的视频特征序列的合适损失,LCNN是RNN模型中流量变化预测的正确性的合适损失,λCNN和λRNN是控制CNN模型和RNN模型的损失在总损失中的贡献的正则化参数,以平衡CNN模型损失和RNN模型损失的不同大小。在一些实施例中,可以应用梯度下降方法来优化损失函数模型以确定参数的最佳值集。
通过迁移学习,可以把已训练好的模型参数迁移到特征提取模型中来帮助特征提取模型训练,从而使特征提取模型在训练过程前具有更高的初始性能,同时在训练过程中具有更快的提升速率,在训练结束后可以得到更好的模型收敛效果。另一方面,在模型训练过程中需要耗费大量的训练时间和资源,特征提取模型通过迁移学习可以节省训练时间和资源,节约成本。
图5是根据本说明书一些实施例所示的训练判断模型的方法的示例性流程图。如图5所示,该方法500可以包括:
步骤510,获取多个样本摄像头的多个训练数据及其标签,所述多个训练数据包括样本基础特征和样本关联关系,所述标签代表所述多个样本摄像头是否异常。在一些实施例中,所述标签可以通过随机设置故障摄像头获取。具体的,该步骤510可以由判断模块执行。
在一些实施例中,样本摄像头是用于训练判断模型的摄像头。在一些实施例中,训练数据可以是输入至初始判断模型中用于训练判断模型的数据。在一些实施例中,训练数据可以包括基于样本摄像头获取的多个训练数据及其标签。
在一些实施例中,多个训练数据包括样本基础特征和样本关联关系。样本基础特征和样本关联关系是用于训练判断模型的基础特征和关联关系。其中,基础特征和关联关系的获取方式参见步骤210。
在一些实施例中,标签可以包括多个样本摄像头是否异常的表示。具体的,标签可以代表异常或正常。例如,摄像头为正常,则标签可以为“无异常”。又例如,摄像头为异常,则标签可以为“有异常”。
在一些实施例中,标签可以通过随机设置故障摄像头获取。故障摄像头可以表示在异常工作状态下的摄像头。例如,标签可以设置为摄像头偏离正常工作角度,如偏离20°、偏离50°。又例如,标签可以设置为摄像头的缩放数据大于或等于正常缩放数值。在一些实施例中,标签还可以通过其他方式获取,例如,可以基于历史数据获取。
在一些实施例中,训练数据可以包括正样本和负样本,正样本为摄像头在正常工作状态下的样本基础特征和样本关联关系,负样本为摄像头在异常工作状态下的样本基础特征和样本关联关系。在一些实施例中,训练数据的负样本可以来自于真实数据,也可以基于对在正常工作状态下的样本摄像头的样本基础特征或/和样本关联关系进行修改生成。
在一些实施例中,用于训练判断模型的方法的第二计算机系统120可以通过多种方式来获取训练数据。例如,第二计算机系统120可以通过有线连接方式或无线连接方式,从数据库服务器中获取存储于其中的现有的训练数据。又例如,可以通过终端来收集训练数据。第二计算机系统120还可以接收终端所收集的训练样本,并将这些训练样本存储在本地。
步骤520,基于多个训练数据训练初始判断模型,得到判断模型。具体的,该步骤520可以由判断模块执行。
初始判断模型为初始状态下的判断模型,初始判断模型的模型参数并未基于训练数据进行调整及更新。在一些实施例中,可以基于一个或多个携带有标签的训练数据对初始判断模型进行训练,获得训练好的判断模型。具体的,可以不断地调整初始判断模型的参数,以减小各个训练数据对应的损失函数值,使得损失函数值满足预设条件。预设条件可以基于预测值和真实值之间的误差判断或迭代更新设置。例如,损失函数值收敛、损失函数值小于预设值、或达到预定迭代次数(如20次)。当损失函数满足预设条件时,模型训练完成,得到训练好的判断模型。
在一些实施例中,所述判断模型和所述流量变化预测模型可以通过端到端的训练获得。所述端到端的训练过程可以包括用于基于特征序列生产摄像头流量变化的流量变化预测模型和用于基于多个摄像头的基础特征以及多个摄像头之间的关联关系判断摄像头是否异常的判断结果的判断模型,以将特征序列映射到判断结果中。在一些实施例中,可以通过损失函数进行端对端的训练,所述损失函数组合了基于判断模型和流量变化预测模型的错误评估。在一些实施例中,所述端到端的训练的训练数据可以是一组样本特征序列,所述样本特征序列的标签可以是对应的判断结果,例如“无异常”、“有异常”,将所述训练数据输入到流量变化预测模型,基于判断模型输出的判断结果和标签建立损失函数等。在一些实施例中,损失函数可以由等式(2)定义:
LossTotal’=λ流量变化预测L流量变化预测+λ判断L判断(2)
其中,L流量变化预测是流量变化预测模型中的特征序列的合适损失,L流量变化预测是判断模型中判断的正确性的合适损失,λ流量变化预测和λ判断是控制流量变化预测模型和判断模型的损失在总损失中的贡献的正则化参数,以平衡流量变化预测模型损失和判断模型损失的不同大小。在一些实施例中,可以应用梯度下降方法来优化损失函数模型以确定参数的最佳值集。
本说明书的实施例实现了多个模型端到端的训练。多个模型通过端到端的训练,可以共同地处理多种复杂情况,提高了模型的准确率。例如,单独基于摄像头的角度特征不足以判断摄像头是否异常,单独基于摄像头的缩放数据特征也不足以判断摄像头是否异常,但基于本方案就可以同时结合角度特征和缩放数据特征等多个不同特征的影响进行综合判断。另一方面,多个模型通过端到端的训练可以简化训练过程,同时对数据进行处理,提高了模型的效率。例如,分开训练多个模型需要为每一个模型准备训练所需的训练数据,端到端的训练可以简化上述准备工作。
综上所述,针对摄像头异常的判断,本说明书提供的方案能够更充分地结合多个相关数据、获取对判断有帮助的信息,并针对这些信息的特点采取了端对端的机器学习模型结构以取得更好的运行效率和判断效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。