一种多波长红外激光射击点识别系统的制作方法

文档序号:17820825发布日期:2019-06-05 22:13阅读:160来源:国知局
一种多波长红外激光射击点识别系统的制作方法

本发明属于光学及图像处理领域,具体涉及一种多波长红外激光射击点识别系统。



背景技术:

红外激光射击最初的需求源于军事训练。为了减少训练费用、提高安全性、减轻对环境的影响,许多国家早己开始研究使用模拟武器来进行军事训练。另外,随着计算机技术、传感器技术的普及,激光技术,虚拟现实技术的实现,使用模拟激光武器进行军事训练已具备了非常成熟的条件。于是各国纷纷研究出了许多先进的训练模拟器,这些训练模拟器大致上可分为两类,一类是基于激光技术的模拟射击系统,另一类是基于虚拟现实技术的场景模拟系统。

另一方面,近年来游戏产业持续升温,因而被各界人士公认为是潜力无限的朝阳产业。随着生活水平的提高,游戏成为了不少人生活中不可缺少的娱乐部分。

随着多媒体技术,计算机技术及大屏幕显示技术等相关技术的快速发展,大屏幕射击游戏越来越受人们欢迎,从而引发人们对激光技术识别系统的研究。

市面上已有的一些模拟激光射击系统绝大部分是根据激光枪的动作来捕捉位置。这样有非常大的缺陷。其一是射击位置不准确,当激光枪平行移动,无偏角产生时,无法识别射击点的移动。累计产生误差,最终会导致无法正常使用,必须经常校准。其二是成本过高,对枪体的位置状况进行判断要使用到许多复杂的设备,例如陀螺仪等,使得激光枪必须与系统配套特制,造成成本浪费。因此现有技术还有待于改进和发展。

同时一部分已经有的根据滤光摄像头采集识别射击点的方法,由于所使用的都是单一波长滤光技术。所以理论上在激光枪的数量上是有使用上限的。当激光枪数量达到一定数量的时候,系统的识别相应就会出现很严重的延迟。



技术实现要素:

本发明的目的是提供一种多波长红外激光射击点识别系统,以有效解决现有技术中的模拟激光射击系统成本高、识别误差大、多人射击时对于参与人数有一定限制的问题。

本发明采用的技术方案如下:

一种多波长红外激光射击点识别系统,包括激光发射装置、显示装置、控制主机及摄像装置,其中,

所述激光发射装置,包括至少两组不同波长的激光枪组,各组的激光枪发射激光于所述显示装置上,同时给所述控制主机一个图像采集指令;

所述控制主机,根据激光枪组的数量,分配对应数量的工作线程,接收所述激光发射装置的采集指令后,同步控制对应波长的所述摄像装置开始采集显示装置上的光斑图像;

所述摄像装置,包括至少可识别两组不同波长的摄像头,各摄像头根据控制主机的指令采集所述显示装置中的各波长的光斑图像并进行滤波处理,滤除红外激光以外的光线,保留图像中的激光光斑并发送给控制主机,控制主机将计算得到的射击点坐标位置反馈给游戏,进而进行游戏响应。

进一步地,每一个激光枪内设置有一个独立的无线通讯模块,在同一波长的激光枪组内,并设定每一个激光发射装置的发射时间间隔和对应摄像头的采用频率,在各激光枪组内的不同激光枪朝向所述显示装置发射激光时,在同一时间段内,只有其中一个激光枪与所述控制主机通讯连接。

进一步地,所述激光枪组的数量、波长段的数量、工作线程数量、摄像头数量一一对应。

进一步地,控制主机根据激光枪组的数量,设定同等数量的工作线程,每个工作线程负责处理该激光枪组的全部射击流程,各工作线程独立同步运行。

进一步地,对每个线程在进行单一资源访问的时候都加入线程互斥机制来确保资源唯一访问。

进一步地,对同波长段的所述激光枪的发射时间间隔设置通过控制主机内的plc控制器实现,预先根据每个激光枪的id号设置对应的发射频率和采样频率,并将所有激光枪的数据存储到统一的数据库中,在多个激光发射装置发射激光时,通过plc控制器依次选取对应的激光枪,在前一个激光枪的激光光斑位置被采集并反馈给游戏后方进行该波段内的下一个激光枪的信号采集。

进一步地,所述控制主机对摄像装置采集的激光光斑依次经过灰度化处理、二值化处理、矩形拟合处理,得到近似射击点坐标,然后对该坐标进行校准和修正,得到最终确定的射击点坐标,最后将射击点坐标发送给游戏系统,游戏系统根据射击的坐标点产生对应的射击反馈。

进一步地,同一波段内的各激光枪的发射时间间隔范围小于射击类游戏图像的每秒播放帧。

