本发明涉及物联网技术领域,具体涉及一种摄像头检测方法、装置、电子设备及系统。
背景技术:
摄像头是一种常用的视频输入设备,而且在物联技术网领域应用越来越广泛。目前,现有的摄像头一般是将采集的视频数据转成数字信号传输给其他电子设备。但是,针对摄像头模糊或者摄像头遮挡,需要人工排查,发现较困难,降低了摄像头的清晰性。
技术实现要素:
由于现有方法存在上述问题,本发明实施例提出一种摄像头检测方法、装置、电子设备及系统。
第一方面,本发明实施例提出一种摄像头检测方法,包括:
获取摄像头监控到的视频数据;
根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
可选地,所述获取摄像头采集到的视频数据,包括:
确定获取所述视频数据的指定时间间隔;
按照所述指定时间间隔,获取指定时间长度的视频数据。
可选地,还包括:
获取用于模型训练的训练数据集,所述训练数据集中包括模糊图片、遮挡图片和正常图片;
将所述模糊图片、遮挡图片和正常图片作为训练使用的输入数据,采用深度学习方式进行训练,得到用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件的摄像头深度学习模型;
其中,所述采用深度学习方式进行训练包括:采用指定语言和指定框架,对所述模糊图片、遮挡图片和正常图片进行分类训练,得到对应的权重。
可选地,所述根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件,包括:
将所述视频数据转换为待检测图片;
将所述待检测图片输入到所述摄像头深度学习模型中,并根据输出结果确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
可选地,还包括:
对所述摄像头深度学习模型进行缩小和加密,得到对应的网络文件和权重文件,所述网络文件和权重文件用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件。
可选地,所述根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件,包括:
通过可执行程序和动态链接库,将所述视频数据转换为待检测图片;
调用所述网络文件和所述权重文件,得到所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间;
根据所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间,确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
可选地,所述输出所述检测结果和/或所述检测结果的提示信息,包括:
通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息;和/或
将所述检测结果和/或所述检测结果的提示信息上传至服务器。
第二方面,本发明实施例提出一种摄像头检测装置,包括:
第一获取模块,用于获取摄像头监控到的视频数据;
检测模块,用于根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
输出模块,用于若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
第三方面,本发明实施例提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述摄像头检测方法的步骤。
第四方面,本发明实施例提出一种摄像头检测系统,包括一个或多个摄像头、智能终端和/或服务器;
其中,所述智能终端包括摄像头模糊及遮挡模块;所述摄像头模糊及遮挡模块用于实现如第一方面所述摄像头检测方法的步骤。
由上述技术方案可知,本发明实施例通过获取摄像头监控到的视频数据,并根据视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件,若检测结果包括摄像头模糊事件和/或摄像头遮挡事件,则输出该检测结果和/或该检测结果的提示信息,从而实现了基于深度学习检测摄像头模糊事件和/或摄像头遮挡事件,提高了摄像头检测的效率和准确性,还有效填补了实时监控并给出提示的这一空白,并确保了摄像头能够稳定、清晰地收集视频数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明实施例提供的一种摄像头检测方法的流程示意图;
图2为本发明实施例提供的一种摄像头检测方法的应用场景示意图;
图3为本发明实施例提供的一种摄像头检测装置的结构示意图;
图4为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于清楚描述本发明实施例的技术方案,在本发明的各实施例中,若采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
图1为本发明实施例提供的一种摄像头检测方法的流程示意图;该方法可以用于实现摄像头检测功能的电子设备上,比如:智能终端;如图1所示,该摄像头检测方法可以包括:
s110、获取摄像头监控到的视频数据。
具体地,摄像头实时监控现场环境,用于实现摄像头检测功能的电子设备可以通过摄像头获取当前视频。
s120、根据视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件。
具体地,摄像头模糊事件可以指的是摄像头镜头模糊,摄像头遮挡事件可以指的是摄像头被遮挡物遮挡。
s130、若检测结果包括摄像头模糊事件和/或摄像头遮挡事件,则输出该检测结果和/或该检测结果的提示信息。
在一示例性场景中,如图2所示,1代表车载智能终端,2代表摄像头。车载智能终端可以获取一个或多个摄像头监控到的视频数据,并根据视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件,若检测结果包括摄像头模糊事件和/或摄像头遮挡事件,则输出检测结果和/或该检测结果的提示信息。
由上述实施例可见,通过获取摄像头监控到的视频数据,并根据视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件,若检测结果包括摄像头模糊事件和/或摄像头遮挡事件,则输出该检测结果和/或该检测结果的提示信息,从而实现了基于深度学习检测摄像头模糊事件和/或摄像头遮挡事件,提高了摄像头检测的效率和准确性,还有效填补了实时监控并给出提示的这一空白,并确保了摄像头能够稳定、清晰地收集视频数据。
进一步地,建立在上述方法的基础上,所述获取摄像头采集到的视频数据,包括:
(1-1-1)确定获取所述视频数据的指定时间间隔。
具体地,指定时间间隔可以是预先设置的一个值。比如,每隔600秒获取一次视频数据。
(1-1-2)按照所述指定时间间隔,获取指定时间长度的视频数据。
具体地,指定时间长度可以是预先设置的一个值。比如,100秒。
由上述实施例可见,通过确定获取所述视频数据的指定时间间隔,按照所述指定时间间隔,获取指定时间长度的视频数据,从而保证了基于深度学习检测摄像头模糊事件和/或摄像头遮挡事件的同时,还节省了资源。
进一步地,建立在上述方法的基础上,还包括:
(1-2-1)获取用于模型训练的训练数据集,所述训练数据集中包括模糊图片、遮挡图片和正常图片。
具体地,可以选取实际在用的车载摄像头的模糊图片(渣土车后视货箱摄像头,轿车前向摄像头,驾驶座右上角的监控摄像头),遮挡图片(渣土车后视货箱摄像头,轿车前向摄像头,驾驶座右上角的监控摄像头),正常图片各1万张,图片尺寸不限,但一定要完整真实,不存在虚构图片。
(1-2-2)将所述模糊图片、遮挡图片和正常图片作为训练使用的输入数据,采用深度学习方式进行训练,得到用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件的摄像头深度学习模型。其中,所述采用深度学习方式进行训练包括:采用指定语言和指定框架,对所述模糊图片、遮挡图片和正常图片进行分类训练,得到对应的权重。
具体地,运用深度学习模型,对主流的模型进行优化再创造,在嵌入式平台上保证精度的情况下尽量减小模型大小(主流的模型精度高,但不适用于嵌入式平台,硬件算力跟不上,模型大小过大,故无法部署在嵌入式设备上,优化再创造的模型精度满足需求的前提下,占用的内存小,算力跟得上,能够部署在嵌入式设备上),使用python语言,运用pytorch框架对选取的模糊图片、遮挡图片和正常图片这三类图片进行分类训练,得出权重,并持续添加训练数据集,一周添加一次,每次一类添加1000张新的图片,尤其是实际运用中出现误判较多的场景,增加模型的健壮性。
其中,python是一种跨平台的计算机程序设计语言,其是一种面向对象的动态类型语言。pytorch是一个开源的python机器学习库,其用于自然语言处理等应用程序。
由上述实施例可见,通过获取用于模型训练的训练数据集,所述训练数据集中包括模糊图片、遮挡图片和正常图片,并将所述模糊图片、遮挡图片和正常图片作为训练使用的输入数据,采用深度学习方式进行训练,得到用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件的摄像头深度学习模型,从而提高了模型训练的可靠性,进而保证了摄像头检测的可靠性。
进一步地,建立在上述方法的基础上,在执行s120中根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件时,可以包括:
(1-3-1)将所述视频数据转换为待检测图片。
具体地,可以按照指定切割间隔,将视频数据切割成一张或多张待检测图片。比如:指定切割间隔为10秒。
(1-3-2)将所述待检测图片输入到所述摄像头深度学习模型中,并根据输出结果确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
具体地,若输出结果中出现一定数量的模糊图片,则可以确定出现摄像头模糊事件;若输出结果中出现一定数量的遮挡图片,则确定出现摄像头遮挡事件。
由上述实施例可见,通过将所述视频数据转换为待检测图片,将所述待检测图片输入到所述摄像头深度学习模型中,并根据输出结果确定是否出现摄像头模糊事件和/或摄像头遮挡事件,从而提高了摄像头检测的效率。
进一步地,建立在上述方法的基础上,该摄像头检测方法还可以包括:
(1-4-1)对所述摄像头深度学习模型进行缩小和加密,得到对应的网络文件和权重文件,所述网络文件和权重文件用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件。
具体地,将深度学习过程保存下来的摄像头深度学习模型,通过第三方框架处理,对模型进行缩小和加密,得到对应的网络文件(即.net文件)和权重文件(.net)。其中,网络文件(即.net文件)和权重文件(.net)这两个均是二进制自定义文件,主流平台无法打开,是本模型解决问题的专有格式。并且,网络文件(即.net文件)是训练用的网络保存的文件,权重文件(.net)是使用训练网络训练得出的权重文件。
由上述实施例可见,通过对所述摄像头深度学习模型进行缩小和加密,得到对应的网络文件和权重文件,所述网络文件和权重文件用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件,从而降低了针对摄像头检测的硬件需求,还扩展了针对摄像头检测的应用平台。
进一步地,建立在上述方法的基础上,在执行s120中根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件时,可以包括:
(1-5-1)通过可执行程序和动态链接库,将所述视频数据转换为待检测图片。
具体地,将模型的推理过程,运用编译或交叉编译,转成linux平台,centos平台,android平台,windows平台,rk1808芯片(重点在芯片和服务器平台)可用的可执行程序和动态链接库,并通过各平台的可执行程序和动态链接库,将传入的摄像头实时视频转成待检测图片。
(1-5-2)调用所述网络文件和所述权重文件,得到所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间。
具体地,通过调用网络文件(即.net文件)和权重文件(.net),可以得到待检测图片对应的图片类别、图片类别的置信度、图片判断的时间。通过图片的判断时间,对编译的一些优化选项做出微调,开关某些优化选项;通过图片的类别和实际图片的类别作对比,将某些场景下识别错误的图片挑选一部分增加入训练集相应类别中去;通过图片类别的置信度,对相应的图像类别的数据集做一些调整(比如增加数据集,数据增强等操作)。
另外,可以将交叉编译的可执行程序、动态链接库及保存下来的网络文件(即.net文件)和权重文件(.net),上传至对应服务器及各终端,后续如不需要增加类别(例如在模糊遮挡基础上增加过度曝光)或者删除类别,那么可执行程序和动态链接库不需要更新,每次更新及上传最新训练的.net和.weight文件即可。通过开通服务器的某个端口,服务器将实时接收各终端上传的图片。
其中,模型维护一般添加训练容易出错的场景数据,删除一些重复场景过多的图片,增加类别,对训练数据的增加等。
(1-5-3)根据所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间,确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
由上述实施例可见,通过可执行程序和动态链接库,将所述视频数据转换为待检测图片,调用所述网络文件和所述权重文件,得到所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间,根据所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间,确定是否出现摄像头模糊事件和/或摄像头遮挡事件,从而提高了摄像头检测的准确性和效率。
进一步地,建立在上述方法的基础上,在执行s130中输出所述检测结果和/或所述检测结果的提示信息时,可以包括:
通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息;和/或
将所述检测结果和/或所述检测结果的提示信息上传至服务器。
具体地,若摄像头检测系统中只包括摄像头和智能终端,此时可以通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息;若摄像头检测系统中除了包括摄像头和智能终端之外,还包括服务器,此时可以通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息之外,还可以将所述检测结果和/或所述检测结果的提示信息上传至服务器。
由上述实施例可见,可以通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息;和/或将所述检测结果和/或所述检测结果的提示信息上传至服务器,从而有效填补了实时监控并给出提示的这一空白,并确保了摄像头能够稳定、清晰地收集视频数据。
图3为本发明实施例提供的一种摄像头检测装置的流程示意图,该摄像头检测装置可以用于实现摄像头检测功能的电子设备上,比如:智能终端;如图3所示,该摄像头检测装置可以包括:
第一获取模块31,用于获取摄像头监控到的视频数据;
检测模块32,用于根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
输出模块33,用于若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
进一步地,建立在上述所示装置的基础上,所述第一获取模块31可以包括:
确定子模块,用于确定获取所述视频数据的指定时间间隔;
获取子模块,用于按照所述指定时间间隔,获取指定时间长度的视频数据。
进一步地,建立在上述所示装置的基础上,还包括:
第二获取模块,用于获取用于模型训练的训练数据集,所述训练数据集中包括模糊图片、遮挡图片和正常图片;
训练模块,用于将所述模糊图片、遮挡图片和正常图片作为训练使用的输入数据,采用深度学习方式进行训练,得到用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件的摄像头深度学习模型;
其中,所述采用深度学习方式进行训练包括:采用指定语言和指定框架,对所述模糊图片、遮挡图片和正常图片进行分类训练,得到对应的权重。
进一步地,建立在上述所示装置的基础上,所述检测模块32可以包括:
第一转换子模块,用于将所述视频数据转换为待检测图片;
第一检测子模块,用于将所述待检测图片输入到所述摄像头深度学习模型中,并根据输出结果确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
进一步地,建立在上述所示装置的基础上,还包括:
模型处理模块,用于对所述摄像头深度学习模型进行缩小和加密,得到对应的网络文件和权重文件,所述网络文件和权重文件用于检测是否出现摄像头模糊事件和/或摄像头遮挡事件。
进一步地,建立在上述所示装置的基础上,所述检测模块32可以包括:
第二转换子模块,用于通过可执行程序和动态链接库,将所述视频数据转换为待检测图片;
调用子模块,用于调用所述网络文件和所述权重文件,得到所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间;
第二检测子模块,用于根据所述待检测图片对应的图片类别、图片类别的置信度和图片判断的时间,确定是否出现摄像头模糊事件和/或摄像头遮挡事件。
进一步地,建立在上述所示装置的基础上,所述输出模块33可以包括:
显示子模块,用于通过智能终端的显示屏显示所述检测结果和/或所述检测结果的提示信息;和/或
上传子模块,用于将所述检测结果和/或所述检测结果的提示信息上传至服务器。
本发明实施例所述的摄像头检测装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
图4为本发明实施例提供的一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(communicationsinterface)402、存储器(memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:
获取摄像头监控到的视频数据;
根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取摄像头监控到的视频数据;
根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
获取摄像头监控到的视频数据;
根据所述视频数据和预先构建的摄像头深度学习模型,检测是否出现摄像头模糊事件和/或摄像头遮挡事件;
若检测结果包括所述摄像头模糊事件和/或所述摄像头遮挡事件,则输出所述检测结果和/或所述检测结果的提示信息。
进一步地,本发明实施例公开一种摄像头检测系统,包括一个或多个摄像头、智能终端和服务器;其中,所述智能终端包括摄像头检测装置;
所述摄像头检测装置用于实现上述摄像头检测方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。