CN117058527A - 一种基于rk3588平台的检测算法部署方法 - Google Patents

一种基于rk3588平台的检测算法部署方法 Download PDF

Info

Publication number
CN117058527A
CN117058527A CN202311034263.XA CN202311034263A CN117058527A CN 117058527 A CN117058527 A CN 117058527A CN 202311034263 A CN202311034263 A CN 202311034263A CN 117058527 A CN117058527 A CN 117058527A
Authority
CN
China
Prior art keywords
rknn
model
seg
training
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
Application number
CN202311034263.XA
Other languages
English (en)
Inventor
任侃
朱军
顾国华
陈钱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN202311034263.XA priority Critical patent/CN117058527A/zh
Publication of CN117058527A publication Critical patent/CN117058527A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Image Analysis (AREA)

Abstract

本发明提出了一种目标检测及图像融合算法在RK3588平台的落地部署方案。首先自制数据集分成训练集和验证集,训练集用来对yolov5m‑seg神经网络进行训练,获取最优模型,将模型转为onnx格式后再转为rknn格式,使用验证集验证模型转换过程是否正确。算法使用双目摄像头采集红外与可见光图像,对图像预处理后,使用yolov5‑seg神经网络对红外图像进行目标检测,实例分割得到目标的分类和掩膜。通过掩膜生成一个矩形区域,在区域内对可见光图像和红外图像进行融合。北京讯为公司出品的RK3588开发板芯片内置NPU(神经网络处理器),在电路层来模拟人类的神经元和突触,特别擅长处理人工智能任务,且具有国产开发板的价格优势,因此本方案选定此开发板作为算法落地的部署平台。

Description