进一步地,所述摄像装置中预先加装有滤波片,该滤波片根据激光发射装置的波长设定好滤波范围,仅保留红外激光射击在屏幕上形成的光斑图像。

进一步地,发射时间间隔根据各激光组内的激光枪的数量进行调整,所述摄像头也根据调整后的发射时间间隔进行采集时间的调整。

与现有技术相比,本发明所公开的一种多波长红外激光射击点识别系统,达到了如下技术效果:

(1)多个摄像头并行工作,每个波长的摄像头可以允许该波段的多个激光枪进行射击定位,减小了在单一波长的激光枪数量过多可能造成的射击点识别错误或延迟的现象存在,大大提供了射击精度和响应时间。

(2)激光抢发射的射击信号和通讯信号同步触发以及控制主机控制摄像头拍摄图像后识别位置来进行定位以及反馈,限定同一时间只有一个射击点出现在图像上的方式大大降低了控制主机的负载,效率和准确性都远大于现有的识别方法。

附图说明

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

图1为本发明实施例所述的多波长红外激光射击点识别系统的系统架构图。

图2为本发明实施例所述的多波长红外激光射击点识别系统的流程工作图。

图3为本发明实施例所述的多波长红外激光射击点识别系统的控制流程图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

参照图1所示,本发明实施例所公开的一种多波长红外激光射击点识别系统,包括:激光发射装置1、显示装置2、控制主机3、摄像装置4及投影机5。其中,激光发射装置1发射出激光光线,击中显示装置2后,在显示装置2上成像,在发射激光的同时,给控制主机3一个信号,控制主机3控制摄像装置4采集识别显示装置2上的光斑图像,先进行滤波处理,然后反馈给控制主机3进行图像处理和位置分析,完成整个定位识别流程。

本实施例中,激光发射装置1可以为现有的娱乐场景常用的激光枪,枪口朝向显示装置,显示装置2可以为投影屏幕或者其他能够显示图像的电子设备。摄像装置4可以为安装在在显示装置前方的摄像头,优选为工业摄像头,普通摄像头的采集速度一般为30帧每秒,无法满足对于定位精度的采集速度的要求,而工业摄像头的采集速度为120帧每秒,完全可以满足定位精度以及相应速度的要求。控制主机3则可以采用现有的微处理器、工业/家用计算机或笔记本电脑等带有运算和数据处理功能的设备。每一个激光发射装置1均内置有无线通讯模块,优选采用短距离无线通信的蓝牙模块,与控制主机3无线连接,对应地,控制主机3内也安装有蓝牙芯片与其配对连接。

现有的激光枪在进行射击的时候,多采用单一波长的滤光,但是一个波长段的激光枪波长数量如果过多,容易存在识别延迟或者错误的现象。

本发明根据激光枪的红外发射波长,对应分成多个不同的激光枪组,以图1为例,共分成三个波长段,850nm、980nm和1550nm,当然可以划分更多。同样地,将采集该激光光斑的摄像头也进行了划分,划分为三组,分别对应采集850nm、980nm和1550nm的摄像头的射击点位。由于是多个摄像头的并行工作,每个波长的摄像头可以允许多个激光枪进行射击定位,三波长摄像头的存在相当于同时允许三组激光枪组进行射击识别。大大提高了在单一波长滤光是激光枪数量过多可能造成的射击点识别错误或延迟的现象存在。大大提高了射击精度和响应时间。举例来说,原本单一波长的时候同时有12把激光枪在进行射击,通常需要对每把激光枪的射击间隔和采样频率有非常精确的要求,现在我们变成三波长的摄像头识别,12把激光枪分成三组,每组4把激光枪。这样在单一波长的情况下我们只要设置好每一组内的4把枪的射击频率和采样频率就可以了。这样,大大缩短了系统响应时间和反馈时间,同时也可以大大增加射击人员的数量。只要射击场地的条件允许,我们可以同时容纳更多人来同时进行一部大型射击游戏。根据本发明的构思,所要做的只是增加一系列波长的红外滤光摄像头和对应波长的激光枪组即可。

以图1中的设备为例,我们以三个红外波长为例搭建整个多波长红外激光系统。整个系统结构及工作原理如下:

1、激光枪对准屏幕进行射击、发出红外激光至屏幕,同时通过蓝牙模块与控制主机通讯,给控制主机一个采集拍摄的指令;

2、控制主机接收到激光枪传来的指令信号后,控制摄像头开始启动工作,摄像头对屏幕图像进行拍摄,利用自带的滤光片将红外激光以外的光线滤掉,识别出图像中的射击点并发送给控制主机;

3、控制主机对图像进行处理后计算出准确的射击点位置并将射击点位置坐标反馈给游戏,进而相应游戏响应。投影机用来显示游戏内容,作为显示输出用。

