曹希霆,贾敏智
(太原理工大学 信息工程学院,山西 太原 030024)
实弹射击训练对场地要求苛刻,而且需要消耗大量弹药,训练效率低且消耗大。因此出现了模拟射击系统,现有的模拟射击系统主要有以下几类[1-4]:1)用激光器和光电传感器。枪上安装激光发射器,在目标靶上安装光电传感器,通过光电传感器阵列检测激光照射位置得到成绩;2)用摄像头。直接把摄像头安装到枪上,通过检测图像中靶子的位置得出成绩;3)用激光器和摄像头。激光器安装在枪上,光束集中于一点,摄像头安装在合适的位置,通过图像检测激光照射位置得到成绩。但以上几类都有一些缺点,例如靶子上有电气元件或固定摄像头造成使用不方便,精度不高,摄像头受其他光线干扰等问题。为了克服这些缺点,在本文在这几种系统的基础上设计实现了一种新的模拟射击系统。
本系统的实现原理是:安装系统时在目标靶上安装标定点,训练时用固定在枪上的摄像头得到目标靶图像,图像中标定点的位置随着瞄准位置的变化而变化,根据图像中标定点位置得到成绩。为使标定点易于捕捉,标定点采用逆反射材料,并在枪上加装半导体红外激光器。当瞄准到目标靶上时激光覆盖到标定点,使标定点亮度增加。激光器和摄像头在训练过程中一直处于工作状态,枪上处理系统得到瞄准坐标后通过蓝牙模块实时上传给模拟显示系统,生成瞄准轨迹并保存到数据库。在扣动扳机时枪上系统向模拟显示系统发送特殊标志,确定射击环数和具体位置。模拟显示系统对相关数据进行显示、存储、分析等操作。训练枪上的检测系统硬件以ARM9处理器S3C2440[5]为核心。
标定点所用材料为反光晶格贴片,具有很强的逆反射特性,当瞄准到目标靶上时,激光光斑覆盖到标定点,可以产生很强的逆反射光线。由于太阳光光谱主要分布在可见光区域,而激光具有方向性好且波长固定等特性,因此在镜头前加装红外窄带带通滤光片,并降低图像传感器的曝光时间,可以减少太阳光及其他光线的干扰。在图像上标定点与背景的亮度形成明显差异,使检测难度大大降低,可以在S3C2440上完成,系统结构如图1所示。
图1 系统结构
本系统通过图像处理系统得到目标靶上标定点的位置来获得射击成绩。为了方便高效地获取标定点位置,利用了逆反射现象。逆反射是指反射光线从靠近入射光线的反方向,向光源返回的反射。当入射光线的方向在较大范围内变化时,仍能保持这种性质,如交通标志。在目标靶上粘贴反光晶格贴片使激光发生逆反射,这样枪上的摄像头可以接收到更多的反射激光。
在目标靶上设置标定点,可以用来标定目标靶位置。但在多人多靶同时训练时可能会出现瞄错靶的情况,产生错误成绩。为避免这种情况的发生,在目标靶上设置多个标定点,对目标靶进行编码。如图2所示,A,B,F,G为固定点,C,D,E用来编码。
图2 标定点示意图
训练用枪是在普通的枪上加装激光器、摄像头模块、图像处理系统和蓝牙通信等模块后实现的。
1)激光器在本系统中的作用主要是使标定点产生逆反射光,增加标定点亮度。调整出射光散射角使激光可以覆盖到所有标定点。为了避免在瞄准时标定点产生的反射光对射击者产生视觉干扰,采用了功率为30 mW、波长为980 nm的红外激光器。
2)摄像头模块用来获取目标靶图像,训练过程中一直处于工作状态,实时获得目标靶图像,通过图像处理系统确定标定点坐标,从而得到成绩以及整个瞄准过程的轨迹,方便分析射击者的技术特点,提高训练效率。
摄像头加装980 nm窄带带通滤光片。性能参数为:半高宽为20 nm,截止深度OD3-C,中心波长980 nm,峰值透过率T〉90%。截止范围200~2 000 nm内光波的透过率为0.001,970~990 nm范围波段除外。由于所选激光器波长固定为980 nm,经滤光后标定点更容易检测。
3)图像处理系统以S3C2440微处理器为核心。S3C2440芯片内部设计有多种控制器以方便对外设的操作,这里主要用到摄像头控制器和LCD控制器。摄像头模块接相应引脚,扳机经改造后接外部中断EINT4。S3C2440设计有3个串口,在本系统中urat0用于程序调试,urat1接蓝牙模块与模拟显示系统实现无线通信。
4)蓝牙通信模块,采用的蓝牙模块为主从一体,可通过AT指令设置相关参数。训练枪的蓝牙模块设置为从模式。
该部分主要由PC机和蓝牙模块组成。蓝牙模块可以进行一对一、一对多、多对多的组网通信。PC机上的蓝牙模块设置为主模式,可以与多个从模式蓝牙模块同时通信。PC机通过蓝牙模块得到数据后进行处理、显示、保存等操作。
图像获取及检测都在S3C2440平台上完成,成绩及瞄准轨迹等数据的显示、记录、分析由模拟显示系统完成。图像处理程序的开发环境为Fedora17,开发调试工具有arm-linux-gcc、arm-linux-gdb、JLlink等硬件、软件工具。模拟显示系统程序采用VC2008开发。
图像的获取是由摄像头模块和S3C2440上的摄像头控制器来完成。摄像头控制器的接口输入为YCbCr 4∶2∶2格式的数据,得到图像数据后通过2个DMA通道将数据传输至相应缓冲区:通过P通道将转换后得到的RGB值送至RGB帧缓冲区;通过C通道把Y,Cb,Cr分别送至Y帧缓冲区、Cb帧缓冲区、Cr帧缓冲区。同时S3C2440还采用了Ping-Pong Memory Hierarchy,使图像检测更为方便,如图3所示。
图3中C-port Y1,C-port Y2,C-port Y3,C-port Y4为4个Y值帧缓冲区,可存储连续4帧的像素点亮度值,4个缓冲区地址可以相同也可以不同。本系统中只用C通道的Y值,设置4个缓冲区为不同地址,并且关闭P通道节省总线资源。
图3 Ping-Pong Memory Hierarchy示意图
对上述4个Y缓冲区进行扫描检测得到各标定点坐标,转换为瞄准坐标后通过蓝牙模块实时传送给模拟显示系统。程序检测最新的一帧数据,通过读取寄存器CICOSTATUS的[27:26]位可以得到摄像头控制器当前正在操作的缓冲区的序号。例如:如果控制器正在向C通道Y2传数据,则程序对C通道Y1进行扫描检测;如果控制器正在向C通道Y1传数据,则程序对C通道Y4进行扫描检测。
然后进行图像传感器内部寄存器的设置。OV7670的内部寄存器要通过SCCB总线来设置,其中关键的几个寄存器的代码如下:
Wr7670(0x12,0x10);//设置为 QVGA 模式,并使其输出格式与S3C2440相匹配;
Wr7670(0x9f,0x01);Wr7670(0xa0,0x07);//调整 AEC/AGC(自动增益和曝光时间),缩短曝光时间使周围物体亮度减小,突出标定点。
扣动扳机时,进入中断后向模拟显示系统发送相应数据标志,通知模拟显示系统该坐标为着弹点位置。
本系统采用蓝牙模块进行通信。蓝牙通信系统采用一种很灵活的无基站组网方式,每个主设备可以与最多7个从设备同时通信。PC机使用USB蓝牙模块,并安装蓝牙驱动千月(BlueSoleil),该软件可创建多个虚拟蓝牙串口,虚拟蓝牙串口的使用方式和普通串口相同。PC机主程序采用MFC开发,使用多线程技术通过虚拟蓝牙串口与其他设备同时进行通信。系统安装时需要对枪上的摄像头和激光器进行校正。为了满足用户对训练人员信息管理和训练相关数据的显示、保存、分析,用户程序可以根据使用者的具体要求进行定制。
在了解多种模拟射击系统的实现方式后,查阅相关资料,笔者提出这种新的实现方式。系统使用方便,安全可靠,可在多种场所使用;可以多人多靶同时训练,也可以应用到移动靶和起倒靶的射击训练中;不仅可以得到射击者的成绩,还可以记录瞄准轨迹,对射击者的技术分析更加详细,使训练效果更好。同时,在测试中也暴露出了一些不足,由于摄像头的分辨率和镜头质量的问题,造成图像不够清晰,影响成绩的精度;由于帧率偏低,在目标靶距离较远且训练枪晃动比较严重时,连续两帧图像中的目标靶位移偏大,造成成绩不够准确。可以通过使用更高分辨率和帧率的图像传感器,使用更好的镜头,或者优化算法来克服这些不足。
[1] 赵苗.激光模拟打靶训练系统的研究[D].南昌:南昌大学,2008.
[2] 王辉,姜大鹏,曾光宇.学生军训激光模拟打靶系统设计[J].应用科技,2009(12):45-47.
[3] 刘建,秦会斌,黄博志,等.激光打靶系统的设计[J].传感技术学报,2003(4):513-515.
[4] 姚竹亭,王宪朝.实用激光打靶机设计与应用[J].电子技术,1998(2):35-36.
[5] 唐浩,代少升.Qt/Embedded在S3C2440平台上的移植与开发[J].电视技术,2010,34(10):32-35.