一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Unity3D视频监控可视化布局优化的方法与流程

2022-05-18 12:11:44 来源:中国专利 TAG:

一种基于unity3d视频监控可视化布局优化的方法
技术领域
1.本发明涉及视频监控布局领域,具体是一种基于unity3d视频监控可视化布局优化的方法。


背景技术:

2.随着5g时代的到来,视频监控画面的质量和传输速度有着显著提升,视频监控设备在各行各业有着广泛的应用。尤其在安全生产方面,视频监控设备从以前仅仅对目标区域的显示,到现如今能够对目标区域出现的危险情况进行一定的识别和及时的告警,对安全生产能起到必不可少的作用;但在实际的工程实践中,这些智能的视频监控设备往往是由工程师根据自己以往的经验进行布置,没有考虑到空间中物体对视频监控设备的遮挡,会导致视频监控效果不好,并且每个视频监控设备的控制范围都是模糊的,缺乏对视频监控设备布置方案的量化评估和可视化显示,具有一定的局限性;unity3d是一种用于打造可视化产品以及构建交互式和虚拟体验的实时3d平台,可以对实际的监控场景进行三维建模,能够将视频监控布局的控制范围和实际位置进行可视化的显示,因此,现阶段如何将 unity3d建模软件与智能优化布局算法相结合、实现对视频监控设备布局优化的问题变得尤为迫切。


技术实现要素:

