一种基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统的制作方法

文档序号:11514527阅读:438来源:国知局
一种基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统的制造方法与工艺

本发明涉及军事领域训练中的手榴弹投掷技术,尤其涉及一种基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统。



背景技术:

传统的手榴弹投掷训练,战士和相关测试人员在宽阔地带进行实地手榴弹投掷,即小脚步高频率助跑,准备出手前投弹一侧手臂大力向后方弯曲蓄力,最后一步用力蹬下,上肢顺着这股力全力扭转,手臂全力甩出。由于现有技术中投掷训练需要较大训练场地进行测试,造成空间的浪费,需要通过计算机相关技术模拟投掷,以达到缩小场地占用目的。然而测试时需要大量辅助人员来完成,重复且易出错,需要开发自动检测和记录功能提高自动化程度。可获得的训练数据少且各个地域数据相对孤立,根据数据进行指导的意义不大,需要精确的视频图像分析得到不同方面的测试数据,采用互联网技术,实现数据的跨地域比较和分析。

使用传统的人工测量和训练方法,既容易造成空间和人员的浪费,又会增加爆炸伤人事故的发生概率,同时在军事现代化发展的当下,传统的人工测试已经不能满足军事训练数据的大规模需求,而且训练效率低下。



技术实现要素:

根据现有技术存在的问题,本发明公开了一种基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统具体包括:

采用双目摄像头从其上面和侧面两个角度采集受训人员投掷过程中的图像信息的数据采集模块;

接收所述数据采集模块传送的不同角度图像数据信息对其进行图像分帧处理、获取投掷过程中目标物体在两个空间角度的速度信息和位置信息,从而获取其在三维空间的整体速度及位置信息的pc端模块,所述pc端模块结合设置的气象环境信息计算出投掷数据、构建pc端虚拟的投掷场景和显示计算结果并将数据输出;

根据pc端模块实时传送的数据信息,构建模拟vr效果的双目视觉下投掷轨迹场景信息进行动态场景显示的移动端模块;

该系统还包括接收所述pc端模块传送的数据信息进行信息保存和实时更新、支持跨地域数据访问的服务器模块,所述服务器模块实时接收用户的请求指令并进行应答。

在所述pc端模块中首先交互式地在上面和侧面两个角度的视频帧图像中点取投掷物区域内像素的像素值,并将该像素值与当前帧图像的所有像素值进行比较,相似度高的部分即目标投掷物的位置区域,然后根据数据采集单元传送的投掷过程的视频帧信息,利用opencv将上面和侧面两个角度视频中每一帧图像中的目标投掷物提取出来,显示在特定窗口中,完成整个帧图像序列中投掷物区域的过滤与识别过程;

在所述pc端模块中首先交互式地点取投掷物区域内像素的像素值,并将该像素值与当前帧图像的所有像素值进行比较,相似度高的部分即目标投掷物的位置区域,然后根据数据采集单元传送的投掷过程的视频帧信息,利用opencv将每一帧图像中的目标投掷物提取出来,显示在特定窗口中,完成整个帧图像序列中投掷物区域的过滤与识别过程;

所述pc端模块在特定窗口中显示出处理之后的手榴弹的位置,并获得该位置的坐标数据,将数据保存在一个定长的数据链表中,从链表中获取节点进行手榴弹速度和加速度的计算,同时计算出投掷的高度、角度和距离信息;根据计算出的信息,利用opengl建模方法,在pc端构建虚拟投掷场景,使得pc端操作员更加直观地看到投掷过程;通过socket和httppost方法将计算出的数据分别传送至移动端模块和服务器模块。

所述移动端模块在处理数据信息时,计算出投掷物的三维位置坐标,根据该三维坐标利用opengl技术进行投掷过程左右视觉vr场景的构建与绘制。

所述服务器模块利用mysql数据库建立数据存储表,将各个地域的各个pc端模块的数据汇总收集和数据分析、支持pc端对数据的跨地域访问。

由于采用了上述技术方案,本发明提供的一种基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统,该系统模拟真实投掷的训练和测试全过程,既实现了对战士手榴弹投掷训练的数据采集,也考虑了对场地和人力资源的消耗,同时还引入了无线vr装置以及“互联网+”的思维。具有节约训练场地资源和人力物力资源的特点,同时将虚拟现实相结合到军事训练中,利用“互联网+”思维,搭建中央数据库服务器,实现了对受训人员的训练数据的综合对比。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明系统的结构示意图;