一种基于RK3588平台的检测算法部署方法
技术领域
本发明涉及计算机视觉领域,具体涉及目标检测及图像融合算法在RK3588平台的落地部署。
背景技术
NPU英语全称为Neural Process Unit,译为神经网络处理器。NPU是在电路层来模拟人类的神经元和突触,它的架构和指令集专门针对神经网络计算进行了优化,因此它在处理神经网络计算方面表现出色,具有较高的推理性能。
RK3588开发板搭载有单个核心的RK3568NPU,包含CNA模块(Convolution NeuralNetwork Accelerator)、DPU模块(dada processing Unit)、PPU模块(Pooling ProcessingUnit),分别代表卷积神经网络加速器、数据处理单元和Polling操作单元。
实例分割是计算机视觉领域中的一项任务,旨在对图像或视频中的每个像素进行分类并指示其所属的特定对象实例。与语义分割不同,实例分割不仅关注像素的类别,还将每个像素与特定的对象实例相关联,使得可以对不同对象实例进行独立的分割和处理。
yolov5-seg是基于YOLOv5开发的实例分割模型。它结合了YOLOv5目标检测的快速和准确性以及语义分割的像素级精细分割能力,旨在实现高效的实例分割任务。yolov5-seg采用了一种单阶段的端到端方法,将目标检测和语义分割相结合。相比于传统的两阶段实例分割方法,yolov5-seg可以更快地进行推理,并在保持精度的同时减少计算成本。
发明内容
本发明的目的在于实现目标检测及图像融合算法在RK3588平台的落地部署工作。
实现本发明目的的技术解决方案为:
步骤1,自制数据集划并划分为训练集和验证集;
步骤2,使用训练集对yolov5m-seg神经网络进行训练;
步骤3,将训练得到的pt模型文件转换为onnx格式,再转化为rknn格式;
步骤4,为RK3588开发板配置环境,使用rknn格式的模型文件对验证集进行推理,验证推理结果;
步骤5,对推理结果进行后处理得到目标掩膜,通过掩膜生成一个矩形区域,在此区域内将可见光图像和红外图像进行融合。
进一步的,步骤1,使用labelme对采集到的832张图片进行标注后导出,按9∶1的比例分为训练集和验证集,完成自制数据集的工作。
进一步的,步骤2,使用训练集对神经网络预训练模型yolov5m-seg进行训练,选取最优模型,具体方法为:
图片大小为640*512,批处理设置为16,使用NVIDIA GeForce RTX 3070对yolov5s-seg、yolov5m-seg和yolov5l-seg分别训练了100、200、300、400个epoch,从而避免欠拟合或过拟合导致的泛化能力差的问题。综合精度和速度两方面考量,我们最终选择了yolov5m-seg为此次落地的网络模型。
进一步的,步骤3,将训练得到的格式为pt的模型文件转换为onnx格式,再转换为rknn文件。具体方法为:
配置yolov5-seg运行环境,使用Netron可视化yolov5-seg神经网络模型,查看其中是否有rknn不支持的算子,确保后续转换过程的可行性。检查完毕后调用torch.onnx.export的接口把pt格式的模型文件导出为onnx格式;
再在虚拟机中安装RKNN的工具包,调用load_onnx接口加载onnx格式的模型文件,然后调用build接口构建RKNN模型,接口中的do_quantization参数决定了是否对模型进行量化,值为True或False,最后再调用export_rknn的接口导出格式为rknn的模型文件,导出时使用float16量化模型,用于后续的推理。
进一步的,步骤4,为RK3588开发板配置环境,使用rknn格式的模型文件对验证集进行推理,验证推理结果,具体方法为:
(a)首先为RK3588开发板安装Debian系统,然后安装rknn_lite2包,此包用来后续调用各类rknn接口;
(b)创建RKNN对象,以初始化RKNN SDK环境;
(b)调用config接口设置模型参数。接口参数中:mean_values表示输入的均值。参数格式是一个列表,列表中包含一个或多个均值子列表,多输入模型对应多个子列表,每个子列表的长度与该输入的通道数一致;mean_values表示输入的均值。参数格式是一个列表,列表中包含一个或多个均值子列表,多输入模型对应多个子列表,每个子列表的长度与该输入的通道数一致;参数target_platform用来指定RKNN模型是基于哪个目标芯片平台生成的。
(c)调用load_rknn接口加载RKNN模型,加载后的模型可以连接NPU硬件进行推理加速;
(d)调用init_runtime接口初始化运行时环境,包括但不限于确定模型运行的设备信息、性能评估是否启用debug模式以及设置运行时的NPU核心等;
(e)调用inference接口对输入进行推理,获取推理结果,结果的类型为ndarraylist;
(f)调用release接口释放RKNN对象
进一步的,步骤5,推理结果中包含了目标检测的类别、数量、置信度以及掩膜等信息,从中提取出掩膜的位置信息。使用阈值操作将图像转为二值图像,将二值化图像转换为浮点型并进行归一化处理,将归一化后的值重新缩放为整数类型,然后找到二值图像中的轮廓。对于每个轮廓,使用cv2.minAreaRect函数计算最小外接矩形,并获取矩形的四个顶点坐标,根据这四个顶点坐标,计算矩形框的最小x、最小y、最大x和最大y值,并添加到box列表中。由此生成一个矩形区域box,在box区域内将可见光图像和红外图像进行融合。
附图说明
图1为本发明全流程图
图2为本发明得到RKNN模型文件的步骤图
图3为本发明的算法流程图
图4是本发明检测融合效果图
具体实施方式
为了更详细清楚地描述本发明的技术内容,以下结合附图及实施例,对本申请进行进一步详细说明。
本发明的目的在于实现目标检测及图像融合算法在RK3588平台的落地部署工作。具体包括以下步骤:
步骤1,首先使用labelme对采集到的832张图片进行标注,由于是用来训练实例分割模型,因此标注时需要以画点的方式描出目标的边缘。导出后按9∶1的比例把数据集分为训练集和验证集,完成自制数据集的工作。
步骤2,使用训练集对神经网络预训练模型进行训练,图片大小为640*512,批处理设置为16,使用NVIDIA GeForce RTX 3070对yolov5s-seg、yolov5m-seg和yolov5l-seg分别训练了100、200、300、400个epoch,从而避免欠拟合或过拟合导致的泛化能力差的问题。综合精度和速度两方面考量,为提升在RK3588平台上的运行速度且保证实例分割的效果,我们最终选择了训练200个epoch的yolov5m-seg为此次落地使用的神经网络模型。
步骤3,配置yolov5-seg运行环境,使用Netron可视化yolov5-seg神经网络模型,查看其中是否有rknn不支持的算子,确保后续转换过程的可行性。检查完毕后调用pyotrch的torch.onnx.export的接口把pt格式的模型文件导出为onnx格式。在虚拟机中安装RKNN的工具包,调用load_onnx接口加载onnx格式的模型文件,然后调用build接口构建RKNN模型,接口中的do_quantization参数决定了是否对模型进行量化,值为True或False,设置为False则默认使用float16量化模型,最后再调用export_rknn的接口导出格式为rknn的模型文件,用于后续的推理。
自此完成了图2中的工作,此工作是为得到rknn格式的模型文件,这类格式的模型在RK3588上运行时可使用NPU加速推理,保证算法落地部署的良好效果。
使用验证集对转换为rknn格式的模型文件进行精度测验,结果如表1和表2所示:
表1原始训练模型的测试精度
表2转为rknn的模型测试精度
对比表1、2,不难看出,转换后的模型很好的保持了原始模型的检测精度,在某些类别的检测上甚至稍优于原模型,从而验证了我们转换过程的正确性。
GPU主要用于图形渲染和通用计算任务,拥有大量的核心和流处理器,特别适合并行计算。它在大规模数据并行处理方面表现出色,适合处理多个数据同时进行计算的场景。但GPU的价格通常较高,只有在需要大规模并行计算的情况下,才能充分体现它优秀的性能。
NPU专注于神经网络计算,可以高效地进行推理任务。NPU的架构和指令集专门针对神经网络计算进行了优化。它在处理神经网络计算方面表现出色,具有较高的推理性能。NPU的性价比通常较高,因为它专门设计用于神经网络计算,对于需要大量的AI推理任务非常适用。
CPU是通用计算单元,用于执行各种任务。CPU具有多个核心和高单线程性能,适用于处理广泛的计算任务。它在处理单个线程的任务上表现出色,适合于需要进行复杂计算和逻辑判断的任务。CPU的价格相对较高,但在处理不仅限于神经网络计算的各种任务方面具有广泛的适用性。
表3推理速度比较
总体而言,GPU适合大规模数据并行处理,NPU专注于神经网络计算,而CPU则具有广泛的通用计算能力。在AI推理任务方面,NPU因其专门设计用于神经网络计算且性价比较高,在整体推理性能和价值方面可能更加突出。由表3可以看出,RK3588的推理速度虽然比不上高性能的GPU,但也优于常规CPU,且落地实施过程中,一般都会根据应用需求和预算情况,来综合考虑性能、价格和可用性三个方面。
图3是本发明实施流程图,具体实施过程为步骤4和步骤5。
步骤4,首先为RK3588开发板安装Debian11系统。程序开始,首先创建RKNN对象,以初始化RKNN SDK环境,调用load_rknn接口导入生成的RKNN模型,调用init_runtime接口初始化运行时环境,此时可以选择性地调用eval_perf和eval_memory接口对模型性能以及设备内存使用情况进行评估。对传入图像进行预处理,调用inference接口对输入图像进行推理,获取推理结果。
步骤5,推理结果中包含了目标检测的类别、数量、置信度以及掩膜等信息,从中提取出掩膜的位置信息。使用阈值操作将图像转为二值图像,将二值化图像转换为浮点型并进行归一化处理,将归一化后的值重新缩放为整数类型,然后找到二值图像中的轮廓。对于每个轮廓,使用cv2.minAreaRect函数计算最小外接矩形,并获取矩形的四个顶点坐标,根据这四个顶点坐标,计算矩形框的最小x、最小y、最大x和最大y值,并添加到box列表中。由此生成一个矩形区域box,在box区域内将可见光图像和红外图像进行融合。最后调用release接口释放RKNN对象,程序结束。
图4是RK3588平台的检测效果图,图中yolov5m-seg实例分割精准检测出两个person、一辆motorcycle以及一辆car,并在检测区域融合可见光图像和红外图像。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (6)

