This invention relates generally to determining hardware associated with a computing device. More specifically, the invention relates to determining the characteristics of such hardware so that software on the computing device can use such hardware in a more effective manner.
In one embodiment, a method for determining what hardware components are installed on a computing device is provided. The method may include identifying the computing device, and determining, based on the computing device, a hardware component of the computing device. The method may also include retrieving information about the hardware component, and setting, based at least in part on the information about the hardware component, a parameter for an algorithm of software on the computing device.
In another embodiment, a non-transitory machine readable medium having instructions thereon for determining what hardware components are installed on a computing device is provided. The instructions may be executable by one or more processors for identifying the computing device, and determining, based on the computing device, a hardware component of the computing device. The instructions may also be executable for retrieving information about the hardware component, and setting, based at least in part on the information about the hardware component, a parameter for an algorithm of software on the computing device.
In another embodiment, a system for determining what hardware components are installed on a computing device is provided. The system may include one or more processors. The processor(s) may be for identifying the computing device, and determining, based on the computing device, a hardware component of the computing device. The processor(s) may also be for retrieving information about the hardware component, and setting, based at least in part on the information about the hardware component, a parameter for an algorithm of software on the computing device.
The present invention is described in conjunction with the appended figures:
In the appended figures, similar components and/or features may have the same numerical reference label. Further, various components of the same type may be distinguished by following the reference label by a letter that distinguishes among the similar components and/or features. If only the first numerical reference label is used in the specification, the description is applicable to any one of the similar components and/or features having the same first numerical reference label irrespective of the letter suffix.
The ensuing description provides exemplary embodiments only, and is not intended to limit the scope, applicability or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing one or more exemplary embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.
For example, any detail discussed with regard to one embodiment may or may not be present in all contemplated versions of that embodiment. Likewise, any detail discussed with regard to one embodiment may or may not be present in all contemplated versions of other embodiments discussed herein. Finally, the absence of discussion of any detail with regard to embodiment herein shall be an implicit recognition that such detail may or may not be present in any version of any embodiment discussed herein.
Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other elements in the invention may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may be terminated when its operations are completed, but could have additional steps not discussed or included in a figure. Furthermore, not all operations in any particularly described process may occur in all embodiments. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
The term “machine-readable medium” includes, but is not limited to transitory and non-transitory, portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
Furthermore, embodiments of the invention may be implemented, at least in part, either manually or automatically. Manual or automatic implementations may be executed, or at least assisted, through the use of machines, hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium. A processor(s) may perform the necessary tasks.
Turning now to
Environment 100 may include a personal computer 105a having hardware components such as camera 110a and eye tracking device 115. Personal computer 105a may also have other hardware components such as a display screen, tactile input devices, and other hardware components, shown and not shown in
Environment 100 may also include a laptop or notebook computer 105b having hardware components such as camera 110b and touchpad 120. Laptop or notebook computer 105b may also have other hardware components such as a display screen, tactile input devices, and other hardware components, shown and not shown in
Environment 100 may also include a tablet computer 105c having hardware components such as camera 110c, and near infrared or other illuminator 125a. Tablet computer 105c may also have other hardware components such as a display screen, touch screen input devices and other hardware components, shown and not shown in
Environment 100 may also include a mobile phone 105d having hardware components such as camera 110d, near infrared or other illuminator 125b, and display screen 130. Mobile phone 105d may also have other hardware components such as touch screen input devices and other hardware components, shown and not shown in
In environment 100, each of computing devices 110 may be in wired or wireless communication with a remote database 135 via a local or wide area network 140. Database 140 may contain such information as is shown in
Database 135 may also include parameter information for software that may employ the capabilities of a hardware component. For example, parameters may be stored in database 135 for a hardware component so that a computing device 105 may use such parameters in operating a certain hardware component. In some embodiments, parameters may not be stored for one or more hardware components, and instead a computing device 105 may determine such parameters based on the capabilities and/or identifying characteristics of a hardware component.
At block 320, the identification of the computing device may be used to determine one or more hardware components present with or installed to the computing device. This may be done either by looking up the identification of the computing device in a local database (block 322) or a remote database (324). In some embodiments, the method, at block 326, may directly determine that a hardware component is present and obtain identifying information (a string or other data (for example, a vendor ID or product ID)) directly from the hardware component or the computing device.
Once one or more hardware components on the computing device have been identified, characteristics of the hardware components may be obtained by reference to the local/remote database at block 330. This may include retrieving capabilities of the hardware component at block 332, and/or location information at block 334.
The capabilities of hardware components may include any operating characteristic of such device. For example, characteristics of a camera may include resolution, exposure, zoom, field of view, color capability, pixel size, shutter types, spectral range, region of interest, read out speed, etc. By further example, characteristics of an eye tracking device may include frequency of readings, resolution, range, etc. In another example, characteristics of illuminators and display screens may be frequency, brightness, type of illumination, beam shaping, coating, etc. Characteristics of touchpads or other tactile input devices may include sensitivity, range, etc. Location information of a hardware component on a computing device may include information which identifies the location of the hardware component relative to other features or hardware components of the computing device.
In some embodiments, at block 336 parameters associated with such characteristics (i.e., capabilities and locations), and usable by a particular software package (for example, eye tracking software, gesture detection software, head movement detection software, image/video capture software, etc.), may either be determined from such characteristic information, or also retrieved from a local or remote database (as shown in
In some embodiments, the method may determine that a computing device is not present in the database once referenced. In these scenarios, the method may determine what hardware is present on the computing device, the location and/or capabilities of such hardware, and update the database with this information. Identification strings of such computing devices and hardware components may also be determined by the method. In some embodiments, the computing device may be correctly identified, but additional hardware components may be present which are not described by the database. In these situations, the hardware components and their location/capabilities may be added to the database to be associated with the computing device. The method may have algorithms for determining locations/capabilities of hardware components, or may query the user of the computing device to determine such. In some embodiments, separate databases or recent new computing devices and/or hardware components may be referenced to update the primary database.
The computer system 400 is shown comprising hardware elements that may be electrically coupled via a bus 490. The hardware elements may include one or more central processing units 410, one or more input devices 420 (e.g., a mouse, a keyboard, etc.), and one or more output devices 430 (e.g., a display device, a printer, etc.). The computer system 400 may also include one or more storage device 440. By way of example, storage device(s) 440 may be disk drives, optical storage devices, solid-state storage device such as a random access memory (“RAM”) and/or a read-only memory (“ROM”), which can be programmable, flash-updateable and/or the like.
The computer system 400 may additionally include a computer-readable storage media reader 450, a communications system 460 (e.g., a modem, a network card (wireless or wired), an infra-red communication device, Bluetooth™ device, cellular communication device, etc.), and working memory 480, which may include RAM and ROM devices as described above. In some embodiments, the computer system 400 may also include a processing acceleration unit 470, which can include a digital signal processor, a special-purpose processor and/or the like.
The computer-readable storage media reader 450 can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s) 440) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system 460 may permit data to be exchanged with a network, system, computer and/or other component described above.
The computer system 400 may also comprise software elements, shown as being currently located within a working memory 480, including an operating system 484 and/or other code 488. It should be appreciated that alternate embodiments of a computer system 400 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Furthermore, connection to other computing devices such as network input/output and data acquisition devices may also occur.
Software of computer system 400 may include code 488 for implementing any or all of the function of the various elements of the architecture as described herein. For example, software, stored on and/or executed by a computer system such as system 400, can provide the functions of the software, and/or other components of the invention such as those discussed above. Methods implementable by software on some of these components have been discussed above in more detail.
The invention has now been described in detail for the purposes of clarity and understanding. However, it will be appreciated that certain changes and modifications may be practiced within the scope of the appended claims.
This application claims priority to Provisional U.S. Patent Application No. 62/033,540 filed Aug. 5, 2014, entitled “DYNAMIC DETERMINATION OF HARDWARE FOR EYE TRACKING,” the entire disclosure of which is hereby incorporated by reference, for all purposes, as if fully set forth herein.
Number | Name | Date | Kind |
---|---|---|---|
5218387 | Ueno et al. | Jun 1993 | A |
5294427 | Sasaki et al. | Mar 1994 | A |
5471542 | Ragland | Nov 1995 | A |
5638176 | Hobbs et al. | Jun 1997 | A |
5787246 | Lichtman | Jul 1998 | A |
5850211 | Tognazzini | Dec 1998 | A |
6067565 | Horvitz | May 2000 | A |
6085226 | Horvitz | Jul 2000 | A |
6152563 | Hutchinson et al. | Nov 2000 | A |
6204828 | Amir et al. | Mar 2001 | B1 |
6204974 | Spitzer | Mar 2001 | B1 |
6351273 | Lemelson et al. | Feb 2002 | B1 |
6393584 | McLaren et al. | May 2002 | B1 |
6421064 | Lemelson et al. | Jul 2002 | B1 |
6421604 | Koyanagi et al. | Jul 2002 | B1 |
6578962 | Amir et al. | Jun 2003 | B1 |
6603491 | Lemelson et al. | Aug 2003 | B2 |
6675075 | Engelsberg et al. | Jan 2004 | B1 |
6734845 | Nielsen et al. | May 2004 | B1 |
6792452 | Philyaw | Sep 2004 | B1 |
6873314 | Campbell | Mar 2005 | B1 |
6882354 | Nielsen | Apr 2005 | B1 |
6886137 | Peck et al. | Apr 2005 | B2 |
7013258 | Su et al. | Mar 2006 | B1 |
7091928 | Rajasingham | Aug 2006 | B2 |
7113170 | Lauper et al. | Sep 2006 | B2 |
7206828 | Bourke-Dunphy | Apr 2007 | B1 |
7306337 | Ji et al. | Dec 2007 | B2 |
7346195 | Lauper et al. | Mar 2008 | B2 |
7380938 | Chmielewski et al. | Jun 2008 | B2 |
7486302 | Shoemaker | Feb 2009 | B2 |
7549743 | Huxlin et al. | Jun 2009 | B2 |
7561143 | Milekic | Jul 2009 | B1 |
7572008 | Elvesjo et al. | Aug 2009 | B2 |
7602924 | Kleen | Oct 2009 | B2 |
7614011 | Karidis et al. | Nov 2009 | B2 |
7630254 | Lutze | Dec 2009 | B2 |
7630524 | Lauper et al. | Dec 2009 | B2 |
7634528 | Horvitz et al. | Dec 2009 | B2 |
7668317 | Yang et al. | Feb 2010 | B2 |
7792391 | Arima | Sep 2010 | B2 |
7806525 | Howell et al. | Oct 2010 | B2 |
8066375 | Skogö et al. | Nov 2011 | B2 |
8094122 | Molander et al. | Jan 2012 | B2 |
8226574 | Whillock et al. | Jul 2012 | B2 |
8235529 | Raffle et al. | Aug 2012 | B1 |
8339446 | Blixt et al. | Dec 2012 | B2 |
8407263 | Elad et al. | Mar 2013 | B2 |
8472120 | Border et al. | Jun 2013 | B2 |
8487838 | Lewis et al. | Jul 2013 | B2 |
8488246 | Border et al. | Jul 2013 | B2 |
8500271 | Howell et al. | Aug 2013 | B2 |
8564533 | Yuan | Oct 2013 | B2 |
8620913 | Hough et al. | Dec 2013 | B2 |
8643680 | Baldwin et al. | Feb 2014 | B2 |
8756516 | Singh et al. | Jun 2014 | B2 |
8786953 | Wheeler et al. | Jul 2014 | B2 |
8963806 | Starner et al. | Feb 2015 | B1 |
9041787 | Andersson et al. | May 2015 | B2 |
20020105482 | Lemelson et al. | Aug 2002 | A1 |
20020180799 | Peck et al. | Dec 2002 | A1 |
20030020755 | Lemelson et al. | Jan 2003 | A1 |
20030052903 | Weast et al. | Mar 2003 | A1 |
20030098954 | Amir et al. | May 2003 | A1 |
20040175020 | Bradski et al. | Sep 2004 | A1 |
20040199663 | Horvitz et al. | Oct 2004 | A1 |
20050047629 | Farrell et al. | Mar 2005 | A1 |
20050221268 | Chaar et al. | Oct 2005 | A1 |
20060066567 | Scharenbroch et al. | Mar 2006 | A1 |
20060087502 | Karidis et al. | Apr 2006 | A1 |
20060192775 | Nicholson et al. | Aug 2006 | A1 |
20070030442 | Howell et al. | Feb 2007 | A1 |
20070078552 | Rosenberg | Apr 2007 | A1 |
20070122064 | Arima | May 2007 | A1 |
20070132663 | Iba et al. | Jun 2007 | A1 |
20070164990 | Bjorklund et al. | Jul 2007 | A1 |
20080074389 | Beale | Mar 2008 | A1 |
20080148149 | Singh et al. | Jun 2008 | A1 |
20080270474 | Flake et al. | Oct 2008 | A1 |
20080278682 | Huxlin et al. | Nov 2008 | A1 |
20080281915 | Elad et al. | Nov 2008 | A1 |
20090086165 | Beymer | Apr 2009 | A1 |
20090122161 | Bolkhovitinov | May 2009 | A1 |
20090146950 | Maringelli | Jun 2009 | A1 |
20090273562 | Baliga et al. | Nov 2009 | A1 |
20090315827 | Elvesjö et al. | Dec 2009 | A1 |
20100066975 | Rehnstrom | Mar 2010 | A1 |
20100079508 | Hodge et al. | Apr 2010 | A1 |
20100110368 | Chaum | May 2010 | A1 |
20100125816 | Bezos | May 2010 | A1 |
20100182232 | Zamoyski | Jul 2010 | A1 |
20100225668 | Tatke et al. | Sep 2010 | A1 |
20100271587 | Pavlopoulos | Oct 2010 | A1 |
20100295774 | Hennessey | Nov 2010 | A1 |
20110007277 | Solomon | Jan 2011 | A1 |
20110037606 | Boise | Feb 2011 | A1 |
20110045810 | Issa et al. | Feb 2011 | A1 |
20110115703 | Iba et al. | May 2011 | A1 |
20110119361 | Issa et al. | May 2011 | A1 |
20110140994 | Noma | Jun 2011 | A1 |
20110270123 | Reiner | Nov 2011 | A1 |
20110279666 | Strömbom et al. | Nov 2011 | A1 |
20120011170 | Elad et al. | Jan 2012 | A1 |
20120050273 | Yoo et al. | Mar 2012 | A1 |
20120075168 | Osterhout et al. | Mar 2012 | A1 |
20120163606 | Eronen et al. | Jun 2012 | A1 |
20120194419 | Osterhout et al. | Aug 2012 | A1 |
20120230547 | Durnell et al. | Sep 2012 | A1 |
20120235883 | Border et al. | Sep 2012 | A1 |
20120235900 | Border et al. | Sep 2012 | A1 |
20120256967 | Baldwin et al. | Oct 2012 | A1 |
20120272179 | Stafford | Oct 2012 | A1 |
20120288139 | Singhar | Nov 2012 | A1 |
20130044042 | Olsson et al. | Feb 2013 | A1 |
20130044055 | Karmarkar et al. | Feb 2013 | A1 |
20130050070 | Lewis et al. | Feb 2013 | A1 |
20130127980 | Haddick et al. | May 2013 | A1 |
20130163089 | Bohn | Jun 2013 | A1 |
20130176208 | Tanaka et al. | Jul 2013 | A1 |
20130176250 | Lee et al. | Jul 2013 | A1 |
20130198504 | Arnold | Aug 2013 | A1 |
20130201080 | Evans et al. | Aug 2013 | A1 |
20130208926 | Vincent et al. | Aug 2013 | A1 |
20130257709 | Raffle et al. | Oct 2013 | A1 |
20130275883 | Bharshankar et al. | Oct 2013 | A1 |
20130283208 | Bychkov et al. | Oct 2013 | A1 |
20130286178 | Lewis et al. | Oct 2013 | A1 |
20130300654 | Seki | Nov 2013 | A1 |
20130314303 | Osterhout et al. | Nov 2013 | A1 |
20130325463 | Greenspan et al. | Dec 2013 | A1 |
20140010391 | Ek et al. | Jan 2014 | A1 |
20140019136 | Tanaka | Jan 2014 | A1 |
20140038154 | Brownlow | Feb 2014 | A1 |
20140126782 | Takai et al. | May 2014 | A1 |
20140154651 | Stack | Jun 2014 | A1 |
20140160001 | Kinnebrew et al. | Jun 2014 | A1 |
20140168054 | Yang et al. | Jun 2014 | A1 |
20140184550 | Hennessey et al. | Jul 2014 | A1 |
20140191948 | Kim et al. | Jul 2014 | A1 |
20140195918 | Friedlander | Jul 2014 | A1 |
20140247208 | Henderek et al. | Sep 2014 | A1 |
20140247210 | Henderek et al. | Sep 2014 | A1 |
20140247215 | George-Svahn et al. | Sep 2014 | A1 |
20140247232 | George-Svahn et al. | Sep 2014 | A1 |
20140268054 | Olsson et al. | Sep 2014 | A1 |
20140328505 | Heinemann et al. | Nov 2014 | A1 |
20150052596 | Ayanam | Feb 2015 | A1 |
20150055808 | Vennstrom et al. | Feb 2015 | A1 |
20150058812 | Lindh et al. | Feb 2015 | A1 |
20150061995 | Gustafsson et al. | Mar 2015 | A1 |
20150061996 | Gustafsson et al. | Mar 2015 | A1 |
20150062322 | Gustafsson et al. | Mar 2015 | A1 |
20150062323 | Gustafsson et al. | Mar 2015 | A1 |
20150063603 | Henderek et al. | Mar 2015 | A1 |
20150138079 | Lannsjö | May 2015 | A1 |
20150138244 | George-Svahn et al. | May 2015 | A1 |
20150143293 | George-Svahn et al. | May 2015 | A1 |
Number | Date | Country |
---|---|---|
19731301 | Jan 1999 | DE |
0816980 | Jan 1998 | EP |
0816980 | Nov 1998 | EP |
0903662 | Mar 1999 | EP |
0912932 | May 1999 | EP |
0816980 | Jan 2001 | EP |
1646026 | Apr 2006 | EP |
0912932 | Aug 2006 | EP |
1812881 | Aug 2007 | EP |
1832753 | Sep 2007 | EP |
1854516 | Nov 2007 | EP |
1970649 | Sep 2008 | EP |
2048326 | Apr 2009 | EP |
1646026 | Sep 2009 | EP |
2075430 | Jul 2010 | EP |
2613224 | Jul 2013 | EP |
2695046 | Feb 2014 | EP |
2752733 | Jul 2014 | EP |
2762997 | Aug 2014 | EP |
2281838 | Mar 1995 | GB |
1998003907 | Jan 1998 | WO |
2006045843 | May 2006 | WO |
2009129222 | Oct 2009 | WO |
2010051037 | May 2010 | WO |
2010085977 | Aug 2010 | WO |
2010127714 | Nov 2010 | WO |
2010132991 | Nov 2010 | WO |
2010141403 | Dec 2010 | WO |
2012138744 | Oct 2012 | WO |
2012145180 | Oct 2012 | WO |
2013033842 | Mar 2013 | WO |
2013067230 | May 2013 | WO |
2013117727 | Aug 2013 | WO |
2013144807 | Oct 2013 | WO |
2013168173 | Nov 2013 | WO |
2014134623 | Sep 2014 | WO |
2015027241 | Feb 2015 | WO |
2015034560 | Mar 2015 | WO |
2015034561 | Mar 2015 | WO |
Entry |
---|
Final Office Action for U.S. Appl. No. 13/802,240, dated Jun. 23, 2015, 14 pages. |
Non-Final Office Action for U.S. Appl. No. 13/802,240, dated Mar. 20, 2015, 20 pages. |
Final Office Action for U.S. Appl. No. 13/894,424, dated May 8, 2015, 35 pages. |
Non-Final Office Action for U.S. Appl. No. 13/894,424, dated Dec. 19, 2014, 32 pages. |
Non-Final Office Action for U.S. Appl. No. 14/195,789, dated May 12, 2015, 15 pages. |
Non-Final Office Action for U.S. Appl. No. 14/281,587, dated Aug. 8, 2014, 23 pages. |
Notice of Allowance for U.S. Appl. No. 14/281,587, dated Jan. 21, 2015, 16 pages. |
Non-Final Office Action for U.S. Appl. No. 14/467,944, dated Oct. 20, 2014, 18 pages. |
Notice of Allowance for U.S. Appl. No. 14/467,944, dated Apr. 17, 2015, 12 pages. |
Kumar et al., “Gaze-enhanced Scrolling Techniques”, ACM, UIST'07, Oct. 7-10, 2007, 4 pages. |
International Search Report and Written Opinion for PCT Application No. PCT/US2014/020024, dated Jul. 29, 2014, 15 pages. |
International Search Report and Written Opinion for PCT Application No. PCT/US2014/038651, dated Oct. 23, 2014, 3 pages. |
International Search Report and Written Opinion for PCT Application No. PCT/US2014/038653, dated Oct. 22, 2014, 3 pages. |
International Search Report and Written Opinion for PCT Application No. PCT/US2014/052562, dated Nov. 18, 2014, 11 pages. |
Tian et al., “Dynamic Visual Acuity During Transient and Sinusoidal Yaw Rotation in Normal and Unilaterally Vestibulopathic Humans”, Experimental Brain Research, Springer international DE, vol. 137, No. 1, Mar. 1, 2001, pp. 12-25. |
Number | Date | Country | |
---|---|---|---|
20160041832 A1 | Feb 2016 | US |
Number | Date | Country | |
---|---|---|---|
62033540 | Aug 2014 | US |