Method, system, and medium for adapting graphical user interface
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2023-11-16
- Publication Date
- 2026-07-08
AI Technical Summary
Existing graphical user interfaces (GUIs) in vehicles face challenges in efficiently differentiating between driver and passenger inputs on large touchscreens, leading to increased interaction complexity and privacy concerns.
A computer-implemented method and system that detects inputs via a touch panel, radar, or sonar, processes the data to determine whether the input is from the driver or passenger, and adapts the GUI accordingly by modifying its layout or position.
This solution enhances user interaction by simplifying the interface based on user identification, reducing driver distraction, and addressing privacy concerns by not requiring additional hardware or capturing personally identifiable data.
Smart Images

Figure CN2023132088_22052025_PF_FP_ABST
Abstract
Description
METHOD, SYSTEM, AND MEDIUM FOR ADAPTING GRAPHICAL USER INTERFACETechnical Field
[0001] The present disclosure relates to graphical user interfaces and, in particular, to a method, system, and medium for adapting a graphical user interface.Background
[0002] In recent years, there has been a trend towards even larger touchscreens in cars. Many automakers are incorporating displays ranging from 10 to 15 inches or more in their flagship models. These larger displays provide a more visually engaging and intuitive user experience, allowing for enhanced functionality and easier interaction with various vehicle features.
[0003] With the increasing popularity of touchscreens, automakers focused on improving user interfaces. This involved developing intuitive and user-friendly interfaces that maximized the use of large screen real estate. Gestures, icons, and menu structures were designed to enhance usability and minimize driver distraction.
[0004] Automakers have recognized the importance of personalization, allowing drivers to customize the layout, themes, and functionality of their touchscreens. This provides a tailored experience and enhances user satisfaction.
[0005] The continued advancements in display technology, along with the integration of innovative user interfaces and features, are driving the evolution of large car touchscreens, offering drivers and passengers a more immersive and connected driving experience.
[0006] The latest phones screen are large for touch-based operation. Different vendors have different gestures to trigger one-hand mode. For models with a “home” button, the entire interface will shift down to the lower half of the screen when the user double-taps the home button. For other phones, the phone can switch to a mini screen view mode when the user wipes up diagonally from one of the bottom corners and holds. There is also a double tap gesture in some cases to zoom in or move the entire view. The disadvantage of this kind of interaction design is increasing the interaction process and requiring a learning process.
[0007] In-car cameras are also available in some modern cars. Not only can they be used to monitor and improve driver behavior, but also to capture driver and passenger actions, such as who touches the screen. The disadvantage of using this solution is the privacy concern.
[0008] Another solution measures the body’s electric conductivity to distinguish driver and passenger touches on screens. It adds additional electrode present in the seats. When the user touches the capacitive screen it measures the capacitive coupling between the touchscreen and the electrode present. The disadvantage of this solution is it requires additional devices and is difficult to maintain.Summary
[0009] The present disclosure describes systems and methods which provide one or more efficient techniques to perform.
[0010] In accordance with a first aspect of the present disclosure, there is provided a computer-implemented method for adapting a graphical user interface (GUI) , comprising: detecting an input at or adjacent to a display via at least one of a touch panel positioned adjacent to the display, radar, and sonar; processing the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; and adapting a GUI presented on the display for the first user or the second user based on the processing.
[0011] In some or all exemplary embodiments of the first aspect, the display forms part of a touchscreen that includes the touch panel.
[0012] In some or all exemplary embodiments of the first aspect, the processing is at least partially performed via feature extraction.
[0013] In some or all exemplary embodiments of the first aspect, the processing is performed at least partially via a deep learning model.
[0014] In some or all exemplary embodiments of the first aspect, the detecting includes analyzing input sensor data captured at least two discrete times.
[0015] In some or all exemplary embodiments of the first aspect, the input sensor data is captured during a time period.
[0016] In some or all exemplary embodiments of the first aspect, the detecting includes receiving millimeter-wave (mm-Wave) sensor data.
[0017] In some or all exemplary embodiments of the first aspect, the detecting includes detecting a touch input via the touchscreen.
[0018] In some or all exemplary embodiments of the first aspect, the adapting includes modifying a layout of a GUI element of the GUI.
[0019] In some or all exemplary embodiments of the first aspect, the adapting includes modifying a position of a GUI element of the GUI.
[0020] In some or all exemplary embodiments of the first aspect, the GUI includes a map.
[0021] In some or all exemplary embodiments of the first aspect, the method further comprises: emitting mm-Wave chirps; wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; and wherein the processing of the input comprises: converting the frames of the mm-Wave chirps using an analog-to-digital converter; arranging the frames of the mm-Wave chirps in a complex radar cube; and applying a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.
[0022] In some or all exemplary embodiments of the first aspect, the method further comprises: averaging magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.
[0023] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: applying a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.
[0024] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: applying a direct current compensation to one or more of the range bins subsequent to the first of the range bins.
[0025] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: identifying the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.
[0026] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: averaging a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.
[0027] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: extracting and buffering all phases from one or more frames preceding a frame of the input.
[0028] In some or all exemplary embodiments of the first aspect, the processing of the input comprises: processing the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.
[0029] In some or all exemplary embodiments of the first aspect, the processing of the mm-Wave chirps comprises: isolating first magnitudes from in-phase and quadrature components; and applying demodulation to extract phase features for a window of targeted frames.
[0030] In some or all exemplary embodiments of the first aspect, the processing of the mm-Wave chirps comprises: applying majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; and identifying one of the first user and the second user as a source of the input depending on the voting.
[0031] In a second aspect of the present disclosure, there is provided a computing system for adapting a GUI, the computing system comprising: a display; at least one of a touch panel, radar, and sonar; one or more processors; and memory storing computer- executable instructions that, when executed by the one or more processors, cause the computing system to: detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar; process the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; and adapt a GUI presented on the display for the first user or the second user based on the processing.
[0032] In some or all exemplary embodiments of the second aspect, the display forms part of a touchscreen that includes the touch panel.
[0033] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via feature extraction.
[0034] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via a deep learning model.
[0035] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to analyze input sensor data captured at least two discrete times.
[0036] In some or all exemplary embodiments of the second aspect, the input sensor data is captured during a time period.
[0037] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to receive millimeter-wave (mm-Wave) sensor data.
[0038] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to detect a touch input via the touchscreen.
[0039] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a layout of a GUI element of the GUI.
[0040] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a position of a GUI element of the GUI.
[0041] In some or all exemplary embodiments of the second aspect, the GUI includes a map.
[0042] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; convert the frames of the mm-Wave chirps using an analog-to-digital converter; arrange the frames of the mm-Wave chirps in a complex radar cube; and apply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.
[0043] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.
[0044] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.
[0045] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.
[0046] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.
[0047] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.
[0048] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: extract and buffering all phases from one or more frames preceding a frame of the input.
[0049] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.
[0050] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: isolate first magnitudes from in-phase and quadrature components; and apply demodulation to extract phase features for a window of targeted frames.
[0051] In some or all exemplary embodiments of the second aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; and identify one of the first user and the second user as a source of the input depending on the voting.
[0052] In a third aspect of the present disclosure, there is provided a non-transitory machine-readable medium having tangibly stored thereon executable instructions for execution by one or more processors, wherein the executable instructions, in response to execution by the one or more processors, cause the one or more processors to: detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar; process the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; and adapt a GUI presented on the display for the first user or the third user based on the processing.
[0053] In some or all exemplary embodiments of the third aspect, the display forms part of a touchscreen that includes the touch panel.
[0054] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via feature extraction.
[0055] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via a deep learning model.
[0056] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to analyze input sensor data captured at at least two discrete times.
[0057] In some or all exemplary embodiments of the third aspect, the input sensor data is captured during a time period.
[0058] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to receive millimeter-wave (mm-Wave) sensor data.
[0059] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to detect a touch input via the touchscreen.
[0060] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a layout of a GUI element of the GUI.
[0061] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a position of a GUI element of the GUI.
[0062] In some or all exemplary embodiments of the third aspect, the GUI includes a map.
[0063] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; convert the frames of the mm-Wave chirps using an analog-to-digital converter; arrange the frames of the mm-Wave chirps in a complex radar cube; and apply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.
[0064] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.
[0065] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.
[0066] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.
[0067] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.
[0068] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.
[0069] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: extract and buffering all phases from one or more frames preceding a frame of the input.
[0070] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.
[0071] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: isolate first magnitudes from in-phase and quadrature components; and apply demodulation to extract phase features for a window of targeted frames.
[0072] In some or all exemplary embodiments of the third aspect, the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to: apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; and identify one of the first user and the second user as a source of the input depending on the voting.
[0073] In accordance with a fourth aspect of the present disclosure, there is provided a computer-implemented method for adapting a graphical user interface (GUI) , comprising: detecting an input at or adjacent to a display via at least one of a touch panel positioned adjacent to the display, radar, and sonar; processing the input to determine if the input is from a left hand or a right hand of a user; and adapting a GUI presented on the display towards the left side of the display for the left hand or towards the right side of the display for the right hand based on the processing.
[0074] In some or all exemplary embodiments of the fourth aspect, the display forms part of a touchscreen that includes the touch panel.
[0075] In some or all exemplary embodiments of the fourth aspect, the processing is at least partially performed via feature extraction.
[0076] In some or all exemplary embodiments of the fourth aspect, the processing is performed at least partially via a deep learning model.
[0077] In some or all exemplary embodiments of the fourth aspect, the detecting includes analyzing input sensor data captured at at least two discrete times.
[0078] In some or all exemplary embodiments of the fourth aspect, the input sensor data is captured during a time period.
[0079] In some or all exemplary embodiments of the fourth aspect, the detecting includes receiving millimeter-wave (mm-Wave) sensor data.
[0080] In some or all exemplary embodiments of the fourth aspect, the detecting includes detecting a touch input via the touchscreen.
[0081] In some or all exemplary embodiments of the fourth aspect, the adapting includes modifying a layout of a GUI element of the GUI.
[0082] In some or all exemplary embodiments of the fourth aspect, the adapting includes modifying a position of a GUI element of the GUI.
[0083] In some or all exemplary embodiments of the fourth aspect, the GUI includes a map.
[0084] In some or all exemplary embodiments of the fourth aspect, the method further comprises: emitting mm-Wave chirps; wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; and wherein the processing of the input comprises: converting the frames of the mm-Wave chirps using an analog-to-digital converter; arranging the frames of the mm-Wave chirps in a complex radar cube; and applying a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.
[0085] In some or all exemplary embodiments of the fourth aspect, the method further comprises: averaging magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.
[0086] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: applying a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.
[0087] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: applying a direct current compensation to one or more of the range bins subsequent to the first of the range bins.
[0088] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: identifying the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.
[0089] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: averaging a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.
[0090] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: extracting and buffering all phases from one or more frames preceding a frame of the input.
[0091] In some or all exemplary embodiments of the fourth aspect, the processing of the input comprises: processing the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.
[0092] In some or all exemplary embodiments of the fourth aspect, the processing of the mm-Wave chirps comprises: isolating first magnitudes from in-phase and quadrature components; and applying demodulation to extract phase features for a window of targeted frames.
[0093] In some or all exemplary embodiments of the fourth aspect, the processing of the mm-Wave chirps comprises: applying majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; and identifying one of the left hand and the right hand of the user as a source of the input depending on the voting.
[0094] In a fifth aspect of the present disclosure, there is provided a computing system for adapting a GUI, the computing system comprising: a display; at least one of a touch panel, radar, and sonar; one or more processors; and memory storing computer-executable instructions that, when executed by the one or more processors, cause the computing system to: detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar; process the input to determine if the input is from a left hand or a right hand of a user; and adapt a GUI presented on the display towards the left side of the display for the left hand or towards the right side of the display for the right hand based on the processing.
[0095] In some or all exemplary embodiments of the fifth aspect, the display forms part of a touchscreen that includes the touch panel.
[0096] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via feature extraction.
[0097] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via a deep learning model.
[0098] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to analyze input sensor data captured at at least two discrete times.
[0099] In some or all exemplary embodiments of the fifth aspect, the input sensor data is captured during a time period.
[0100] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to receive millimeter-wave (mm-Wave) sensor data.
[0101] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to detect a touch input via the touchscreen.
[0102] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a layout of a GUI element of the GUI.
[0103] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a position of a GUI element of the GUI.
[0104] In some or all exemplary embodiments of the fifth aspect, the GUI includes a map.
[0105] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; convert the frames of the mm-Wave chirps using an analog-to-digital converter; arrange the frames of the mm-Wave chirps in a complex radar cube; and apply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.
[0106] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.
[0107] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.
[0108] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.
[0109] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.
[0110] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.
[0111] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: extract and buffering all phases from one or more frames preceding a frame of the input.
[0112] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.
[0113] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: isolate first magnitudes from in-phase and quadrature components; and apply demodulation to extract phase features for a window of targeted frames.
[0114] In some or all exemplary embodiments of the fifth aspect, the computer-executable instructions, when executed by the one or more processors, cause the computing system to: apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; and identify one of the left hand and the right hand of the user as a source of the input depending on the voting.
[0115] Other aspects and features of the present disclosure will become apparent to those of ordinary skill in the art upon review of the following description of specific implementations of the application in conjunction with the accompanying figures.Brief Description of the Drawings
[0116] Reference will now be made, by way of example, to the accompanying drawings which show exemplary embodiments of the present application, and in which:
[0117] FIG. 1 is a schematic diagram illustrating a method for adapting a graphical user interface in accordance with exemplary embodiments described herein.
[0118] FIGS. 2A to 2D show different adaptations of graphical user interfaces (GUIs) in accordance with exemplary embodiments of the disclosure.
[0119] FIGS. 3A and 3B show two regions of a touchscreen forming part of a vehicle dashboard that presents a GUI that two laterally displaced users can interact with in accordance with exemplary embodiments described herein.
[0120] FIGS. 4A to 4C show millimeter-wave (mm-Wave) radar sensors that detect input from one of two users (adriver and a passenger) adjacent to the touchscreen of FIGS. 3A and 3B in accordance with exemplary embodiments described herein.
[0121] FIG. 5 shows a sawtooth chirp configuration for mm-Wave radar for the system shown in FIGS. 3A and 3B.
[0122] FIG. 6 shows the use of two frame sequences of varied lengths to detect an input in accordance with some exemplary embodiments described herein.
[0123] FIG. 7 is a schematic diagram illustrating various components of a processing system for determining a side of a display from which input is received in accordance with some exemplary embodiments described herein.
[0124] FIG. 8 shows the averaging of the phase associated with the Fast Fourier Transform (FFT) peak in the detected bin.
[0125] FIG. 9 is a schematic diagram illustrating various components of another processing system for determining a side of a display from which input is received in accordance with some exemplary embodiments described herein.
[0126] FIG. 10 shows how a side of a display from which input is received is determined using mm-Wave radar in accordance with some exemplary embodiments described herein.
[0127] FIG. 11 is a schematic diagram illustrating various components of a further processing system for determining a side of a display from which input is received in accordance with some exemplary embodiments described herein.
[0128] FIG. 12 shows radar signals experiencing Doppler frequency shits that increase as a user’s hand approaches the display.
[0129] FIG. 13 is a schematic diagram illustrating various components of yet another processing system for determining a side of a display from which input is received in accordance with some exemplary embodiments described herein.
[0130] FIG. 14 is a schematic diagram illustrating another method for adapting a GUI in accordance with exemplary embodiments described herein.
[0131] FIG. 15 is a schematic diagram illustrating a further method for adapting a GUI in accordance with exemplary embodiments described herein.
[0132] FIG. 16 is a schematic diagram illustrating still yet another method for adapting a GUI in accordance with exemplary embodiments described herein.
[0133] FIG. 17 is a schematic diagram illustrating another method for adapting a GUI in accordance with exemplary embodiments described herein.
[0134] FIG. 18A shows a control panel on a left (driver’s ) side of the app.
[0135] FIG. 18B shows a control panel on a right (passenger’s ) side of the app.
[0136] FIG. 19A to 19C show a sequence of input data corresponding to an input event captured via a touch panel at three discrete times.
[0137] FIGS. 19D to 19F also show a sequence of input data corresponding to an input event captured via a touch panel at three discrete times.
[0138] FIG. 20 shows various physical and logical components of a computing system for adapting a GUI in accordance with some exemplary embodiments.
[0139] Similar reference numerals may have been used in different figures to denote similar components. Unless otherwise specifically noted, articles depicted in the drawings are not necessarily drawn to scale.
[0140] Detailed Description of Exemplary embodiments
[0141] The present disclosure is made with reference to the accompanying drawings, in which embodiments are shown. However, many different embodiments may be used, and thus the description should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this application will be thorough and complete. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same elements, and prime notation is used to indicate similar elements, operations or steps in alternative embodiments. Separate boxes or illustrated separation of functional elements of illustrated systems and devices does not necessarily require physical separation of such functions, as communication between such elements may occur by way of messaging, function calls, shared memory space, and so on, without any such physical separation. As such, functions need not be implemented in physically or logically separated platforms, although such functions are illustrated separately for ease of explanation herein. Different devices may have different designs, such that although some devices implement some functions in fixed function hardware, other devices may implement such functions in a programmable processor with code obtained from a machine-readable medium. Lastly, elements referred to in the singular may be plural and vice versa, except wherein indicated otherwise either explicitly or inherently by context.
[0142] The present disclosure describes exemplary embodiments of methods, systems, and computer-executable media for adapting a GUI (GUI) .
[0143] A driver passenger differentiation method is proposed herein to support adaptive GUI designs for vehicular dashboard displays, such as touchscreens, that can balance the reachability between a driver and a passenger. The display can form part of a touchscreen that includes a touch panel, enabling driver and passenger input to be differentiated by raw data from the touch panel. Additionally, or alternatively, driver and passenger input can be differentiated by radar and / or sonar. Upon detection of whether the input was provided by the driver or the passenger, the GUI is adapted to facilitate further interaction by the person initiating the input. In some cases, no specialized hardware is required. Further, potentially personally identifying data need not be captured during the detection of input, thus enabling the preservation of the privacy of the inputter.
[0144] Touchscreens combine both a display for outputting information and presenting controls of a GUI, and a touch panel for enabling a user to interact with the GUI by touching the touchscreen. The touch panel is normally overlaid atop of the display. Touchscreens enable users to interact directly with what is displayed in the GUI. The GUI can present information and / or controls that can be customized as needed.
[0145] Capacitive touchscreens are the most common type of touchscreens used in smartphones, tablets, and other electronic devices. They rely on the principle of capacitance to detect touch input. The capacitive touch sensor (i.e., the touch panel) consists of ‘row’ and ‘column’ electrodes whose measurements are used to implement slider functionality in both the horizontal and vertical directions. The typical electrode size is 4 to 6mm.
[0146] FIG. 1 shows a block diagram of a method 1000 for adapting a GUI using a display that forms part of a touchscreen in some embodiments. The touch panel sensor of the touchscreen reports the input event (110) . Input events include typical touchscreen interaction events such as onTouch, tap, swipe, long press, etc. Where the display does not form part of a touchscreen, the input events can include the detection of position and / or movement, such as that of a user’s hand close to the display. After the touch panel sensor reports the input event, measurements are collected from the touch panel sensor (120) . In particular, sensor measurements from N (e.g., 1 to 5) frames around the input event are collected. The N frames span over the period [t0-a0, t0+a1] , where t0 is the time of the input event. In this particular embodiment, the N frames are centered on the input event, but in other embodiments can be skewed towards the time period before or after the input event. The N frames are typically 1 to 3 frames. The a0 and a1 can be set based on the refreshing rate of the touch panel sensor and the interaction events, typically between [0, 300ms] .
[0147] The method 1000 employs one of two approaches to determine if the input is from a first user positioned towards a first side of the display (e.g., a driver) or from a second user positioned towards a second side of the display (e.g., a front-seat passenger) . In one configuration, a deep learning-based classification model is used (130) . The deep learning- based classification is performed using CNN, RNN, or other deep learning methods to recognize the origin of the input event; that is whether the input is from the driver or the passenger. In a second configuration, feature extraction is performed (140) , and the extracted features are used to classify the origin of the touch input (150) . The features can include the location of the input event, the raw shape and / or size of the touch area, the enhanced shape and size of the touch area using super-resolution. The typical classification methods are traditional classification algorithms such as SVM, KNN, random-forest, and deep learning classification methods such as CNN. The vehicle adaptively updates the interactable objects near the origin of the input event. Interactable objects are objects that can be interacted with to effect some sort of command or change. If the deep learning-based classification model or the feature extraction and classification system determines that the input was received from the driver, the GUI is adapted to present the majority of the interactable objects towards the driver’s side of the display (160) . If, instead, the deep learning-based classification model or the feature extraction and classification system determines that the input was received from the passenger, the GUI is adapted to present the majority of the interactable objects towards the passenger’s side of the display (170) .
[0148] There are a variety of manners in which a GUI presented on a display can be adapted for a first user towards a first side thereof or a second user towards a second side thereof.
[0149] FIG. 2A shows a display 200 wherein a GUI 204 of an application is positioned towards a left (driver) side thereof after detecting input from a driver of a left-hand drive vehicle. If input is detected from a passenger, the GUI can be rendered at an alternative position 204’ towards the passenger side. The GUI presents one or more elements that are interactable, such as controls, etc.
[0150] FIG. 2B shows a GUI 204 presented on the display 200 and having a GUI element 208 that is positioned towards a left (driver) side of the GUI 204 after determining that input is received from the driver. If, instead, input is detected from the passenger, the GUI element 208’ can be positioned towards a passenger side of the display 200. The GUI element 208, 208’ can include one or more controls that are interactable.
[0151] FIG. 2C shows the GUI 204 presented on the display 200 and having a GUI element 212 in the form of a sidebar that is positioned towards a left (driver) side of the GUI 204 after determining that input is received from the driver. If, instead, input is detected from the passenger, the GUI element 212’ can be positioned towards a passenger side of the display 200. The GUI element 212, 212’ includes one or more controls that are interactable.
[0152] FIG. 2D shows the GUI 204 presented on the display 200 and having a GUI element 216 in the form of a keyboard. The keyboard GUI element 216 includes a dictation control 220 that is positioned towards the left side of the keyboard GUI element 216 after determining that input is received from the driver. If, instead, input is detected from the passenger, the dictation control 220’ can be positioned towards a passenger side of the display 200. The GUI element 216 includes one or more controls that are interactable.
[0153] FIGS. 3A and 3B show a components of the system for detecting an input at or adjacent to a display 300 in a vehicle 304 via millimeter-wave radar in accordance with an embodiment. The display is positioned centrally in the dashboard 308 of the vehicle 304 between the driver 312 and the front-seat passenger 316. The driver 312 sits in a driver seat 320 and the front-seat passenger 316 sits in a front passenger seat 324.
[0154] A frequency modulated continuous wave (FMCW) radar module 328 is positioned to transmit and receive millimeter waves to detect objects and their positions on a frequent basis, enabling detection of objects, their pose, and their movement. Thus, the origin of input at or adjacent to the display 300 can be determined. The FMCW radar module 328 includes one or multiple transmitters and one or multiple receivers. The mm-Wave radar could be configured to send / receive electromagnetic waves in any range of frequencies within the wideband spectrum (10 –300 GHz) . In one system architecture, the radar is a 24 GHz FMCW radar transmitting chirps of 250 MHz bandwidth with one transmitter and multiple receivers (e.g., 1-Tx / 2-Rx or 1-Tx / 3-Rx or 1-Tx / 4-Rx) as shown in FIG. 5.
[0155] FIGS. 4A to 4C show three different configurations for the FMCW radar module 328. The FMCW radar module 328 can be configured with multiple chirp configurations. One design is the sawtooth chirp configuration shown in FIG. 5, where each chirp (compressed high-intensity radar pulse) has a 10 millisecond duration (640us active duration) and their frequency increases linearly from 24 GHz to 24.25 GHz. The frame could be composed of at least 5 chirps with 50 millisecond total duration (i.e., 20 Hz frame rate) . The received chirps are processed in a mixer with the transmitted version to extract the baseband intermediate frequency (IF) signal corresponding to targets in the field-of-view (FOV) of the radar, and then digitized using an analog-to-digital converter (ADC) at 110 Kbps sampling rate for subsequent processing.
[0156] In one configuration where feature-based classification is performed to determine the origin of the input (such as shown at steps 140 and 150 in FIG. 1) , baseband IF signals are processed using multiple algorithms to extract features that correlate to the touching patterns from the driver and passenger including their hand’s direction of approaching. These features are extracted per touching frame (or instant) and for a window of N preceding frames. The number of N frames could be set based on the frame duration parameter to observe a total of 1 to 3 seconds of radar data prior touching. In one setting, for instance, the frame duration is 50 milliseconds, and hence N could be adjusted in the range of 20 –60 frames as illustrated in FIG. 6. The features are then analyzed using machine learning modules such as Support Vector Machines (SVM) or Random Forest classifiers to learn and identify the touching as coming from the driver (left) or the passenger (right) as shown in FIG. 7. The different features can also be processed using dimensionality reduction techniques such Principal Component Analysis (PCA) to conclude low dimensional features of higher variance in the data for the subsequent Machine Learning processing and avoid cases of ‘curse of dimensionality’ . These small models can help in learning limited training data and generalizing to more users while avoiding overfitting. In cases where there is an abundance of data, deep learning algorithms such as convolutional neural networks (CNNs) and Recurrent Neural Networks (RNNs) with either Gated Recurrent Unit (GRU) or Long Short-Term Memory (LSTM) can also be used to analyze the radar sequential data and extract spatial and temporal features relevant to the touching events from driver and passenger in the front seats.
[0157] The baseband IF chirps of received frames are arranged in a complex radar cube, and FFT is first processed across the chirp ADC samples in the fast-time axis for all the receiving channels to reveal the range information of targets of interest (Driver and Passenger) . Particularly, the average Range-FFT magnitudes at the range bins of highest intensity (normally within the first few bins) are extracted for the touching frame and all N prior frames. This magnitude represents the reflection intensity / power or strength of the radar received signal (RSS) that is fundamentally different for driver and passenger given the installation placement of the radar antennas (closer to the passenger seat / position) . A DC compensation step can be applied for the first range bin that contains a mutual leakage power originated from adjacent antenna elements, as well as for subsequent bins to mitigate the reflections from static clutters (stationary objects) inside the car, such as seats, walls, roof, etc. Other clutter suppression methods can also be used for that purpose, such as mean subtraction or variance-based methods. The first feature set is therefore composed of the Range-FFT magnitudes at the first two bins from each receiving channel as well as the magnitude difference between the two terminal antennas RX4 and RX1.
[0158] Additionally, to extract more motion sensitive information from the target’s bin, the phase associated with the FFT peak in the detected bin is also calculated and averaged across all chirps in the frame as illustrated in FIG. 8. All phases from preceding frames in the window are all extracted and buffered as one vector.
[0159] The raw IF chirps in every received frame can directly be processed in the time-domain to calculate the initial phase of the first reflected echo. This is achieved by isolating first ADC samples from the in-phase and quadrature components, and applying the extended arctangent demodulation (AD) (or other demodulation techniques) to extract the phase features for the window of targeted frames, and further smoothed and filtered for Angle-of-Arrival (AoA) processing as illustrated in the flow chart in FIG. 9. Majority voting could be applied on the angles feature vector to determine the number of positive and negative angle (with respect to the radar boresight line) throughout the approaching frames, and consequently identifying the driver and passenger approaching depending on the count of positive and negative angles as explained in the flow chart. The raw IF chirps (in time domain) in every received frame (in all the receiving channels) could also be processed to extract many other statistical features such as mean, variance, skewedness, kurtosis, and power.
[0160] FIG. 10 illustrates the correspondence between the origin of the input (that is, the driver or the passenger) and the angle of approach θ.
[0161] More complex AoA features are extracted from the Range-Azimuth heatmaps using advanced algorithms such as the Capon Beamformer (MVDR) or the Multiple Signal Classification (MUSIC) , or simply the angle-FFT or other filters. Herein, as shown in Fig. 11, the range profile for each frame is first processed to remove the DC components from each range bin across all chirps in the frame. Then a Direction-of-Arrival spectral estimation is performed to calculate the 2D heatmap for every frame, indexed by range bins for the rows and angle bins for the columns. Relevant features are extracted from Range-Angle heatmaps with focus on the first 1 –5 range bins. For instance, estimated range points and angle peaks are both tracked on the applied window of frames to generate a trajectory feature vector. Variations in the power intensity at the detected range / angle bins could also be used as an informative feature.
[0162] The radar algorithm also extracts micro-Doppler features that are motion sensitive from the detected bin of the target. Particularly, a Short-Time Fourier Transform (STFT) is applied on a window of N frames prior touching as detailed in FIG. 13.
[0163] As the hand of the driver or passenger is approaching the car dashboard, the radar signal will experience a positive Doppler frequency shift that increases as the hand getting closer to the dashboard. These micro-Doppler signatures are not strong / intense in magnitude due to the size of the moving hand / arm compared to the whole body (that is almost fixed in position) . However, they are still revealing distinctive patterns for the left and right touching events as shown in FIG. 12. The static torso of the targets is dominating the reflections at lower frequencies close to zero (about up to 10 Hz) , and they could be suppressed using high pass filters to highlight only high frequency signatures that correspond to the hand / arm movements of interest.
[0164] The resulting spectrogram, after filtering the low-frequency components, could be fully used as input image to CNN model, or flattened as a feature vector (and reduced in dimensionality) , or possibly an envelope detector algorithm is applied to track the peaks at every time instant in the spectrogram and generate the envelope signal correlating to the touching event inside the vehicle. The process of determining the side towards which input is received using the time-Doppler spectrogram (s) is shown in FIG. 13. Features in this category may include the coherent sum of the full STFT spectrograms from all four receivers (RX1, RX2, RX3, and RX4) or having those corresponding to RX1 and RX4 as two independent features. The envelope for both RX1 and RX4, 50Hz signal sum and difference (for both amplitude and phase) between RX4 and RX1 can also be extracted and combined.
[0165] The feature sets extracted from the different signal processing algorithms are used to build and train multiple machine learning models to overcome the limited range and angular resolutions of the 24 GHz radar while helping to generalize the touching detection for different users and for different body movements inside the car. Therefore, the different feature sets are trained on separate independent models given the different nature of feature sets each describing a relevant attribute of the driver and passenger targets in front seats inside the car. The binary results from all models are then combined in an ensemble model to decide upon the touching detection direction based on majority voting.
[0166] In some exemplary embodiments, the received signal strengths (RSS) from the range-FFT profile at first few bins are learned via a N-to-one RNN model of 1 LSTM layer with 16 neurons / units followed by dense layer with 8 neurons / units and another dense layer with 1 unit and sigmoid activation for binary classification. Other feature sets are processed accordingly following different pipelines as summarized in Table 1 below. Finally, the results from all are applied to an ensemble model to decide upon the touching from driver or passenger.
[0167] Table 1
[0168] Alternatively, the different features can be learned using simple ML models such as SVM or Random Forest. SVM works well for the classification of multi-dimensional data (multiple features from consecutive frames in the touching window) by finding a hyperplane that separates each class (driver or passenger approaching) with the largest margin. A Gaussian kernel function (i.e., Radial Basis function (RBF) ) with optimized parameters can be used to transform input touching data into high-dimensional space. Feature maps are vectorized before applying to the SVM or RF models. To reduce the computational complexity of these classifiers and avoid ‘curse of dimensionality’ issues, the PCA is used to reduce the dimensionality of the input data by finding a fewer set of principal axes of rich information content (i.e., highest eigenvalues) as of the original data.
[0169] A combined method in accordance with some embodiments is shown in FIG. 14. Upon the reporting of an input event at time t0, touch panel sensor-based classification is performed (420) , radar-based classification is performed (430) , and features are extracted(440) . The results of the touch sensor-based classification and radar-based classification are combined with other features to determine the origin of the input event (450) . If it is determined that the input originated from the driver, the GUI is adapted to show a majority of the interactable objects (i.e., GUI elements) on the driver’s side (460) . If, instead, it is determined that the input originated from the passenger, the GUI is adapted to show a majority of the interactable objects (i.e., GUI elements) on the passenger’s side (470) .
[0170] The combined touch panel sensor-based classification and radar-based classification at 450 outputs the confidence level of the origin of the input event. The inputs of the combined classification are the confidence levels and features of the input event. The features include the location of the input event, the raw shape and size of the detected touch area, etc. The combined classification methods are traditional classification algorithms such as SVM, KNN, random-forest, or deep learning classification methods such as CNN. The vehicle adaptively updates the interactable objects near the origin of the input event.
[0171] FIG. 15 shows a method 500 for adapting a GUI in accordance with certain exemplary embodiments. The method 500 commences with a user providing input to open an application (app) or panel at time t0 (510) . In some exemplary embodiments, the display upon which the GUI is presented is a touchscreen, and the input is touch input. Upon detection of the input event at time t0, 1 to N frames of touch sensor measurements and / or mm-Wave radar readings are collected for a time period at around time t0 (520) . Where there is more than one frame, they can end at time t0, start at time t0, or start before time t0 and end after time t0. A classifier is used to use any approach described above to determine the origin of the input event (530) . If it is determined that the origin of the input event is the driver, then the app is rendered towards the driver’s side of the display (540) . If, instead, it is determined that the origin of the input event is the passenger, then the app is rendered towards the passenger’s side of the display (550) .
[0172] FIG. 16 shows a method 600 for adapting a GUI in accordance with certain exemplary embodiments. In particular, in the method 600, a virtual keyboard is presented on the display towards a side of the display closest to the origin of the input. The method 600 commences with a user tapping a control to open a virtual keyboard at time t0 (610) . The input can be, for example, tapping a control. The control can be, for example, a text entry box, a keyboard icon, etc. Upon detection of the input event at time t0, 1 to N frames of touch sensor measurements and / or millimeter-wave radar readings are collected for a time period at around time t0 (620) . Where there is more than one frame, they can end at time t0, start at time t0, or start before time t0 and end after time t0. A classifier is used to use any approach described above to determine the origin of the input event (630) . If it is determined that the origin of the input event is the driver, then the virtual keyboard is rendered towards the driver’s side of the display (640) . If, instead, it is determined that the origin of the input event is the passenger, then the virtual keyboard is rendered towards the passenger’s side of the display (650) .
[0173] FIG. 17 shows a method 700 for adapting a GUI in accordance with certain exemplary embodiments. In particular, in the method 700, a GUI element is displayed on the display towards a side thereof towards an origin of input. The method 700 commences with a user providing input to open a virtual keyboard at time t0 (710) . The input can be, for example, tapping a control. The control can be, for example, a text entry box, a keyboard icon, etc. Upon detection of the input event at time t0, 1 to N frames of touch sensor measurements and / or mm-Wave radar readings are collected for a time period at around time t0 (720) . Where there is more than one frame, they can end at time t0, start at time t0, or start before time t0 and end after time t0. A classifier is used to use any approach described above to determine the origin of the input event (730) . If it is determined that the origin of the input event is the driver, then the virtual keyboard is rendered towards the driver’s side of the display (740) . FIG. 18A shows a control panel on a left (driver’s ) side of the app. If, instead, it is determined that the origin of the input event is the passenger, then the virtual keyboard is rendered towards the passenger’s side of the display (750) . FIG. 18B shows a control panel on a right (passenger’s ) side of the app.
[0174] FIG. 19A to 19C show a sequence of input data corresponding to an input event captured via a touch panel at three discrete times. The touch panel is divided into a grid of locations at which input is detected. In particular, FIG. 19A shows the commencement of the detection of an input event via detected contact 804. The detected contact 804’ and 804” respectively at subsequent times is shown in FIGS. 19B and 19C. The sequence of detected contact 804, 804’ , and 804” is located towards a right (passenger) side of the touch panel 800 and corresponds with an initial touch of a passenger’s fingertip and subsequent contact from the passenger’s finger. Similarly, FIGS. 19D to 19F also show a sequence of input data corresponding to an input event captured via a touch panel at three discrete times. In particular, FIG. 19D shows the commencement of the detection of an input event via detected contact 808. The detected contact 808’ and 808” respectively at subsequent times is shown in FIGS. 19E and 19F. The sequence of detected contact 808, 808’ , and 808” is located towards a left (driver) side of the touch panel 800 and corresponds with an initial touch of a driver’s fingertip and subsequent contact from the driver’s finger.
[0175] FIG. 20 shows various physical and logical components of an exemplary computing system 1000 for adapting a GUI in accordance with an embodiment of the present disclosure. Although an exemplary embodiment of the computing system 1000 is shown and discussed below, other embodiments may be used to implement examples disclosed herein, which may include components different from those shown. Although FIG. 20 shows a single instance of each component of the computing system 1000, there may be multiple instances of each component shown. The example computing system 1000 may be part of, or connected to, a vehicle or other system wherein two or more participants interact with a GUI presented on a display.
[0176] In an alternative embodiment, the same approach can be employed to detect input via a left hand or a right hand from a single user that is then used to adapt a GUI presented on a display. For example, if the user appears to use their left hand to activate a virtual keyboard on a tablet, the virtual keyboard can be presented towards a left side of the display of the tablet and / or the virtual keyboard can be customized based on whether input from the user’s left or right hand was detected.
[0177] The computing system 1000 includes one or more processors 1004, such as a central processing unit, a microprocessor, an application-specific integrated circuit (ASIC) , a field-programmable gate array (FPGA) , a dedicated logic circuitry, a tensor processing unit, a neural processing unit, a dedicated artificial intelligence processing unit, or combinations thereof. The one or more processors 1004 may collectively be referred to as a processor 1004. The computing system 1000 may include a display 1008 for outputting data and / or information in some applications, but may not in some other applications.
[0178] The computing system 1000 includes one or more memories 1012 (collectively referred to as “memory 1012” ) , which may include a volatile or non-volatile memory (e.g., a flash memory, a random access memory (RAM) , and / or a read-only memory (ROM) ) . The non-transitory memory 1012 may store machine-executable instructions for execution by the processor 1004. A set of machine-executable instructions 1016 defining a system for adapting a GUI based on detected input as described herein are also stored in memory 1012. The memory 1012 may include other machine-executable instructions for execution by the processor 1004, such as machine-executable instructions for implementing an operating system and other applications or functions.
[0179] The memory 1012 also stores one or more models and / or classification datasets that are used to determine whether input detected has a point of origin towards one of the sides of the display. For example, the one or more models and / or classification data can be used to determine whether the input was received from a person towards a left side of the display or a person towards a right side of the display.
[0180] In some examples, the computing system 1000 may also include one or more electronic storage units (not shown) , such as a solid state drive, a hard disk drive, a magnetic disk drive and / or an optical disk drive. In some examples, one or more datasets and / or modules may be provided by an external memory (e.g., an external drive in wired or wireless communication with the computing system 1000) or may be provided by a transitory or non-transitory computer-executable medium. Examples of non-transitory computer readable media include a RAM, a ROM, an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a flash memory, a CD-ROM, or other portable memory storage. The storage units and / or external memory may be used in conjunction with memory 1012 to implement data storage, retrieval, and caching functions of the computing system 1000.
[0181] The components of the computing system 1000 may communicate with each other via a bus, for example. In some embodiments, the computing system 1000 is a distributed computing system and may include multiple computing devices in communication with each other over a network, as well as optionally one or more additional components. The various operations described herein may be performed by different computing devices of a distributed system in some embodiments. In some embodiments, the computing system 1000 is a virtual machine provided by a cloud computing platform.
[0182] Using the approaches described herein, a simplified manner in which GUIs presented on a display can be adapted is provided. The detection of input can be provided via a touch panel or any other non-photographic object detection system to detect input from a user positioned towards one side of the display. By using non-photographic means to detect input, privacy concerns are reduced. Where detection of the input is performed by a touch panel that forms part of a touchscreen, no additional hardware is required.
[0183] While the above approach is described with respect to a display located in a vehicle, displays in other environments can use the same approach. For example, where a display is positioned between two seats in a theatre for ordering food, the GUI presented on the display can be adapted based on input events detected.
[0184] In other embodiments, sonar using ultrasonic frequencies can be employed to detect the presence, location, and movement of objects adjacent to a display.
[0185] The display may be a non-touchscreen display, and the system can rely on object (such as hand) detection using mm-Wave radar and / or sonar to receive and interpret input.
[0186] The steps (also referred to as operations) in the flowcharts and drawings described herein are for purposes of example only. There may be many variations to these steps / operations without departing from the teachings of the present disclosure. For instance, the steps may be performed in a differing order, or steps may be added, deleted, or modified, as appropriate.
[0187] In other embodiments, the same approach described herein can be employed for other modalities.
[0188] Through the descriptions of the preceding embodiments, the present invention may be implemented by using hardware only, or by using software and a necessary universal hardware platform, or by a combination of hardware and software. The coding of software for carrying out the above-described methods described is within the scope of a person of ordinary skill in the art having regard to the present disclosure. Based on such understandings, the technical solution of the present invention may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which can be an optical storage medium, flash drive or hard disk. The software product includes a number of instructions that enable a computing device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present disclosure.
[0189] All values and sub-ranges within disclosed ranges are also disclosed. Also, although the systems, devices and processes disclosed and shown herein may comprise a specific plurality of elements, the systems, devices and assemblies may be modified to comprise additional or fewer of such elements. Although several exemplary embodiments are described herein, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the example methods described herein may be modified by substituting, reordering, or adding steps to the disclosed methods.
[0190] Features from one or more of the above-described embodiments may be selected to create alternate embodiments comprised of a sub-combination of features which may not be explicitly described above. In addition, features from one or more of the above-described embodiments may be selected and combined to create alternate embodiments comprised of a combination of features which may not be explicitly described above. Features suitable for such combinations and sub-combinations would be readily apparent to persons skilled in the art upon review of the present disclosure as a whole.
[0191] In addition, numerous specific details are set forth to provide a thorough understanding of the exemplary embodiments described herein. It will, however, be understood by those of ordinary skill in the art that the exemplary embodiments described herein may be practiced without these specific details. Furthermore, well-known methods, procedures, and elements have not been described in detail so as not to obscure the exemplary embodiments described herein. The subject matter described herein and in the recited claims intends to cover and embrace all suitable changes in technology.
[0192] Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the invention as defined by the appended claims.
[0193] The present invention may be embodied in other specific forms without departing from the subject matter of the claims. The described exemplary embodiments are to be considered in all respects as being only illustrative and not restrictive. The present disclosure intends to cover and embrace all suitable changes in technology. The scope of the present disclosure is, therefore, described by the appended claims rather than by the foregoing description. The scope of the claims should not be limited by the embodiments set forth in the examples, but should be given the broadest interpretation consistent with the description as a whole.
Claims
1.A computer-implemented method for adapting a graphical user interface (GUI) , comprising:detecting an input at or adjacent to a display via at least one of a touch panel positioned adjacent to the display, radar, and sonar;processing the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; andadapting a GUI presented on the display for the first user or the second user based on the processing.2.The computer-implemented method of claim 1, wherein the display forms part of a touchscreen that includes the touch panel.3.The computer-implemented method of claim 1, wherein the processing is at least partially performed via feature extraction.4.The computer-implemented method of claim 1, wherein the processing is performed at least partially via a deep learning model.5.The computer-implemented method of claim 1, wherein the detecting includes analyzing input sensor data captured at at least two discrete times.6.The computer-implemented method of claim 5, wherein the input sensor data is captured during a time period.7.The computer-implemented method of claim 1, wherein the detecting includes receiving millimeter-wave (mm-Wave) sensor data.8.The computer-implemented method of claim 2, wherein the detecting includes detecting a touch input via the touchscreen.9.The computer-implemented method of claim 1, wherein the adapting includes modifying a layout of a GUI element of the GUI.10.The computer-implemented method of claim 1, wherein the adapting includes modifying a position of a GUI element of the GUI.11.The computer-implemented method of claim 10, wherein the GUI includes a map.12.The computer-implemented method of claim 7, further comprising:emitting mm-Wave chirps;wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; andwherein the processing of the input comprises:converting the frames of the mm-Wave chirps using an analog-to-digital converter;arranging the frames of the mm-Wave chirps in a complex radar cube; andapplying a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.13.The computer-implemented method of claim 12, further comprising:averaging magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.14.The computer-implemented method of claim 13, wherein the processing of the input comprises:applying a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.15.The computer-implemented method of claim 14, wherein the processing of the input comprises:applying a direct current compensation to one or more of the range bins subsequent to the first of the range bins.16.The computer-implemented method of claim 12, wherein the processing of the input comprises:identifying the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.17.The computer-implemented method of claim 12, wherein the processing of the input comprises:averaging a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.18.The computer-implemented method of claim 12, wherein the processing of the input comprises:extracting and buffering all phases from one or more frames preceding a frame of the input.19.The computer-implemented method of claim 12, wherein the processing of the input comprises:processing the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.20.The computer-implemented method of claim 19, wherein the processing of the mm-Wave chirps comprises:isolating first magnitudes from in-phase and quadrature components; andapplying demodulation to extract phase features for a window of targeted frames.21.The computer-implemented method of claim 20, wherein the processing of the mm-Wave chirps comprises:applying majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; andidentifying one of the first user and the second user as a source of the input depending on the voting.22.A computing system for adapting a GUI, the computing system comprising:a display;at least one of a touch panel, radar, and sonar;one or more processors; andmemory storing computer-executable instructions that, when executed by the one or more processors, cause the computing system to:detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar;process the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; andadapt a GUI presented on the display for the first user or the second user based on the processing.23.The computing system of claim 22, wherein the display forms part of a touchscreen that includes the touch panel.24.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via feature extraction.25.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via a deep learning model.26.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to analyze input sensor data captured at least two discrete times.27.The computing system of claim 22, wherein the input sensor data is captured during a time period.28.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to receive millimeter-wave (mm-Wave) sensor data.29.The computing system of claim 23, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to detect a touch input via the touchscreen.30.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a layout of a GUI element of the GUI.31.The computing system of claim 22, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a position of a GUI element of the GUI.32.The computing system of claim 31, wherein the GUI includes a map.33.The computing system of claim 28, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps;convert the frames of the mm-Wave chirps using an analog-to-digital converter;arrange the frames of the mm-Wave chirps in a complex radar cube; andapply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.34.The computing system of claim 33, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.35.The computing system of claim 34, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.36.The computing system of claim 35, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.37.The computing system of claim 33, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.38.The computing system of claim 33, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.39.The computing system of claim 33, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:extract and buffering all phases from one or more frames preceding a frame of the input.40.The computing system of claim 33, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.41.The computing system of claim 40, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:isolate first magnitudes from in-phase and quadrature components; andapply demodulation to extract phase features for a window of targeted frames.42.The computing system of claim 41, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; andidentify one of the first user and the second user as a source of the input depending on the voting.43.A non-transitory machine-readable medium having tangibly stored thereon executable instructions for execution by one or more processors, wherein the executable instructions, in response to execution by the one or more processors, cause the one or more processors to:detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar;process the input to determine if the input is from a first user positioned towards a first side of the display or from a second user positioned towards a second side of the display; andadapt a GUI presented on the display for the first user or the second user based on the processing.44.The non-transitory machine-readable medium of claim 43, wherein the display forms part of a touchscreen that includes the touch panel.45.The non-transitory machine-readable medium of claim 43, wherein the processing is at least partially performed via feature extraction.46.The non-transitory machine-readable medium of claim 43, wherein the processing is performed at least partially via a deep learning model.47.The non-transitory machine-readable medium of claim 43, wherein the detecting includes analyzing input sensor data captured at at least two discrete times.48.The non-transitory machine-readable medium of claim 47, wherein the input sensor data is captured during a time period.49.The non-transitory machine-readable medium of claim 43, wherein the detecting includes receiving millimeter-wave (mm-Wave) sensor data.50.The non-transitory machine-readable medium of claim 44, wherein the detecting includes detecting a touch input via the touchscreen.51.The non-transitory machine-readable medium of claim 43, wherein the adapting includes modifying a layout of a GUI element of the GUI.52.The non-transitory machine-readable medium of claim 43, wherein the adapting includes modifying a position of a GUI element of the GUI.53.The non-transitory machine-readable medium of claim 52, wherein the GUI includes a map.54.The non-transitory machine-readable medium of claim 49, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps;convert the frames of the mm-Wave chirps using an analog-to-digital converter;arrange the frames of the mm-Wave chirps in a complex radar cube; andapply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.55.The non-transitory machine-readable medium of claim 54, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.56.The non-transitory machine-readable medium of claim 55, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.57.The non-transitory machine-readable medium of claim 56, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.58.The non-transitory machine-readable medium of claim 54, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.59.The non-transitory machine-readable medium of claim 54, wherein the computer- executable instructions, when executed by the one or more processors, cause the one or more processors to:average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.60.The non-transitory machine-readable medium of claim 54, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:extract and buffering all phases from one or more frames preceding a frame of the input.61.The non-transitory machine-readable medium of claim 54, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.62.The non-transitory machine-readable medium of claim 61, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:isolate first magnitudes from in-phase and quadrature components; andapply demodulation to extract phase features for a window of targeted frames.63.The non-transitory machine-readable medium of claim 62, wherein the computer-executable instructions, when executed by the one or more processors, cause the one or more processors to:apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; andidentify one of the first user and the second user as a source of the input depending on the voting.64.A computer-implemented method for adapting a graphical user interface (GUI) , comprising:detecting an input at or adjacent to a display via at least one of a touch panel positioned adjacent to the display, radar, and sonar;processing the input to determine if the input is from a left hand or a right hand of a user; andadapting a GUI presented on the display towards the left side of the display for the left hand or towards the right side of the display for the right hand based on the processing.65.The computer-implemented method of claim 64, wherein the display forms part of a touchscreen that includes the touch panel.66.The computer-implemented method of claim 64, wherein the processing is at least partially performed via feature extraction.67.The computer-implemented method of claim 64, wherein the processing is performed at least partially via a deep learning model.68.The computer-implemented method of claim 64, wherein the detecting includes analyzing input sensor data captured at at least two discrete times.69.The computer-implemented method of claim 68, wherein the input sensor data is captured during a time period.70.The computer-implemented method of claim 64, wherein the detecting includes receiving millimeter-wave (mm-Wave) sensor data.71.The computer-implemented method of claim 65, wherein the detecting includes detecting a touch input via the touchscreen.72.The computer-implemented method of claim 64, wherein the adapting includes modifying a layout of a GUI element of the GUI.73.The computer-implemented method of claim 64, wherein the adapting includes modifying a position of a GUI element of the GUI.74.The computer-implemented method of claim 73, wherein the GUI includes a map.75.The computer-implemented method of claim 70, further comprising:emitting mm-Wave chirps;wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps; andwherein the processing of the input comprises:converting the frames of the mm-Wave chirps using an analog-to-digital converter;arranging the frames of the mm-Wave chirps in a complex radar cube; andapplying a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.76.The computer-implemented method of claim 75, further comprising:averaging magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.77.The computer-implemented method of claim 76, wherein the processing of the input comprises:applying a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.77.The computer-implemented method of claim 77, wherein the processing of the input comprises:applying a direct current compensation to one or more of the range bins subsequent to the first of the range bins.79.The computer-implemented method of claim 75, wherein the processing of the input comprises:identifying the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.80.The computer-implemented method of claim 75, wherein the processing of the input comprises:averaging a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.81.The computer-implemented method of claim 75, wherein the processing of the input comprises:extracting and buffering all phases from one or more frames preceding a frame of the input.82.The computer-implemented method of claim 75, wherein the processing of the input comprises:processing the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.83.The computer-implemented method of claim 82, wherein the processing of the mm-Wave chirps comprises:isolating first magnitudes from in-phase and quadrature components; andapplying demodulation to extract phase features for a window of targeted frames.84.The computer-implemented method of claim 83, wherein the processing of the mm-Wave chirps comprises:applying majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; andidentifying one of the first user and the second user as a source of the input depending on the voting.85.A computing system for adapting a GUI, the computing system comprising:a display;at least one of a touch panel, radar, and sonar;one or more processors; andmemory storing computer-executable instructions that, when executed by the one or more processors, cause the computing system to:detect an input at or adjacent to a display via at least one of the touch panel positioned adjacent to the display, radar, and sonar;process the input to determine if the input is from a left hand or a right hand of a user; andadapt a GUI presented on the display towards the left side of the display for the left hand or towards the right side of the display for the right hand based on the processing.86.The computing system of claim 85, wherein the display forms part of a touchscreen that includes the touch panel.87.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via feature extraction.88.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to process the input at least partially via a deep learning model.89.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to analyze input sensor data captured at at least two discrete times.90.The computing system of claim 85, wherein the input sensor data is captured during a time period.91.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to receive millimeter-wave (mm-Wave) sensor data.92.The computing system of claim 86, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to detect a touch input via the touchscreen.93.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a layout of a GUI element of the GUI.94.The computing system of claim 85, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to modify a position of a GUI element of the GUI.95.The computing system of claim 94, wherein the GUI includes a map.96.The computing system of claim 91, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:emit mm-Wave chirps, wherein the mm-Wave sensor data comprises frames of the mm-Wave chirps;convert the frames of the mm-Wave chirps using an analog-to-digital converter;arrange the frames of the mm-Wave chirps in a complex radar cube; andapply a fast Fourier transform across the frames of the mm-Wave chirps in the fast-time axis for all receiving channels to determine range information for targets of interest.97.The computing system of claim 96, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:average magnitudes in range bins of the complex radar cube having the highest intensity for one of the frames corresponding to the detected input and one or more previous frames.98.The computing system of claim 97, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply a direct current compensation to a first of the range bins that container a mutual leakage power from adjacent antenna elements.99.The computing system of claim 98, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply a direct current compensation to one or more of the range bins subsequent to the first of the range bins.100.The computing system of claim 96, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:identify the magnitudes of the first two bins from each receiving channel and a difference in magnitudes between a first mm-Wave antenna positioned towards a left side of the touch panel and a second mm-Wave antenna positioned towards a right side of the touch panel as a feature set.101.The computing system of claim 96, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:average a calculated phase associated with a peak of the magnitudes in the detected bin across all chirps in the frame.102.The computing system of claim 96, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:extract and buffering all phases from one or more frames preceding a frame of the input.103.The computing system of claim 96, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:process the mm-Wave chirps in the time-domain to calculate an initial phase of a first reflected echo.104.The computing system of claim 103, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:isolate first magnitudes from in-phase and quadrature components; andapply demodulation to extract phase features for a window of targeted frames.105.The computing system of claim 104, wherein the computer-executable instructions, when executed by the one or more processors, cause the computing system to:apply majority voting to the phase features to determine the number of positive and negative angles with respect to a radar boresight line in the frames preceding the frame of the input; andidentify one of the left hand and the right hand of the user as a source of the input depending on the voting.