一种基于深度学习的机房设备智能识别方法及***
技术领域
本发明属于设备识别领域,尤其涉及一种基于深度学习的机房设备智能识别方法及***。
背景技术
机房巡检是保障机房安全运行的一项重要制度。鉴于传统人工巡检存在工作量大,受巡检员的经验等主观因素影响大,手工记录难以保存等问题,越来越多的智能巡检机器人在机房中得到了实际应用,有效的提高了设备自动识别和故障报警的效率,降低了运维人员的劳动强度,为机房无人值守提供了强有力的技术支撑。
虽然现有的巡检机器人在机房巡检时产生了海量的可见光图像,提供了对机房关键设备外观特征进行监控和分析的基础;但目前设备故障检测主要还是采取人工分析的方式,从而导致在进行故障检测时,不但工作量大,而且易发生严重的检测误判或漏判情况,难以准确及时的发现故障。另外,机房内设备数量种类繁多,很难根据机器人拍摄的照片判断出设备的类型和位置以及它们和照片上指示灯之间的对应关系。
发明内容
针对上述现有技术中存在的缺陷,本发明的目的在于提供一种基于深度学习的机房设备智能识别方法及***,可以避免采取人工分析的方式进行检测,从而避免出现检测误判或漏判的情况。
第一方面,本发明提供一种基于深度学习的机房设备智能识别方法,其包括:
步骤S101、采集指定机房设备的工作状态信息,其包括:
基于用户指令,获取所述指定机房设备的坐标;
基于所述坐标,采集所述指定机房设备的工作状态信息;
步骤S103、使用第一神经网络模型对所述工作状态信息进行数据加工,得到第一加工数据,其包括:
采用预先训练的设备识别神经网络模型,对所述图片进行识别,并对所述设备进行定位;
基于所述定位信息将所述图片中的设备部分裁剪下来,并保存为第一加工数据;
步骤S105、使用第二神经网络模型对所述第一加工数据进行处理,得到第二加工数据,其包括:
采用预先训练的指示灯识别神经网络模型,基于第一加工数据对设备指示灯进行检测;
步骤S107、将所述第二加工数据与预存参考数据进行比对;
步骤S109、基于比对结果,执行相应的操作。
在一个实施例中,所述工作状态信息是指包含所述指定机房设备的指示灯的图片。
在一个实施例中,所述步骤S107具体包括:
将在数据库中预先存储的指定机房设备故障对应的指示灯数目,和检测出的关键设备图片上的指示灯数目进行对比。
在一个实施例中,在数据库中预先存储的指定机房设备故障对应的指示灯数目,包括:
构建数据库对应的设备故障表,根据不同设备发生故障时指示灯数目不同,将设备名称和设备发生故障时指示灯数目写入。
在一个实施例中,所述设备识别神经网络模型训练过程包括:
构建第一训练样本集,所述第一训练样本集中包括多张标记了指定机房设备的图片,所述图片由机器人在巡检中预先采集;
采用yolo算法对所述第一训练样本集中的多张图片进行训练,得到所述指定机房设备识别神经网络模型的各个参数。
在一个实施例中,所述指示灯识别神经网络模型训练过程具体包括:
构建第二训练样本集,所述第二训练样本集中包括多张标记设备指示灯的第二图片,所述第二图片由机器人在巡检过程中预先采集;
采用yolo算法对所述第二训练样本集中的多张第二图片进行训练,得到设备指示灯识别神经网络模型的各个参数。
在一个实施例中,所述步骤S109具体包括:
若检测的设备指示灯图片与预存储的指示灯图片显示相同的故障,则发出相应的警报。
第二方面,本发明还提供一种基于深度学习的机房设备智能识别***,其包括:
采集模块,其用于采集指定机房设备的工作状态信息;
第一数据加工模块,其使用第一神经网络模型对所述工作状态信息进行数据加工,得到第一加工数据;
第二数据加工模块,其使用第二神经网络模型对所述第一加工数据进行处理,得到第二加工数据;
比对模块,其用于将所述第二加工数据与预存参考数据进行比对;
处理模块,其用于基于比对结果,执行相应的操作。
在一个实施例中,所述采集模块包括:
坐标获取模块,其基于用户指令,获取所述指定机房设备的坐标;
信息采集模块,其基于所述坐标,采集所述指定机房设备的工作状态信息。
在一个实施例中,所述第一数据加工模块包括:
识别定位模块,其采用预先训练的设备识别神经网络模型,对所述图片进行识别,并对所述设备进行定位;
裁剪模块,其基于所述定位信息将所述图片中的设备部分裁剪下来,并保存为第一加工数据。
与现有技术相比,本发明通过第一神经网络模型和第二神经网络模型对机房设备进行检测,以判断机房设备是否存在故障,从而可以提高对机房设备的检测效率,并且可以避免出现检测误判或漏判的情况。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的一种基于深度学习的机房设备智能识别方法流程图;
图2是示出根据本发明某以实施例的机房设备智能识别方法的流程图;
图3是示出根据本发明某一实施例的对图片进行训练的流程图;
图4是示出根据本发明某一实施例的机房设备智能识别方法流程图;
图5是示出根据本发明实施例的一种基于深度学习的机房设备智能识别***的示意图;
图6是示出根据本发明某一实施例的机房设备智能识别***的示意图;以及
图7是示出根据本发明实施例的一种电子设备的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述…,但这些…不应限于这些术语。这些术语仅用来将…区分开。例如,在不脱离本发明实施例范围的情况下,第一…也可以被称为第二…,类似地,第二…也可以被称为第一…。
下面结合附图详细说明本发明的可选实施例。
实施例一
参见图1所示,本发明实施例提供一种基于深度学习的机房设备智能识别方法,其包括:
步骤S101、采集指定机房设备的工作状态信息,优选地,所述工作状态信息是指包含所述指定机房设备的指示灯的图片;
步骤S103、使用第一神经网络模型对所述工作状态信息进行数据加工,得到第一加工数据;
步骤S105、使用第二神经网络模型对所述第一加工数据进行处理,得到第二加工数据;
步骤S107、将所述第二加工数据与预存参考数据进行比对;
步骤S109、基于比对结果,执行相应的操作。
实施例二
在实施例一的基础上,本实施还可以包括以下内容:
参见图2所示,进行采集指定机房设备的工作状态信息时,可以通过人工或者机器人进行采集。在一个应用场景中,以机器人进行采集为例,所述步骤S101具体可以包括:
基于用户指令,获取所述指定机房设备的坐标;
基于所述坐标,采集所述指定机房设备的工作状态信息(包含所述指定机房设备的指示灯的图片)。
为了保证对图片进行检测时,使得检测时仅对指定机房设备检测,以达到降低检测误差和提高检测效率的效果,可以对采集的图片进行预处理。在一个应用场景中,所述步骤S103进行预处理时,其具体可以包括:
采用预先训练的设备识别神经网络模型,对所述图片进行识别,并对所述设备进行定位;
基于所述定位信息将所述图片中的设备部分裁剪下来,并保存为第一加工数据。
其中,基于所述定位信息将所述图片中的设备部分裁剪下来,具体可以包括:
将含有机房关键设备的图像分为S×S的网格,获取S×S的网格中的每个网格图像;
在每个网格中预测多个边界框和置信度分数,边界框反应自身的位置,置信度分数反映了它的准确程度,如果没有目标,置信度分数为零,其中,每一个边界框包含5个值:分别为x,y,w,h和confidence。(x,y)坐标表示边界框相对于网格单元边界框的中心;w表示宽度,h表示高度,均是相对于整张图像进行预测的,confidence(置信度)表示预测框与实际边界框之间的交集;
根据每个网格的置信度分数和预测的概率,来输出机房关键的设备类型和设备在图片中的坐标位置。根据上述得到的(x,y)坐标以及w,h,使用opencv计算机视觉库对图片中设备部分进行截取并保存。
为了更好的理解步骤S103进行预处理的方案,预先训练的所述设备识别神经网络模型的训练过程可以包括:
构建第一训练样本集,所述第一训练样本集中包括多张标记了指定机房设备的图片,所述图片由机器人在巡检中预先采集;
采用yolo算法对所述第一训练样本集中的多张图片进行训练,得到所述指定机房设备识别神经网络模型的各个参数。
其中,多张标记了指定机房设备的图片根据需求选择,如果机房内存在多种关键设备都需要检测并报警,则每种设备都需要拍照采集。另外,预先采集,主要是为了制作训练样本集的需要,可以通过手动控制机器人到设备位置,并操纵机载摄像头进行多角度拍照得到含有指定机房设备的图片。
实施例三
在实施例二的基础上,本实施例还可以包括以下内容:
在对采集的指定机房设备的工作状态信息(图片)进行预处理后,对预处理的结果进行识别检测,具体地,所述步骤105可以包括:
采用预先训练的指示灯识别神经网络模型,基于第一加工数据对设备指示灯进行检测,并将检测结果作为第二加工数据。
为了更好的理解步骤S105进行识别检测的方案,预先训练的所述指示灯识别神经网络模型的训练过程可以包括:
构建第二训练样本集,所述第二训练样本集中包括多张标记设备指示灯的第二图片,所述第二图片由机器人在巡检过程中预先采集;
采用yolo算法对所述第二训练样本集中的多张第二图片进行训练,得到设备指示灯识别神经网络模型的各个参数。
其中,YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时***。YOLO不同于传统的检测算法,采用滑动窗口来寻找目标,其直接采用单个卷积神经网络来预测多个bounding boxes和类别概率。
参见图3所示,在一个应用场景中,采用yolo算法对图片进行训练,具体可以包括:
采集若干张(例如,3000张)机房关键设备图片,通过人工的方式对图片中的机房关键设备进行标注;
建立文件夹,将标注后的标注文件和图片按训练要求放入文件夹中;
在YOLO官网下载预训练权重文件yolov3.weights,根据转换脚本将标注文件转换成yolo格式的文件,并划分为训练集,测试集和验证集;
执行训练脚本开始训练,训练完成后可以对生成的模型进行测试,确定识别准确率达到要求后,即可得到机房关键设备识别神经网络模型的各个参数。
实施例四
在实施例三的基础上,本实施例还可以包括以下内容:
更进一步,对预处理的结果进行识别检测后,需要根据识别检测结果判断指定机房设备是否存在故障,具体地,所述步骤S107可以包括:
将在数据库中预先存储的指定机房设备故障对应的指示灯数目,和检测出的关键设备图片上的指示灯数目进行对比。
另外,在根据识别检测结果判断指定机房设备是否存在故障时,可以通过步骤S109的判断依据进行判断,所述步骤S109具体可以包括:
若检测的设备指示灯图片与预存储的指示灯图片显示相同的故障,则发出相应的警报。
实施例五
在上述实施例的基础上,本实施例可以包括以下内容:
参见图4所示,本发明实施例提供一种基于深度学习的机房设备智能识别方法,其可以包括以下步骤:
机器人在机房巡检中根据预设坐标位置采集关键设备图片;
采用预先训练的设备识别神经网络模型(第一神经网络模型),对机房内关键设备图片进行识别和定位;
根据定位信息将图片中的关键设备部分裁剪下来并保存;
采用预先训练的指示灯识别神经网络模型(第二神经网络模型),在保存的关键设备图片上对设备指示灯进行检测;
根据在数据库中预先存储的关键设备故障对应的指示灯数目,和检测出的关键设备图片上的指示灯数目进行对比;
根据对比结果判断设备是否发生故障。
在一些应用场景中,所述在数据库中预先存储的关键设备故障对应的指示灯数目统计过程包括:构建数据库对应的设备故障表,根据不同设备发生故障时指示灯数目不同,将设备名称和设备发生故障时指示灯数目写入。
另外,关键设备对应一个模型,指示灯对应另一个模型,即设备识别神经网络模型和指示灯识别神经网络模型为不同的模型。若机房内设备种类过多,指示灯大小形状过于复杂,可以进行增加模型数量来分开对应,已完成对关键设备的检测。
本发明实施例基于深度学习YOLO目标检测算法,使用巡检机器人对机房内关键设备进行特征采集,然后检测出关键设备所在位置和对应的设备名称,在此基础上对关键设备进行指示灯检测,最终生成关键设备型号和与其对应的指示灯检测结果,将预存在数据库中的关键设备故障后指示灯信息和检测出来的信息进行比对,最终输出设备发生故障的报警信号,该机房设备智能识别方法代替人工检测的方法对信息进行判断和处理,克服了人工监控效率低下等问题,并且大大提高了准确度,同时降低了机房监控成本。
实施例六
在实施例五的基础上,本实施例可以包括以下内容:
为了使本发明的目的、技术方案及优点更加清楚明白,将对本发明进行进一步详细说明。
机器人在机房巡检中根据预设坐标位置采集关键设备图片,具体可以包括:
机器人在机房内巡检时,在地图的某些坐标点上存在一些机房关键设备,当机器人运动到这些坐标点时,可以通过控制机器人自带的摄像头对关键设备拍照并保存。
采用预先训练的关键设备识别神经网络模型,对机房内关键设备图片进行识别和定位,具体可以包括:
将上述保存的图像输入关键设备识别神经网络模型,便得到出现在上述图像中的各种设备类型以及在图像上的位置信息。
根据定位信息将图片中的关键设备部分裁剪下来并保存,具体可以包括:
根据上述设备在图像上的位置信息利用图像裁剪功能模块将图像上的设备部分裁剪下来保存。
采用预先训练的指示灯识别神经网络模型,在保存的关键设备图片上对设备指示灯进行检测,具体可以包括:
将上述裁剪后得到的关键设备部分图片输入指示灯识别神经网络模型,得到检测出来的设备上指示灯数量。
根据在数据库中预先存储的关键设备故障对应的指示灯数目,和检测出的关键设备图片上的指示灯数目进行对比,具体可以包括:
不同类型的机房设备,发生故障时对应的指示灯数量不同,因此预先在数据库存储不同设备故障时对应的指示灯数量信息。
根据对比结果判断设备是否发生故障,具体可以包括:
若检测出来的设备指示灯数目和数据库中预存的设备发生故障时的指示灯数目一致时,则发出设备故障报警信号。
实施例七
在上述实施例的基础上,本实施例可以包括以下内容:
参见图5所示,本发明实施例提供一种基于深度学习的机房设备智能识别***500,其包括:
采集模块501,其用于采集指定机房设备的工作状态信息;
第一数据加工模块502,其使用第一神经网络模型对所述工作状态信息进行数据加工,得到第一加工数据;
第二数据加工模块503,其使用第二神经网络模型对所述第一加工数据进行处理,得到第二加工数据;
比对模块504,其用于将所述第二加工数据与预存参考数据进行比对;
处理模块505,其用于基于比对结果,执行相应的操作。
其中,预存参考数据为预先在数据库建立的不同设备故障时对应的指示灯信息。
实施例八
在上述实施例的基础上,本实施例可以包括以下内容:
参见图6所示,本发明实施例提供一种基于深度学习的机房设备智能识别***600,包括:
获取模块601,使用巡检机器人按照预设坐标位置采集机房内关键设备的图像特征;
第一识别模块602,用于采用预先训练的设备识别神经网络模型,对机器人采集的设备图片进行识别,输出设备类型和设备在图片中的坐标位置;
设备图片裁剪模块603,根据设备在图片中的坐标位置,对图片中设备部分进行裁剪并保存;
第二识别模块604,用于采用预先训练的指示灯识别神经网络模型,对裁剪后的设备图片上的指示灯进行识别;
判断模块605,用于将识别出的机房设备指示灯和数据库中预先保存的设备发生故障时的指示灯进行比对,判断该设备是否发生故障。
实施例九
在上述实施例的基础上,本实施例可以包括以下内容:
本发明实施例中的所述采集模块可以包括:
坐标获取模块,其基于用户指令,获取所述指定机房设备的坐标;
信息采集模块,其基于所述坐标,采集所述指定机房设备的工作状态信息。
进一步地,所述第一数据加工模块可以包括:
识别定位模块,其采用预先训练的设备识别神经网络模型,对所述图片进行识别,并对所述设备进行定位;
裁剪模块,其基于所述定位信息将所述图片中的设备部分裁剪下来,并保存为第一加工数据。
实施例十
参见图7所示,本实施例还提供一种电子设备700,所述电子设备700,包括:至少一个处理器701;以及,与所述至少一个处理器701通信连接的存储器702;其中,
所述存储器702存储有可被所述一个处理器701执行的指令,所述指令被所述至少一个处理器701执行,以使所述至少一个处理器701能够执行如上实施例所述的方法步骤。
实施例十一
本公开实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行如上实施例所述的方法步骤。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(AN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。