Ambiguity resolution for object selection and faster application loading for cluttered scenarios
Techniques and systems are provided for identifying a virtual object. For instance, a process can include a method for identifying an object. The method may include: receiving pose information associated with a pose of a hand; identifying a cluster of virtual objects the hand is moving toward based on the received pose information, wherein the cluster of virtual objects includes a plurality of independent virtual objects; obtaining a set of expected hand postures associated with virtual objects of the cluster of virtual objects; determining a hand posture based on the received pose information; matching the hand posture to an expected hand posture of the set of expected hand postures to determine an initial hand posture of the hand; and identifying a first initial object of the cluster of virtual objects based on the initial hand posture.
1 . An apparatus for identifying an object, comprising:
at least one memory; and
at least one processor coupled to the at least one memory and configured to:
receive pose information associated with a pose of a hand;
identify a cluster of virtual objects the hand is moving toward based on the received pose information, wherein the cluster of virtual objects includes a plurality of independent virtual objects;
obtain a set of expected hand postures associated with virtual objects of the cluster of virtual objects, wherein each virtual object of the cluster of virtual objects is associated with one or more hand postures of the set of expected hand postures, and wherein a first virtual object is associated with a different hand posture as compared to a second virtual object that is different than the first virtual object;
determine a hand posture based on the received pose information;
match the hand posture to an expected hand posture of the set of expected hand postures to determine an initial hand posture of the hand; and
identify a first initial object of the cluster of virtual objects based on the initial hand posture.
2 . The apparatus of claim 1 , wherein the virtual objects are associated with a plurality of applications.
3 . The apparatus of claim 2 , wherein the at least one processor is further configured to preload a first process of a first application, of the plurality of applications, wherein the first application is associated with the first initial object.
4 . The apparatus of claim 3 , wherein the first process is preloaded as a background process.
5 . The apparatus of claim 3 , wherein the at least one processor is further configured to:
identify a second initial object of the cluster of virtual objects based on the initial hand posture;
determine to preload the first process of the first application as a foreground process;
preload the first process of the first application as the foreground process; and
preload a second process of a second application, of the plurality of applications, as a background process, wherein the second application is associated with the second initial object.
6 . The apparatus of claim 5 , wherein the at least one processor is configured to determine to preload the first process of the first application as a foreground process based on a comparison between a first distance between the hand and the first initial object and a second distance between the hand and the second initial object.
7 . The apparatus of claim 3 , wherein the at least one processor is further configured to:
determine a predicted set of virtual objects based on the initial hand posture, wherein the first initial object is in the predicted set of virtual objects;
receive updated pose information for the hand;
determine a final hand posture of the hand based on the updated pose information; and
identify a selected virtual object based on the final hand posture of the hand.
8 . The apparatus of claim 7 , wherein the first process is preloaded between a time period between determining the initial hand posture and determining the final hand posture.
9 . The apparatus of claim 7 , wherein the selected virtual object is the first initial object, and wherein the at least one processor is further configured to bring the first application to a foreground.
10 . The apparatus of claim 7 , wherein the at least one processor is further configured to:
identify a second initial object of the cluster of virtual objects based on the initial hand posture, the second initial object associated with a second application of the plurality of applications;
preload a second process of the second application as a background process;
determine that the selected virtual object is the second initial object;
remove the preloaded first process; and
bring the second application to a foreground.
11 . The apparatus of claim 10 , wherein, to determine that the selected virtual object is the second initial object, the at least one processor is configured to:
receive updated pose information for the hand;
determine the final hand posture of the hand based on the updated pose information; and
determine the final hand posture matches a posture associated with the second initial object.
12 . A method for identifying an object, comprising:
receiving pose information associated with a pose of a hand;
identifying a cluster of virtual objects the hand is moving toward based on the received pose information, wherein the cluster of virtual objects includes a plurality of independent virtual objects;
obtaining a set of expected hand postures associated with virtual objects of the cluster of virtual objects, wherein each virtual object of the cluster of virtual objects is associated with one or more hand postures of the set of expected hand postures, and wherein a first virtual object is associated with a different hand posture as compared to a second virtual object that is different than the first virtual object;
determining a hand posture based on the received pose information;
matching the hand posture to an expected hand posture of the set of expected hand postures to determine an initial hand posture of the hand; and
identifying a first initial object of the cluster of virtual objects based on the initial hand posture.
13 . The method of claim 12 , wherein the cluster of virtual objects are associated with a plurality of applications.
14 . The method of claim 13 , further comprising preloading a first process of a first application, of the plurality of applications, wherein the first application is associated with the first initial object.
15 . The method of claim 14 , wherein the first process is preloaded as a background process.
16 . The method of claim 14 , further comprising:
identifying a second initial object of the cluster of virtual objects based on the initial hand posture;
determining to preload the first process of the first application as a foreground process;
preloading the first process of the first application as the foreground process; and
preloading a second process of a second application, of the plurality of applications, as a background process wherein the second application is associated with the second initial object.
17 . The method of claim 16 , wherein determining to preload the first process of the first application as a foreground process is based on a comparison between a first distance between the hand and the first initial object and a second distance between the hand and the second initial object.
18 . The method of claim 14 , further comprising:
determining a predicted set of virtual objects based on the initial hand posture, wherein the first initial object is in the predicted set of virtual objects;
receiving updated pose information for the hand;
determining a final hand posture of the hand based on the updated pose information; and
identifying a selected virtual object based on the final hand posture of the hand.
19 . The method of claim 18 , wherein the first process is preloaded between a time period between determining the initial hand posture and determining the final hand posture.
20 . The method of claim 18 , wherein the selected virtual object is the first initial object, and further comprising bringing the first application to a foreground.
21 . The method of claim 18 , further comprising:
identifying a second initial object of the cluster of virtual objects based on the initial hand posture, the second initial object associated with a second application of the plurality of applications;
preloading a second process of the second application as a background process;
determining that the selected virtual object is the second initial object;
removing the preloaded first process; and
bringing the second application to a foreground.
22 . The method of claim 21 , wherein determining that the selected virtual object is the second initial object comprises:
receiving updated pose information for the hand;
determining the final hand posture of the hand based on the updated pose information; and
determining the final hand posture matches a posture associated with the second initial object.
23 . A non-transitory computer-readable medium having stored thereon instructions that, when executed by at least one processor, cause the at least one processor to:
receive pose information associated with a pose of a hand;
identify a cluster of virtual objects the hand is moving toward based on the received pose information, wherein the cluster of virtual objects includes a plurality of independent virtual objects;
obtain a set of expected hand postures associated with virtual objects of the cluster of virtual objects, wherein each virtual object of the cluster of virtual objects is associated with one or more hand postures of the set of expected hand postures, and wherein a first virtual object is associated with a different hand posture as compared to a second virtual object that is different than the first virtual object;
determine a hand posture based on the received pose information;
match the hand posture to an expected hand posture of the set of expected hand postures to determine an initial hand posture of the hand; and
identify a first initial object of the cluster of virtual objects based on the initial hand posture.
24 . The non-transitory computer-readable medium of claim 23 , wherein the virtual objects are associated with a plurality of applications.
25 . The non-transitory computer-readable medium of claim 24 , wherein the instructions further cause the at least one processor to preload a first process of a first application, of the plurality of applications, wherein the first application is associated with the first initial object.
26 . The non-transitory computer-readable medium of claim 25 , wherein the first process is preloaded as a background process.
27 . The non-transitory computer-readable medium of claim 25 , wherein the instructions further cause the at least one processor to:
identify a second initial object of the cluster of virtual objects based on the initial hand posture;
determine to preload the first process of the first application as a foreground process;
preload the first process of the first application as the foreground process; and
preload a second process of a second application, of the plurality of applications, as a background process, wherein the second application is associated with the second initial object.
28 . The non-transitory computer-readable medium of claim 27 , wherein the instructions cause the at least one processor to determine to preload the first process of the first application as a foreground process based on a comparison between a first distance between the hand and the first initial object and a second distance between the hand and the second initial object.
29 . The non-transitory computer-readable medium of claim 25 , wherein the instructions further cause the at least one processor to:
determine a predicted set of virtual objects based on the initial hand posture, wherein the first initial object is in the predicted set of virtual objects;
receive updated pose information for the hand;
determine a final hand posture of the hand based on the updated pose information; and
identify a selected virtual object based on the final hand posture of the hand.
30 . The non-transitory computer-readable medium of claim 29 , wherein the first process is preloaded between a time period between determining the initial hand posture and determining the final hand posture.
31 . An apparatus for identifying an object, comprising:
at least one memory; and
at least one processor coupled to the at least one memory and configured to:
receive pose information associated with a pose of a hand;
identify a cluster of virtual objects the hand is moving toward based on the received pose information, wherein the cluster of virtual objects includes a plurality of independent virtual objects, and the virtual objects are associated with a plurality of applications;
determine a hand posture based on the received pose information;
match the hand posture to an expected hand posture of a set of expected hand postures, associated with the virtual objects, to determine an initial hand posture of the hand;
determine a predicted set of virtual objects based on the initial hand posture;
identify a first initial object of the cluster of virtual objects based on the initial hand posture, wherein the first initial object is in the predicted set of virtual objects;
preload a first process of a first application, of the plurality of applications, wherein the first application is associated with the first initial object;
receive updated pose information for the hand;
determine a final hand posture for the hand based on the updated pose information; and
identify a virtual object of the cluster of the virtual objects based on the final hand posture, wherein the first process is preloaded between a time-period between determining the initial hand posture and the final hand posture.