图2为本发明系统的工作流程图;

图3为本发明系统的流程图;

图4本发明系统的实施例的示意图。

具体实施方式

为使本发明的技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:

如图1-图3所示的基于网络一体化和双目视觉技术的投掷物弹道轨迹测算系统,具体包括:

数据采集模块采用双目摄像头从其上面和侧面两个角度采集受训人员投掷过程中的图像信息。采用数据采集模块来采集受训人员在投掷过程的图像信息可以采用两个工业摄像头、两个摄像头的支架、以及对应的数据传输线和手榴弹拦截网对投掷人员的投掷过程进行图像采集。

pc端模块接收所述数据采集模块传送的不同角度图像数据信息对其进行图像分帧处理、获取投掷过程中目标物体在两个空间角度的速度信息和位置信息,从而获取其在三维空间的整体速度及位置信息。所述pc端模块结合设置的气象环境信息计算出投掷数据、构建pc端虚拟的投掷场景和显示计算结果并将数据输出。

移动端模块根据pc端模块实时传送的数据信息,构建模拟vr效果的双目视觉下投掷轨迹场景信息进行动态场景显示。

该系统还包括接收所述pc端模块传送的数据信息进行信息保存和实时更新、支持跨地域数据访问的服务器模块,所述服务器模块实时接收用户的请求指令并进行应答。

在所述pc端模块中首先交互式地点取投掷物区域内像素的像素值,并将该像素值与当前帧图像的所有像素值进行比较,相似度高的部分即目标投掷物的位置区域,然后根据数据采集单元传送的投掷过程的视频帧信息,利用opencv将每一帧图像中的目标投掷物提取出来,显示在特定窗口中,完成整个帧图像序列中投掷物区域的过滤与识别过程;

所述pc端模块在特定窗口中显示出处理之后的手榴弹的位置,并获得该位置的坐标数据,将数据保存在一个定长的数据链表中,从链表中获取节点进行手榴弹速度和加速度的计算,同时计算出投掷的高度、角度和距离信息;根据计算出的信息,利用opengl建模方法,在pc端构建虚拟投掷场景,使得pc端操作员更加直观地看到投掷过程;通过socket和httppost方法将计算出的数据分别传送至移动端模块和服务器模块。

所述移动端模块在处理数据信息时,计算出投掷物的三维位置坐标,根据该三维坐标利用opengl技术进行投掷过程左右视觉vr场景的构建与绘制。使得受试者佩戴移动端显示设备之后,可以体验到真实的投掷过程,增强受试者的投掷体验。

所述服务器模块利用mysql数据库建立数据存储表,将各个地域的各个pc端模块的数据汇总收集和数据分析、支持pc端对数据的跨地域访问。

实施例:

进一步的,如图所示:所述pc端模块的工作流程如下:

一、利用usb接口将摄像头安插在计算机上,pc端模块从两个摄像头中获取实时的原始视频帧数据,保存在capture和capture_up两个变量中,获取相应窗口的句柄,将原始图像先显示在对应的两个窗口中。

二、进行视频帧的处理工作,点击selectcolor按钮,在原始视频帧的画面上,利用鼠标点击目标的颜色区域,程序会获取该点的光标位置getcursorpos(&point),保存在point中,并进行坐标转换计算出该点在对话框上的相对位置,同时获取该位置中图像像素的rgb值,并将rgb颜色值转化为hsv颜色空间的颜色值,目的是获得更多的颜色信息(相对于rgb空间,hsv空间能够非常直观的表达色彩的明暗,色调,以及鲜艳程度,方便进行颜色之间的对比),使得下一步的颜色筛选更加准确。建立一个和窗口像素尺寸等大的数组px[],遍历该数组和窗口中的图像像素,与之前获取到的hsv值进行比较,在误差允许范围内进行图像的二值化处理,标识出目标位置,目标位置的数组值设定为0(黑色),其余位置值为255(白色),这样该数组的值就是处理后的图像像素值。