1.一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤如下:
步骤1,自制数据集并分成训练集和验证集;
步骤2,使用训练集对yolov5-seg神经网络进行训练;
步骤3,将模型文件从pt转换为onnx格式,再转换为rknn格式;
步骤4,为RK3588开发板配置环境,使用rknn格式的模型文件对验证集进行推理,验证推理结果;
步骤5,对推理结果进行后处理得到目标掩膜,通过掩膜生成一个矩形区域,在此区域内将可见光图像和红外图像进行融合。
2.根据权利要求1所述的一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤1,自制数据集并分成训练集和验证集,使用labelme对采集到的832张图片进行标注后导出,按9∶1的比例分为训练集和验证集。
3.根据权利要求1所述的一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤2,使用训练集对神经网络预训练模型进行训练,选取最优模型,具体方法为:
图片大小为640*512,批处理设置为16,使用NVIDIA GeForce RTX 3070对yolov5s-seg、yolov5m-seg和yolov5l-seg分别训练了100、200、300、400个epoch,从而避免欠拟合或过拟合导致的泛化能力差的问题。
4.根据权利要求1所述的一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤3,将训练得到的格式为pt的模型文件转换为onnx格式,再在虚拟机中安装RKNN的工具包,使用名为rknn.export的API导出格式为rknn的模型文件,导出时使用float16量化模型,用于后续的推理。
5.根据权利要求1所述的一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤4的具体过程在于:
步骤1:首先为RK3588开发板安装Debian系统,然后安装rknn_lite2包,此包用来后续调用各类rknn接口
步骤2:创建RKNN对象,以初始化RKNN SDK环境
步骤3:调用load_rknn接口导入RKNN模型
步骤4:调用init_runtime接口初始化运行时环境
步骤5:调用inference接口对输入进行推理,获取推理结果
步骤6:调用release接口释放RKNN对象。
6.根据权利要求1所述的一种基于RK3588平台的目标检测与图像融合算法部署方法,其特征在于,步骤5的具体过程在于:yolov5m-seg检测的结果中包含了目标检测的类别、数量、置信度以及掩膜,从中提取出掩膜的位置信息,由此生成一个矩形区域box,在box区域内将可见光图像和红外图像进行融合。
CN202311034263.XA 2023-08-16 2023-08-16 一种基于rk3588平台的检测算法部署方法 Pending CN117058527A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311034263.XA CN117058527A (zh) 2023-08-16 2023-08-16 一种基于rk3588平台的检测算法部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311034263.XA CN117058527A (zh) 2023-08-16 2023-08-16 一种基于rk3588平台的检测算法部署方法

