基于嵌入式平台的高分辨率图像目标识别方法与流程
未命名
09-29
阅读:162
评论:0

1.本发明属于图像处理技术领域,涉及一种高分辨率图像目标识别在嵌入式平台中的实现方法,具体为一种基于嵌入式平台的高分辨率图像目标识别方法。
背景技术:
2.基于深度学习的目标识别技术,在安防、遥感等领域得到了广泛的应用。高分辨率图像目标识别的主要任务是在高分辨率图片中找到感兴趣的小目标或者物体,并确定它们的位置和大小。与传统目标检测技术相比,目标识别技术不受光照阴影、天气变化、场景晃动等因素的干扰,大幅降低了识别虚警率。此外,自动识别的结果也往往比人眼识别更为可靠。
3.但是在高分辨率遥感图像应用中,将目标识别技术移植到嵌入式产品的过程依旧充满了挑战。为满足国产化应用要求,选择采用海思hi3519av100小型嵌入式设备,它有限的运算资源和内存,使得高分辨率目标识别网络很难真正应用到设备中。具体而言,目标识别技术的应用主要受限于两个方面。第一是现在流行的目标识别网络的参数量和运算资源耗费往往都很大,难以移植到嵌入式设备中。第二是由于运算资源受限,目标识别网络往往采用亚采样来实现对于一帧图像的处理,对小目标的识别能力不佳。因此,如果想将高分辨率图像目标识别技术应用到工业产品中,急需一种对识别网络进行大幅度删减的压缩模型策略,从而实现小体积网络的小目标识别。
技术实现要素:
4.(一)发明目的
5.本发明的目的是:针对现有高分辨率图像目标识别网络模型体积庞大等问题,提出一种适用于海思hi3519av100嵌入式设备的高分辨率图像目标识别方法,基于yolov5目标识别网络,修改网络层结构,精简后处理计算方法,对原有模型的网络和识别时间进行改进,增强对小目标的识别能力,同时提升识别准确性。
6.(二)技术方案
7.为了解决上述技术问题,本发明提供一种基于嵌入式平台的高分辨率图像目标识别方法,包括以下步骤:
8.步骤一:利用高分辨率图像构建数据集
9.搜集开源数据集、遥感数据集、无人机航拍图像数据集等,对数据集内的各类目标进行分类和标注,得到带有类别标签的图像数据集,将带有类别标签的图像数据集划分为训练集和测试集,其中80%作为训练集,20%作为测试集;
10.步骤二:构建目标识别网络
11.改进了yolov5网络结构,在骨干网络(backbone)部分,利用卷积层替换focus模块中的切片层,并依次分别串联conv卷积模块、c3模块和spp模块;在检测网络(neck)部分,增加了更多尺度的目标特征进行上采样和特征融合,获得不同尺度的特征图数据,进而在原
有三层特征图检测输出的基础上,增加小目标检测输出层;在预测层(output)部分,改进了后处理计算方法,去掉了flatten层,直接从conv卷积层输出中提取出目标信息;
12.步骤三:训练生成目标识别网络模型
13.采用yolov5s网络模型训练工具,将目标识别网络写入yaml格式的配置文件,对网络模型进行训练,得到pt格式模型文件;采用onnx软件,将pt格式模型文件转换为onnx格式通用模型文件;采用onnx2caffe软件,将onnx模型文件转换为caffe模型文件;采用ruyistudio工具,将caffe模型文件转换为海思嵌入式平台所支持的wk模型文件格式。
14.步骤四:在海思嵌入式平台部署目标识别网络
15.部署阶段,基于海思媒体处理平台mpp(media process platform),搭建视频处理框架,配置视频处理子系统vpss(video process sub-system),加载wk模型文件至nnie硬件单元;
16.实施阶段,通过v4l2驱动读取实时高分辨率图像,经由nnie硬件单元推理计算,计算结果经arm处理器进行后处理,提取出目标信息,从实现对高分辨率图像的目标识别。
17.其中,步骤一在构建目标数据集时,应确保各尺度大小的样本数量基本一致;对于错误识别的目标,也可作为背景添加到目标数据集中,重新进行训练,以提高识别准确率。
18.其中,步骤二在设计目标识别网络时,应将卷积层模块固化为二维卷积、批归一化、激活函数的串联结构,以便于海思嵌入式平台执行层集合操作,减少内存消耗,提高执行效率。
19.其中,步骤三在训练网络模型时,需注意海思嵌入式平台目前仅支持caffe框架,且以caffe-1.0版本为基础。
20.(三)有益效果
21.上述技术方案所提供的基于嵌入式平台的高分辨率图像目标识别方法,可应用于各种海思嵌入式智能处理平台,实现对目标的识别处理,增强了对小目标的识别能力,且无需调参,识别准确度高,目标识别准确性好,实用性高。
附图说明
22.图1为本发明目标识别网络结构示意图。
23.图2为本发明目标识别网络conv卷积模块(a图)、c3模块(b图)、spp模块(c图)结构示意图。
24.图3为本发明目标识别后处理流程图。
25.图4为本发明训练生成目标识别网络模型流程图。
26.图5为本发明海思嵌入式平台处理流程图。
具体实施方式
27.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
28.以海思hi3519av100嵌入式平台实现高分辨率图像车辆目标检测为实施例,介绍本发明目标识别方法,本实施例也可应用于其他海思嵌入式智能处理平台,如海思hi3559av100等,检测目标也不仅限于车辆目标,通过扩展数据集,可实现对其他各类目标
的识别检测。
29.本实施例目标识别方法包括以下步骤:
30.步骤一:建立车辆目标数据集。
31.搜集图像建立针对俯视车辆目标数据集,确保车辆目标数据集图像来源多样化,具体包括:从实际应用场景中采集真实车辆图像;从开源数据集中提取符合要求的自然场景下车辆图像;搜集无车辆情况下的自然场景图像作为背景图像。所建立车辆目标数据集中,车辆图像和背景图像的比例大致为1:1,总的图像数量达到8300张。
32.标注所搜集图像,标注后每个图像对应一个同名的标记文件,格式为txt。车辆图像的标记文件中每一个车辆位置信息保存为一行,依次保存目标类别、归一化后的目标中心点x坐标,归一化后的目标中心点y坐标,归一化后的目标框宽度w,归一化后的目标框高度h(归一化指的是除以图片宽或高);每个背景图像生成一个空白的txt文档作为标记文件。
33.步骤二:构建车辆目标识别网络。
34.本实例构建的目标识别网络结构如图1所示,该网络主要由三个部分组成:
35.骨干网络(backbone):采用c3+spp结构,在不同图像分辨率上聚合并形成图像特征。
36.检测网络(neck):将骨干网络的图像特征进行混合和组合,形成新的图像特征,并传递到预测层。
37.预测层(output):采用卷积运算,对图像特征进行预测,经后处理计算,生成目标边界框并预测目标类别和置信度。
38.该网络为单阶段结构,输入图像数据经骨干网络、检测网络、预测层处理后,输出四个特征图,对特征图遍历查询,输出识别目标。
39.为便于嵌入式智能处理平台的实现,网络中仅使用了二维卷积单元(conv2d)、批归一化单元(batchnorm2d)、激活单元(relu)、上采样单元(upsample)、最大池化单元(maxpooling)、拼接单元(concat)、瓶颈单元(bottleneck)和累加单元(add)八种计算单元,同时组合各计算单元,搭建了conv卷积模块、c3模块和spp模块,各模块结构如图2所示。
40.conv卷积模块为串行结构,依次由一个conv2d单元、一个batchnorm2d单元和一个relu单元组成。
41.c3模块结构分为两支,一支使用了3个串行conv卷积模块(第一个conv卷积模块的输出,通过直连到第三个conv卷积模块的输出,执行add累加单元,形成bottleneck结构),另一支仅经过一个conv卷积模块,最后将两支经过concat单元进行拼接,再经过一个conv卷积模块输出。
42.spp模块结构为,先通过一个conv卷积模块将输入通道减半,然后分别经过核尺寸为5,9,13的最大池化单元。对三次最大池化的结果与未进行池化操作的数据经过拼接单元进行拼接,最终合并后通道数是原来的2倍,拼接结果经过conv卷积模块输出。
43.基于上述计算单元和模块,搭建出本实例目标识别网络,网络模型结构及参数设定如表1所示。
44.表1网络模型结构
45.46.[0047][0048]
该网络所使用的计算单元均为神经网络典型计算单元,各类嵌入式智能处理平台均可实现,具备普适性。
[0049]
特别的,该网络结构的预测层设计为四层输出,提高了输出层分辨力,增强了对小目标的检测识别能力。本实例中,输出层conv2d中的参数na(number ofanchors)设置为3,参数nc(number ofclass)设置为1(nc参数依据目标类别数设置)。
[0050]
预测层输出的特征图,还需经过后处理计算,才能提取出目标。后处理计算流程如图3所示。一般后处理计算使用flatten层,将多维数据重排为一维数据,然后计算目标位置及目标置信度和类别概率,然后逐格点判断是否为目标。本发明去掉了flatten层,直接从conv2d输出数据中遍历查询目标置信度,若置信度大于0.5再进行后续计算。实测有90%~95%的目标置信度小于0.5,无需后续计算,因而极大减少了计算量。
[0051]
步骤三:训练生成目标识别网络模型。
[0052]
本实施例采用了yolov5s网络模型训练工具,将目标识别网络写成yaml格式的配置文件,修改待检测物体的类别为1;利用车辆目标数据集,修改训练文件夹和验证文件夹路径、物体类别以及类别标记;设置在每次迭代过程中产生的权重文件保存的路径,设置每次训练的结果保存的路径。
[0053]
训练环境配置如下:
[0054]
(1)操作系统:ubuntu linux 20.04lts
[0055]
(2)显卡:nvidiap4000显卡
[0056]
(3)cpu:intel酷睿i712700k
[0057]
(4)内存:128g
[0058]
(5)cuda版本:11.0
[0059]
(6)pytorch版本:1.7.1
[0060]
本实施例中,在conda环境下,使用train.py文件,设置device为“cuda0,1”,设置好参数配置文件,模型迭代的批数据量大小设置为16。在经过了300次epoch的训练之后,得到pt格式模型文件。
[0061]
采用onnx软件,将pt格式模型文件转换为onnx格式模型文件;采用onnx-simplifier插件,将onnx模型文件进一步简化;采用onnx2caffe软件,将onnx模型文件转换为caffe模型文件;采用ruyistudio工具,将caffe模型文件转换为wk模型文件。该wk模型文件即为海思嵌入式平台可部署的目标识别网络模型文件。训练生成目标识别网络模型流程如图4所示。
[0062]
步骤四:在海思嵌入式平台部署目标识别网络。
[0063]
利用海思芯片hi3519av100从传感器采集高分辨率图像,由海思芯片的arm处理器将图像数据和wk模型数据送往nnie硬件单元,对深度学习卷积神经网络进行推理。nnie硬件单元采用npu架构设计,具备对神经网络加速推理能力,可以将conv模块的conv2d单元、batchnorm2d单元和relu单元进行合并计算,减少了各单元间的数据传输,提高了计算效率;nnie硬件单元完成推理运算后,将四个输出特征图回传至arm处理器,由arm在各特种图中遍历查询,找出置信度大于0.5的目标,并对目标框交并比大于0.7的同类型目标进行合并,最终输出整合后的目标位置及类型。
[0064]
海思嵌入式平台处理流程如图5所示。上电后首先对海思媒体处理平台mpp(media process platform)进行初始化,然后配置视频处理子系统vpss(video process sub-system)。流程可分为以下三个阶段:
[0065]
vpss初始化阶段:
[0066]
首先创建一个vpss视频流组(vpss group),需注意确保这个视频流组的id和现在已经有的视频流组不冲突。然后在视频流组内定义视频流通道(vpss chn),并设置通道属性;如果需要对输入图像做裁剪,还需要设置通道裁剪参数;设置完毕通道属性之后,启动通道,加载wk神经网络模型文件,完成vpss的初始化。
[0067]
vpss识别处理阶段:
[0068]
vpss初始化完成后,开始逐帧循环识别处理。对每帧图像,处理流程为:读取对应vpss通道的yuv格式图像数据;将yuv图像数据采用dma方式传入nnie硬件单元内存,并启动nnie推理;查询等待nnie推理完成,将推理结果特征图采用dma方式,从nnie硬件单元内存,传输至arm处理器内存;运行arm处理器的后处理程序,提取出识别目标信息;以日志文件方式保存目标信息,并通过通讯接口输出目标信息。
[0069]
vpss退出阶段:
[0070]
接收到目标识别退出指令后,退出vpss逐帧循环识别处理,释放网络模型所占用的内存;关闭vpss视频流通道(需确保该vpss group下的所有通道都被关闭);关闭vpss视频流组;销毁vpss视频流组,退出vpss视频处理子系统。
[0071]
本发明一种基于海思平台的目标检测方法具体算法及实现,主要采用yolov5算法。在开源yolov5的基础上,改进了网络结构,增加了预测层输出,提高了对小目标的识别能力;优化了后处理计算,缩短了识别处理计算时间;通过自制数据集对神经网络进行训练,具备了对指定目标的处理能力;训练完成后,采用onnx-simplifier对模型进行了进一步精简。在算法的部署上,由于onnx模型文件无法在海思嵌入式平台的nnie硬件单元上运行;因此,先将onnx模型文件转换为caffe模型框架,再通过海思提供的ruyistudio工具,转换为模型支持的.wk模型文件。最后,通过步骤四中板端nnie硬件单元的加载,实现前向推理,并输出识别目标。
[0072]
本发明针对海思嵌入式平台,从模型设计到计算实现都进行了适应性改进,增加一层网络输出,改进了后处理计算方式,同时可实现对高分辨率图像的识别处理,使得本发明具有较好的应用前景。
[0073]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形
也应视为本发明的保护范围。
技术特征:
1.一种基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,包括以下步骤:步骤一:利用高分辨率图像构建数据集;步骤二:构建目标识别网络;步骤三:训练生成目标识别网络模型;步骤四:在海思嵌入式平台部署目标识别网络模型,对高分辨率图像目标进行识别。2.如权利要求1所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤一中,搜集开源数据集、遥感数据集、无人机航拍图像数据集,对数据集内的各类目标进行分类和标注,得到带有类别标签的图像数据集,将带有类别标签的图像数据集划分为训练集和测试集。3.如权利要求2所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤一中,图像数据集划分时,其中80%作为训练集,20%作为测试集。4.如权利要求3所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤二中,目标识别网络为改进的yolov5网络结构,包括骨干网络、检测网络和预测层三部分;在骨干网络部分,利用卷积层替换focus模块中的切片层,并依次分别串联conv卷积模块、c3模块和spp模块;在检测网络部分,增加更多尺度的目标特征进行上采样和特征融合,获得不同尺度的特征图数据,进而在原有三层特征图检测输出的基础上,增加小目标检测输出层;在预测层部分,改进后处理计算方法,去掉flatten层,直接从conv卷积层输出中提取出目标信息。5.如权利要求4所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤三中,采用yolov5s网络模型训练工具,将目标识别网络写入yaml格式的配置文件,对网络模型进行训练,得到pt格式模型文件;采用onnx软件,将pt格式模型文件转换为onnx格式通用模型文件;采用onnx2caffe软件,将onnx模型文件转换为caffe模型文件;采用ruyistudio工具,将caffe模型文件转换为海思嵌入式平台所支持的wk模型文件格式。6.如权利要求5所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤四中,部署阶段,基于海思媒体处理平台mpp,搭建视频处理框架,配置视频处理子系统vpss,加载wk模型文件至nnie硬件单元;实施阶段,通过v4l2驱动读取实时高分辨率图像,经由nnie硬件单元推理计算,计算结果经arm处理器进行后处理,提取出目标信息,从实现对高分辨率图像的目标识别。7.如权利要求6所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤一在构建目标数据集时,确保各尺度大小的样本数量一致;对于错误识别的目标,作为背景添加到目标数据集中,重新进行训练,以提高识别准确率。8.如权利要求7所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤二在设计目标识别网络时,将卷积层模块固化为二维卷积、批归一化、激活函数的串联结构,便于海思嵌入式平台执行层集合操作。9.如权利要求8所述的基于嵌入式平台的高分辨率图像目标识别方法,其特征在于,步骤三在训练网络模型时,海思嵌入式平台支持caffe框架,且以caffe-1.0版本为基础。10.一种基于权利要求1-9中任一项所述的基于嵌入式平台的高分辨率图像目标识别方法在图像处理技术领域中的应用。
技术总结
本发明公开了一种基于嵌入式平台的高分辨率图像目标识别方法,其包括以下步骤:步骤一:利用高分辨率图像构建数据集;步骤二:构建目标识别网络;步骤三:训练生成目标识别网络模型;步骤四:在海思嵌入式平台部署目标识别网络模型,对高分辨率图像目标进行识别。本发明可应用于各种海思嵌入式智能处理平台,实现对目标的识别处理,增强了对小目标的识别能力,且无需调参,识别准确度高,目标识别准确性好,实用性高。实用性高。实用性高。
技术研发人员:张卫国 侯军占 范鹏程 施道云 种泽中 孔鹏 何鹏 黄维东 王怡恬 吴英春 惠进
受保护的技术使用者:西安应用光学研究所
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/