三、进行位置坐标的保存。遍历数组px[],当某点的数组值为0时,将该点的坐标位置x和y累加至sumx和sumy中,并记录个数为number,最终将这些点的位置平均值作为手榴弹的当前坐标,即realnowx=sumx/number和realnowy=sumy/number,最后将当前坐标的值保存在已经初始化的定长链表training中,以便下一步的速度计算。

四、运用链表中的数据进行速度计算。此过程有两种情况,情况一:当手榴弹抛出的那一时刻,我们刚刚好记录了那一瞬间的位置,则该位置为链表的最后节点存储的位置信息,向前遍历链表,逆向找出邻近的几个瞬间的位置数据,用最后的这几个节点数据,加上同时记录的瞬时时间,就可以通过数学模型计算出初速度和加速度信息,进而计算出最终的高度、角度和距离。情况二:当手榴弹抛出的那一时刻,没有记录下来瞬间的位置,则寻找时间上最邻近的节点,分别向前和向后遍历链表,多找出几个瞬间的位置数据,用数量弥补精确度,加上同时记录的瞬时时间,就可以通过数学模型计算出初速度和加速度信息,进而计算出最终的高度、角度和距离。

五、根据计算得出的位置信息绘制pc端的虚拟场景。每次计算出初速度和加速度信息后,就可以计算出在相应时刻的距离、高度数据,根据这些数据,虚拟场景中的手榴弹物体就可以随着时间做出抛体运动。

六、将计算结果发送给服务器端。每次pc端计算出投掷数据后,就和服务器端通过post方法进行数据的交互,数据内容为:用户名,请求id,投掷的距离,投掷的高度,投掷的角度和投掷日期。数据形式为json数据格式。

七、将投掷数据发送给移动端。每次pc端计算出投掷数据后,就和移动端建立socket连接,将x,y,z三个空间方向的初速度,加速度和初始位置信息发送给移动端,以便移动端进行vr效果的实现。

移动端模块具体工作流程如下:

一、移动端首先利用layout配置文件将手机屏幕分割为左右两个区域,实现屏幕分割。在两个区域中模拟左右眼睛的视图,以此达到vr的真实效果。

二、移动端启动新线程与pc端建立socket后,开始等待pc端发来的数据,当pc端完成一次抛掷后,移动端会收到pc端依次发来的加速度的数组,初速度的数组,初位置的数组,每个数组包括三个变量,分别存储x,y,z三个维度上的加速度,初速度,初位置。之后,移动端将通过ball对象把这三个数组的值存储,并提供给leftrender与rightrender,这两个为myrender类的对象,该类实现了opengl的glsurfaceview中绘制图形所需要的方法,可以用来绘制屏幕,即leftrender与rightrender实现了左右屏幕的控制。leftrender与rightrender收到ball后,根据ball对象中初始位置重绘屏幕,并根据公式x+=vx*t+0.5*ax*t*t。实时计算ball对象的位置,不断重绘屏幕,直至z维度上的值为0,此时球已落地,绘制结束。等待下一次投掷数据的传送。

服务器模块具体工作如下:

一、服务器模块利用python的django框架搭建,采用mysql数据库进行数据的存储。启动服务器,等待pc端请求,收到pc端请求后对pc端请求合法性进行确认,进而采取下一步动作。pc端有四种请求方式,对应四个请求id,分别为:用户登录,用户注册,获取成绩和插入用户成绩。服务器根据不同的请求做出不同的响应。

二、当请求为用户登录时。服务器获取请求数据中的用户名和密码,从数据库中获取相关数据进行对比,检测该用户是否存在,如果存在则返回用户的基本信息,如:性别,身高,军区等。如果不存在,则返回请求失败,并附上失败原因,如:密码错误,用户名不存在等。

三、当请求为用户注册时。服务器获取请求数据中的用户名,查询相关数据库,检测是否有重名,如果重名返回错误信息,如果不重名,则把数据中的用户基本信息保存在数据库中,并返回注册成功。

四、当请求为获取成绩时。服务器获取请求数据中的用户名,查询相关数据库,并按照时间顺序返回该用户的投掷数据(此处无需判断该用户是否存在,因为只有正常登陆后,才能进行成绩的获取)。

五、当请求为插入用户成绩时。服务器获取请求数据中的用户名,找到相关数据库,按照投掷距离,投掷角度,投掷高度和投掷日期插入至数据库中,返回插入成功。

六、等待用户请求

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1