Publications (1)

Publication Number Publication Date
CN117058527A true CN117058527A (zh) 2023-11-14

Family

ID=88668783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311034263.XA Pending CN117058527A (zh) 2023-08-16 2023-08-16 一种基于rk3588平台的检测算法部署方法

Country Status (1)

Country Link
CN (1) CN117058527A (zh)

Similar Documents

Publication Publication Date Title
US11074717B2 (en) Detecting and estimating the pose of an object using a neural network model
TWI773189B (zh) 基於人工智慧的物體檢測方法、裝置、設備及儲存媒體
CN108898086B (zh) 视频图像处理方法及装置、计算机可读介质和电子设备
CN108846440B (zh) 图像处理方法及装置、计算机可读介质和电子设备
US20220222832A1 (en) Machine learning framework applied in a semi-supervised setting to perform instance tracking in a sequence of image frames
US11954830B2 (en) High dynamic range support for legacy applications
WO2019080702A1 (zh) 图像处理方法和装置
Li et al. Small target deep convolution recognition algorithm based on improved YOLOv4
Li et al. A method of defect detection for focal hard samples PCB based on extended FPN model
CN115439395A (zh) 显示面板的缺陷检测方法、装置、存储介质及电子设备
CN115457195A (zh) 一种配网工程图纸二三维转换方法、系统、设备及介质
Liu et al. Attentive semantic and perceptual faces completion using self-attention generative adversarial networks
Xia et al. Global contextual attention augmented YOLO with ConvMixer prediction heads for PCB surface defect detection
Mirani et al. Object Recognition in Different Lighting Conditions at Various Angles by Deep Learning Method
Cui et al. Real-time detection of wood defects based on SPP-improved YOLO algorithm
CN117011274A (zh) 自动化玻璃瓶检测系统及其方法
US11922558B2 (en) Hybrid differentiable rendering for light transport simulation systems and applications
Li et al. An improved PCB defect detector based on feature pyramid networks
US11935194B2 (en) Constrained BSDF sampling
CN117058527A (zh) 一种基于rk3588平台的检测算法部署方法
US20230237671A1 (en) Object detection in image stream processing using optical flow with dynamic regions of interest
WO2022251619A1 (en) Hybrid differentiable rendering for light transport simulation systems and applications
CN111832629A (zh) 一种基于FPGA的faster-RCNN目标检测方法
CN114049444B (zh) 一种3d场景生成方法及装置
US20240185506A1 (en) Hybrid differentiable rendering for light transport simulation systems and applications

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