3.本发明目的在于提供一种基于unity3d视频监控可视化布局优化的方法,本发明结构合理,设计巧妙,适合推广;
4.为实现上述目的,本发明所采用的技术方案是:一种基于unity3d视频监控可视化布局优化的方法,包括以下步骤:
5.步骤1:根据实际监控场景,建立实际不规则场景物体和地面条件的三维模型,预设监控场景所需监控设备数量,再依据监控设备拍摄范围,设置unity 中监控设备的参数,得出现场三维模型;
6.步骤2:将现场三维模型体素化,建立实际不规则场景物体和地面条件的体素化脚本,将体素化脚本挂载在现场三维模型中,形成网格模型;
7.步骤3:获取网格模型中每个体素中各个表面的中心坐标,记为模型表面点,判断网格模型中各网格点是否被监控设备监控;
8.步骤4:在网格点均被监控设备监控的条件下,采用粒子群算法对模型表面点进行求解;
9.步骤5:使用unity3d获取粒子群算法的求解结果,对单个监控设备的控制区域和所以加快设备在实际监控场景中的位置进行可视化展示。
10.优选的,所述步骤3中,现场三维模型体素化后,将体素化脚本挂载在现场三维模型前,还需剔除中心坐标重复的体素,只保留物体表面的体素数据。
11.优选的,所述步骤4中,判断网络模型中网格点是否被监控设备监控的方法包括以
下步骤:
12.步骤41:判断是否存在监控设备可视范围外的网格点,若是,则进入步骤 42,若否,则进入步骤43;
13.步骤42:网格点未均被监控设备监控;
14.步骤43:在unity中,从监控设备点向监控点发射射线,判断射线途中是否有穿过物体,若是,则进入步骤42,若否,则进入步骤44;
15.步骤44:计算监控设备视线向量与被监控平面法向量的夹角,判断夹角是否在监控设备范围内,若是,则进入步骤45,若否,则进入步骤42;
16.步骤45:网格点均被监控设备监控。
17.优选的,所述步骤5中,采用粒子群算法对集合进行求解时,还包括以下步骤:
18.步骤51:将模型表面点建立成集合,根据集合建立粒子数目为n的粒子群,设每个粒子的维度为场景所需的监控设备数量m;
19.步骤52:设定目标函数为m个监控设备所监控的网格点的覆盖率,进行迭代运算;
20.步骤53:重复迭代运算,直到达到停止迭代条件,输出求解结果。
21.优选的,所述步骤52所述覆盖率具体为:
22.模型覆盖率=被监控点的数目/所有模型表面的点的数目
23.优选的,所述步骤53停止迭代条件为模型覆盖率达到最低。
24.优选的,所述迭代运算具体为:
25.vi=vi c1×
rand()
×
(pbest
i-xi) c2×
rand()
×
(gbest
i-xi)
26.xi=xi vi27.其中,i=1,2,...,n,n是此群中粒子的总数,vi是粒子的速度,rand()是介于 (0,1)之间的随机数,xi是粒子的当前位置,c1,c2是学习因子,通常均设为1, pbesti是历史最优位置,gbesti是全局最优位置。
28.与现有技术相比,本发明的有益效果为:
29.本发明针对实际工程中,视频监控设备布置不合理,利用unity3d建模软件和粒子群算法相结合,得出在视频监控设备数目一定的情况下,视频监控设备覆盖率最大的优化布局结果,并能通过unity3d展示出每个视频监控设备控制范围和安装位置。
附图说明
30.图1为一种基于unity3d视频监控可视化布局优化的方法的流程示意图;
31.图2为一种基于unity3d视频监控可视化布局优化的系统的三维模型体素化效果图;
32.图3为一种基于unity3d视频监控可视化布局优化的系统的剔除中心坐标重复的体素的流程图;
33.图4为一种基于unity3d视频监控可视化布局优化的系统的判断网络模型中网格点是否被监控的流程图;
34.图5为一种基于unity3d视频监控可视化布局优化的系统的粒子群算法的运算流程图。
具体实施方式
35.下面结合本发明的附图1~5,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施。
36.在本发明的描述中,需要理解的是,术语“逆时针”、“顺时针”“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
37.如图1所示,一种基于unity3d视频监控可视化布局优化的方法,包括以下步骤:
38.步骤1:根据实际监控场景,建立实际不规则场景物体和地面条件的三维模型,预设监控场景所需监控设备数量,再依据监控设备拍摄范围,设置unity 中监控设备的参数,得出现场三维模型;
39.步骤2:将现场三维模型体素化,建立实际不规则场景物体和地面条件的体素化脚本,将体素化脚本挂载在现场三维模型中,形成网格模型;
40.步骤3:获取网格模型中每个体素中各个表面的中心坐标,记为模型表面点,判断网格模型中各网格点是否被监控设备监控;
41.步骤4:在网格点均被监控设备监控的条件下,采用粒子群算法对模型表面点进行求解;
42.步骤5:使用unity3d获取粒子群算法的求解结果,对单个监控设备的控制区域和所以加快设备在实际监控场景中的位置进行可视化展示。
43.步骤1中,根据实际监控场景,建立实际不规则场景物体和地面条件的三维模型时,通过unity3d软件进行建模,并且对地面建筑添加均触发器组件,为步骤3判断网格点是否能被监控起到触发作用,通过将实际监控场景与监控设备控制域立体体积相除,得到预设的监控设备数量,根据计算处的监控设备数量,在实际不规则场景物体和地面条件的三维模型中添加监控设备对象,根据实际监控设备的近视和远视拍摄范围、焦距,对unity3d中视频监控设备模块参数进行初始化,监控设备可采用摄像头;
44.如图2所示,由于地面建筑物表面往往不规则,难以量化监控设备的控制效果,难以判断地面建筑物对视线的遮挡,故对物体进行体素化操作,以边长为 0.1m的正方体,进行体素化,得到的体素化正方体的顶点坐标,一个体素化正方体为24个顶点,一个面四个,将其取中心坐标,获取表面每个体素面正方体的中心顶点位置数组;
45.步骤5中,通过设置监控设备的transform'组件,设置位置,旋转角等参数,将最终结果显示到unity3d软件界面中。
46.如图3所示,具体的,所述步骤3中,现场三维模型体素化后,将体素化脚本挂载在现场三维模型前,还需剔除中心坐标重复的体素,只保留物体表面的体素数据。
47.为了量化三维模型被监控设备监控的效果,需要获取三维模型表面点的坐标,但由于体素化模型后,得到的体素正方体有部分包含在模型内部,产生中心坐标重复的体素,所以需要剔除内部体素正方体的顶点,留下模型表面的顶点位置,具体剔除方法如下:
48.1)单个体素正方体的顶点数为24,个,一个面为4个,一共六个面。根据每个面4个
顶点计算中心坐标,将单个体素正方体转换为点数为6个。
49.2)遍历所有列表里的体素正方体点,6个为一组,将6个体素正方体点中的每一个顶点依次与剩下所有顶点进行空间位置是否相同判断,如果有相同则剔除。
50.3)留下的列表里的内容即为三维模型表面所有的能代表该体素区域的点,列表的长度既为该三维模型需要被监控到的点数。
51.如图4所示,具体的,所述步骤4中,判断网络模型中网格点是否被监控设备监控的方法包括以下步骤:
52.步骤41:判断是否存在监控设备可视范围外的网格点,若是,则进入步骤 42,若否,则进入步骤43;
53.步骤42:网格点未均被监控设备监控;
54.步骤43:在unity中,从监控设备点向监控点发射射线,判断射线途中是否有穿过物体,若是,则进入步骤42,若否,则进入步骤44;
55.步骤44:计算监控设备视线向量与被监控平面法向量的夹角,判断夹角是否在监控设备范围内,若是,则进入步骤45,若否,则进入步骤42;
56.步骤45:网格点均被监控设备监控。
57.步骤41通过unity3d中geometryutility.calculatefrustumplanes的方法,获取计算监控设备的视景,并返回它的六个面。将目标点依次判断是否在六个面的正方形上,若全部满足则继续进行判断,若不满足则表示该网格点不能被监控到;步骤43中,将所有地面建筑物添加触发器组件,当射线如果穿过地面建筑物,则会触发触发器事件,此时就可以判断该点不能被监控到。
58.如图5所示,具体的,所述步骤5中,采用粒子群算法对集合进行求解时,还包括以下步骤:
59.步骤51:将模型表面点建立成集合,根据集合建立粒子数目为n的粒子群,设每个粒子的维度为场景所需的监控设备数量m;
60.步骤52:设定目标函数为m个监控设备所监控的网格点的覆盖率,进行迭代运算;
61.步骤53:重复迭代运算,直到达到停止迭代条件,输出求解结果。
62.粒子的维度中还包含有监控设备的空间位置(x,y,z)、俯仰角、和水平旋转角的值,设定每个位置的初始位置和初始速度。
63.具体的,所述步骤52所述覆盖率具体为:
64.模型覆盖率=被监控点的数目/所有模型表面的点的数目
65.具体的,所述步骤53停止迭代条件为模型覆盖率达到最低。
66.具体的,所述迭代运算具体为:
67.vi=vi c1×
rand()
×
(pbest
i-xi) c2×
rand()
×
(gbest
i-xi)
68.xi=xi vi69.其中,i=1,2,...,n,n是此群中粒子的总数,vi是粒子的速度,rand()是介于 (0,1)之间的随机数,xi是粒子的当前位置,c1,c2是学习因子,通常均设为1, pbesti是历史最优位置,gbesti是全局最优位置。
70.粒子根据迭代运算公式更新自己的速度和位置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献