为了提高识别效率,本发明实施例中的摄像装置为加装了滤光片的ccd工业摄像头,而且,事先根据每组激光枪的发射波长,设计滤光片的滤波范围,所以我们所得到的屏幕图像就是对应的激光枪发射出来的光线位置,而不需要进行波长识别。加装了滤光片后,会把可见光谱部分的光线全部滤掉,只会留下红外激光枪击中屏幕后形成的红外激光点。相比现有中陀螺仪式的激光枪通过计算陀螺仪加速度来计算出射角进而确认射线角度再确认射击点位置的方式,因此本发明的效率、准确性以及精度都要远大于现有的识别系统。

此外,激光枪射击信号和通讯信号同步触发以及控制主机控制摄像头拍摄图像后识别位置来进行定位以及反馈。系统设定了激光枪组群的每一个激光枪的发射间隔,使屏幕上同一时间内只有一个激光光点存在,这样可确保每一部激光枪的射击精度和定位的准确度。

每个激光枪都有一个独立的控制通讯模块。设定使系统同一时间内统一波长段的激光枪组内,只有一个激光枪的信号可以发送给主机,也就是在设定的某时间内,控制主机每次只接收一个激光枪的指令信号,该指令要求主机控制摄像头进行图像采集以及后续的坐标识别,识别结果再反馈给图像做相应的反馈,待一个激光枪的射击位置识别结束后,方进行该波长段的下一个激光枪的射击位置识别。这样避免了图像上可能会同时出现两个甚至多个射击点导致无法识别具体每个射击点对应的是哪个激光枪发出的激光信号。这种限定同一时间只有一个射击点出现在图像上的方式大大降低了控制主机的负载,效率和准确性都远大于现有的识别方法。

为了准确控制不同波长的激光枪和摄像头在同一系统内有序的进行采集和识别,通过控制主机分配多个工作线程来实现。参照图2、图3所示,采用多线程的方式来同步处理三个激光枪组的射击、采集、识别、坐标确定以及反馈给游戏的流程,多线程的同步运行方式确保了所有的激光枪组的射击流程都会得到精确的响应,确保整个射击过程的流畅性。此处的三个线程同步处理,是说,三组摄像头协同步调、按预定的先后次序进行运行,比如a组摄像头拍摄完,再到b组摄像头拍完后,再到c组的摄像头。

采用多线程的控制方式,系统执行时,控制主机的主线程会自动创建三个分线程给三个激光枪组,每个分线程负责处理对应的激光枪组的全部射击流程,确定坐标点以后反馈给主线程,主线程根据坐标反馈给游戏提供相应的相应。

参照图3所示,系统初始化后,控制主机根据激光枪组的组数,创建分线程,然后每个分线程分别初始化完成相应的功能,第一工作线程处理850nm激光枪组的射击识别,第二工作线程处理980nm的激光枪组的射击识别,第三工作线程处理1550nm激光枪组的射击识别。首先创立三个分线程,创立以后,通过对控制主机内部运行程序的编写实现多线程之间的同步运行,这样可以合理协调各线程对系统资源的访问,避免由于不同步导致不同的激光枪组射击流程出现延迟,卡顿等现象。

多线程同步的同时,由于对于同一资源的访问在同一时间内只能有一个线程。为了避免出现同一时间内出现多个线程对同一资源访问造成冲突出错的现象。本发明对每个线程在进行单一资源访问的时候都加入线程互斥机制来确保资源唯一访问。其中,互斥机制保证单一时间内只有一个线程在进行处理,互斥机制作为单一资源访问时的约束条件。

举例来说,三组摄像头,对应三组不同波长的激光枪组,每一组的摄像头采集完该组的全部激光枪射击的信号之后,再按照线程到下一组摄像头采集。每组激光枪的发射时间间隔都是独立的,不重复的,根据不同的发射间隔协调各线程以及各激光枪数据的采集。

通过上述的多线程处理以后,系统可以用最合理的轮序方式实现多激光枪组射击识别。不同的激光枪组进行射击的时候,也可以确保同一时间内屏幕上只有唯一一个射击点可以被采集到。

此外,为了合理的控制来实现同一时间的画面中只有一部激光枪的图像,以cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)芯片为核心来搭建目前市面上比较流行的plc控制系统,通过控制主机内部的plc控制器配合来控制多个激光枪之间的发射时间以及摄像头的图像采集对应。plc控制器以cpld芯片为核心搭建出来的,作为独立的控制系统控制各激光枪的射击时间间隔。通过蓝牙模块连接plc控制器和激光枪,实现二者的通讯。

