一种提高红外触摸诡点识别准确率的算法实现
2021-06-16张剑平
张剑平
(苏州长风航空电子有限公司 江苏省苏州市 215000)
随着机载显示器交互元素的日益丰富,作为交互手段的触屏功能也从单点触摸向多点触摸提出了新要求。目前,红外触摸屏技术作为机载显示器有效的触摸实现方案,具备高透光率率,不受电流、电压和静电干扰的优势。但红外触摸屏本身也存在易受到阳光干扰,分辨率低以及多点识别困难的缺陷。本文针对其中多点识别困难问题(“诡点”识别率准确率低),在现有触摸识别算法上,通过改进,进一步提升“诡点”识别准确率。
1 “诡点”产生的原因
如图1 所示。软件在水平和垂直方向扫描,检测到水平方向和垂直方向均存在双点触摸区域后,并不能就此确定,真实两个触摸点是“(M,N)”还是“(M’,N’)”。其中之一为真实触摸双点,另外之一则为“诡点”。识别真实双点亦是“诡点”识别的过程。
2 现有“双点”触摸算法和弊端
为了识别“诡点”,一种红外软件采用如图2 算法。即在垂直方向或水平方向,进一步斜扫描。以垂直方向斜扫描为例,通过垂直方向斜扫描和水平坐标(或者水平方向斜扫描和垂直坐标)计算出坐标点C,比较其与点M 和点M’的距离,如果C 靠近M,则M 为真实触摸点;否则,M’为真实触摸点。
该识别算法弊端在于:识别出错概率大。原因在于:
(1)斜扫描的偏移灯管xdelt远远小于Ynum,ydelt远远小于Xnum,斜扫描的投射分别率不够,导致识别出错,如图2 所示,“点M”和“点M’”越近,“点A”和“点B”发生重叠(或者不足以区分)的概率就越大;
(2)存在识别盲区的问题。如图2 所示,灰色区域存在扫描盲区。这个盲区随着xdelt和ydelt变大而变大。
3 改进算法
降低识别出错概率的原理是:将双点置于不同的坐标体系下进行扫描。每一种坐标体系下,扫描结果都包含两个真实触摸点和两个诡点。其特征是:对于真实触摸点来说,不同的坐标系下扫描出的位置基本重合,而产生的两个诡点却有比较大的位置偏差。计算每种坐标体系下真实点的位置偏差,以及诡点位置偏差,对四个偏差进行排序,最小的两个点即为真实触摸点。如图3 所示。
实际上,不同的坐标下扫描,水平和垂直方向也包含两个真实触摸点和两个诡点,如图4 所示。因此,整个扫描包括:
(1)坐标系XOY 下进行扫描,扫描结果四个点: M、N、M' 和N'。
(2)将坐标系XOY 顺时针旋转一个偏移角度θ,得到一个新的坐标系XθOYθ。坐标系XθOYθ下进行扫描, 垂直方向,获取两根扫描直线X0_Lθ和X1_Lθ;水平方向,获取两根扫描直线Y0_Lθ和Y1_Lθ。
图1:“诡点”产生示意图
图2:一种红外去“诡点”算法示意图
图3:改进算法扫描示意图
(3)将坐标系XOY 顺时针旋转一个偏移角度-θ,得到一个新的坐标系X-θOY-θ。坐标系X-θOY-θ下进行扫描,垂直方向,获取两根扫描直线X0_L-θ和X1_L-θ;水平方向,获取两根扫描直线Y0_L-θ和Y1_L-θ。
图4:θ、-θ 和政教坐标系下扫描结果
图5:改进之后的双点识别解决方案
图6:原双点缩放运动划线轨迹效果图
图7:改进后双点缩放运动划线轨迹效果图
(4)计算直线矩阵[X0_LθX0_L-θ]与[Y1LθY1_L-θ]T
根据公式(1)可以计算出四个坐标矩阵:
根据公式(2)可以计算出四个坐标矩阵
根据公式(3)可以计算出四个坐标矩阵
根据公式(4)可以计算出四个坐标矩阵
对三种坐标系下的点偏差进行统计和排序,误差最小的两个即为真实触摸点。
因为扫描盲区的原因,实际过程中,诸如X0_Lθ和X1_Lθ这些扫描直线不存在,解决这个做法是,使用X0_L0和X1_L0替换到公式(1)~(4)中,这样可以避免盲区的出现。
4 软件实现
图5 说明了软件实现流程图。
表1:红外触摸屏性能指标对比
图8:原双点旋转运动划线轨迹效果图
图9:改进后双点旋转运动划线轨迹效果图
图10:改进后双点W 波浪型划线操作效果图
图11:改进后双点8 字型划线操作效果图
5 验证测试
为了更好的对新方案算法效果展示,在测试时,将其与原有红外触摸软件(2C_JZC300-001CX)触摸效果进行了划线操作对比;操作包括缩放运动操作、旋转运动操作、W 字型划线操作、倒8 字划线操作。同时也与XYJ-104 的双点触摸功能(华东光电供)进行了对比,对比结果有优势,也存在改进的空间。具体如下:
5.1 触摸效果对比
图6 展示了原红外触摸软件双点缩放运动沿135°对角线缩放操作的轨迹效果。从轨迹来看,双点坐标相互干扰,杂乱无章。
图7 展示了重新设计之后的红外触摸软件双点斜对角线缩放运动的轨迹。对比图6,可以发现于划线轨迹平滑,没有诡点。
图8 展示了原红外触摸软件双点交叉旋转运动的轨迹效果。图中可以说明,两个触摸点之间坐标相互影响。坐标相互交叉。运动轨迹不呈现弧形。
图9 展示了重新设计之后的红外触摸软件双点交叉旋转运动的轨迹效果。图中可以说明,两个触摸点相互独立。运动轨迹呈现弧形,完全反应了旋转操作过程。
图10 和图11 分别展示了改进后的双点进行“W 字型”和“倒8 字型”操作的划线轨迹。可以看到,划线轨迹平滑顺畅,无跳跃点和明显锯齿。其中,黑色代表先按下的点(第一个点),红色代表后按下的点(第二个点)。两个点被识别成有序序列。比如:抬起其中第一个点,未抬起的的一点仍然可以被识别为第二个点;抬起其中第二个点,未抬起的一点仍然可以被识别为第一个点。且,这些功能是在改进后红外软件中处理实现的,以固定的协议格式上报给应用软件,不需要作图应用软件自己处理。
5.2 性能指标对比
表1 给出了改进之后、改进之前的红外软件以及XYJ-104 的红外软件,在软件触摸功能上的性能对比。
6 总结
本文探讨一种改进的多点触摸算法实现。更好的解决了目前机载红外触摸双点识别错误率高的问题,提高了“诡点”识别正确率以及解决了识别盲区问题。性能指标对于同类算法和产品,也具有一定的优势,具有较高的工程应用价值。