公开/公告号CN113115021A
专利类型发明专利
公开/公告日2021-07-13
原文格式PDF
申请/专利权人 天海欧康科技信息(厦门)有限公司;
申请/专利号CN202110382713.9
申请日2021-04-09
分类号H04N13/204(20180101);H04N13/296(20180101);G06Q10/08(20120101);
代理机构11465 北京慕达星云知识产权代理事务所(特殊普通合伙);
代理人符继超
地址 361006 福建省厦门市湖里区泗水道669号国贸商务中心12楼
入库时间 2023-06-19 11:49:09
技术领域
本发明涉及物流仓储技术领域,更具体的说是涉及一种物流三维可视化场景中的相机位动态聚焦方法。
背景技术
目前,随着物流行业崛起,国内第三方物流近年已得到长足发展,越来越多的存储、运输企业都转型到第三方物流企业(以下简称3PL),使3PL的竞争日趋激烈。3PL业务流程的一个核心业务环节就是分拣管理,作为第三方物流的最根本目的是降低物流作业及管理成本。
在物流可视化管理中,各个三维节点的细节可视化是可视化项目的意义所在,但通过传统的三维轨道控制,并不能直接的聚焦到节点细节上,只能在大范围上去观看。现有的三维可视化物流系统中,使用的是固定节点轨道,在需要观察一些单位粒度的节点信息时,则无法观察,也无法重新定位节点,用户体验差,信息细节无法可视化。
因此,如何实现三维可视化场景中相机位动态聚焦,进行细节信息查看是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种物流三维可视化场景中的相机位动态聚焦方法,实时采集物流中PLC设备数据后,基于数据驱动的方式,在三维场景中进行实时的自动化映射,并且自动化驱动三维作业流水线,在此基础上通过三维交互,让三维视觉镜头快速定位到三维节点附近,并重新设定轨道中心,方便全方位观察目标细节信息。
为了实现上述目的,本发明采用如下技术方案:
一种物流三维可视化场景中的相机位动态聚焦方法,包括以下具体步骤:
步骤1:获取对象节点数据;
步骤2:对所述对象节点数据进行反序列化处理,获得对象节点列表;
步骤3:通过遍历所述对象节点列表,转化为可视化对象数据,将所述对象节点列表实例化创建为场景中的三维对象节点,并将所述可视化对象数据映射到所述场景中的所述三维对象节点上;实现了基于数据来创建三维对象节点,并映射了节点的细节信息;
步骤4:选定一个对象节点为对焦目标,根据当前相机位置信息和对焦目标位置信息进行三维相机节点运算,实现当前聚焦。
优选的,所述步骤1中通过发送对象节点数据请求返回所述目标对象节点数据,所述目标对象节点数据为json数据。
优选的,所述步骤4中所述当前相机位置信息中相机坐标为v1(x,y,z),所述对焦目标位置信息中对象节点坐标为v2(a,b,c),计算相机到所述对焦目标的距离,公式为:
旋转所述相机,令相机的z轴(正方向)指向v2,移动相机,当v1的坐标和对象节点坐标v2的距离等于设定的偏移距离值时,停止移动,并停止三维相机节点的运算,完成聚焦。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种物流三维可视化场景中的相机位动态聚焦方法,产生的有益效果为:
1)步骤1-3的基于数据驱动的对象节点创建方式,节点创建更加灵活,数据变更后,节点也会同步更新。
2)动态聚焦,根据目标对象节点来动态聚焦,方便查看节点细节信息。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1附图为本发明提供的物流三维可视化场景中的相机位动态聚焦流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种物流三维可视化场景中的相机位动态聚焦方法,包括以下步骤:
S1:获取对象节点数据;通过发送对象节点数据请求返回目标对象节点数据,目标对象节点数据为json数据
S2:对对象节点数据进行反序列化处理,获得对象节点列表;
反序列化处理过程:获取到的数据为一串有规则的带分隔符的string类型的字符串,将字符串按照分割符进行逐级分割获得切片字符串;分割后的切片字符串需要再根据与数据提供方约定好的符号进行二次分割从而得到各个切片字符串的类型;然后在代码中创建对应类的对象实例,并添加到一个列表中存储以供后续使用,该列表即为对象节点列表;
S3:通过遍历对象节点列表,转化为可视化对象数据,将对象节点列表实例化创建为场景中的三维对象节点,并将可视化对象数据映射到场景中的三维对象节点上;实现了基于数据来创建三维对象节点,并映射了节点的细节信息;
获得对象节点列表后,创建一个字典,用来存储三维对象节点和对象实例,使用for循环来遍历所有的对象实例,遍历一个就创建一个三维对象节点,并按照对象实例的数据信息(数据信息指对象实例中的属性,如包括坐标信息(x,y,z)、字段属性等)去让三维对象节点渲染到对应的坐标信息表示的坐标节点位置上,即按照对象实例的数据信息中的坐标字段,将三维对象节点在三维场景中的坐标设置为对象实例中坐标字段表示的坐标值;同时添加当前三维对象节点和对象实例到字典中,此步骤完成了依据数据来创建三维对象,并实现一一对应的映射绑定;
S4:选定一个对象节点为对焦目标,根据当前相机位置信息和对焦目标位置信息进行三维相机节点运算,实现当前聚焦;
当前相机位置信息中相机坐标为v1(x,y,z),对焦目标位置信息中对象节点坐标为v2(a,b,c),计算相机到对焦目标的距离,公式为:
旋转相机,令相机的z轴(正方向)指向v2,移动相机,当相机坐标v1的坐标和点击物体选中的对象节点坐标v2的距离等于设定的偏移距离值时,停止移动,并停止三维相机节点的运算,完成本次的聚焦;
其中,偏移距离值是一个固定的值,比如设定值是5,表示相机和目标之间的偏移距离为5,距离公式得出的distance用于计算v1与v2之间的实时距离,即移动相机时距离点击目标的实时运算距离;当移动时,实时计算距离distance的值,当distance的值等于预设值的偏移距离值时,停止移动,停止距离计算,完成聚焦;
一个物体在三维空间中,用三个轴向来标志他当前的位置,按笛卡尔坐标系,以相机的镜头凸出方向为正方向z轴,以相机的左右为x轴,以相机的上下为y轴,那么令相机z轴朝向v1坐标,则旋转相机的x轴,当相机的z轴的延长线与对象节点坐标v2即目标点相交时,停止旋转。
实施例
如图1所示,基于物流三维可视化系统进行相机位动态聚焦,首先初始化三维可视化系统的环境;然后三维可视化系统向数据中心发送获取对象节点的数据请求,数据中心向三维可视化系统返回对象节点数据,即从服务器拉取数据,传输数据为json数据;其次,根据返回的对象节点数据创建三维场景,并映射为三维节点,用户通过鼠标在三维可视化系统中点击选中对焦目标;根据对焦目标进行相机运算,利用运算结果指导相机移动和旋转等,实现对选中对焦目标的聚焦。设定偏移距离值,在动态聚焦过程中,首先从服务器拉取数据,根据获取的数据在三维空间中创建对应数量的三维箱子,并让三维箱子代表对应的节点数据,当点击三维箱子时,即选中聚焦目标,让三维场景中的摄像机朝向点击的三维箱子移动,实时计算摄像机与点击的三维箱子的距离,移动到距离点击的三维箱子偏移距离值的地方停止,从而完成聚焦。
实施例
S1:首先初始化三维可视化系统的环境;然后三维可视化系统向数据中心发送获取对象节点的数据请求,数据中心向三维可视化系统返回对象节点数据,即从服务器拉取数据,传输数据为json数据;
数据样例如下:
{"message":"success","data":[
{"id":1001,"name":"中华","weight":100,"status":"满","quantity":50,"X":10,"Y":15,"Z":5},
{"id":1002,"name":"芙蓉王","weight":100,"status":"满","quantity":50,"X":11,"Y":15,"Z":5},
{"id":1003,"name":"大前门","weight":100,"status":"满","quantity":50,"X":12,"Y":15,"Z":5}
]}
;
S2:获得此数据串后,会对数据进行解析反序列化,即通过约定的格式进行分割提取数据,上面这个数据串中:方括号内为数据组,每一组数据都用一对大括号包围起来。因数据格式已经提前约定,定义一个Cigbox类,类中包含字段:id,name,weight,status,x,y,z等。使用Cigbox创建三个实例对象,cbox1,cbox2,cbox3,然后将三组数据对应三个实例对象进行一一赋值;
S3:定义一个列表List
S4:假设偏移距离值设定为5,当点击三维箱子cbox1时,让三维场景中的摄像机朝向点击的三维箱子移动,假设三维相机为v1(1,2,1),cbox1为v2(10,15,5),则使用距离公式实时计算distance的值,
三维相机是移动的,则v1的坐标值改变,计算出的distance值也在不断改变,当distance=5时,停止三维相机的移动,完成聚焦。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
机译: 一种控制混合物中的醇alqu u00edlico数量的方法,一种环氧烷烃的制备方法和一种乙二醇醚物流以及一套生产环氧烷烃的物流的生产方法
机译: 包含相陶瓷的金属陶瓷复合材料的生产方法;用于在基体金属中沉淀相陶瓷的方法;均匀分散金属蜡ICA的方法在金属基体中至少一种金属间化合物沉淀就地“沉淀”的方法;至少一种将它们分散在基体金属材料陶瓷中的沉淀方法,
机译: 一种用于检测在生物流体中含有β-内酰胺环的抗生素的方法以及一种用于在生物流体中检测抗生素的测试试剂盒。