CN110796259B - 用于确定外围设备位移的方法和系统 - Google Patents
用于确定外围设备位移的方法和系统 Download PDFInfo
- Publication number
- CN110796259B CN110796259B CN201910716974.2A CN201910716974A CN110796259B CN 110796259 B CN110796259 B CN 110796259B CN 201910716974 A CN201910716974 A CN 201910716974A CN 110796259 B CN110796259 B CN 110796259B
- Authority
- CN
- China
- Prior art keywords
- displacement
- image
- machine learning
- cross
- learning model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/211—Selection of the most significant subset of features
- G06F18/2113—Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
- G06F3/0317—Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03543—Mice or pucks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F3/0383—Signal control means within the pointing device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Social Psychology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Psychiatry (AREA)
- Image Analysis (AREA)
Abstract
提供了一种用于确定外围设备位移的方法和系统。在一个示例中,外围设备包括:图像传感器以及硬件处理器,硬件处理器被配置成:当外围设备处于表面上的第一位置时,控制图像传感器捕获表面的第一图像,第一图像包括表面的第一位置的特征;使用从第一图像得到的数据执行训练的机器学习模型,以估计第一图像与在表面的第二位置处捕获的参考图像之间的特征的位移;以及基于所估计的特征的位移确定外围设备的位移。
Description
技术领域
本发明涉及用于确定外围设备位移的方法和系统。
背景技术
外围设备可以用于使人与计算机接口。一些常见的外围设备包括键盘、计算机鼠标、图像扫描仪、扬声器、麦克风、网络摄像机等。这些外围设备中的一些可以检测作为来自用户的输入的运动,并将运动转换为计算机的输入。例如,诸如计算机鼠标的手持外围设备可以检测其相对于表面的移动,并将相对于表面的移动转换为图形用户界面(GUI)中显示的光标的相应移动。用户可以移动计算机鼠标以控制光标的位置,以通过GUI与计算机接口。
假设计算机鼠标将表面上的移动转换为显示器中光标的相应移动,用户在控制计算机鼠标时依赖该光标的相应移动,计算机鼠标检测其移动的精度对于用户体验而言可能是关键的。例如,在更高精度的移动检测的情况下,计算机鼠标可以更准确地响应用户的输入(以计算机鼠标的移动的形式),这使得用户能够更确定地将他/她的计算机鼠标的移动与光标的显示位置相关联。这可以改善用户使用计算机鼠标操作的平滑度和效率。因此,可以提高生产力和用户体验。
发明内容
在一些实施方式中,提供了一种方法。该方法包括:从表面上的第一位置处的图像传感器捕获表面的第一图像,第一图像包括表面的第一位置的特征;使用从第一图像得到的数据执行训练的机器学习模型,以估计第一图像与在表面的第二位置处捕获的参考图像之间的特征的位移;以及基于所估计的特征的位移确定图像传感器的位移。
在一些方面,图像传感器是被定位在表面上的计算机鼠标的一部分。位移被提供给计算机以更新计算机显示的内容。在一些方面,数据是从第一图像的像素子集得到的。
在一些方面,使用从第一图像得到的数据执行训练的机器学习模型包括:将第一图像的像素数据提供给训练的机器学习模型;以及操作训练的机器学习模型来执行:基于像素数据计算第一图像与参考图像之间的互相关值分布,互相关值分布与一组候选位移相对应;基于互相关值分布对该组候选位移进行插值;以及基于插值的结果估计位移。
在一些方面,使用从第一图像得到的数据执行训练的机器学习模型包括:生成第一图像与参考图像之间的互相关值分布,互相关值分布与一组粗略候选位移相对应,每个粗略候选位移具有像素精度;将互相关值分布提供给训练的机器学习模型;以及操作训练的机器学习模型以基于互相关值分布计算具有子像素精度的精细估计位移。
在一些方面,该方法还包括:从一组粗略候选位移中选择与互相关值分布的峰值互相关值相对应的粗略候选位移。基于所选择的粗略候选位移和精细估计位移来生成估计位移。
在一些方面,机器学习模型包括人工神经网络。人工神经网络包括全连接的神经网络、卷积神经网络,或全连接的神经网络和卷积神经网络的组合。
在一些方面,该方法还包括:基于操作条件从多个机器学习模型中选择用于估计特征的位移的机器学习模型。将从第一图像得到的数据提供给所选择的机器学习模型以生成输出。在一些方面,操作条件包括以下中的至少一个:表面的类型或图像传感器的配置。
在一些方面,基于训练数据集训练机器学习模型,该训练数据集包括:一组参考图像;与该组参考图像配对的一组位移图像;以及该组参考图像与该组位移图像之间的一组特征的位移。
在一些方面,基于训练数据集训练机器学习模型,该训练数据集包括:一组参考图像与和该组参考图像配对的一组位移图像之间的一组互相关值;以及该组参考图像与该组位移图像之间的一组特征的位移。
在一些方面,精细位移与实际位移与从互相关值分布获得的粗略位移之间的误差位移相对应。训练机器学习模型以最小化由机器学习模型输出的针对包括一组互相关值分布和一组相应的位移的训练数据集的误差位移。
在一些实施方式中,提供了一种外围设备。外围设备包括图像传感器和硬件处理器,硬件处理器被配置成:当外围设备处于表面上的第一位置时,控制图像传感器捕获表面的第一图像,第一图像包括表面的第一位置的特征;使用从第一图像得到的数据执行训练的机器学习模型,以估计第一图像与在表面的第二位置处捕获的参考图像之间的特征的位移;以及基于所估计的特征的位移确定外围设备的位移。
在一些方面,外围设备是计算机鼠标。位移被提供给计算机以更新计算机显示的内容。
在一些方面,硬件处理器还被配置成:将第一图像的像素数据提供给训练的机器学习模型;以及操作训练的机器学习模型来执行:基于像素数据计算第一图像与参考图像之间的互相关值分布,互相关值分布与一组候选位移相对应;基于互相关值分布对该组候选位移进行插值;以及基于插值的结果估计位移。
在一些方面,硬件处理器还被配置成:生成第一图像与参考图像之间的互相关值分布,互相关值分布与一组粗略候选位移相对应,每个粗略候选位移具有像素精度;将互相关值分布提供给训练的机器学习模型;以及操作训练的机器学习模型以基于互相关值分布计算具有子像素精度的精细估计位移。
在一些方面,硬件处理器还被配置成:从一组粗略候选位移中选择与互相关值分布的峰值互相关值相对应的粗略候选位移。基于所选择的粗略候选位移和精细估计位移来生成估计位移。
附图说明
参照附图阐述详细描述。
图1示出了利用所公开的技术的系统的典型实现。
图2示出了用于操作外围设备的系统。
图3A至图3E示出了手持外围设备300及其控制光标的显示位置的操作的示例。
图4示出了表示在准确度由光学传感器的分辨率决定的情况下位移估计的准确度与包括芯片尺寸、功耗和成本的一组度量之间的关系的示例图表。
图5示出了使用本公开内容中公开的技术的位移估计系统的示例。
图6和图7示出了可以是图5的位移估计系统的一部分的机器学习模型的示例。
图8示出了使用本公开内容中公开的技术的位移估计系统的另一示例。
图9A和图9B示出了训练和组织图5和图8的位移估计系统中使用的机器学习模型的示例。
图10示出了表示在使用所公开的技术执行位移估计的情况下位移估计的准确度与包括芯片尺寸、功耗和成本的一组度量之间的关系的示例图表。
图11示出了用于位移估计的示例方法的流程图。
具体实施方式
根据某些示例,本公开内容的各方面一般涉及外围设备,尤其涉及无线外围设备控制器。
在以下描述中,将描述无线外围设备控制器的各种示例。出于说明的目的,阐述了具体配置和细节以提供对实施方式的透彻理解。然而,对于本领域的技术人员来说明显的是,可以在没有公开每个细节的情况下实践或实现某些实施方式。此外,可以省略或简化众所周知的特征,以防止对在本文中描述的新颖特征的任何混淆。
手持外围设备例如计算机鼠标检测其在表面上的运动并将检测到的运动转换为显示器中光标的相应运动。手持外围设备可以包括用于检测运动的传感器。例如,手持外围设备可以包括光学传感器,以在不同时间捕获手持外围设备放置在其上的表面的图像。表面可以包括可以在图像之间跟踪的某些特征,例如表面纹理、伪影图案等。可以估计两个图像之间的特征(或特征的一部分,例如边缘特征)的位移,并且可以将图像之间的位移转换成对手持外围设备的物理位移的估计。
估计特征的位移的一种方式可以基于两个图像之间的互相关值的计算。例如,可以确定一个图像与该图像的移位版本之间的多个互相关值,其中多个互相关值与不同的移位距离相对应并且沿着不同的移位方向,并且可以获得互相关值的分布。图像处理器可以计算互相关值的分布,并基于找到引起峰值互相关值的移位距离和移位方向的组合来提供手持外围设备的估计位移。
尽管以上布置使得计算机鼠标能够提供其位移的合理的准确且精确的估计,但是估计的准确度可能受到许多因素的限制。首先,表面可以具有相似或相同特征的图案,并且对于移位距离和移位方向的多种组合可以出现多个峰值互相关值。图像处理器可能选择伪峰值互相关值,这可能导致位移的估计不准确。伪峰值互相关值的影响在例如光学传感器仅捕获表面的非常小的区域、图像的分辨率非常低等情况下可以更加突出。在两种情况下,图像数据可能不足以允许图像处理器在跟踪图像之间的特定特征的位移时区分相似特征。
此外,位移估计的精度还可以受到光学传感器的像素单元之间的距离的限制。有限的精度会增加跟踪计算机鼠标的其他连续运动的不连续性。例如,如上所述,可以基于两个图像之间的图像特征的相对像素位置来估计位移。可以从相对像素位置解析的最小位移可以不小于两个像素单元之间的间隔,并且图像处理器可能无法解析落在两个像素单元之间的位移。有限的精度会增加图像之间的特征的位移估计的误差,这反过来会在所显示的光标移动中引入不连续性。当光标以缓慢的速度连续移动时,不连续性可能特别明显,这会降低用户体验。
提高位移估计的准确度和精度的一种方法是通过增加光学传感器的分辨率。例如,可以在区域中包括更多像素单元以减小像素距离并提高精度。还可以在光学传感器中提供更大的像素单元阵列,以增加由光学传感器捕获的图像的大小。通过捕获较大的图像,可以在每个图像中包括更多的特征(包括重复和非重复的图案)。此外,通过增加分辨率,可以利用足够的细节捕获非重复图案,以使处理器能够区分重复图案。在两种情况下,可以减少图像处理器由于重复的互相关值分布而提供不准确的位移估计的可能性。然而,增加光学传感器中的像素单元的数量会致使功耗和芯片面积的显著增加,这两者对于手持设备都是不期望的。
某些实施方式的概念概述
本公开内容的示例涉及手持外围设备,诸如计算机鼠标。手持外围设备可以包括光学传感器和硬件处理器。光学传感器可以被配置成捕获表面的输入图像。当光学传感器捕获输入图像时,手持外围设备可以被放置在表面上。表面可以包括特征,并且特征的图像包括在第一图像中。硬件处理器可以从输入图像提取与特征相关的数据,并将数据提供给训练的机器学习模型以生成输出。输出表示对包括特征的输入图像与参考图像之间的特征的位移的估计。可以在表面上的参考点处捕获参考图像。硬件处理器可以基于输出确定手持外围设备在参考图像的获取时间与第一图像的获取时间之间的位移。
更具体地,可以基于数据集来训练机器学习模型。数据集可以包括由训练光学传感器(其可以是另一手持外围设备的一部分)捕获的表面(或其他表面)的一组图像,该组图像包括一组位移图像和参考图像。参考图像可以由训练光学传感器在参考位置处捕获,而一组位移图像可以由训练光学传感器在表面上的一组预定位移位置处捕获。对于每个位移图像,可以确定(参考位置与和位移图像相对应的位移位置之间的)实际物理位移和(参考图像与位移图像之间的)特征的图像位移。机器学习模型可以实现接受例如与特征图像位移有关的数据的功能,并输出估计的物理位移。可以将一组图像对的一组特征图像位移提供给机器学习模型。作为训练过程的一部分,可以将估计的物理位移与实际物理位移进行比较以生成一组差异(例如,误差位移),并且可以迭代地更新该功能的参数以最小化该组差异。
根据所公开的技术的手持外围设备控制器可以提供更准确的位移估计。例如,利用机器学习模型,可以将子像素插值应用于特征的图像位置,以估计子像素精度的位移,该子像素精度高于由像素单元距离设置的光学传感器的原始精度。此外,可以训练机器学习模型来覆盖各种场景以变得更加鲁棒。例如,可以对包括各种特征图案的各种表面执行训练过程。在上述基于互相关的检测技术易于出错(例如,处理重复(或接近重复)图案)的情况下,也可以执行训练过程。此外,所公开的技术可以在很小或没有额外的功耗并且芯片面积的增加可忽略的情况下实现。例如,机器学习模型可以被表示为软件指令,并且可以容易地在处理器上执行并存储在存储装置中。与像素单元不同,机器学习模型不占用大的芯片面积,同时机器学习模型的执行通常比操作像素单元需要更少的功率。因此,与基于增加光学传感器的分辨率带来相同程度的准确度的提高相比,基于机器学习模型的位移估计准确度的提高可以以低得多的成本(就功率和芯片面积而言)实现。
可以使用不同类型的输入数据来训练机器学习模型。例如,可以使用包括特征的图像的像素数据来训练机器学习模型,以提供与特征图像位移有关的数据。在一些示例中,为了减小机器学习模型的大小并加速处理,可以基于包括特征的图像的部分来训练机器学习模型。例如,可以识别包括特征的每个图像中的感兴趣区域,并且可以使用来自两个图像的感兴趣区域而不是整个图像的像素数据来训练机器学习模型。在一些示例中,两个图像之间的互相关值分布也可以用于训练机器学习模型。
提出了使用机器学习模型来执行位移估计的不同技术。在一些示例中,可以基于例如由光学传感器捕获的完整图像的像素数据、从完整图像提取的感兴趣区域的像素数据、互相关值分布等来训练机器学习模型以输出估计位移。在一些示例中,可以训练机器学习模型,然后在两步过程中将机器学习模型用于位移估计。例如,可以训练机器学习模型以最小化实际物理位移与位移的粗略估计(例如,具有像素级精度)之间的子像素差异,并且机器学习模型可以输出最小化的子像素差异。当执行位移估计时,可以根据例如像素数据(例如,完整图像、感兴趣区域等)、互相关值分布等估计粗略位移。可以向机器学习模型提供用于位移的粗略估计的同一组输入数据以计算子像素差异,并且可以通过将粗略位移与子像素差异组合来获得完全估计位移值。
不同类型的机器学习模型可以用于位移估计,不同类型的机器学习模型包括卷积神经网络(CNN)、全连接的神经网络等。机器学习模型可以包括从训练过程获得的一组权重,该组权重表示用于位移估计的功能的参数。机器学习模型可以存储为包括该组权重的数据结构。可以存储机器学习模型的多组权重,并且可以基于各种操作条件来组织多组权重,各种操作条件包括例如表面的类型、光学传感器的配置设置等。然后可以基于手持外围设备的操作条件来选择一组权重。机器学习模型可以存储在外围设备中,或存储在与外围设备通信耦接的另一设备(例如,无线加密狗)中。
某些示例的典型系统环境
图1示出了可以利用所公开的技术的系统100的典型实现。系统100可以包括计算机110、显示器120和多个外围设备,多个外围设备包括例如外围设备130(例如,“计算机鼠标130”)、外围设备140(例如,“键盘140”)和外围设备150(例如,“麦克风150”)。对于系统100,计算机鼠标130、键盘140和麦克风150可以被配置成控制计算机110和显示器120的各方面,如本领域的普通技术人员将理解的。计算机110可以被称为“主计算机”或“主计算设备”。外围设备130-150中的每一个可以包括一个或更多个传感器以感测由用户提供的输入动作(或输入信号,例如音频信号)并生成相应的传感器数据(例如,表示计算机鼠标130的移动距离的传感器数据、指示按下键盘140的键的传感器数据、由麦克风150收集的音频数据等)。外围设备130-150可以将传感器数据提供给计算机110以控制计算机110的一个或更多个操作。例如,基于计算机鼠标130检测到的移动,计算机110可以检测在显示器120上显示的图形用户界面中用户对音频文件的选择并播放所选择的音频文件。
计算机110可以包括机器可读介质(未示出),机器可读介质被配置成存储计算机代码诸如键盘驱动器软件等,其中,计算机代码可以由计算机110的处理器执行以影响外围设备130、140和/或150对计算机的控制。在本文中描述的各种示例通常将外围设备120称为显示器、将外围设备130称为计算机鼠标、将外围设备140称为键盘并且将外围设备150称为麦克风,然而,应该理解的是,外围设备130-150可以是任何输入/输出(I/O)设备、用户接口设备、控制设备、输入单元等。例如,外围设备130-150还可以是远程控制设备、可穿戴设备(例如,智能手表、腕带、眼镜)、智能电话等,并且可以通过在外围设备120中显示的图形用户界面提供输入和输出。例如,外围设备130可以在表面上移动并且可以使用下面描述的技术估计其在表面上的位移。可以将位移信息提供给计算机110,计算机110可以基于位移信息更新在图形用户界面中显示的光标的位置。
主计算设备通常被描述为台式计算机或膝上型计算设备。然而,应该理解的是,主计算设备可以是任何合适的计算设备,还包括平板计算机、智能电话、虚拟或增强现实界面(例如,具有2D或3D显示器)、全息界面等。本领域的普通技术人员将理解其许多变化、修改和替选实施方式。
图2示出了根据某些实施方式的用于操作外围设备(例如,外围设备130-150中的一个或更多个)的系统。系统200包括处理器210、存储器阵列220、电力管理系统230、通信系统240和输入检测模块250。系统块220-250中的每一个可以与处理器210电通信(例如,经由总线系统)。系统200还可以包括为了防止混淆在本文中描述的新颖特征而未示出或讨论的附加系统。系统块220-250可以实现为单独的模块,或者替选地,可以在单个设备中实现多于一个的系统块。在一些示例中,系统块220-250可以实现在外围设备上。在一些示例中,系统块220-250可以实现为包括外围设备和加密狗的多设备系统。系统块220-250可以被配置成实现下面将描述的用于位移估计的技术。
在一些示例中,处理器210包括一个或更多个微处理器(μC)并且可以被配置成控制系统200的操作。替选地,处理器210可以包括一个或更多个具有支持硬件和/或固件(例如,存储器、可编程I/O等)的微控制器(MCU)、数字信号处理器(DSP)等,如本领域的普通技术人员将理解的。处理器210可以控制外围设备130-150(例如,系统块220-250)的操作的一些或所有方面。可替选地或另外地,系统块220-250中的一些可以包括附加的专用处理器,附加的专用处理器可以与处理器210一起工作。本领域的普通技术人员将理解其许多变化、修改和替选实施方式。
存储器阵列220可以被配置成存储关于外围设备130-150的一个或更多个操作配置的信息。如下面进一步讨论的,外围设备130-150的一个或更多个操作配置可以包括设置的外围设备130-150的性能特征,包括但不限于计算机鼠标滚动速度、计算机鼠标移动传感器的灵敏度、键盘热键的映射、麦克风音量等。存储器阵列220还可以存储用于与外围设备130-150通信的其他配置信息,如下面进一步讨论的。
另外,存储器阵列220可以存储将由处理器(例如,在处理器210中)执行的一个或更多个软件程序。应当理解,“软件”可以是指指令序列,指令序列当由处理单元(例如,处理器、处理设备等)执行时,使系统200执行软件程序的某些操作。指令可以存储为驻留在只读存储器(ROM)中的固件和/或存储在媒体存储装置中的应用,其可以被读入存储器以供处理设备处理。软件可以实现为单个程序或单独程序的集合,并且可以存储在非易失性存储装置中,并且在程序执行期间全部或部分地复制到易失性工作存储器中。
电力管理系统230可以被配置成管理外围设备130-150的电力分配、再充电、电力效率等。在一些实施方式中,电力管理系统230可以包括电池(未示出)、用于电池的基于USB的再充电系统(未示出),以及电力管理设备(例如,低压差电压调节器——未示出)。在某些实施方式中,由电力管理系统230提供的功能可以合并到处理器210中。电源可以是可更换电池、可再充电能量存储设备(例如,超级电容器、锂聚合物电池、NiMH、NiCd)、有线电力供应装置、无线电力系统(RezenceTM、Logitech POWERPLAYTM)或其他合适的示例。再充电系统可以是附加线缆(专用于再充电目的),或者其可以使用USB连接为电池再充电。
通信系统240可以被配置成在例如处理器210与一个或更多个外围设备130-150之间提供无线和/或有线通信。通信系统240可以被配置成提供射频(RF)、BLE、WiFi、红外(IR)、Logitech或其他合适的通信技术以与其他计算设备和/或外围设备通信。通信系统240还可以提供与处理器210的硬连线连接。硬连线连接可以包括串行互连,例如通用串行总线(USB)、等。
输入检测模块250可以控制用户与外围设备130-150上的输入元件的交互的检测。例如,输入检测模块250可以基于来自计算机鼠标130的传感器数据来检测用户输入。在一些实施方式中,输入检测模块250可以与存储器阵列220一起工作,以基于从通信系统240接收的传感器数据生成至处理器210的输入数据。例如,基于存储在存储器阵列220中的滚动速度信息以及来自计算机鼠标130的传感器数据,输入检测模块250可以计算鼠标指针在显示器120上经过的距离,并将距离信息提供给处理器210(或呈现器)以在显示器120上呈现鼠标的移动。
尽管可能未明确地讨论某些系统,但是如本领域的普通技术人员将理解的,它们应被视为系统200的一部分。例如,系统200可以包括总线系统以将电力和/或数据传输到其中不同的系统和从其中不同的系统传输电力和/或数据。
应当理解,系统200是说明性的,并且可以进行变化和修改。系统200可以具有在本文中未具体描述的其他能力。此外,虽然参照特定块描述了系统200,但是应该理解,这些块是为了便于描述而定义的,并不意味着暗示组件部分的特定物理布置。此外,块不需要与物理上不同的组件相对应。块可以被配置成例如通过对处理器进行编程或提供适当的控制电路来执行各种操作,并且取决于如何获得初始配置,各种块可能是或可能不是可重新配置的。
可以在包括使用电路和软件的任何组合实现的电子设备的各种设备中实现所公开的技术的示例。此外,系统200的方面和/或部分可以按照设计的要求与其他子系统组合或由其他子系统操作。例如,输入检测模块250和/或存储器阵列220可以在处理器210内操作,而不是用作单独的实体。此外,在本文中描述的发明构思还可以应用于各种外围设备,并且不限于计算机鼠标、键盘或麦克风。系统200可以应用于在本文实施方式中描述的任何外围设备,无论是明确地、参考地还是默认地描述的外围设备(例如,本领域的普通技术人员已知可以应用于特定外围设备)。前述实施方式并非旨在进行限制,并且受益于本公开内容的本领域的普通技术人员将理解无数的应用和可能性。
位移估计技术的示例
图3A至图3E示出了手持外围设备300及其控制光标的显示位置的操作的示例。手持外围设备300可以包括表面302上的计算机鼠标(例如,图1的计算机鼠标130),表面302可以包括某些纹理图案,如图3A所示。手持外围设备300可以在表面302上移动(例如,由操作人员移动)。随着手持外围设备300在一段时间内从一个位置移动到另一位置,手持外围设备300(和/或与其通信耦接的加密狗)可以提供对外围设备在该时间段内的位移(包括移动的方向和移动距离)的估计。可以提供估计的位移信息以更新光标的显示位置。
在一些示例中,如图3A所示,手持外围设备300包括图像系统304,图像系统304包括光源306以及包括像素单元阵列308、透镜309和图像处理器310的光学传感器。图像系统304可以被配置成提供用于位移估计的信息。光源306可以包括例如发光二极管(LED)以将光312投射到表面302上。透镜309可以向上或向下移动(沿着Y轴)以允许放大或缩小表面302,以控制表面302的成像焦点以及成像区域。像素单元阵列308可以接收从表面302反射的光314并且可以生成表示表面302的图像的数据。当手持外围设备300处于表面302上的不同位置时可以获得图像。可以将图像提供给图像处理器310以进行位移估计。为了执行位移估计,图像处理器310可以确定两个图像之间的表面302的一个或更多个特征(例如,纹理图案)的图像位置的变化。图像位置的变化可以反映像素单元阵列308相对于一个或更多个特征的位移。例如,两个图像之间的特征的位移可以具有与手持外围设备300的位移相同的距离但是相反的方向。
确定两个图像之间的一个或更多个特征的图像位置变化的一种方式可以基于例如两个图像的像素数据之间的对应程度,例如图像320与322之间、图像320与324之间等的对应程度,每个图像包括特征340。在一些示例中,根据下式,对应程度可以基于两个图像的搜索窗口内的绝对像素值(或强度)差的总和:
在式1中,R表示以坐标(x,y)为中心的第一搜索窗口内的图像320的一部分与以坐标(x*,y*)为中心的第二搜索窗口内的图像322的一部分之间的绝对像素值差之和。第一搜索窗口和第二搜索窗口具有相同的维度(相同的行数和相同的列数)。例如,第一搜索窗口和第二搜索窗口中的每一个可以分别以坐标(x,y)和坐标(x*,y*)为中心具有2M的宽度和2N的高度。坐标(x*,y*)可以从坐标(x,y)偏移水平偏移Δx和垂直偏移Δy。此外,pixel_320和pixel_322分别指图像320和322在像素坐标(i,j)处的像素值。可以确定图像320在像素坐标(i,j)处的像素与图像322在偏移像素坐标(i+Δx,j+Δy)处的对应像素之间的绝对差。可以针对第一搜索窗口(由行边界x-M和x+M以及列边界y-N和y+N限定)和第二搜索窗口(从第一搜索窗口偏移水平偏移Δx和垂直偏移Δy)内的图像320的每个像素重复该过程,并且可以将绝对差相加以计算R。
在一些示例中,对应程度可以基于两个图像的像素数据的归一化互相关、两个图像的后处理像素数据的归一化互相关值(例如,使用边缘检测滤波器、拉普拉斯滤波器、高斯滤波器等进行后处理),或基于其他数字图像相关(DIC)确定。根据下式可以计算图像320与322之间的归一化互相关值:
在式2中,C表示图像320与322之间的归一化互相关值。可以基于将图像320和322在每个像素坐标处的对应像素值的乘积之和除以图像320的像素值的第一平方和与图像322的像素值的第二平方和的乘积的平方根来确定C。
在图3B的示例中,当特征340在图像320与322之间完美对准(例如,具有相同的像素坐标)时,图像320与322之间的对应程度(例如,基于绝对像素值差之和、归一化互相关等)可以处于峰值。另一方面,由于特征340在两个图像之间未对准,图像320与324之间的互相关值可以低于峰值。未对准反映了在图像320与324之间特征340的图像位置的变化,并且可以测量图像位置变化以估计像素单元阵列308(和手持外围设备300)的位移。
在一些示例中,为了确定特征340的图像位置的变化,图像处理器310可以改变水平偏移Δx和垂直偏移Δy以执行对图像324中的特征340的搜索。引起峰值对应程度(例如,绝对像素值差之和R、归一化互相关值C等)的水平偏移Δx和垂直偏移Δy的值可以指示在图像322与图像324之间特征340的图像位置的变化。例如,如图3B所示,在图像320中特征340的中心位于图像位置(s,t),然而在图像324中特征340的中心位于图像位置(s+2,t+2)。峰值绝对像素值差之和R或峰值归一化互相关值C可以从式1和式2获得,其中水平偏移Δx为2,垂直偏移Δy为2。
在一些示例中,可以通过针对不同的水平偏移Δx和垂直偏移Δy确定绝对像素值差之和R或归一化互相关值C来执行对特征340的搜索操作。图3C示出了搜索操作的示例。如图3C所示,图像324(或图像320)可以被划分成多个交叠的像素组,包括例如像素组342和344。每个像素组可以以图像324内的不同像素位置为中心并且例如分开距离D。可以将包括特征340的滤波器阵列346与像素组中的每一个进行比较,并且可以基于针对像素组中的每一个的比较结果生成比较结果阵列350。可以采用各种比较方案,包括例如确定绝对像素值差之和、确定归一化互相关等。
图3D示出了比较结果阵列350的示例。如图3D所示,比较结果阵列350可以存储关于图像324的不同像素位置的比较结果的分布。比较结果阵列350中的每个条目存储像素组与滤波器阵列346之间的比较结果(例如,归一化互相关值、绝对像素值差之和等),并且每个条目也与像素位置(例如,像素组的中心)相对应。比较结果阵列350可以提供例如在不同像素位置处找到特征的概率分布。例如,与峰值比较结果(例如,具有峰值互相关值、匹配像素的峰值计数等)相关联的像素位置最可能是图像324中的特征340的图像位置。参照图3D的比较结果阵列350,由于峰值比较结果在像素坐标(2,2)处,图像处理器310可以确定特征340可能在图像324的像素坐标(2,2)处。可以基于识别来自该组比较结果阵列350中的每一个的峰值来估计图像324中的特征340的图像位置。然后可以使用图像位置的估计来估计该图像中的特征相对于参考图像的位移。可以由图像系统304获取表面上的第一位置处的图像和表面上的第二位置处的参考图像的多个图像对。对于第一图像和参考图像中的每一对,可以计算比较结果阵列350。多个比较阵列可以产生与位移数据集相对应的比较结果阵列数据集(350a,350b,350c)。
尽管以上布置使得计算机鼠标能够提供其位移的合理的准确且精确的估计,但是估计的准确度可能受到许多因素的限制。首先,表面可以具有相似或相同特征的图案,并且对于多个距离和移位的方向可能出现多个峰值互相关值。图像处理器可能选择伪峰值互相关值,这可能致使位移的不准确估计。图3E示出了可以生成伪峰值互相关值的示例场景。如图3E所示,图像360包括特征340,然而图像362包括特征340和另一特征370。特征370可以与特征340相同或非常相似。特征340与370之间的相似性可以反映在比较结果阵列380中,其示出了在两个不同像素移位方向上的两个峰值互相关值,一个在(0,0)处,并且一个在(0,2)处,其中在(0,0)处的峰值互相关值是伪峰值。图像处理器310可能无法确定哪个峰值互相关值指示特征340的移位,或者使用伪峰值来进行位移估计。
提高位移估计的准确度和精度的一种方法是通过增加光学传感器的分辨率。例如,可以扩展像素单元阵列308的大小以提供覆盖表面302的更大区域的图像数据。返回参照图3E,如果图像360捕获表面302的较大区域,则图像360还可以包括特征370。然后,可以基于图像362的两个特征340和370相对于图像360的移位来生成比较结果阵列380,并且不太可能有两个峰值互相关值。此外,还可以增加像素单元阵列308中的像素单元的密度(例如,通过在单位区域中包括更多像素单元)来分辨更小大小的特征,其基于互相关值彼此区分非常相似的特征(例如,特征340和370)。通过减小像素单元之间的距离,也可以提高图像位置变化确定的精度以及位移估计的精度。提高的精度可以减少跟踪手持外围设备300的其他连续移动的不连续性,这也可以改善用户体验。
然而,增加光学传感器的分辨率会致使功耗和芯片面积的显著增加,这两者对于手持设备都是不期望的。图4示出了示例图表400,示例图表400示出了在准确度由光学传感器的分辨率决定的情况下,位移估计的准确度与包括芯片尺寸、功耗和成本的一组度量之间的关系。如图4所示,通过提高光学传感器的分辨率实现的准确度的增加致使芯片尺寸、功耗和成本的相应增加。这可以归因于光学传感器的分辨率与像素单元的数量直接相关。例如,每个像素单元消耗有限量的功率。在增加像素单元的数量以提高分辨率时,像素单元消耗的总功率也增加。此外,像素数据量增加,这又需要图像处理器的更多计算能力来处理像素数据。较大的计算能力也会增加图像处理器的功耗。此外,还可以增加像素单元阵列的大小以使得能够对表面的更大区域进行成像,以避免上述伪互相关峰值问题。假设像素单元阵列的大小通常支配芯片面积,则增加像素单元阵列的大小也会增加芯片面积。此外,由于功耗和芯片面积的增加,操作外围设备的成本也会增加。
使用机器学习的位移估计技术示例
为了减少对光学传感器分辨率的依赖,可以采用机器学习模型来提高位移估计的准确度。现在参照图5,其示出了位移估计系统500的示例。如图5所示,位移估计系统500可以包括机器学习模型数据库502和处理系统504。处理系统504可以从光学传感器508(例如,像素单元阵列308)接收一对图像506和507。图像506可以包括从图像507中的位置移位的特征510的图像。在一些示例中,处理系统504还可以生成比较结果阵列514,比较结果阵列514包括例如输入图像506与507之间的不同偏移之间的互相关值或绝对像素值差之和。处理系统504还可以从机器学习模型数据库502获得机器学习模型516,并将机器学习模型应用于图像506和507(或从图像506和507得到的其他数据,例如比较结果阵列514),以生成两个图像之间的特征510的估计位移。如下面更详细描述的,机器学习模型可以包括一组功能,其可以接受包括特征510的输入图像的像素数据(或从输入数据得到的其他数据),并计算两个输入图像之间的特征510的估计位移。可以基于特征510的图像对和每对图像的位置之间的对应地面真实位移来训练机器学习模型。在一些示例中,机器学习模型可以是人工神经网络的形式。人工神经网络可以包括多个处理节点,其中每个处理节点被配置成处理输入像素数据(或从输入像素数据得到的数据)的一部分,或者进一步处理来自其他处理节点的中间输出。
图6示出了可以用作图5的用于位移估计的机器学习模型516的一部分的全连接的深度学习神经网络600的示例。如图6所示,全连接的深度学习神经网络600可以是多层神经网络,并且可以包括输入层607、包括中间层609的一个或更多个中间层以及输出层611。
输入层607可以处理表示输入图像(例如,输入图像506或507)的不同部分的像素数据(或其他得到的数据)。可以指定输入层607的每个处理节点以接收与输入图像内的预定像素相对应的像素值。还可以为层607的每个处理节点指定基于矩阵W1定义的一组权重。层607的每个处理节点可以将像素值与权重相乘以生成乘积,并将乘积发送到中间层609的处理节点。
中间层609可以通过例如对从输入层607的每个节点接收的乘积进行求和来生成一组中间输出。例如,假设层609的处理节点610a连接到输入层607中的n个处理节点,处理节点610a可以基于下式生成从层607接收的缩放输出的总和:
这里,sum610a表示由处理节点610a生成的和。W1i×xi表示由输入层607的处理节点利用相关权重(例如,W10)对特定像素值的缩放。利用这样的布置,层609的每个处理节点可以基于应用于输入图像506的每个像素的不同权重集(例如,用于处理节点610a的W10、用于处理节点610b的W11等)来计算不同的总和。
在一些示例中,可以基于参考图像(例如,在参考位置处拍摄的某些特征的图像)来确定权重集W1,并且输入层607和中间层609的操作可以模拟搜索输入图像506(或输入图像507)与参考图像之间的最佳互相关。输出层611可以对加权的中间层值进行求和以基于相关联的互相关值生成表示候选位移的插值的估计位移。如下面将更详细描述的,可以考虑例如不同的特征图案、角落情况等从训练处理得到权重集W1和W2,以提高找到最佳互相关匹配的置信度,并减小位移估计输出与实际位移之间的误差。
在一些示例中,卷积神经网络也可以用于位移估计。卷积神经网络可以被配置成执行例如如图3C所描述的对输入图像中的一个或更多个特征的搜索操作。图7示出了可以用作图5的用于位移估计的机器学习模型516的一部分的卷积神经网络700的示例。卷积神经网络700可以执行图3C的搜索操作作为位移估计的一部分。如图7所示,卷积神经网络700可以是多层卷积神经网络,该多层卷积神经网络包括输入层707、包括中间层709的一个或更多个中间层以及输出层711。
类似于图6的输入层607,输入层707可以处理表示输入图像(例如,图像506)的不同部分的像素数据(或其他得到的数据)。可以指定输入层707的每个处理节点以接收与图像506内的预定像素相对应的像素值。输入层707的处理节点可以被分组为包括例如像素组342、344等的像素组。可以为每个像素组指定基于滤波器阵列346定义的一组权重W3。像素组的处理节点可以例如将像素数据与权重W3相乘并将缩放的像素数据发送到中间层709中的处理节点。例如,像素组704的处理节点连接到中间层709的处理节点710a,而像素组714的处理节点连接到中间层709的处理节点710b。处理节点710a可以对来自像素组342的缩放的像素数据进行求和以生成相关值,而处理节点710b可以对来自像素组344的缩放的像素数据进行求和以生成另一相关值。
另外,输出层711可以包括两个处理节点712a和712b,其中处理节点712a被配置成基于从中间层709提供的卷积值估计沿着第一维度(例如,沿着X轴)的位移,并且处理节点712b被配置成基于从中间层709提供的卷积值估计沿着第二维度(例如,沿着Y轴)的位移。位移的估计可以基于利用来自权重集W4的权重对每个卷积值进行缩放并且对缩放的卷积值进行求和。权重W4可以被配置成使得处理节点712a和712b中的每一个能够基于卷积值的分布来预测输入图像506与参考图像之间的特征510的位移。也可以考虑例如不同的特征图案、角落情况等从训练处理得到权重集W3和W4,以减小位移估计输出与实际位移之间的误差。
应当理解,图6和图7的机器学习模型仅作为示例提供,并且存在可用于位移估计的各种其他机器学习模型。例如,可以使用包括全连接的神经网络和卷积神经网络的组合的神经网络模型,其中,输入层的处理节点的块被配置成空间滤波器(类似于图7的输入层707),而中间层全连接到输出层。此外,还可以使用其他模型,包括例如支持向量回归、线性回归、回归树等。
在一些示例中,如上所描述,还可以训练图6和图7的机器学习模型以基于比较结果阵列514执行两阶段位移估计。如上所描述,比较结果阵列514可以提供在图像的不同像素位置处找到特征的概率分布。可以使用根据在不同位置拍摄的表面的已知特征的图像对生成的一组参考比较结果阵列和每对图像的位置之间的对应地面真实位移,来训练图6和图7的机器学习模型。可以训练机器学习模型以将一组参考比较结果阵列与输入比较结果阵列进行比较,以识别输入中表示的特征并计算特征的位移。这种布置使得机器学习模型能够将处理集中在用于跟踪位移的特征上,更少地集中在不包括特征的像素数据上,以提高效率。
图8中示出了两阶段位移估计的示例。如图8所示,可以从比较结果阵列514获得具有像素级精度的粗略位移802。如上所描述,比较结果阵列514可以包括关于两个图像之间的不同垂直偏移和水平偏移的输入图像506与507之间的一组归一化互相关值或绝对像素值差之和。对应于存储峰值比较结果的比较结果阵列514的条目的垂直偏移和水平偏移可以提供输入图像506与507之间的特征510的粗略位移802。粗略位移802可以具有像素级精度。
另外,比较结果阵列514可以作为输入馈入机器学习模型516。如上所描述,可以使用根据与已知位移配对的表面的已知特征的图像生成的一组参考比较结果阵列来训练机器学习模型。可以训练机器学习模型来以子像素精度估计峰值比较结果的位置并计算子像素级位移估计804以改善粗略位移802。可以将误差位移804添加到粗略位移802以生成具有子像素级精度的精细位移估计806。
返回参照图6和图7,比较结果阵列514可以是矩阵的形式(例如,所示的5×5矩阵)。矩阵可以具有其他尺寸,包括例如3×3、7×7等。比较结果阵列514可以被馈送到输入层(例如,图6的输入层607、图7的输入层707等。),其中矩阵的每个条目被映射到输入层的处理节点。在使用全连接的神经网络600的情况下,输入层607的每个处理节点可以利用一组权重来对映射的条目进行缩放以生成一组缩放的条目值,并将缩放的比较结果发送到中间层609。中间层609可以生成来自输入层的每个处理节点的缩放的比较结果的总和(对于图6),其可以表示子像素级插值操作。在使用卷积神经网络700的情况下,输入层707的每组处理节点(例如,组704、714等)可以被配置成空间滤波器。每组处理节点可以将空间滤波器(通过利用一组权重进行缩放来表示)应用于比较结果阵列514的条目块。可以将缩放的条目块值发送到中间层709,中间层709可以对从输入层707接收的值进行求和以执行子像素级插值。在图6和图7中,中间层可以进一步对总和进行缩放,并将经缩放的和作为中间输出发送到输出层。输出层可以对中间输出进行求和以生成例如具有子像素分辨率的估计位移、从比较结果阵列514获得的像素分辨率位移与实际物理位移之间的估计误差等。在一些示例中,神经网络600和700可以被配置成接收从输入图像内的不同搜索窗口生成的多个比较结果阵列514,以通过例如减小如图3E所示的特征的错误匹配的可能性来进一步提高准确度。
图9A和图9B示出了训练和组织机器学习模型的示例。在一些示例中,如图9A所示,外围设备900可以通过机器人装置902在表面904上移动,以生成一组位移模式906。该组位移模式可以包括位移距离和位移方向的不同组合。外围设备900还可以捕获表面904的一组图像对909,其中,每个图像对包括参考图像910和位移图像912并且与两个图像之间的特征的地面真实位移(就距离和方向而言)相关联。可以设计位移模式906使得该组位移图像912包括可能致使不准确的位移估计的角落情况图像,例如如上所描述的图3D的示例。可以创建训练数据集914,其中该组位移图像912中的每个图像与位移模式906的位移配对。在一些示例中,使用以上描述的技术(例如,如图3C至图3E中所描述的)可以在参考图像910与位移图像912对之间生成一组参考比较结果阵列916,并且训练数据集914可以包括与位移模式906配对的参考比较结果阵列916。一组参考比较结果阵列916(类似于比较结果阵列350a、350b、350c等)也可以针对不同光学传感器设置针对每对参考图像910和位移图像912生成,并且可以用于训练。
在一些示例中,代替或除了创建实际位移模式之外,还可以使用模拟数据920来生成训练数据集914。例如,可以通过模拟在表面904上的不同位置处并且具有不同配置(例如,基于透镜309的放大功率和成像区域、像素单元阵列308的动态范围等的配置)的光学传感器508的输出响应来生成模拟数据920。输出响应可以包括图像909和/或参考比较结果阵列916,并且可以与位移模式906相关联以形成训练数据集914。
可以提供训练数据集914以训练机器学习模型516。在机器学习模型516接受像素数据作为输入的情况下,参考图像910可以用于生成初始权重集。可以将与参考图像配对的位移图像912馈送到模型中,该模型可以输出估计位移922。可以将估计位移922与和该特定参考图像和位移图像对相关联的地面真实位移进行比较以生成差异,并且可以调整权重以最小化差异。可以针对多对参考图像910和位移图像912重复训练,直到例如针对每个对的模型输出的差异的总和最小化。在机器学习模型516接受比较结果阵列916作为输入的情况下,可以向模型提供一组比较结果阵列916以计算一组位移,可以将该组位移与和该组比较结果阵列916相关联的一组地面真实位移进行比较,以生成一组差异。作为训练过程的一部分,可以迭代地更新权重,以最小化差异的总和。
可以重复上述训练过程以涵盖不同的操作条件。例如,可以针对具有不同特征图案的不同类型的表面以及针对不同的光学传感器设置(例如,不同的放大功率、成像区域、分辨率、动态范围、滤色器设置等)重复训练过程。可以维护机器学习模型的数据库(例如,图5的机器学习模型数据库502)。图9B示出了机器学习模型数据库502的示例组织。如图9B所示,机器学习模型数据库502可以包括多个机器学习模型930(例如,930a、930b、930c等)。在机器学习模型930是多层神经网络的情况下,机器学习模型中的每一个可以由与多层神经网络的不同层相关联的设定权重来表示。机器学习模型930中的每一个可以与表面类型940(例如,940a、940b、940c等)和光学传感器设置950(例如,950a、950b、950c等)相关联,表面类型940和光学传感器设置950指示用于训练相关的机器学习模型的操作条件。为了执行位移估计,处理系统504可以基于操作条件选择机器学习模型930中的一个,并将选择的模型应用于输入数据。
图10示出了示例图表1000,示例图表1000示出了在使用所公开的技术执行位移估计的情况下,位移估计的准确度与包括芯片尺寸、功耗和成本的一组度量之间的关系。与图4的图表400相比较,通过芯片尺寸、功耗和成本的小得多的增加可以实现准确度的提高。这可以归因于,例如,使用机器学习技术提高了准确度,并且准确度不仅仅依赖于光学传感器的分辨率。虽然可能需要更复杂的机器学习模型和/或更大量的输入数据来进一步提高准确度,但是所需的计算能力(和功耗)的增加远小于添加额外的像素单元并且需要额外的计算能力来操作额外的像素单元的情况。
方法
图11示出了用于确定外围设备的位移的方法1100的简化流程图。方法1100可以由处理逻辑执行,处理逻辑可以包括硬件(电路、专用逻辑等)、在适当的硬件(例如通用计算系统或专用机器)上运行的软件、固件(嵌入式软件)或其任何组合。在某些实施方式中,方法1100可以由图5的位移估计系统500执行。
在步骤1102,方法1100可以包括从表面上的第一位置处的图像传感器捕获表面的第一图像。第一图像可以包括表面的第一位置的特征。该特征可以包括例如边缘、纹理等。图像传感器可以是计算机鼠标的一部分。
在步骤1104,方法1100可以包括使用从第一图像得到的数据来执行训练的机器学习模型,以估计第一图像与在表面的第二位置处捕获的参考图像之间的特征的位移。在一些示例中,从第一图像得到的数据可以包括从预定搜索窗口提取的像素数据。数据还可以包括针对不同偏移的第一图像与参考图像之间的互相关值的分布、绝对像素值差的分布等。可以训练训练的机器学习模型以基于第一图像的像素数据、第一图像与参考图像之间的互相关值的分布、第一图像与参考图像之间的绝对像素值差的分布等输出例如子像素级估计的特征的位移。在一些实施方式中,步骤1104还可以包括通过识别引起峰值互相关值或者最小绝对像素值差的偏移来生成估计的位移的粗略估计,并使用训练的模型来确定粗略估计与实际位移之间的误差位移。步骤1104可以进一步包括基于粗略估计和误差位移来估计位移。训练的机器学习模型可以包括例如人工神经网络。
在步骤1106,方法1100可以包括基于特征的估计位移来确定图像传感器的位移。例如,可以确定图像传感器的位移在距离上与特征的估计位移相等但是在方向上与特征的估计位移相反。
其他变化在本公开内容的精神内。因此,尽管所公开的技术易于进行各种修改和替选构造,但是其某些所示的实施方式在附图中示出并且已在上面详细描述。然而,应该理解的是,并不旨在将本公开内容限制于所公开的特定形式,而是相反,旨在涵盖落入所附权利要求中所定义的本公开内容的精神和范围内的所有修改、替选构造和等同物。例如,任何实施方式、替选实施方式等及其构思可以应用于所描述的任何其他实施方式和/或在本公开内容的精神和范围内。
在描述所公开的实施方式的上下文中(特别是在所附权利要求的上下文中)术语“一(a)”和“一个(one)”和“该(the)”以及类似的指示物的使用应被解释为涵盖单数和复数形式,除非在本文中另有说明或与上下文明显相矛盾。除非另有说明,否则术语“包括”、“具有”、“包括”和“包含”应被解释为开放式术语(即,意味着“包括但不限于”)。术语“连接”应被解释为部分或全部包含在内,附接至或结合在一起,即使存在某些中间物。短语“基于”应该被理解为是开放式的,并且不以任何方式限制,并且在适当的情况下旨在被解释或以其他方式理解为“至少部分地基于”。除非在本文中另有说明,否则在本文中对数值范围的描述仅旨在用作单独提及落入该范围内的每个单独值的简写方法,并且每个单独值并入本说明书中,如同其在本文中单独引用一样。除非在本文中另有说明或与上下文明显相矛盾,否则在本文中所描述的所有方法均可以任何合适的顺序进行。除非另外声明,否则在本文中提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地说明本公开内容的实施方式,并且不对本公开内容的范围构成限制。说明书中的任何语言都不应被解释为表明任何未声明的要素对于本公开内容的实践是必不可少的。
Claims (18)
1.一种方法,包括:
从表面上的第一位置处的图像传感器捕获表面的第一图像,所述第一图像包括所述表面的所述第一位置的特征;
生成所述第一图像与参考图像之间的互相关值分布,所述互相关值分布与均具有像素精度的一组粗略候选位移相对应并且表示所述第一图像与所述参考图像之间的比较;
选择所述粗略候选位移中的一个粗略候选位移作为粗略位移;
将所述互相关值分布提供给训练的机器学习模型;
操作所述训练的机器学习模型,以基于作为输入的所述互相关值分布计算在所述图像传感器的实际位移与所述粗略位移之间的具有子像素精度的估计误差位移;
基于所述粗略位移和所述估计误差位移确定估计位移,所述估计位移具有所述子像素精度;以及
基于具有所述子像素精度的所述估计位移确定所述图像传感器的位移,
其中,训练所述机器学习模型以最小化由所述机器学习模型输出的针对包括一组互相关值分布和一组相应的位移的训练数据集的所述误差位移。
2.根据权利要求1所述的方法,其中,所述图像传感器是被定位在所述表面上的计算机鼠标的一部分;并且
其中,所述位移被提供给计算机以更新所述计算机显示的内容。
3.根据权利要求1所述的方法,其中,所述互相关值分布是从所述第一图像的像素子集得到的。
4.根据权利要求1所述的方法,其中,所述训练的机器学习模型为第一训练的机器学习模型;
其中,所述位移为第一位移;并且
其中,所述方法还包括:
将所述第一图像的像素数据提供给第二训练的机器学习模型;以及
操作所述第二训练的机器学习模型来执行:
基于所述像素数据计算所述第一图像与所述参考图像之间的互相关值分布,所述互相关值分布与一组候选位移相对应并且表示所述第一图像与所述参考图像之间的比较;
基于所述互相关值分布对所述一组候选位移进行插值;以及
基于插值的结果估计第二位移。
5.根据权利要求1所述的方法,
其中,所选择的粗略候选位移对应于所述互相关值分布的峰值互相关值。
6.根据权利要求1所述的方法,其中,所述机器学习模型包括人工神经网络。
7.根据权利要求6所述的方法,其中,所述人工神经网络包括全连接的神经网络。
8.根据权利要求6所述的方法,其中,所述人工神经网络包括卷积神经网络。
9.根据权利要求6所述的方法,其中,所述人工神经网络包括全连接的神经网络和卷积神经网络的组合。
10.根据权利要求1所述的方法,还包括:
基于操作条件从多个机器学习模型中选择用于估计所述特征的位移的所述机器学习模型,
其中,所述互相关值分布被提供给所选择的机器学习模型以估计所述位移。
11.根据权利要求10所述的方法,其中,所述操作条件包括以下中的至少一个:所述表面的类型,或所述图像传感器的配置。
12.根据权利要求1所述的方法,其中,基于训练数据集训练所述机器学习模型,所述训练数据集包括:
一组参考图像;
与所述一组参考图像配对的一组位移图像;以及
所述一组参考图像与所述一组位移图像之间的一组特征的位移。
13.根据权利要求1所述的方法,其中,基于训练数据集训练所述机器学习模型,所述训练数据集包括:
一组参考图像与和所述一组参考图像配对的一组位移图像之间的一组互相关值;以及
所述一组参考图像与所述一组位移图像之间的一组特征的位移。
14.一种外围设备,包括:
图像传感器;以及
硬件处理器,其被配置成:
当所述外围设备处于表面上的第一位置时,控制所述图像传感器捕获所述表面的第一图像,所述第一图像包括所述表面的所述第一位置的特征;
生成所述第一图像与参考图像之间的互相关值分布,所述互相关值分布与均具有像素精度的一组粗略候选位移相对应并且表示所述第一图像与所述参考图像之间的比较;
选择所述粗略候选位移中的一个粗略候选位移作为粗略位移;
将所述互相关值分布提供给训练的机器学习模型;
操作所述训练的机器学习模型,以基于作为输入的所述互相关值分布计算在所述图像传感器的实际位移与所述粗略位移之间的具有子像素精度的估计误差位移;
基于所述粗略位移和所述估计误差位移确定估计位移,所述估计位移具有所述子像素精度;以及
基于具有所述子像素精度的所述估计位移确定所述外围设备的位移,
其中,训练所述机器学习模型以最小化由所述机器学习模型输出的针对包括一组互相关值分布和一组相应的位移的训练数据集的所述误差位移。
15.根据权利要求14所述的外围设备,其中,所述外围设备是计算机鼠标;并且
其中,所述位移被提供给计算机以更新所述计算机显示的内容。
16.根据权利要求14所述的外围设备,其中,所述训练的机器学习模型为第一训练的机器学习模型;
其中,所述位移为第一位移;并且
其中,所述硬件处理器还被配置成:
将所述第一图像的像素数据提供给第二训练的机器学习模型;以及
操作第二训练的机器学习模型来执行:
基于所述像素数据计算所述第一图像与所述参考图像之间的互相关值分布,所述互相关值分布与一组候选位移相对应并且表示所述第一图像与所述参考图像之间的比较;
基于所述互相关值分布对所述一组候选位移进行插值;以及
基于插值的结果估计第二位移。
17.根据权利要求14所述的外围设备,
其中,所选择的粗略候选位移对应于所述互相关值分布的峰值互相关值。
18.根据权利要求14所述的外围设备,其中,所述硬件处理器还被配置成:
从所述一组粗略候选位移中选择与所述互相关值分布的峰值互相关值相对应的粗略候选位移,并且
其中,基于所选择的粗略估计位移生成所述估计位移,并且所述估计位移具有所述子像素精度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/054,903 | 2018-08-03 | ||
US16/054,903 US11042992B2 (en) | 2018-08-03 | 2018-08-03 | Method and system for detecting peripheral device displacement |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110796259A CN110796259A (zh) | 2020-02-14 |
CN110796259B true CN110796259B (zh) | 2022-07-08 |
Family
ID=69168011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910716974.2A Active CN110796259B (zh) | 2018-08-03 | 2019-08-05 | 用于确定外围设备位移的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11042992B2 (zh) |
CN (1) | CN110796259B (zh) |
DE (1) | DE102019120860A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725629B2 (en) * | 2018-06-25 | 2020-07-28 | Google Llc | Identifying and controlling smart devices |
FR3084631B1 (fr) * | 2018-07-31 | 2021-01-08 | Valeo Schalter & Sensoren Gmbh | Assistance a la conduite pour le controle longitudinal et/ou lateral d'un vehicule automobile |
US11042992B2 (en) | 2018-08-03 | 2021-06-22 | Logitech Europe S.A. | Method and system for detecting peripheral device displacement |
KR102210806B1 (ko) * | 2018-10-02 | 2021-02-01 | 한림대학교 산학협력단 | 위 내시경 이미지의 딥러닝을 이용하여 위 병변을 진단하는 장치 및 방법 |
CN113272822A (zh) * | 2018-11-14 | 2021-08-17 | 直观外科手术操作公司 | 用于有效的组织分割的卷积神经网络 |
EP4200123A1 (de) * | 2020-08-19 | 2023-06-28 | Carl Zeiss Industrielle Messtechnik GmbH | Verfahren und vorrichtung zur additiven herstellung eines werkstücks |
CN112799525B (zh) * | 2021-01-28 | 2022-08-02 | 深圳市迈特瑞光电科技有限公司 | 一种光学导航辅助系统 |
CN113282982B (zh) * | 2021-04-30 | 2023-04-18 | 杭州申昊科技股份有限公司 | 一种用于喷泥状况评估铁轨安全的系统和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818575A (zh) * | 2017-10-27 | 2018-03-20 | 深圳市唯特视科技有限公司 | 一种基于分层卷积的视觉对象跟踪方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6950094B2 (en) | 1998-03-30 | 2005-09-27 | Agilent Technologies, Inc | Seeing eye mouse for a computer system |
US6617565B2 (en) | 2001-11-06 | 2003-09-09 | Omnivision Technologies, Inc. | CMOS image sensor with on-chip pattern recognition |
DE10316208A1 (de) | 2002-04-12 | 2003-11-20 | Samsung Electro Mech | Navigationssystem und Navigationsverfahren |
US7315013B2 (en) * | 2004-06-17 | 2008-01-01 | Avago Technologies Ecbu Ip (Singapore) Pte Ltd. | Optical navigation using one-dimensional correlation |
US7283677B2 (en) * | 2004-08-31 | 2007-10-16 | Hewlett-Packard Development Company, L.P. | Measuring sub-wavelength displacements |
US8403850B2 (en) * | 2008-03-25 | 2013-03-26 | Wisconsin Alumni Research Foundation | Rapid two/three-dimensional sector strain imaging |
CN103105943B (zh) | 2013-01-29 | 2015-09-09 | 广州中国科学院先进技术研究所 | 精确定位光电鼠标位移量的方法 |
US20180220589A1 (en) * | 2015-11-03 | 2018-08-09 | Keith Charles Burden | Automated pruning or harvesting system for complex morphology foliage |
CN114143495A (zh) * | 2016-01-05 | 2022-03-04 | 瑞尔D斯帕克有限责任公司 | 多视角图像的注视校正 |
WO2017178806A1 (en) * | 2016-04-11 | 2017-10-19 | Magic Pony Technology Limited | Motion estimation through machine learning |
US20170337682A1 (en) * | 2016-05-18 | 2017-11-23 | Siemens Healthcare Gmbh | Method and System for Image Registration Using an Intelligent Artificial Agent |
US10921888B2 (en) * | 2017-03-07 | 2021-02-16 | Cornell University | Sensory evoked response based attention evaluation systems and methods |
US11042992B2 (en) | 2018-08-03 | 2021-06-22 | Logitech Europe S.A. | Method and system for detecting peripheral device displacement |
-
2018
- 2018-08-03 US US16/054,903 patent/US11042992B2/en active Active
-
2019
- 2019-08-01 DE DE102019120860.2A patent/DE102019120860A1/de active Pending
- 2019-08-05 CN CN201910716974.2A patent/CN110796259B/zh active Active
-
2021
- 2021-05-27 US US17/332,554 patent/US11568549B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107818575A (zh) * | 2017-10-27 | 2018-03-20 | 深圳市唯特视科技有限公司 | 一种基于分层卷积的视觉对象跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
US11568549B2 (en) | 2023-01-31 |
US11042992B2 (en) | 2021-06-22 |
US20200043179A1 (en) | 2020-02-06 |
DE102019120860A1 (de) | 2020-02-06 |
CN110796259A (zh) | 2020-02-14 |
US20210287380A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110796259B (zh) | 用于确定外围设备位移的方法和系统 | |
US10638117B2 (en) | Method and apparatus for gross-level user and input detection using similar or dissimilar camera pair | |
US10732725B2 (en) | Method and apparatus of interactive display based on gesture recognition | |
US11182962B2 (en) | Method and system for object segmentation in a mixed reality environment | |
CN105096377B (zh) | 一种图像处理方法和装置 | |
US20210256182A1 (en) | Predictive Information for Free Space Gesture Control and Communication | |
JP5991041B2 (ja) | 仮想タッチスクリーンシステム及び双方向モード自動切換方法 | |
AU2013329127B2 (en) | Touchless input for a user interface | |
KR101302910B1 (ko) | 제스처 인식 장치, 제스처 인식 방법, 제어 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
CN108875133A (zh) | 确定建筑布局 | |
US20100295783A1 (en) | Gesture recognition systems and related methods | |
CN112506340B (zh) | 设备控制方法、装置、电子设备及存储介质 | |
CN110045829B (zh) | 利用用户接口的事件的设备和方法 | |
KR20170036747A (ko) | 장면 내 키포인트를 추적하기 위한 방법 | |
CN103176606B (zh) | 基于双目视觉识别的平面交互系统及方法 | |
Damindarov et al. | A depth camera-based system to enable touch-less interaction using hand gestures | |
CN110399047B (zh) | 一种基于人脸检测实现跨屏的鼠标控制方法 | |
US20160110881A1 (en) | Motion tracking device control systems and methods | |
Karray et al. | A survey of AR systems and a case study of virtual keyboard based camera projector system | |
Korkalo | Systems and Methods for Multiple-View and Depth-Based People Tracking and Human-Computer Interaction | |
US8724090B2 (en) | Position estimation system | |
CN112596603A (zh) | 核电站控制系统的手势操控方法、装置、设备及存储介质 | |
CN115904063A (zh) | 非接触式人机交互笔笔迹生成方法、装置、设备及系统 | |
Hsieh et al. | Edge Ai-Based Gesture Recognition System for Large-Scale Interactive Displays | |
KR20140103036A (ko) | 객체 추적이 가능한 전자 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |