一种用于海上红外目标识别的虚拟数据集自动生成方法
- 国知局
- 2024-12-06 12:18:03
本发明涉及虚拟现实和图像处理的,尤其涉及一种用于海上红外目标识别的虚拟数据集自动生成方法。
背景技术:
1、海上目标识别是海洋监测、海上搜救和海洋安全等领域的重要任务。随着深度学习技术的发展,基于卷积神经网络的目标检测算法在海上目标识别中得到了广泛应用。然而,这些算法的性能很大程度上依赖于大规模、高质量的训练数据集。
2、在实际应用中,获取足够的真实海上目标红外图像数据集存在诸多困难:数据采集成本高昂。需要专业的红外设备和海上平台,采集过程耗时长、费用高。场景和目标类型有限。真实数据难以覆盖各种海况、天气条件和目标类型。标注工作繁重。红外图像的人工标注需要专业知识,耗时耗力。
3、为解决这些问题,研究人员开始探索使用计算机图形学和虚拟仿真技术生成合成数据集。然而,现有的虚拟数据集生成方法主要针对可见光图像,缺乏对红外成像特性的模拟。此外,对于海上目标特有的遮挡问题(如部分没入水面)缺乏有效处理。因此,开发一种专门针对海上红外目标识别的虚拟数据集自动生成方法具有重要意义。
技术实现思路
1、有鉴于此,本发明提出了一种用于海上红外目标识别的虚拟数据集自动生成方法,通过结合三维建模、游戏引擎技术和计算机视觉算法,实现了海上场景的高度随机化、目标实例的自动生成和布置、精确的遮挡检测、红外成像效果的模拟以及数据集的自动标注。这种方法不仅能够大规模、低成本地生成多样化的海上红外目标图像,还能模拟各种复杂的海况、天气条件和目标状态,从而为海上红外目标识别算法的训练和测试提供丰富、高质量的数据支持。
2、本发明的技术方案是这样实现的:本发明提供了一种用于海上红外目标识别的虚拟数据集自动生成方法,包括:
3、s1建立海上目标模型,将目标模型导入unity3d中,并设置为预制体;
4、s2构建虚拟海洋环境,在预设范围内随机生成目标模型实例;
5、s3针对目标模型生成包围盒,并对相机进行设置以生成红外目标图像;
6、s4根据红外目标图像生成yolo格式的海上红外目标数据集。
7、在上述技术方案的基础上,优选的,步骤s1包括:
8、s11根据各个目标,使用maya分别建立海上目标模型,目标包括邮轮、散货船、军舰、帆船、皮划艇、集装箱船和渔船;
9、s12对所有目标设置材质贴图uv,添加法线贴图并进行烘焙;
10、s13将所有目标模型导出为fbx格式,并将目标模型导入unity3d中;
11、s14在unity3d中将导入的目标模型转换为prefab预制体,在inspector面板中为每个预制体设置与目标名称相对应的tag标签。
12、在上述技术方案的基础上,优选的,步骤s2包括:
13、s21基于unity海洋系统urp,搭建一个海洋环境,该海洋环境随机调节光线、海浪和波纹效果,并根据不同目标的尺寸及分布,定义海洋环境范围;
14、s22使用instantiate方法在定义的海洋环境范围内随机生成目标模型实例;
15、s23随机化环境参数,包括天气条件、时间、海况。
16、在上述技术方案的基础上,优选的,步骤s3包括:
17、s31获取目标模型及其子物体的mesh,通过mesh获取目标的aabb包围盒,将aabb包围盒的大小、中心点及目标的数据组合成目标的obb包围盒,为所有目标模型添加盒型碰撞体;
18、s32利用遮挡检测算法对所有目标模型进行遮挡检测,若目标模型被全遮挡,则跳过该目标模型,否则,对目标模型执行步骤s33;
19、s33获取目标模型的盒型碰撞体的世界坐标,根据camera.worldtoscreenpoint方法将世界坐标转换为屏幕坐标,计算屏幕坐标的最大值和最小值,创建包含所有顶点的标注框;
20、s34启用use physical properties,控制camera相机的allow dynamicresolution和focal length,设置分辨率和焦距,并随机改变camera相机的角度和高度,模拟不同的观察视角;
21、s35使用opencv为camera相机视频流随机增加椒盐噪声和高斯噪声;
22、s36编写并应用实现红外效果的shader,生成红外目标图像。
23、在上述技术方案的基础上,优选的,步骤s32包括:
24、s321利用创建的目标模型的盒型碰撞体,构建场景八叉树,优化空间划分,执行视椎体剔除,快速排除相机视野外的目标模型,对剩余的目标模型进行深度排序;
25、s322基于obb包围盒,为每个目标模型定义关键点k={v1,v2,...,v8,c},其中v1到v8为obb包围盒的8个顶点,c为obb包围盒的中心点;
26、s323根据相机参数和关键点k,计算当前视角下每个目标模型的屏幕投影面积a;
27、s324根据投影面积a动态调整每个目标模型的射线采样密度,并在obb包围盒表明生成采样点集合;
28、s325对于每个目标模型,根据采样点集合生成射线集,从相机向采样点集合发射射线,计算每个目标模型的射线命中率;
29、s326基于射线命中率和动态阈值,初步判定每个目标模型的遮挡状态,遮挡状态分为未遮挡、全遮挡、非全遮挡,对于非全遮挡的目标模型,执行步骤s327;
30、s327将非全遮挡的目标模型分为3*3网格子区域,分别计算每个子区域的遮挡程度,生成包含部分遮挡信息的遮挡掩码;
31、s328汇总每个目标模型的遮挡状态,对于非全遮挡的目标模型,保存其遮挡掩码,从所有目标模型中筛选出未遮挡以及包含遮挡掩码的非全遮挡的目标模型列表,以执行步骤s33,对于剩下的全遮挡的目标模型,则跳过这些目标模型。
32、在上述技术方案的基础上,优选的,步骤s324包括:
33、步骤一、设置基础采样密度ρbase,根据投影面积a计算射线采样密度:
34、ρfinal=ρadaptive×fdistance×fimportance
35、ρadaptive=ρbase×log(1+a/aref)
36、
37、fimportance=1+α×p
38、式中,ρfinal为射线采样密度,ρadaptive为自适应密度,fdistance为距离因子,fimportance为重要性因子,aref为参考投影面积,d为obb包围盒的中心点c到相机的距离,dref为参考距离,α为可调节系数,p为归一化的重要性分数;
39、步骤二、根据射线采样密度计算射线数量:
40、n=ceil(ρfinal×a)
41、式中,n为射线数量,ceil表示向上取整函数;
42、步骤三、设置射线数量的上下限:
43、n=clamp(n,nmin,nmax)
44、式中,clamp表示限制函数,若计算得到的射线数量n小于nmin,则使用nmin作为射线数量,若计算得到的射线数量n大于nmax,则使用nmax作为射线数量,若计算得到的射线数量n在nmin和nmax之间,则保持原值;
45、步骤四、将obb包围盒的六个面按面积大小排序,计算每个面的相对面积比例;
46、步骤五、对每个采样点,根据面的相对面积比例随机选择一个面;
47、步骤六、在选定的面上,生成两个[0,1]范围内的随机数u和v,使用这两个随机数作为面的局部坐标;
48、步骤七、将局部坐标(u,v)转换为obb的全局坐标系;
49、步骤八、重复步骤五-步骤七,直到生成n个采样点。
50、在上述技术方案的基础上,优选的,步骤s325包括:
51、定义场景几何体,场景由一组三角形网格组成,每个三角形由三个顶点和一个法向量定义;
52、对每个目标模型m,根据采样点集合s={s1,s2,...,sn},生成射线集r={r1,r2,...rn},每条射线ri定义为:ri(t)=o+t*ei,其中o为相机光心,ei为从o指向采样点si的单位方向向量;
53、使用空间加速结构优化射线与场景几何体的相交测试,对每条射线执行相交测试:
54、a、设置初始步长δt=δtinit,设置最大迭代次数maxiter,设置收敛阈值ε;
55、b、对于射线ri,令t=0;
56、c、令迭代次数iter=1;
57、d、计算当前点p=o+t*ei;
58、e、找到距离p最近的场景几何体,计算p到最近场景几何体的距离d,若d<ε,则记录交点pi=p和相应的物体oi,否则,令t=t+max(d*0.8,δt);
59、f、若未找到场景几何体,则记录pi为无穷远点,oi为空;
60、g、判断iter是否等于maxiter,若是,则相交测试结束,输出交点pi和相应的物体oi,若否,则令iter+1,并基于当前像素密度ρpixel,计算射线精度调整因子ρb为基准像素密度,调整迭代步长δt=δtinit/fres,调整收敛阈值ε=ε/fres,返回步骤d;
61、定义采样点的重要性权重向量w={w1,w2,...,wn},计算距离衰减因子λ为衰减系数,定义射线命中指示函数:
62、
63、计算射线命中率:
64、
65、式中,h(ri)为射线ri的射线命中率。
66、在上述技术方案的基础上,优选的,步骤s33包括:
67、根据boxcollider包围盒下的boxcollider.bounds获取目标模型的盒型碰撞体的8个顶点的世界坐标,表示如下:
68、
69、上式中ver[i]为定义的存储8个顶点坐标的三维数组,bounds为自动生成包围盒时存储的包围盒信息,其包含包围盒中心、大小、包围盒在三维空间中的最大和最小坐标点,bounds.max和bounds.min分别为包围盒在三维空间中的最大和最小坐标点;
70、对于每个顶点ver[i],使用camera.worldtoscreenpoint方法进行转换,转换公式如下:
71、screenpoint[i]=camera.worldtoscreenpoint(ver[i])
72、式中,screenpoint[i]是一个vector3,包含了屏幕坐标(x,y)和深度值z;
73、计算屏幕坐标的最大值和最小值,创建包含所有顶点的矩形框,即目标在屏幕上的标注框,矩形框计算如下:
74、
75、上式中:minx和miny为盒型碰撞体的8个顶点坐标转换为屏幕坐标后的最小坐标点的屏幕坐标,maxx和maxy为盒型碰撞体的8个顶点顶点坐标转换为屏幕坐标后的最大坐标点的屏幕坐标,screen.height为屏幕的高度。
76、在上述技术方案的基础上,优选的,步骤s35包括:
77、在unity中集成opencv,使用unity的camera.render方法将相机视图渲染到rendertexture,将rendertexture转换为opencv可处理的mat格式,以获取相机视频流;
78、定义椒盐噪声密度,随机选择像素,将其设置为黑色或白色;
79、定义高斯噪声的均值和标准差,对每个像素添加符合高斯分布的随机值;
80、在相机视频流的每一帧中随机添加椒盐噪声或高斯噪声。
81、在上述技术方案的基础上,优选的,步骤s36包括:
82、在unity中创建一个新的shader文件,命名为infraredeffect,编写顶点着色器和片元着色器;
83、实现红外效果,包括转换颜色空间、应用温度映射、添加热点效果、模拟热辐射模糊;
84、创建一个材质,并将其shader设置为刚创建的infraredeffect,将这个材质通过后处理堆栈应用到camera相机上;
85、添加可调节的参数,包括温度范围和对比度,在运行时动态修改可调节的参数,以模拟不同的红外成像效果,生成红外目标图像。
86、本发明相对于现有技术具有以下有益效果:
87、(1)通过集成三维建模、unity3d,实现了海上场景的高度随机化、目标实例的自动生成和布置、精确的遮挡检测以及红外成像效果的模拟,从而能够自动、高效地生成大规模、高质量的海上红外目标识别虚拟数据集。这种方法显著降低了数据采集和标注成本,同时提高了数据的多样性和代表性,有效提升了海上红外目标识别算法的训练效果和泛化能力;
88、(2)通过引入基于射线采样的精确遮挡检测算法,结合空间加速结构优化的相交测试,实现了对目标模型遮挡状态的准确检测和量化,包括部分遮挡和完全遮挡。这种方法不仅能够模拟真实海况下的复杂遮挡情况(如部分没入水面的船只),还为训练算法提供了更加真实和多样化的目标表现,显著提高了识别算法对复杂场景的适应能力;
89、(3)通过采用基于目标投影面积、距离和重要性的自适应射线采样密度计算方法,结合射线精度调整因子的动态调整,实现了在保证遮挡检测精度的同时优化计算资源使用的目标。这种方法能够根据目标的大小和重要程度动态调整采样密度,在提高生成效率的同时保证了关键目标的检测质量;
90、(4)通过在unity中创建自定义shader,实现了包括颜色空间转换、温度映射、热点效果和热辐射模糊在内的红外成像效果模拟。结合可调节的参数(如温度范围和对比度),这种方法不仅生成了高度逼真的红外目标图像,还能模拟不同的红外成像条件,增强了虚拟数据集的真实性、多样性和适用性。
本文地址:https://www.jishuxx.com/zhuanli/20241204/340533.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。