一般情况下,射击类游戏的播放帧率为24帧/s,我们在设定激光枪的发射间隔时,通过操作plc控制器设定各部激光枪的发射间隔范围为1到2帧之间。具体间隔可以根据激光枪的数量来做人为调整,激光枪多的时候,设置的发射间隔范围更短,然后通过控制plc控制器把每部激光枪的发射时间与摄像头的采集时间进行匹配,plc控制器控制激光枪的射击时间和摄像头的拍照时间,做到同一时间内只有一部激光枪的射击和摄像头的拍摄同步)。这样每部激光枪发射的时候,通过预设的控制方案直接控制摄像头采集发射时刻的图像,由于后台已经对每部激光枪的时间进行了匹配,所以该时刻内采集回来的图像只有唯一的一个射击点图像。就是当下正在激发的激光枪。并且因为图像的播放帧率为24帧/s,而系统实际设定的时间间隔非常短,只有几帧。用户在进行射击体验的时候完全感觉不到卡顿,不会有不流畅的感觉。

由于每个激光枪的id是预先设置好且发射频率与采样频率已人为设定。所以只需按照预设好的顺序来通过程序选取对应的激光枪兵调用相应的控制程序就可以实现整个射击及相应流程。首先我们将所有激光枪数据库建好,在实际开始工作时,即可实现对应激光枪的调用。每部激光枪可以预设一个独立的id,比如激光枪1、激光枪2等,激光枪扣动扳机射击的时候,通过激光枪的蓝牙模块通讯给plc控制器,控制器读取到激光枪发来的信号后,识别独立id,同时控制摄像头进行拍摄,得到某一时刻某一激光枪在屏幕上唯一的射击点图像。

通过上述的过程选择对应的激光枪并得到相应的采集图像后,控制主机对摄像装置采集的激光光斑依次经过灰度化处理、二值化处理、矩形拟合处理,得到近似射击点坐标,然后对近似射击点坐标该坐标进行校准和修正,得到最终确定的射击点坐标,最后将射击点坐标发送给游戏系统,游戏系统根据射击的坐标点产生对应的射击反馈。

首先,由系统中的摄像头去获取一帧图像,这一帧带有激光点的图像帧由于过滤掉了可见光,主要只显示一个激光光斑。但与此同时,图像会有许多白色躁点,使用面积计算,排除掉面积较小的白色躁点,剩下的就是所需要的激光光斑。

其次,彩色图片的信息量过大,而我们需要的只是求出中心点坐标而己。所以首先进行灰度化,排除掉无用的彩色图片信息。灰度化,一方面可以控制图片的信息量,另一方面,灰度化图像还可以突出某些感兴趣的图像特征,抑制不感兴趣特征,扩大图像中不同物体之间的差别。

灰度化之后的数据仍然有大量不需要的数据。我们只需要突出光斑位置和非光斑位置,因而再进行二值化,得到最简要的数据。

接着,使用最大阈值分割法进行二值化操作,最大阈值分割法是使用类间方差最大值的自动确定阈值的方法。每个像素的灰度值是从0到255之间,确定一个分割值,将其处理成黑色(像素值为0)或白色(像素值为255)两种,这样就可以基本将背景与目标屏幕区域划分开来。这个分割值最初定为180,是可以调节的值,当环境光变化影响判断的时候可以进行调整。举例来说,当光线偏强时,环境光偏亮,此时为了更好的进行二值化处理,我们将分割值设定为小于180,比如155,这样可以更好的将环境光的影响降到最低,使二值化结果达到最佳效果。反之,环境光偏弱时,将分割值设定为大于180,比如200。

最后,根据不规则的光斑的有效面积,拟合成一个矩形,此时矩形的中心点坐标就是近似的射击点坐标。矩形拟合方法为:通过快速拟合算法,直接以近似形状的算法,快速框选光斑区域,以最远边界点为参考点画矩形,然后快速求值,得到矩形中心点。

此时的坐标并非最准确的坐标。再根据校准程序进行坐标修正后,可以得到最近似的射击点坐标。

在所有激光枪未射击的时候,通过摄像头采集回来的图像是一幅全黑的图像,没有任何信息在图像上面。因为摄像头前面的滤光片已经将所有可见光全部滤掉。

在检测到激光枪击发信号后,分线程对于对应波长的激光枪组进行采集定位处理,由于同一时间每个激光枪组内只有一部激光枪的射击被识别,所以我们会得到只有一个红外激光光点的图像。采集到上图的射击图像后,经过控制主机运算出精确位置然后反馈给游戏进行对应的相应和表现。

在确认坐标以后,控制主机将识别结果通过投影机发送至屏幕和游戏控制系统,游戏系统则产生相应的游戏反馈,进而判断激光枪的射击点是否射击到相应的对象上。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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