首页 > 其他分享 >[Paper Reading] Decoding Surface Touch Typing from Hand-Tracking

[Paper Reading] Decoding Surface Touch Typing from Hand-Tracking

时间:2024-10-16 14:46:03浏览次数:1  
标签:接触点 search Tracking based 手部 Surface Hand beam Decoding

目录

Decoding Surface Touch Typing from Hand-Tracking

link
时间:20.10

主页:https://research.facebook.com/publications/decoding-surface-touch-typing-from-hand-tracking/

TL;DR

一种XR场景下,在任意平面(flat surface)上通过追踪的裸手26DoF序列来打字的方法。方案是使用TCN(时序卷积网络) + 语言模型与beam search来修正结果。实验证明方法输入效率接近与物理键盘(73 WPM, 2.38% UER)。本文仅研究了使用高精Marker获取到的HandTracking结果对应的打字效果,用来研究这种打字方式的上限。

Method

推理流程是:HT Skeleton Sequence -> Text -> Text Decoding(beam search)

HT Skeleton Sequence -> Text

模型结构:TCN网络,时间窗口是46帧(约0.75s)
模型输入:wrist position and rotation along with 3D fingertip positions.
模型输出: T × (K + 1) heat map,其中 + 1是blank表示有时手指未type任意一个按键
模型Loss:CTC Loss

TEXT DECODING

两种方案:
greedy:将所有frames结果拿来,除去blanks
beam search decoding(更优):每一步都保留B种结果,并加入语言模型的概率分布,最终整体来判断一个单词的概率。

DATA COLLECTION

工装:高精度Marker + TourchPad

The resulting touchpad training dataset consists of samples where we have 1) a sequence of length N of keys that were typed, 2) a sequence of length N of 2D contact events from the touchpad, and 3) a sequence of length T of skeletal hand poses while those keys were typed, recorded at 60Hz.

Q&A

这篇文章中的beam search与contact-based分别指得是什么? 在这篇文章中,"beam search"和"contact-based"是两种不同的文本解码方法,用于将手部追踪数据转换为文本输入。下面分别解释这两个术语:

Beam Search(束搜索):
Beam search是一种解码算法,通常用于自然语言处理任务,如机器翻译、语音识别和本文中的手势打字。它是一种启发式的图搜索算法,用于从一系列可能的候选中找到最优解。在这篇文章中,beam search用于结合手部运动模型(motion model)和语言模型(language model),以高效地从手部运动中解码文本。具体来说,它会维护一个候选序列的集合(称为beam),并在每个步骤中扩展这些候选,选择最有可能的序列作为最终输出。这种方法可以有效地结合手部运动信息和语言统计信息,以提高解码的准确性。

Contact-Based(基于接触的):
Contact-based方法是指依赖于物理接触点信息的文本输入方法。在这篇文章的研究中,它被用作对比实验的基线。这种方法通常需要用户在触摸屏幕上的实际接触点来输入文本。在手部追踪的背景下,contact-based方法可能涉及到检测手指与虚拟键盘的接触点,并根据这些接触点的位置来确定按下的键。这种方法可能不如beam search灵活,因为它依赖于精确的接触点检测,而不是手部运动的连续轨迹信息。

文章中提到,相比于contact-based方法,beam search方法能够更准确地解码文本,因为它可以利用手指运动的连续轨迹信息,而不仅仅是接触点。这使得beam search方法在处理手指漂移或模糊接触时更加鲁棒。

Experiment

物理键盘与虚拟键盘对比

整体来看速度略慢一点,精度略高一点,差距不大。
速度:physical keyboards (median: 75 WPM, mean: 74 WPM) as well as on surfaces (median: 69 WPM, mean: 73 WPM).
精度:Participants typed on physical keyboards with a mean UER of 1.72% (median: 1.19%) compared to a mean UER of 2.38% (median: 1.77%) when they typed on flat surfaces with our decoder.

对比不同Motion Model

效果可视化


https://research.facebook.com/publications/decoding-surface-touch-typing-from-hand-tracking/

总结与发散

暂无

相关链接

引用的第三方的链接

资料查询

折叠Title FromChatGPT(提示词:XXX)

