CN112711423A - 引擎构建方法、入侵检测方法、电子设备和可读存储介质 - Google Patents
引擎构建方法、入侵检测方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN112711423A CN112711423A CN202110063627.1A CN202110063627A CN112711423A CN 112711423 A CN112711423 A CN 112711423A CN 202110063627 A CN202110063627 A CN 202110063627A CN 112711423 A CN112711423 A CN 112711423A
- Authority
- CN
- China
- Prior art keywords
- neural network
- detection model
- target detection
- inference engine
- format
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 150
- 238000010276 construction Methods 0.000 title claims abstract description 28
- 238000013528 artificial neural network Methods 0.000 claims abstract description 143
- 238000013135 deep learning Methods 0.000 claims abstract description 28
- 238000012549 training Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 24
- 238000002372 labelling Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011897 real-time detection Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种引擎构建方法、入侵检测方法、电子设备和可读存储介质,引擎构建方法包括:构建第一目标检测模型;获取图片样本,在神经网络深度学习框架下,采用图片样本训练第一目标检测模型,得到第二目标检测模型;将第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型;基于可变形卷积操作算子,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎。本发明的技术方案通过采用该神经网络推理引擎,可大幅提高图形处理器利用率,提高实际工程的投入产出比。
Description
技术领域
本发明涉及检测技术领域,具体而言,涉及一种神经网络推理引擎构建方法、入侵检测方法、电子设备和可读存储介质。
背景技术
站房是整个工程监控系统的核心区域,大量的计算分析部署在这里,为防止闲杂人等随意进入及系统更新维护责任到人,保证站房系统安全及系统的有效管理,需要对监控站房的上百路甚至上千路摄像头进行实时行人检测。在站房行人检测模型训练完之后,需要对其部署供前方服务器调用。
一般的深度学习检测模型,训练时为了加快速度,会使用多GPU(GraphicsProcessing Unit,图形处理器)分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台进行部署,部署端也要有与训练时相同的深度学习环境。由于训练的网络模型可能会很大,参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。工程项目为最大化投入产出比,需要一台GPU服务器支持尽可能多路摄像头站房入侵实时检测。
相关技术的CenterNet检测模型,在单GPU显卡的每秒服务响应个数为43RPS,为最大化项目的投入产出比,性能有待提升。
发明内容
本发明旨在解决上述技术问题的至少之一。
为此,本发明的第一目的在于提供一种神经网络推理引擎构建方法。
本发明的第二目的在于提供一种入侵检测方法。
本发明的第三目的在于提供一种电子设备。
本发明的第四目的在于提供一种可读存储介质。
为实现本发明的第一目的,本发明的技术方案提供了一种神经网络推理引擎构建方法,包括:构建第一目标检测模型;获取图片样本,在神经网络深度学习框架下,采用图片样本训练第一目标检测模型,得到第二目标检测模型;将第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型;基于可变形卷积操作算子,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎。
通过采用本实施例的该神经网络推理引擎,可大幅提高GPU(GraphicsProcessing Unit,图形处理器)利用率,提高实际工程的投入产出比。
另外,本发明提供的技术方案还可以具有如下附加技术特征:
上述技术方案中,构建第一目标检测模型,具体包括:设定第一目标检测模型,其中,第一目标检测模型包括CenterNet目标检测模型;针对第一目标检测模型,设置可变形卷积组件。
本实施例中,第一目标检测模型采用CenterNet目标检测模型,并且,设置可变形卷积组件,具有结构简单,使用便捷,速度快精度高,占用内存少等优点。
上述任一技术方案中,获取图片样本,在神经网络深度学习框架下,采用图片样本训练第一目标检测模型,得到第二目标检测模型,具体包括:获取图片样本,将图片样本在神经网络深度学习框架下进行标注;采用标注后的图片样本训练第一目标检测模型,得到第二目标检测模型。
本实施例中,针对图片样本首先在神经网络深度学习框架下进行标注,标注出检测目标,再使用标注后的图片样本训练第一目标检测模型,通过对标准后的图片样本对第一目标检测模型进行训练,提高第一目标检测模型识别的准确性。
上述任一技术方案中,神经网络深度学习框架包括PyTorch神经网络深度学习框架,第二目标检测模型格式为pth格式,开放神经网络交换格式包括ONNX格式,神经网络推理引擎包括TensorRT推理引擎。
本实施例中,将第二目标检测模型pth格式转换为ONNX格式,则通过PyTorch神经网络深度学习框架训练的第二目标检测模型,可以在其他框架下,进行推理,TensorRT推理引擎可提供最大的推理吞吐量和效率,使得训练好的第三目标检测模型速度加快。
上述任一技术方案中,对神经网络推理引擎进行解释和转换,编译生成库文件。
本实施例中,通过编译生成库文件,使得调用神经网络推理引擎简便快捷。
上述任一技术方案中,基于可变形卷积操作算子,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎,包括:在神经网络推理引擎中注册可变形卷积操作算子;将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎。
本实施例中,神经网络推理引擎不设有可变形卷积操作算子,将可变形卷积操作算子作为一个定制的操作算子注册到神经网络推理引擎中。通过设置可变形卷积操作算子,使得神经网络推理引擎进行目标识别时,准确率更高。
上述任一技术方案中,将第三目标检测模型编译为神经网络推理引擎的文件格式,包括:将第三目标检测模型的ONNX格式编译为神经网络推理引擎的文件格式,神经网络推理引擎的文件格式为trt格式。
本实施例中,神经网络推理引擎的文件格式为trt格式,因为第二目标检测模型为pth格式,无法直接转换为trt格式,通过将pth格式转换为ONNX格式,进而使得目标检测模型可以应用在神经网络推理引擎中,提高检测准确率,以及检测效率。
为实现本发明的第二目的,本发明的技术方案提供了一种入侵检测方法,采用如本发明任一实施例的神经网络推理引擎构建方法构建的神经网络推理引擎,包括:获取待检测图片;调用神经网络推理引擎,针对待检测图片进行入侵检测。
本实施例中,首先,获取待检测图片,然后,针对待检测图片,调用神经网络推理引擎,进行入侵检测,通过神经网络推理引擎的调用,可大幅提高GPU(图形处理器)利用率,提高实际工程的投入产出比。
为实现本发明的第三目的,本发明的技术方案提供了一种电子设备,包括:存储器和处理器,存储器存储有程序或指令,处理器执程序或指令;其中,处理器在执行程序或指令时,实现如本发明任一技术方案的神经网络推理引擎构建方法或实现如本发明任一实施例的入侵检测方法的步骤。
本发明技术方案提供的电子设备实现如本发明任一技术方案的神经网络推理引擎构建方法的步骤,因而其具有如本发明任一技术方案的神经网络推理引擎构建方法的全部有益效果,在此不再赘述。
为实现本发明的第四目的,本发明的技术方案提供了一种可读存储介质,可读存储介质存储有程序或指令,程序或指令被执行时,实现上述任一技术方案的神经网络推理引擎构建方法或实现如本发明任一实施例的入侵检测方法的步骤。
本发明技术方案提供的可读存储介质实现如本发明任一技术方案的神经网络推理引擎构建方法的步骤,因而其具有如本发明任一技术方案的神经网络推理引擎构建方法的全部有益效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的神经网络推理引擎构建方法流程图之一;
图2为本发明一个实施例的神经网络推理引擎构建方法流程图之二;
图3为本发明一个实施例的神经网络推理引擎构建方法流程图之三;
图4为本发明一个实施例的神经网络推理引擎构建方法流程图之四;
图5为本发明一个实施例的神经网络推理引擎构建方法流程图之五;
图6为本发明一个实施例的神经网络推理引擎构建方法流程图之六;
图7为本发明一个实施例的入侵检测方法流程图之一;
图8为本发明一个实施例的电子设备组成示意图;
图9为本发明一个实施例的入侵检测方法流程图之二。
其中,图8中附图标记与部件名称之间的对应关系为:
200:电子设备,210:存储器,220:处理器。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面参照图1至图9描述本发明一些实施例的一种神经网络推理引擎构建方法、入侵检测方法、电子设备200和可读存储介质。
站房是整个工程监控系统的核心区域,大量的计算分析部署在这里,为防止闲杂人等随意进入及系统更新维护责任到人,保证站房系统安全及系统的有效管理,需要对监控站房的上百路甚至上千路摄像头进行实时行人检测。在站房行人检测模型训练完之后,需要对其部署供前方服务器调用。一般的深度学习检测模型,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如NVIDIA Jetson,嵌入式系统)进行部署,部署端也要有与训练时相同的深度学习环境,如Caffe(Convolutional Architecture for Fast Feature Embedding,卷积神经网络框架),TensorFlow(端到端开源机器学习平台)、PyTorch(开源的Python机器学习库)等。由于训练的网络模型可能会很大参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。工程项目为最大化投入产出比,需要一台GPU服务器支持尽可能多路摄像头站房入侵实时检测。
相关技术的CenterNet检测模型在单GPU Nvidia P40(图形处理器)显卡的每秒服务响应个数为43RPS,为最大化项目的投入产出比,性能有待提升。
综上所述,本实施例提供了一种神经网络推理引擎构建方法和入侵检测方法。
实施例1:
如图1所示,本实施例提供了一种神经网络推理引擎构建方法,包括以下步骤:
步骤S102,构建第一目标检测模型;
步骤S104,获取图片样本,在神经网络深度学习框架下,采用图片样本训练第一目标检测模型,得到第二目标检测模型;
步骤S106,将第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型;
步骤S108,基于可变形卷积操作算子,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎。
本实施例中,首先,构建第一目标检测模型,然后,在神经网络深度学习下训练第一目标检测模型,得到第二目标检测模型,第三,将第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型,第四,获取设有可变形卷积操作算子的神经网络推理引擎,并编译生成库文件,采用该神经网络推理引擎,通过神经网络推理引擎的调用,可大幅提高GPU(图形处理器)利用率,提高实际工程的投入产出比,可解决现有的模型部署方案在经济效益投入产出比低等方面存在不足的问题。
实施例2:
如图2所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
构建第一目标检测模型,具体包括以下步骤:
步骤S202,建立第一目标检测模型,其中,第一目标检测模型包括CenterNet目标检测模型;
步骤S204,针对第一目标检测模型,设置可变形卷积组件。
本实施例中,第一目标检测模型采用CenterNet目标检测模型,并且,设置可变形卷积组件,CenterNet目标检测模型不需要NMS(非极大值抑制),直接预测中心点,再预测相对中心点的长、宽,统一了关键点与目标检测的流程,速度精度较YoloV3(You Only LookOnce系列目标检测算法中的第三版)乃至YoloV3-spp(YoloV3 Spatial Pyramid Pooling,YOLO v3空间金字塔池化)均有提升,具有结构简单,使用便捷,速度快精度高,占用内存少等优点,可以广泛应用于实际工程项目。
实施例3:
如图3所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
获取图片样本,在神经网络深度学习框架下,采用图片样本训练第一目标检测模型,得到第二目标检测模型,具体包括以下步骤:
步骤S302,获取图片样本,将图片样本在神经网络深度学习框架下进行标注;
步骤S304,采用标注后的图片样本训练第一目标检测模型,得到第二目标检测模型。
本实施例中,针对图片样本首先在神经网络深度学习框架下进行标注,标注出检测目标,再使用标注后的图片样本训练第一目标检测模型,通过对标准后的图片样本对第一目标检测模型进行训练,提高第一目标检测模型识别的准确性。
实施例4:
除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
神经网络深度学习框架包括PyTorch神经网络深度学习框架,第二目标检测模型格式为pth格式,开放神经网络交换格式包括ONNX格式,神经网络推理引擎包括TensorRT推理引擎。
本实施例中,PyTorch是一个开源的Python(一种跨平台的计算机程序设计语言)机器学习库,基于Torch(深度学习框架),用于自然语言处理等应用程序。第二目标检测模型为CenterNet目标检测模型,格式为pth格式,开放神经网络交换格式为ONNX格式。
本实施例中,将第二目标检测模型pth格式转换为ONNX格式,则通过PyTorch神经网络深度学习框架训练的第二目标检测模型,可以在其他框架下,进行推理。
本实施例中,TensorRT推理引擎为NVIDIA公司推出的一种高性能神经网络推理(Inference)引擎,针对训练好的第三目标检测模型进行优化,在生产环境中部署模型,可提供最大的推理吞吐量和效率,让训练好的第三目标检测模型在测试阶段的速度加快,可应用于图像分类、分割和目标检测等任务。
实施例5:
如图4所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
神经网络推理引擎构建方法,还包括:
步骤S402,对神经网络推理引擎进行解释和转换,编译生成库文件。
本实施例中,基于神经网络推理引擎,生成库文件,通过调用库文件,实现调用神经网络推理引擎,进而通过神经网络推理引擎进行模型推理应用,通过编译生成库文件,使得调用神经网络推理引擎简便快捷。
实施例6:
如图5所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
基于可变形卷积操作算子,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎,包括以下步骤:
步骤S502,在神经网络推理引擎中注册可变形卷积操作算子;
步骤S504,将第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎。
本实施例中,神经网络推理引擎不设有可变形卷积操作算子,将可变形卷积操作算子作为一个定制的操作算子注册到神经网络推理引擎中,并进行编译。通过设置可变形卷积操作算子,使得神经网络推理引擎进行目标识别时,准确率更高。
实施例7:
如图6所示,除上述实施例的技术特征以外,本实施例进一步地包括了以下技术特征:
将第三目标检测模型编译为神经网络推理引擎的文件格式,包括以下步骤:
步骤S602,将第三目标检测模型的ONNX格式编译为神经网络推理引擎的文件格式,神经网络推理引擎的文件格式为trt格式。
本实施例中,神经网络推理引擎的文件格式为trt格式,因为第二目标检测模型为pth格式,无法直接转换为trt格式,通过将pth格式转换为ONNX格式,进而使得目标检测模型可以应用在神经网络推理引擎中,提高检测准确率,以及检测效率。
实施例8:
如图7所示,本实施例提供了一种入侵检测方法,采用如本发明任一实施例的神经网络推理引擎构建方法构建的神经网络推理引擎,包括以下步骤:
步骤S702,获取待检测图片;
步骤S704,调用神经网络推理引擎,针对待检测图片进行入侵检测。
本实施例中,首先,获取待检测图片,然后,针对待检测图片,调用神经网络推理引擎,进行入侵检测,通过神经网络推理引擎的调用,可大幅提高GPU(图形处理器)利用率,提高实际工程的投入产出比,可解决现有的模型部署方案在经济效益投入产出比低等方面存在不足的问题。
实施例9:
如图8所示,本实施例提供了一种电子设备200,包括:存储器210和处理器220,存储器210存储有程序或指令,处理器220执行程序或指令;其中,处理器220在执行程序或指令时,实现如本发明任一实施例的神经网络推理引擎构建方法或实现如本发明任一实施例的入侵检测方法的步骤。
实施例10:
本实施例提供了一种可读存储介质,可读存储介质存储有程序或指令,程序或指令被处理器执行时,实现上述任一实施例的神经网络推理引擎构建方法或实现如本发明任一实施例的入侵检测方法的步骤。
具体实施例:
本实施例提供一种入侵检测方法,具体而言,为一种基于TensorRT加速CenterNet模型推理站房入侵检测方法:首先在PyTorch深度学习框架下训练行人检测的CenterNet模型,然后将训练好的模型pth格式转化为ONNX(Open Neural Network Exchange,开放神经网络交换)格式,编译带DCN(可变形卷积)v2插件的ONNX-TensorRT(表示将ONNX的格式转换为TensorRT的格式),然后让TensorRT解析ONNX从而构建TensorRT引擎trt格式文件,利用在Python环境下利用ctypes(Python的外部函数库)进行推理引擎trt格式文件的调用以供前方工程服务调用,利用该方案进行模型部署可大幅提升提高GPU利用率,单GPU Nvidia显卡P40每秒服务响应个数由43RPS提升至57RPS,单卡性能提升32%,极大提高了实际工程的投入产出比,可解决现有的模型部署方案在经济效益投入产出比低等方面存在不足的问题。
如图9所示,本实施例提供的一种基于TensorRT加速CenterNet模型推理站房入侵检测方法,具体流程如下:
步骤S802,模型训练;
在PyTorch框架下训练CenterNet模型;
收集站房入侵图片并标注在PyTorch框架下训练带可变形卷积组件(DCN v2)的CenterNet模型(模型格式为pth格式)。
步骤S804,模型转换;
将CenterNet模型由pth格式转化为ONNX专有格式;
ONNX(Open Neural Network Exchange)是微软和Facebook携手开发的开放式神经网络交换工具,无论采用什么框架训练的模型只要转换为ONNX模型,就可以在其他框架上推理。
TensorRT直接支持的模型框架有ONNX、Caffe(Convolutional Architecture forFast Feature Embedding,卷积神经网络框架)、TensorFlow(一种开源的机器学习库),由于TensorRT不支持PyTorch训练的模型(.pth)直接导入,则将CenterNet模型由pth格式转化为ONNX专有格式:
CenterNet(.pth)转换为CenterNet_ONNX(.onnx)。
PyTorch.onnx模块官方不设有DCN v2 OP(操作算子),先编译DCN v2.so并进行符号注册,然后利用PyTorch.onnx模块进行CenterNet(.pth)的ONNX格式模型导出。
步骤S806,插件注册;
注册DCN v2插件;
CenterNet中包含DCN v2组件,DCN v2是可变形卷积的最新版本实现,DCN(可变形卷积)有很多优秀的特性,特别是目标检测算法中,加入DCN可以有效提高检测精度。官方的ONNX-TensorRT中不带DCN v2插件,则将DCN V2作为一个定制的OP(操作算子)注册到ONNX-TensorRT中,然后编译设有DCN v2插件ONNX-TensorRT。
注册DCN v2插件(Plugin)步骤如下:
(1)编写源码dcn_v2_forward.hpp和dcn_v2_forward.cu。
(2)重载ONNX2trt::Plugin。
(3)在builtin_plugins.cpp最后面,添加对dcn_v2_forward的注册,如下:
REGISTER_BUILTIN_PLUGIN("dcn_v2_forward",dcn_v2_forwardPlu gin)。
(4)在builtin_op_importers.cpp中使用DEFINE_BUILTIN_OP_IMPO RTER添加对自己注册的DCN v2 Op的使用。
步骤S808,引擎构建;
构建TensorRT推理引擎;
首先,查询要模型部署的服务器GPU算力,安装TensorRT(英伟达推理引擎)、CMake(跨平台的安装编译工具)、ProtoBuf(是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议)、CUDA、(Compute Unified Device Architecture,英伟达公开的一种并行计算平台和编程模型)、CUDNN(CUDA Deep Neural Network library、基于CUDA的神经网络库)、PyCUDA(CUDA的Python接口)配置并设置好环境变量。然后,将ONNX格式模型文件(.onnx)编译成TensorRT推理引擎的trt文件。ONNX(.onnx)-->TensorRT model(.trt),再然后,采用creatNetwork(创建网络)方法创造一个iNetworkDefinition(定义网络)的对象。然后对推理引擎trt文件进行解释和转换,最后对解释转换后的模型进行推理调用,将上述过程编译生成libctdet.so(CenterNet目标检测模型动态链接库)库文件。
步骤S810,引擎调用;
在Python环境下利用ctypes调用推理引擎trt进行模型推理;
在Python环境下利用ctypes加载libctdet.so,然后调用推理引擎trt进行模型推理应用。实现过程为:首先是调用CenterNet目标检测模型动态链接库,接着设定推理应用所用硬件标识号,然后设定输入输出参数,最后调用生成的TensorRT推理引擎的trt文件。
本实施例提出采用将DCN V2作为一个定制的Op注册到ONNX-TensorRT中,将训练好的模型.pth格式转化为ONNX(Open Neural Network Exchange,开放神经网络交换)格式,然后让TensorRT解析ONNX从而构建TensorRT引擎trt格式文件,在Python环境下利用ctypes进行推理引擎trt的调用。在精度无损失的情况下,通过使用TensorRT推理引擎,使得GPU利用率提高,加快了模型推理速度。但是,在另外一种方案中,如果不编译DCN V2,使用不带DCN V2的CenterNet进行TensorRT推理引擎使用,虽然速度有所提升,但模型的精度有所降低,达不到期望的模型精度。
也可采用二值化方法或权值剪枝/稀疏(Weight Pruning/Sparsifying)方法对模型进行加速。或直接对训练完的CenterNet模型进行部署使用,不加速。二值化的方法会大大降低模型的精度;权值剪枝/稀疏(Weight Pruning/Sparsifying)方法,需要专用的硬件或者代码库支持,实现难度大。直接对训练完的CenterNet模型进行部署使用,投入产出性价比低。
本实施例的技术要点主要是:
(1)提出将TensorRT推理引擎用于带DCN V2(可变形卷积)的CenterNet模型加速中。
(2)提出从PyTorch训练好的模型转化为TensorRT引擎trt格式的流程。具体为将训练好的模型.pth格式转化为ONNX(Open Neural Network Exchange,开放神经网络交换))格式,然后让TensorRT解析ONNX从而构建TensorRT引擎trt格式文件。
(3)提出在Python环境下利用ctypes进行推理引擎trt的调用。
(4)官方的ONNX-TensorRT中不带DCN v2插件,实现了将DCN V2作为一个定制的Op注册到ONNX-TensorRT中。
综上,本发明实施例的有益效果为:
本实施例中,首先,构建第一目标检测模型,然后,在神经网络深度学习下训练第一目标检测模型,得到第二目标检测模型,第三,将第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型,第四,获取设有可变形卷积操作算子的神经网络推理引擎,并编译生成库文件,采用该神经网络推理引擎,通过神经网络推理引擎的调用,可大幅提高GPU(图形处理器)利用率,提高实际工程的投入产出比。
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种神经网络推理引擎构建方法,其特征在于,包括:
构建第一目标检测模型;
获取图片样本,在神经网络深度学习框架下,采用所述图片样本训练所述第一目标检测模型,得到第二目标检测模型;
将所述第二目标检测模型的格式转换为开放神经网络交换格式,得到第三目标检测模型;
基于可变形卷积操作算子,将所述第三目标检测模型编译为神经网络推理引擎的文件格式,得到所述神经网络推理引擎。
2.根据权利要求1所述的神经网络推理引擎构建方法,其特征在于,所述构建第一目标检测模型,具体包括:
建立第一目标检测模型,其中,所述第一目标检测模型包括CenterNet目标检测模型;
针对所述第一目标检测模型,设置可变形卷积组件。
3.根据权利要求1所述的神经网络推理引擎构建方法,其特征在于,所述获取图片样本,在神经网络深度学习框架下,采用所述图片样本训练所述第一目标检测模型,得到第二目标检测模型,具体包括:
获取图片样本,将所述图片样本在神经网络深度学习框架下进行标注;
采用标注后的所述图片样本训练所述第一目标检测模型,得到第二目标检测模型。
4.根据权利要求1所述的神经网络推理引擎构建方法,其特征在于,所述神经网络深度学习框架包括PyTorch神经网络深度学习框架,所述第二目标检测模型格式为pth格式,所述开放神经网络交换格式包括ONNX格式,所述神经网络推理引擎包括TensorRT推理引擎。
5.根据权利要求1所述的神经网络推理引擎构建方法,其特征在于,还包括:
对所述神经网络推理引擎进行解释和转换,编译生成库文件。
6.根据权利要求1至5中任一项所述的神经网络推理引擎构建方法,其特征在于,所述基于可变形卷积操作算子,将所述第三目标检测模型编译为神经网络推理引擎的文件格式,得到神经网络推理引擎,包括:
在神经网络推理引擎中注册可变形卷积操作算子;
将所述第三目标检测模型编译为所述神经网络推理引擎的文件格式,得到神经网络推理引擎。
7.根据权利要求6所述的神经网络推理引擎构建方法,其特征在于,所述将所述第三目标检测模型编译为所述神经网络推理引擎的文件格式,包括:
将所述第三目标检测模型的ONNX格式编译为所述神经网络推理引擎的文件格式,所述神经网络推理引擎的文件格式为trt格式。
8.一种入侵检测方法,采用如权利要求1至7中任一项所述的神经网络推理引擎构建方法构建的神经网络推理引擎,其特征在于,包括:
获取待检测图片;
调用神经网络推理引擎,针对所述待检测图片进行入侵检测。
9.一种电子设备(200),其特征在于,包括:
存储器(210),存储有程序或指令;
处理器(220),执行所述程序或指令;
其中,所述处理器(220)在执行所述程序或指令时,实现如权利要求1至7中任一项所述的神经网络推理引擎构建方法的步骤或实现如权利要求8所述的入侵检测方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时,实现如权利要求1至7中任一项所述的神经网络推理引擎构建方法的步骤或实现如权利要求8所述的入侵检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063627.1A CN112711423A (zh) | 2021-01-18 | 2021-01-18 | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110063627.1A CN112711423A (zh) | 2021-01-18 | 2021-01-18 | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112711423A true CN112711423A (zh) | 2021-04-27 |
Family
ID=75549214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110063627.1A Pending CN112711423A (zh) | 2021-01-18 | 2021-01-18 | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711423A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113128440A (zh) * | 2021-04-28 | 2021-07-16 | 平安国际智慧城市科技股份有限公司 | 基于边缘设备的目标物识别方法、装置、设备及存储介质 |
CN113658210A (zh) * | 2021-09-02 | 2021-11-16 | 西安中科西光航天科技有限公司 | 基于Jetson NX平台的前端实时目标跟踪方法 |
CN115296898A (zh) * | 2022-08-03 | 2022-11-04 | 南京大学 | 用于构建网络入侵检测系统的多目标演化特征选择方法 |
WO2023128654A1 (ko) * | 2021-12-31 | 2023-07-06 | 주식회사 뉴로클 | 타겟 장치를 위한 학습 모델 최적화 방법 및 이를 위한 시스템 |
CN117975246A (zh) * | 2024-01-02 | 2024-05-03 | 河海大学 | 基于onnx的目标检测模型库系统构建方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
CN110119271A (zh) * | 2018-12-19 | 2019-08-13 | 厦门渊亭信息科技有限公司 | 一种跨机器学习平台的模型定义协议及适配系统 |
CN111432022A (zh) * | 2020-04-07 | 2020-07-17 | 深圳中兴网信科技有限公司 | 模型部署方法、服务器和计算机可读存储介质 |
WO2020164267A1 (zh) * | 2019-02-13 | 2020-08-20 | 平安科技(深圳)有限公司 | 文本分类模型构建方法、装置、终端及存储介质 |
-
2021
- 2021-01-18 CN CN202110063627.1A patent/CN112711423A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180136912A1 (en) * | 2016-11-17 | 2018-05-17 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
CN110119271A (zh) * | 2018-12-19 | 2019-08-13 | 厦门渊亭信息科技有限公司 | 一种跨机器学习平台的模型定义协议及适配系统 |
WO2020164267A1 (zh) * | 2019-02-13 | 2020-08-20 | 平安科技(深圳)有限公司 | 文本分类模型构建方法、装置、终端及存储介质 |
CN111432022A (zh) * | 2020-04-07 | 2020-07-17 | 深圳中兴网信科技有限公司 | 模型部署方法、服务器和计算机可读存储介质 |
Non-Patent Citations (6)
Title |
---|
LIGUIYUAN112: "pytorch模型转TensorRT模型部署", Retrieved from the Internet <URL:https://blog.csdn.net/u012505617/article/details/110486468> * |
SHINING: "ONNX-Tensorrt如何注册自己的Op", Retrieved from the Internet <URL:https://blog.csdn.net/xxradon/article/details/94858139> * |
STEVE: "CenterNet", Retrieved from the Internet <URL:https://manaai.cn/aicodes_detail3.html?id=33> * |
SYCRET: "PyTorch ONNX & TensorRT", Retrieved from the Internet <URL:https://blog.csdn.net/qq_34131692/article/details/111357975> * |
伯恩LEGACY: "如何使用TensorRT对训练好的PyTorch模型进行加速?", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/88318324> * |
金天: "CenterNet101 TensorRT加速 25ms!", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/91117559> * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113128440A (zh) * | 2021-04-28 | 2021-07-16 | 平安国际智慧城市科技股份有限公司 | 基于边缘设备的目标物识别方法、装置、设备及存储介质 |
CN113658210A (zh) * | 2021-09-02 | 2021-11-16 | 西安中科西光航天科技有限公司 | 基于Jetson NX平台的前端实时目标跟踪方法 |
WO2023128654A1 (ko) * | 2021-12-31 | 2023-07-06 | 주식회사 뉴로클 | 타겟 장치를 위한 학습 모델 최적화 방법 및 이를 위한 시스템 |
CN115296898A (zh) * | 2022-08-03 | 2022-11-04 | 南京大学 | 用于构建网络入侵检测系统的多目标演化特征选择方法 |
CN115296898B (zh) * | 2022-08-03 | 2023-11-07 | 南京大学 | 用于构建网络入侵检测系统的多目标演化特征选择方法 |
CN117975246A (zh) * | 2024-01-02 | 2024-05-03 | 河海大学 | 基于onnx的目标检测模型库系统构建方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112711423A (zh) | 引擎构建方法、入侵检测方法、电子设备和可读存储介质 | |
CN104484353A (zh) | 数据图形化方法、装置及数据库服务器 | |
EP4258173A1 (en) | Processing method and apparatus for model | |
CA2539460A1 (en) | System and method for dynamic version management of applications | |
EP3869402A1 (en) | Method and apparatus for positioning key point, device, storage medium and computer program product | |
CN110096422A (zh) | 一种基于容器的服务器计算性能测试方法与装置 | |
CN111813676A (zh) | 机器人软件测试方法、设备及存储介质 | |
CN107220138B (zh) | 一种通过can总线消息解析系统、方法及其函数存取方法 | |
CN113986489A (zh) | 异构系统的任务执行方法、装置、计算机设备及存储介质 | |
CN112765427A (zh) | 一种基于mqtt协议的环保监测数据处理方法及装置 | |
CN112580627A (zh) | 基于国产智能芯片K210的yolov3目标检测方法及电子装置 | |
CN114998838A (zh) | 一种危化品智能存储柜实时监测方法与装置 | |
Sánchez-Gallegos et al. | Internet of Things orchestration using DagOn* workflow engine | |
CN113411425B (zh) | 视频超分模型构建处理方法、装置、计算机设备和介质 | |
CN111881934B (zh) | 电子元器件属性与类别的空间关系发现方法 | |
CN113434147A (zh) | 基于ProtoBuf协议的消息解析方法及装置 | |
CN102810065B (zh) | 用于加载程序模块的方法和系统 | |
CN208079095U (zh) | 一种电梯远程信息集成系统 | |
CN110751055A (zh) | 一种智能制造系统 | |
CN116389492A (zh) | 视频分析系统、方法、装置、计算机可读存储介质 | |
CN113821005B (zh) | 半导体工艺设备数据采集系统和方法 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN112817581A (zh) | 一种轻量级智能服务构建和运行支撑方法 | |
CN115437627A (zh) | 学件开发方法、装置、设备及存储介质 | |
CN113516122A (zh) | 面向配电房智能值守作业的机器人视觉系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210427 |