标签:接触点,search,Tracking,based,手部,Surface,Hand,beam,Decoding
From: https://www.cnblogs.com/fariver/p/18469908

相关文章

  • DRÆM – A discriminatively trained reconstruction embedding for surface anomaly
    异常检测目的:检测与正常外观显著偏离的局部图像区域。近期异常检测方法缺点:1.缺点1:重建异常区域失败近期的异常检测方法通过生成模型来重建图像,在正常区域里成功,但异常区域里重建失败缺点2:阻碍优化特征提取因为这些方法只在无异常的图像上训练,且通过人工的方式定位......
  • MySql数据库---存储过程(带in、out、inout参数,),变量定义,if,case判断,循环结构,游标,handler
    思维导图 存储过程概念MySQL5.0版本开始支持存储过程。简单的说,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,类似Python中的函数;存储过就是数据库SQL语言层面的代码封装与重用入门案例语法:delimiter自定义结束......
  • [java/spring/web] 深入理解:Spring @ExceptionHandler => 自定义应用异常处理器(Appli
    1概述:Spring@ExceptionHandler∈spring-web作用ExceptionHandler是Spring框架(spring-web模块)提供的一个注解,用于处理应用程序中的异常。当应用程序中发生异常时,ExceptionHandler将优先地拦截异常并处理它,然后将处理结果返回到前端。该注解可用于类级别和方法级别,以......
  • [Android] Handler 倒计时和界面更新
    问题在PlyRP中需要在界面上实时显示目前媒体的时长/剩余时长,TimeTask本身是一个子线程,但在Android的子线程去更新UI的内容,会导致不确定的异常。在非UI线程中刷新界面的时候,UI线程(或者其他非UI线程)也在刷新界面,这样就导致多个界面刷新的操作不能同步,导致线程......
  • peer closed connection in SSL handshake
    报错信息:2024/10/1110:45:13[error]11933#0:*437581086peerclosedconnectioninSSLhandshake(104:Connectionresetbypeer)whileSSLhandshakingtoupstream,client:69.69.69.8,server:127.0.0.1,request:"POST/car/lsimpleHTTP/1.1",upstre......
  • The 10th Shandong Provincial Collegiate Programming Contest
    A-Sekiro题意初始有\(n\)个金币,死了\(m\)次,死一次\(n=\lceil\fracn2\rceil\)。求最后的金币数。思路模拟。代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){ intn,m; cin>>n>>m; while(m--......
  • kube-ovn net/http TLS handshake timeout
    问题现象业务报错net/http:TLShandshaketimeout。容器IP跨节点访问kube-apiserverserviceclusterIP不通。问题分析kkotrace[ns]/[pod][ip]tcp443|grep对端主机ipkube-ovn在br-int网桥上刷流表实现了kube-proxy的dnat功能。kube-ovn监听service的endpoints,像kub......
  • The 2024 CCPC Shandong Invitational Contest and Provincial Collegiate Programmin
    比赛链接C.ColorfulSegments2考虑最小的分组数量,可以先按左端点排序,然后每次贪心地找到前面一个最大右端点\(r_j<l_i\)的组加入。考虑计数,还是同样地按左端点排序,那么假设现在有\(k\)个组,每个组最大右端点是\(g_i\)(没有元素则\(g_i=0\)),那么每次可以选择一个\(g_j......
  • The 2024 CCPC Shandong Invitational Contest and Provincial Collegiate Programmin
    Preface传说中被杭电1h十题的比赛,结果打到结束也只会10题这场开局就不太顺,一个Easy题C卡到2h的时候才出,虽然中期题基本都能想到但还是出的很慢最后1h讨论了下L的大致做法发现了几个关键性质后觉得写不完了,遂摆烂滚去打炉石了A.Printer签到,二分答案大力检验即......
  • STM32出现HardFault_Handler故障的原因1. **内存溢出或访问越界** 2. **堆栈溢出**
    STM32出现HardFault_Handler故障的原因STM32系统中,HardFault_Handler故障主要有两个方面的原因:内存溢出或访问越界堆栈溢出最近我遇到的问题是栈溢出,情况如下:staticchardata[10000];voidfun1(unsignedchar*buf){inti=0;for(i=0;i<5000;i++)......