This disclosure relates to customizing a user interface of an augmented reality system. More specifically, this disclosure relates to systems and methods for dynamically refreshing the user interface based on certain conditions.
The increasing availability of data and data sources in the modern world has driven innovation in the ways that people consume data. Individuals increasingly rely on online resources and the availability of data to inform their daily behavior and interactions. The ubiquity of portable, connected devices has allowed for the access of this type of information from almost anywhere.
The use of this information to augment one's view of the physical world, however, remains in its infancy. Current augmented reality systems can overlay visual data on a screen or viewport providing information overlaid onto the visual world. Although useful, these types of systems are usually limited to simply providing an additional display for information already available to a user or replicating the visual spectrum with overlaid data. There is a need for truly augmented systems that use contextual information and details about the visual perception of a user to provide a fully integrated, augmented reality experience.
Certain embodiments of the present disclosure include a computer readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to perform certain instructions for providing a user interface in a field of view of an augmented reality device of the augmented reality system, wherein the augmented reality device is worn by a user. The instructions may perform operations to access a data set to populate the user interface based on a person being in the field of view of the augmented reality device, wherein the data set includes one or more trigger word sequences; capture audio from the user of the augmented reality device of the augmented reality system; determine whether the captured audio includes a trigger word sequence of the one or more trigger word sequences; identify an action element mapped to the trigger word sequence based on the determination; and update the user interface based on the identified action element.
Certain embodiments of the present disclosure include a computer readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to perform certain instructions for displaying updated user interface. The instructions may perform operations to determine a first role of a user of an augmented reality device of the augmented reality system; display on the augmented reality device a first set of one or more user interfaces associated with the first role of the user; determine a change in role from the first role to a second role of the user; and update the display to include a second set of one or more user interfaces associated with the second role of the user.
Certain embodiments of the present disclosure include a computer readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to perform certain instructions for filtering external noise. The instructions may perform operations to capture audio that includes audio corresponding to a person in a field of view of an augmented reality device of the augmented reality system; capture video of the person; syncing the captured audio to lip movement of the person in the captured video; and filter audio other than the audio corresponding to the person.
Certain embodiments of the present disclosure include a computer readable medium containing instructions that, when executed by at least one processor, cause the at least one processor to perform certain instructions for providing ability to measure dimensions of an object in field of view. The instructions may perform operations to identify the object in the field of view of an augmented reality device of the augmented reality system; determine if the object is a relevant object to measure; in response to the determination, evaluating the dimensions of the object; and display, in the augmented reality device, information corresponding to the dimensions of the object.
Certain embodiments relate to a computer-implemented method for providing a customizable user interface. The method may include providing a user interface in a field of view of an augmented reality device of the augmented reality system, wherein the augmented reality device is worn by a user; accessing a data set to populate the user interface based on a person being in the field of view of the augmented reality device, wherein the data set includes one or more trigger word sequences; capturing audio from the user of the augmented reality device of the augmented reality system; determining whether the captured audio includes a trigger word sequence of the one or more trigger word sequences; identifying an action element mapped to the trigger word sequence based on the determination; and updating the user interface based on the identified action element.
Certain embodiments of the present disclosure relate to an augmented reality system for providing a user interface in a field of view of an augmented reality device of the augmented reality system, wherein the augmented reality device is worn by a user. The augmented reality system comprising at least one processor configured to: access a data set to populate the user interface based on a person being in the field of view of the augmented reality device, wherein the data set includes one or more trigger word sequences; capture audio from the user of the augmented reality device of the augmented reality system; determine whether the captured audio includes a trigger word sequence of the one or more trigger word sequences; identify an action element mapped to the trigger word sequence based on the determination; and update the user interface based on the identified action element.
Certain embodiments of the present disclosure relate to an augmented reality system displaying updated user interface. The augmented reality system comprising at least one processor configured to: determine a first role of a user of an augmented reality device of the augmented reality system; display on the augmented reality device a first set of one or more user interfaces associated with the first role of the user; determine a change in role from the first role to a second role of the user; and update the display to include a second set of one or more user interfaces associated with the second role of the user.
Certain embodiments of the present disclosure relate to an augmented reality system filtering external noise. The augmented reality system comprising at least one processor configured to: capture audio that includes audio corresponding to a person in a field of view of an augmented reality device of the augmented reality system; capture video of the person; syncing the captured audio to lip movement of the person in the captured video; and filter audio other than the audio corresponding to the person.
Certain embodiments of the present disclosure relate to an augmented reality system providing ability to measure dimensions of an object in field of view. The augmented reality system comprising at least one processor configured to: identify the object in the field of view of an augmented reality device of the augmented reality system; determine if the object is a relevant object to measure; in response to the determination, evaluating the dimensions of the object; and display, in the augmented reality device, information corresponding to the dimensions of the object.
Certain embodiments relate to a computer-implemented method for displaying updated user interface. The method may include determining a first role of a user of an augmented reality device of the augmented reality system; displaying on the augmented reality device a first set of one or more user interfaces associated with the first role of the user; determining a change in role from the first role to a second role of the user; and updating the display to include a second set of one or more user interfaces associated with the second role of the user.
Certain embodiments relate to a computer-implemented method for filtering external noise. The method may include capturing audio that includes audio corresponding to a person in a field of view of an augmented reality device of the augmented reality system; capturing video of the person; syncing the captured audio to lip movement of the person in the captured video; and filtering audio other than the audio corresponding to the person.
Certain embodiments relate to a computer-implemented method for providing ability to measure dimensions of an object in field of view. The method may include identifying the object in the field of view of an augmented reality device of the augmented reality system; determining if the object is a relevant object to measure; in response to the determination, evaluating the dimensions of the object; and displaying, in the augmented reality device, information corresponding to the dimensions of the object.
Reference will now be made to the accompanying drawings showing example embodiments of this disclosure. In the drawings:
Reference will now be made in detail to the exemplary embodiments implemented according to the present disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
The embodiments described herein relate to improved interaction and integration in augmented reality systems. Augmented reality systems provide vast potential for enhancing visual understanding of the world at large. By complementing the visual perspective individuals experience with their eyes, augmented reality systems can provide a more detailed understanding of the world around us.
Current augmented reality systems can overlay computer-generated images and data on a visual field of view providing a visual experience not available with eyes alone. Current implementations, however, of augmented reality systems fail to provide a fully integrated experience. The visual overlay typically relates to things like notifications or alerts. In these systems, although the augmented reality experience provides a useful application, the augmentation is unrelated to the visual focus of the user. In other augmented reality systems, the graphical overlay provides information about objects the user is viewing, but the provided information is limited to that particular application and data set.
The embodiments described herein approach these problems from a different perspective. Instead of focusing on providing a limited set of information based on a particular application, the disclosed systems integrate data from the augmented reality device itself with a plethora of data sources associated with the individual. The disclosed systems can further analyze and process the available data using contextual information about the user. The result of this data integration can be provided to the user's augmented reality device to provide a comprehensive overlay of information about seemingly unrelated aspects of the user's visual field of view.
Moreover, the disclosed system and methods can tailor that information based on the contextual information about the individual. The provided overlay can link to other data sources managed by the individual or other parties to provide time, location, and context specific data related to items the individual is viewing.
For example, the system can recognize, based on location information from the augmented reality device or a user's mobile device that the user has arrived at an airport terminal. Using data from the user's digital calendar, along with data about the individual from a travel app hosted by an airline or other travel conveyor, along with other travel software, the disclosed systems and methods can further determine that the individual has an upcoming flight. Upon the individual's arrival, the disclosed system and method can use available information about the upcoming flight and the present check-in status of the individual to direct the individual to the appropriate check-in kiosk, customer service desk, ticketing counter, or boarding gate. Instead of simply providing augmented information about every ticketing counter, as is typical in current augmented reality systems, the disclosed system's integration of data from multiple data sources provides a tailored experience to the individual while also providing the present state of their reservation transaction with the airline or other travel conveyor.
Additionally, the disclosed system and methods can modernize current airport procedures. For example, in the previously described example, the described augmented reality systems can be used to detect where in the airport an individual is, the number of bags they may have, and where they may need to go. This information can be used by the travel systems to manage flight manifests, automatically check-in users, effectively indicate where checked baggage should be placed, automatically generate baggage tags, and provide boarding notifications. In this way, not only are the disclosed systems and methods helpful to the traveler, but they can also enhance the efficiency and effectiveness of airport operations by providing enhanced information that is used to make important decisions about flight and travel management.
Moreover, the disclosed system and methods can provide interactive experiences to the individual. The majority of current augmented reality systems simply disseminate information. Systems that do provide some level of interactivity do so based on a user's interaction with a particular application, limiting the usefulness. Because the disclosed system and methods provide integrated data tailored specifically to the individual, interaction from the individual can relate to any number activities or services associated with the individual. For example, as an individual waits at a gate to board an aircraft, information related to the individual's flight can not only be used to provide status updates, but can also be integrated with the individual's general flight preferences, purchase preferences, or predictive purchasing analysis of the individual to provide detailed information about, among other things, additional seat availability, upgrade options, in-flight amenities, or pre-flight services. The individual can interact with the augmented reality system to change their seat or pre-select in-flight entertainment. Instead of requiring the individual to explicitly request this type of information, the integration provided by the disclosed system and methods allows the system and methods to preemptively provide relevant, useful information to the individual based on contextual information not available from the augmented reality device itself.
The embodiments described herein provide technologies and techniques for using vast amounts of available data (from a variety of data sources) to provide an integrated and interactive augmented reality experience. Embodiments described herein include systems and methods for obtaining contextual information about an individual and device information about an augmented reality device associated with the individual from the augmented reality device. The systems and methods further include obtaining a plurality of data sets associated with the individual or augmented reality device from a plurality of data sources and determining a subset of information from the plurality of data sets relevant to the individual wherein the relevancy of the information is based on the contextual information and the device information obtained from the augmented reality device. Moreover, the embodiments described include systems and methods for generating display data based on the determined subset of information; and providing the display data to the augmented reality device for display on the augmented reality device wherein the display data is overlaid on top of the individual's field of view
In some embodiments, the technologies described further include systems and methods wherein the contextual information obtained from the augmented reality device includes visual data representative of the individual's field of view and wherein the relevancy of the subset of information is further based on an analysis of the visual data. Yet another of the disclosed embodiments includes systems and methods wherein the contextual information obtained from the augmented reality device includes at least one of location information, orientation information, and motion information. In other disclosed embodiments, systems and methods are provided wherein information obtained from the plurality of data sets (in this case the data is coming from proprietary data sources and from the device) includes travel information associated with the individual and wherein the travel information includes at least one of a user profile, travel preferences, purchased travel services, travel updates, and historical travel information.
Additional embodiments consistent with the present disclosure include systems and methods wherein the analysis of the contextual information and device information includes determining entities within the field of view of the individual and filtering information not associated with the entities
Computing device 200 can include one or more central processing units (CPUs) 220 and a system memory 221. Computing device 200 can also include one or more graphics processing units (GPUs) 225 and graphic memory 226. In some embodiments, computing device 200 can be a headless computing device that does not include GPU(s) 225 or graphic memory 226.
CPUs 220 can be single or multiple microprocessors, field-programmable gate arrays, or digital signal processors capable of executing sets of instructions stored in a memory (e.g., system memory 221), a cache (e.g., cache 241), or a register (e.g., one of registers 240). CPUs 220 can contain one or more registers (e.g., registers 240) for storing variable types of data including, inter alia, data, instructions, floating point values, conditional values, memory addresses for locations in memory (e.g., system memory 221 or graphic memory 226), pointers and counters. CPU registers 240 can include special purpose registers used to store data associated with executing instructions such as an instruction pointer, an instruction counter, or memory stack pointer. System memory 221 can include a tangible or a non-transitory computer-readable medium, such as a flexible disk, a hard disk, a compact disk read-only memory (CD-ROM), magneto-optical (MO) drive, digital versatile disk random-access memory (DVD-RAM), a solid-state disk (SSD), a flash drive or flash memory, processor cache, memory register, or a semiconductor memory. System memory 221 can be one or more memory chips capable of storing data and allowing direct access by CPUs 220. System memory 221 can be any type of random access memory (RAM), or other available memory chip capable of operating as described herein.
CPUs 220 can communicate with system memory 221 via a system interface 250, sometimes referred to as a bus. In embodiments that include GPUs 225, GPUs 225 can be any type of specialized circuitry that can manipulate and alter memory (e.g., graphic memory 226) to provide or accelerate the creation of images. GPUs 225 can store images in a frame buffer (e.g., a frame buffer 245) for output to a display device such as display device 224. In some embodiments, images stored in frame buffer 245 can be provided to other computing devices through network interface 218 or I/O devices 230. GPUs 225 can have a highly parallel structure optimized for processing large, parallel blocks of graphical data more efficiently than general purpose CPUs 220. Furthermore, the functionality of GPUs 225 can be included in a chipset of a special purpose processing unit or a co-processor.
CPUs 220 can execute programming instructions stored in system memory 221 or other memory, operate on data stored in memory (e.g., system memory 221) and communicate with GPUs 225 through the system interface 250, which bridges communication between the various components of computing device 200. In some embodiments, CPUs 220, GPUs 225, system interface 250, or any combination thereof, are integrated into a single chipset or processing unit. GPUs 225 can execute sets of instructions stored in memory (e.g., system memory 221), to manipulate graphical data stored in system memory 221 or graphic memory 226. For example, CPUs 220 can provide instructions to GPUs 225, and GPUs 225 can process the instructions to render graphics data stored in the graphic memory 226. Graphic memory 226 can be any memory space accessible by GPUs 225, including local memory, system memory, on-chip memories, and hard disk. GPUs 225 can enable displaying of graphical data stored in graphic memory 226 on display device 224 or can process graphical information and provide that information to connected devices through network interface 218 or I/O devices 230.
Computing device 200 can include display device 224 and input/output (I/O) devices 230 (e.g., a keyboard, a mouse, or a pointing device) connected to I/O controller 223. I/O controller 223 can communicate with the other components of computing device 200 via system interface 250. It should now be appreciated that CPUs 220 can also communicate with system memory 221 and other devices in manners other than through system interface 250, such as through serial communication or direct point-to-point communication. Similarly, GPUs 225 can communicate with graphic memory 226 and other devices in ways other than system interface 250. In addition to receiving input, CPUs 220 can provide output via I/O devices 230 (e.g., through a printer, speakers, bone conduction, or other output devices).
Furthermore, computing device 200 can include a network interface 218 to interface to a LAN, WAN, MAN, or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.21, T1, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay, ATM), wireless connections (e.g., those conforming to, among others, the 802.11a, 802.11b, 802.11b/g/n, 802.11ac, Bluetooth, Bluetooth LTE, 3GPP, or WiMax standards), or some combination of any or all of the above. Network interface 218 can comprise a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing computing device 200 to any type of network capable of communication and performing the operations described herein.
Referring back to
Electronic device 300 can include a case (not shown) housing component of electronic device 300. The internal components of electronic device 300 can, for example, be constructed on a printed circuit board (PCB). Although the components and subsystems of electronic device 300 can be realized as discrete elements, the functions of the components and subsystems can also be realized by integrating, combining, or packaging one or more elements together in one or more combinations.
Electronic device 300 can include a controller comprising one or more CPU(s) 301, which controls the overall operation of electronic device 300. CPU(s) 301 can be one or more microprocessors, field programmable gate arrays (FPGAs), digital signal processors (DSPs), or any combination thereof capable of executing particular sets of instructions. CPU(s) 301 can interact with device subsystems such as a wireless communication system 306 (which can employ any appropriate wireless (e.g., RF), optical, or other short range communications technology (for example, WiFi, Bluetooth or NFC)) for exchanging radio frequency signals with a wireless network to perform communication functions, an audio subsystem 320 for producing audio, location subsystem 308 for acquiring location information, and a display subsystem 310 for producing display elements. Audio subsystem 320 can transmit audio signals for playback to left speaker 321 and right speaker 323. The audio signal can be either an analog or a digital signal.
CPU(s) 301 can also interact with input devices 307, a persistent memory 330, a random access memory (RAM) 337, a read only memory (ROM) 338, a data port 318 (e.g., a conventional serial data port, a Universal Serial Bus (USB) data port, a 30-pin data port, a Lightning data port, or a High-Definition Multimedia Interface (HDMI) data port), a microphone 322, camera 324, and wireless communication system 306. Some of the subsystems shown in
Wireless communication system 306 includes communication systems for communicating with a network to enable communication with any external devices (e.g., a server, not shown). The particular design of wireless communication system 306 depends on the wireless network in which electronic device 300 is intended to operate. Electronic device 300 can send and receive communication signals over the wireless network after the required network registration or activation procedures have been completed.
Location subsystem 308 can provide various systems such as a global positioning system (e.g., a GPS 309) that provides location information. Additionally, location subsystem can utilize location information from connected devices (e.g., connected through wireless communication system 306) to further provide location data. The location information provided by location subsystem 308 can be stored in, for example, persistent memory 330, and used by applications 334 and an operating system 332.
Display subsystem 310 can control various displays (e.g., a left eye display 311 and a right eye display 313). In order to provide an augmented reality display, display subsystem 310 can provide for the display of graphical elements (e.g., those generated using GPU(s) 302) on transparent displays. In other embodiments, the display generated on left eye display 311 and right eye display 313 can include an image captured by camera 324 and reproduced with overlaid graphical elements. Moreover, display subsystem 310 can display different overlays on left eye display 311 and right eye display 313 to show different elements or to provide a simulation of depth or perspective.
Camera 324 can be a CMOS camera, a CCD camera, or any other type of camera capable of capturing and outputting compressed or uncompressed image data such as still images or video image data. In some embodiments, electronic device 300 can include more than one camera, allowing the user to switch, from one camera to another, or to overlay image data captured by one camera on top of image data captured by another camera. Image data output from camera 324 can be stored in, for example, an image buffer, which can be a temporary buffer residing in RAM 337, or a permanent buffer residing in ROM 338 or persistent memory 330. The image buffer can be, for example, a first-in first-out (FIFO) buffer. In some embodiments the image buffer can be provided directly to GPU(s) 302 and display subsystem 310 for display on left eye display 311 or right eye display 313 with or without a graphical overlay.
Electronic device 300 can include an inertial measurement unit (e.g., IMU 340) for measuring motion and orientation data associated with electronic device 300. IMU 340 can utilize an accelerometer 342, gyroscopes 344, and other sensors 346 to capture specific force, angular rate, magnetic fields, and biometric information for use by electronic device 300. The data capture by IMU 340 and the associated sensors (e.g., accelerometer 342, gyroscopes 344, and other sensors 346) can be stored in memory such as persistent memory 330 or RAM 337 and used by applications 334 and operating system 332. The data gathered through IMU 340 and its associated sensors can also be provided to networked devices through, for example, wireless communication system 306.
CPU(s) 301 can be one or more processors that operate under stored program control and executes software modules stored in a tangibly-embodied non-transitory computer-readable storage medium such as persistent memory 330, which can be a register, a processor cache, a Random Access Memory (RAM), a flexible disk, a hard disk, a CD-ROM (compact disk-read only memory), and MO (magneto-optical), a DVD-ROM (digital versatile disk-read only memory), a DVD RAM (digital versatile disk-random access memory), or other semiconductor memories.
Software modules can also be stored in a computer-readable storage medium such as ROM 338, or any appropriate persistent memory technology, including EEPROM, EAROM, FLASH. These computer-readable storage mediums store computer-readable instructions for execution by CPU(s) 301 to perform a variety of functions on electronic device 300. Alternatively, functions and methods can also be implemented in hardware components or combinations of hardware and software such as, for example, ASICs or special purpose computers.
The software modules can include operating system software 332, used to control operation of electronic device 300. Additionally, the software modules can include software applications 334 for providing additional functionality to electronic device 300. For example, software applications 334 can include applications designed to interface with systems like system 100 above. Applications 334 can provide specific functionality to allow electronic device 300 to interface with different data systems and to provide enhanced functionality and visual augmentation.
Software applications 334 can also include a range of applications, including, for example, an e-mail messaging application, an address book, a notepad application, an Internet browser application, a voice communication (i.e., telephony or Voice over Internet Protocol (VoIP)) application, a mapping application, a media player application, a health-related application, etc. Each of software applications 334 can include layout information defining the placement of particular fields and graphic elements intended for display on the augmented reality display (e.g., through display subsystem 310) according to that corresponding application. In some embodiments, software applications 334 are software modules executing under the direction of operating system 332. In some embodiments, the software applications 334 can also include audible sounds and instructions to be played through the augmented reality device speaker system (e.g., through left 321 and right speakers 323 of speaker subsystem 320).
Operating system 332 can provide a number of application protocol interfaces (APIs) providing an interface for communicating between the various subsystems and services of electronic device 300, and software applications 334. For example, operating system software 332 provides a graphics API to applications that need to create graphical elements for display on electronic device 300. Accessing the user interface API can provide the application with the functionality to create and manage augmented interface controls, such as overlays; receive input via camera 324, microphone 322, or input device 307; and other functionality intended for display through display subsystem 310. Furthermore, a camera service API can allow for the capture of video through camera 324 for purposes of capturing image data such as an image or video data that can be processed and used for providing augmentation through display subsystem 310. Additionally, a sound API can deliver verbal instructions for the user to follow, sound effects seeking the user's attention, success or failure in processing certain input, music for entertainment, or to indicate wait time to process a request submitted by the user of the device. The sound API allows for configuration of the system to deliver different music, sounds and instructions based on the user and other contextual information. The audio feedback generated by calling sound API is transmitted
In some embodiments, the components of electronic device 300 can be used together to provide input from the user to electronic device 300. For example, display subsystem 310 can include interactive controls on left eye display 311 and right eye display 313. As part of the augmented display, these controls can appear in front of the user of electronic device 300. Using camera 324, electronic device 300 can detect when a user selects one of the controls displayed on the augmented reality device. The user can select a control by making a particular gesture or movement captured by the camera, touching the area of space where display subsystem 310 displays the virtual control on the augmented view, or by physically touching input device 307 on electronic device 300. This input can be processed by electronic device 300. In some embodiments, a user can select a virtual control by gazing at said control, with eye movement captured by eye tracking sensors (e.g., other sensors 346) of the augmented reality device. A user gazing at a control may be considered a selection if the eyes do not move or have very little movement for a defined period of time. In some embodiments, a user can select a control by placing a virtual dot by moving the augmented reality device worn by the user by moving the head and tracked by gyroscopes sensor 344. The selection can be achieved by placing the dot on a certain control for a pre-defined period of time or by using a handheld input device (e.g., input devices 307) connected to the augmented reality device 300, or by performing a hand gesture.
Camera 324 can further include multiple cameras to detect both direct user input as well as be used for head tracking and hand tracking. As a user moves their head and hands, camera 324 can provide visual information corresponding to the moving environment and movements of the user's hands. These movements can be provided to CPU(s) 301, operating system 332, and applications 334 where the data can be combined with other sensor data and information related to the augmented information displayed through display subsystem 310 to determine user selections and input.
Moreover, electronic device 300 can receive direct input from microphone 322. In some embodiments, microphone 322 can be one or more microphones used for the same or different purposes. For example, in multi-microphone environments some microphones can detect environmental changes while other microphones can receive direct audio commands from the user. Microphone 322 can directly record audio or input from the user. Similar to the visual data from camera 324, audio data from microphone 322 can be provided to CPU(s) 301, operating system 332, and applications 334 for processing to determine the user's input.
In some embodiments, persistent memory 330 stores data 336, including data specific to a user of electronic device 300, such as information of user accounts or device specific identifiers. Persistent memory 330 can also store data (e.g., contents, notifications, and messages) obtained from services accessed by electronic device 300. Persistent memory 330 can further store data relating to various applications with preferences of the particular user of, for example, electronic device 300. In some embodiments, persistent memory 330 can store data 336 linking a user's data with a particular field of data in an application, such as for automatically providing a user's credentials to an application executing on electronic device 300. Furthermore, in various embodiments, data 336 can also include service data comprising information required by electronic device 300 to establish and maintain communication with a network.
In some embodiments, electronic device 300 can also include one or more removable memory modules 352 (e.g., FLASH memory) and a memory interface 350. Removable memory module 352 can store information used to identify or authenticate a user or the user's account to a wireless network. For example, in conjunction with certain types of wireless networks, including GSM and successor networks, removable memory module 352 is referred to as a Subscriber Identity Module (SIM). Memory module 352 can be inserted in or coupled to memory module interface 350 of electronic device 300 in order to operate in conjunction with the wireless network.
Electronic device 300 can also include a battery 362, which furnishes energy for operating electronic device 300. Battery 362 can be coupled to the electrical circuitry of electronic device 300 through a battery interface 360, which can manage such functions as charging battery 362 from an external power source (not shown) and the distribution of energy to various loads within or coupled to electronic device 300.
A set of applications that control basic device operations, including data and possibly voice communication applications, can be installed on electronic device 300 during or after manufacture. Additional applications or upgrades to operating system software 332 or software applications 334 can also be loaded onto electronic device 300 through data port 318, wireless communication system 306, memory module 352, or other suitable system. The downloaded programs or code modules can be permanently installed, for example, written into the persistent memory 330, or written into and executed from RAM 337 for execution by CPU(s) 301 at runtime.
As shown in
In some embodiments, augmented reality device 390 can include display devices 393. These display devices can be associated with left eye display 311 and right eye display 313 of
Referring back to
Data can be made available to system 100 through proprietary data sources 110 and external data sources 120. It will now be appreciated that the exemplary data sources shown for each (e.g., databases 111, 115, and 117, data source 113, data system 116, and predictive analysis engine 118 of proprietary data sources 110 and maps data 121, mood data 123, airport rules data 127, flight data 129, and location data 125 of external data sources 120) are not exhaustive. Many different data sources and types of data can exist in both proprietary data sources 110 and external data sources 120. Moreover, some of the data can overlap among external data sources 120 and proprietary data sources 110. For example, external data sources 120 can provide location data 125, which can include data about specific airports or businesses. This same data can also be included, in the same or a different form, in, for example, database 111 of proprietary data sources 110.
Moreover, any of the data sources in proprietary data sources 110 and external data sources 120, or any other data sources used by system 100, can be a Relational Database Management System (RDBMS) (e.g., Oracle Database, Microsoft SQL Server, MySQL, PostgreSQL, or IBM DB2). An RDBMS can be designed to efficiently return data for an entire row, or record, in as few operations as possible. An RDBMS can store data by serializing each row of data. For example, in an RDBMS, data associated with a record can be stored serially such that data associated with all categories of the record can be accessed in one operation. Moreover, an RDBMS can efficiently allow access of related records stored in disparate tables by joining the records on common fields or attributes.
In some embodiments, any of the data sources in proprietary data sources 110 and external data sources 120, or any other data sources used by system 100, can be a non-relational database management system (NRDBMS) (e.g., XML, Cassandra, CouchDB, MongoDB, Oracle NoSQL Database, FoundationDB, or Redis). A non-relational database management system can store data using a variety of data structures such as, among others, a key-value store, a document store, a graph, and a tuple store. For example, a non-relational database using a document store could combine all of the data associated with a particular record into a single document encoded using XML. A non-relational database can provide efficient access of an entire record and provide for effective distribution across multiple data systems.
In some embodiments, any of the data sources in proprietary data sources 110 and external data sources 120, or any other data sources used by system 100, can be a graph database (e.g., Neo4j or Titan). A graph database can store data using graph concepts such as nodes, edges, and properties to represent data. Records stored in a graph database can be associated with other records based on edges that connect the various nodes. These types of databases can efficiently store complex hierarchical relationships that are difficult to model in other types of database systems.
In some embodiments, any of the data sources in proprietary data sources 110 and external data sources 120, or any other data sources used by system 100, can be accessed through an API. For example, data system 116 could be an API that allows access to the data in database 115. Moreover, external data sources 120 can all be publicly available data accessed through an API. API 130 can access any of the data sources through their specific API to provide additional data and information to system 100.
Although the data sources of proprietary data sources 110 and external data sources 120 are represented in
In addition to providing access directly to data storage systems such as database 111 or data source 113, proprietary data sources 110 can include data system 116. Data system 116 can connect to one or multiple data sources, such as database 115. Data system 116 can provide an interface to the data stored in database 115. In some embodiments, data system can combine the data in database 115 with other data or data system 116 can preprocess the data in database 115 before providing that data to API 130 or some other requestor.
Proprietary data sources 110 can further include predictive analysis engine 118. Predictive analysis engine 118 can use data stored in database 117 and can store new data in database 117. Predictive analysis engine can both provide data to other systems through API 130 and receive data from other systems or components through API 130. For example, predictive analysis engine 118 can receive, among other things, information on purchases made by users, updates to travel preferences, browsed services, and declined services. The information gathered by predictive analysis engine 118 can include anything data related to both information stored in the other components of proprietary data sources 110 as well as information from external data sources 120.
Using this data, predictive analysis engine 118 can utilize various predictive analysis and machine learning technologies including, among others, supervised learning, unsupervised learning, semi-supervised learning, reinforcement learning, and deep learning. These techniques can be used to build and update models based on the data gathered by predictive analysis engine 118. By applying these techniques and models to new data sets, predictive analysis engine 118 can provide information based on past behavior or chooses made by a particular individual. For example, predictive analysis engine can receive data from augmented reality device 145 and augmented reality system 140 regarding a particular individual. Predictive analysis engine 118 can use profile information and past purchase information associated with that individual to determine travel services, such as seat upgrades or in-flight amenities, that the individual might enjoy. For example, predictive analysis engine 118 can determine that the individual has never chosen to upgrade to first class but often purchases amenities such as premium drinks and in-flight entertainment packages. Accordingly, predictive analysis engine can determine that the individual can be presented with an option to purchase these amenities and not an option to upgrade their seat. It will now be appreciated that predictive analysis engine 118 is capable of using advanced techniques that go beyond this provided example. Proprietary data sources 110 can represent various data sources (e.g., database 111, data source 113, database 115, data system 116, database 117, and predictive analysis engine 118) that are not directly accessible or available to the public. These data sources can be provided to subscribers based on the payment of a fee or a subscription. Access to these data sources can be provided directly by the owner of the proprietary data sources or through an interface such as API 130, described in more detail below.
Although only one grouping of proprietary data sources 110 is shown in
For example, the data sources in proprietary data sources 110 can contain data related to the airline travel industry. In this example, database 111 can contain travel profile information. In addition to basic demographic information, the travel profile data can include upcoming travel information, past travel history, traveler preferences, loyalty information, and other information related to a traveler profile. Further in this example, data source 113 can contain information related to partnerships or ancillary services such as hotels, rental cars, events, insurance, and parking. Additionally, database 115 can contain detailed information about airports, airplanes, specific seat arrangements, gate information, and other logistical information. As previously described, this information can be processed through data system 116. Accordingly, in this exemplary embodiment, the data sources in proprietary data sources 110 can provide comprehensive travel data.
Similar to proprietary data sources 110, external data sources 120 can represent various data sources (e.g., maps data 121, mood data 123, airport rules data 127, flight data 129, and location data 125). Unlike proprietary data sources 110, external data sources 120 can be accessible to the public or can be data sources that are outside of the direct control of the provider of API 130 or system 100.
Although only one grouping of external data sources 120 is shown in
Moreover, the specific types of data shown in external data sources 120 are merely exemplary. Additional types of data can be included and the inclusion of specific types of data in external data sources 120 is not intended to be limiting.
As shown in
As previously described, API 130 can provide a unified interface for accessing any of the data available through proprietary data sources 110 and external data sources 120 in a common interface. API 130 can be software executing on, for example, a computing device such as computing device 200 described in relation to
API 130 can combine data from one or more data sources (e.g., data stored in proprietary data sources 110, external data sources 120, or both) into a unified response. Additionally, in some embodiments API 130 can process information from the various data sources to provide additional fields or attributes not available in the raw data. This processing can be based on one or multiple data sources and can utilize one or multiple records from each data source. For example, API 130 could provide aggregated or statistical information such as averages, sums, numerical ranges, or other calculable information. Moreover, API 130 can normalize data corning from multiple data sources into a common format. The previous description of the capabilities of API 130 is only exemplary. There are many additional ways in which API 130 can retrieve and package the data provided through proprietary data sources 110 and external data sources 120.
Augmented reality system 140 can interact with augmented reality device 145 and API 130. Augmented reality system 140 can receive information related to augmented reality device 145 (e.g., through wireless communication system 306 of
Augmented reality system 140 can process the information received and formulate requests to API 130. These requests can utilize identifying information from augmented reality device 145, such as a device identifier or authentication credentials from the user of augmented reality device 145.
In addition to receiving information from augmented reality device 145, augmented reality system 140 can push updated information to augmented reality device 145. For example, augmented reality system 140 can push updated flight information to augmented reality device 145 as it is available. In this way, augmented reality system 140 can both pull and push information from and to augmented reality device 145. Moreover, augmented reality system 140 can pull (e.g., via API 130) information from external data sources 120. For example, if a passenger at the airport requests to be checked-in, augmented reality system 140 can acquire travel reservation information and guide the agent to help check-in the passenger by providing the itinerary information on augmented reality device 145 via a customized user interface (e.g., as provided in an itinerary information window 520 of
Using the information from augmented reality device 145, augmented reality system 140 can request detailed information through API 130. The information returned from API 130 can be combined with the information received from augmented reality device 145 and processed by augmented reality system 140. Augmented reality system 140 can then make intelligent decisions about updated augmented reality information that should be displayed by augmented reality device 145. Exemplary use cases of this processing are described in more detail below in relation to
Augmented reality system 140 can be a group of software modules, such as mood analyzer module 411, audio/video analyzer module 412, trigger words map 413, noise cancellation module 414, and lip sync module 415 implemented on computing device 200. Mood analyzer module 411 helps determine the mood of a person in the field of view of an augmented reality device. Mood analyzer module 411 determines the mood based on both audio and video information of the person. In some embodiments, mood analyzer module 411 takes into consideration historical information of the person whose mood is being analyzed. Mood analyzer module 411 accesses such historic information using API 130 to connect to various data sources (e.g., proprietary data sources 110 and external data sources 120 in
In some embodiments, mood analyzer module 411 may further combine the possible interactions possible based on the historic information to different moods. For example, a traveler who has just completed a long leg may not appreciate a solicitation to surrender their seat on a subsequent connection in exchange for a travel voucher, thereby setting the mood for this interaction to be non-amiable. Alternatively, the same traveler might be interested in hearing about a lounge access to stretch and freshen up and so mood analyzer module 411 determines the mood to be amiable for this interaction.
Audio/video analyzer module 412 analyzes video and audio content received by the system (e.g., integrated augmented reality system 100 of
Audio/video analyzer module 412 aids in communicating with audio and video as input commands and data to the system 100. Audio/video analyzer module 412 may allow audio communication with a speech-to-text engine to convert the audio to text-based commands and information. Audio/video analyzer module 412 may allow video-based communication by determining when the person with whom the agent is interacting with is actually talking and only then extract data. For example, multiple travelers attempting to check-in provide travel details including destination addresses. The audio/video analyzer module 412 can analyze the video to determine when the audio received by the augmented reality device is from the intended traveler versus other nearby travelers such as by analyzing the lip movement.
In some embodiments, video analyzer module 412 may utilize the captured video to determine the mood of the person. The captured video may be chunked by frame and a single frame/image may be used to determine the facial expressions and predict mood of the person. Augmented reality system 140 may pass the facial expression data to predictive analysis engine 118 to determine the mood of the person. In some embodiments, the facial expressions may be directly compared to mood data 123 to determine the mood of the person. In some other embodiments, audio captured by microphone 322 is used to determine the mood of the person. Text obtained from parsed audio may help determine the mood of the person. Like video analysis, audio captured by augmented reality system 140 may be transmitted to predictive analysis engine 118 along with mood data 123 to determine the mood of the person.
A trigger words map 413 is a table of words mapped to trigger words, which are a sequence of one or more words that uniquely map to a sequence of actions to be taken and information to be shown. In some embodiments, trigger words map 413 may be stored as part of proprietary data source and stored in databases 115 or 117. Audio captured using microphone 322 and received using input devices 307 may be transferred to the audio/video analyzer module to parse the audio prior to requesting trigger words map 413 to help determine possible actions to execute and information to retrieve.
A lip sync module 414 can be used to determine whether the captured audio was from an individual who the user of the augmented reality device is interacting with. Augmented reality system 140 analyzes the captured audio and the lip movement of an individual to determine the point in time the captured audio is to be stored versus discarded. For example, lip sync module 414 can help determine whether received audio corresponds to the targeted individual or from other people, and can be useful in crowded or noisy environments (e.g., such as an airport). In some embodiments, lip sync module 414 can be part of audio/video analyzer module 412.
Moreover, noise cancellation can be used when augmented reality devices are used in public spaces to interact with customers and help serve them. One complexity is determining when someone is interacting with the user of the augmented reality device. A noise cancellation module 415 may work in combination with lip sync module 414 or audio/video analyzer module 412 to determine whether certain audio needs to be marked noise. In some embodiments noise cancellation module 415 may consider every portion of audio with no lip movement recognized by lip sync module 414 to be noise. In some embodiments, noise cancellation module 415 may discard portions of audio only when there overlap between lip movement as recognized by lip sync module but does not sync with the captured audio.
In
Referring back to
Customized user interface 500 can represent graphical overlays on viewport 391 resulting in customized user interface 500 for interacting with intended person 502. For example, the graphical elements of customized user interface 500 can include windows displaying information about intended person 502 in the field of view. Elements within an information window of customized user interface 500 may be grouped by topic such as passenger information and itinerary information shown using PASSENGER information window 510 and ITINERARY information window 520. Customized user interface 500 graphical elements further include possible actions elements on an information group displayed in an information window. Action elements are displayed as a trigger word sequence, which when uttered cause an action related to the information group to be taken. PASSENGER information window 510 includes a single action element with the trigger word sequence “A VALUED CUSTOMER” 512. An action element may be a method or a software program. In some embodiments, an action element may be an API call and some or all parameters to the API call are determined based on the trigger word sequence. A trigger word sequence thus acts as an abstraction of the action element. A single information window may be associated with multiple action elements. For example, ITINERARY information window 520 is associated with two action elements with trigger word sequences “LOOK AT SEATS” 522 and “YOUR ITINERARY” 524. Customized user interface 500 graphical elements may further include visual indicators showing ancillary information. Customized user interface 500 includes a “Training mode on” 504 visual indicator providing ancillary information that the augmented reality device may be running in training mode and may have limited functionality. In some embodiments, the visual indicator 504 may further indicate that the augmented reality device 390 may assist the user through the process by providing audible instructions, gradually revealing additional information (i.e., progressive disclosure), etc.
Information window graphical elements in customized user interface 500 may be presented as several non-overlapping windows surrounding intended person 502. For example, customized user interface 500 includes PASSENGER and ITINERARY information windows 510 and 520 displayed in a non-overlapping fashion on left and right-hand side of intended person 502, respectively. In other embodiments, windows may be stacked and revealed in a sequential order. In some embodiments, some of the customized user interface information windows may be disabled or hidden until action elements associated with currently displayed information windows are considered complete. The information windows may be considered complete by interacting with the action elements by utterance of trigger word sequences. In some embodiments, customized user interface 500 may be displaying windows related to multiple intended people at the same time. For example, a traveler wanting to check-in their whole family at an airport can result in information windows displaying all passengers' information in one or multiple windows.
Information windows display information that may be fetched from both proprietary data sources 110 and external data sources 120 by augmented reality system 140 and transferred to augmented reality device 390 to be presented as customized user interface 500. For example, the augmented reality system can query proprietary data sources as well as external data sources to retrieve the itinerary of intended person 502. The information can be directly displayed as for example, flight and seat number and departure time and gate number. Additionally, augmented reality system 140 could combine the intended person information with possible interactions to reveal additional individual information.
The underlying information under each information window may be linked to action elements represented by trigger word sequences. Reciting the trigger word sequence may reveal additional information and action elements. For example, the user of the augmented reality device upon saying the trigger word sequence ‘LOOK AT SEATS’ 522 may result in a new window showing a seat map, available seats, and the currently assigned seat. The trigger words of a trigger word sequence can be part of longer sentence preserving the order of the words in the trigger word sequence. For example, the sentence “Let's take a LOOK AT your SEATS,” will match the trigger word sequence “LOOK AT SEATS” 520 as it has all the words of the trigger word sequence present in the sentence in order within a particular time frame. In some embodiments, there may be multiple trigger word sequences with similar meaning associated with a single action element. Multiple trigger word sequences with similar meaning might be predetermined or may be determined from the interaction between the user of the augmented reality device 390 and intended person 502. The similarity may be determined by comparing the meaning of trigger word sequences associated with the action element during setup with the new word sequence. For example, the intended person may utter the words “Are there any aisle seats still available?” and the user of the augmented reality device may respond by saying “Let's take a look” resulting in the system identifying an action element associated with trigger word sequence “LOOK AT SEATS” 520.
The revised user interface presented as part of customized user interface 500 may be an additional window shown. In other embodiments, the new window may replace inline an existing window. The new window may be the only window displayed. In some embodiments, saying the trigger word sequence may bring the window into focus and display more options previously hidden. Actions elements may be hidden due to space constraints or not displayed as they are lesser important or infrequently performed actions. It will be shown in
In some embodiments, the user interface's only interaction is to dismiss or hide the information window. The information shown in the information window is meant to prompt the user of the augmented reality device to initiate appropriate conversation topics. For example, the customized user interface 500 includes PASSENGER information window 510 displaying information in the form of hints to user of the augmented reality device. The user may choose to utilize one or more hints prior to reciting the trigger word sequence “A VALUED CUSTOMER” 512 representing the only action element linked to the window, which expands the PASSENGER information window 510, revealing additional information about the valued customer.
In some embodiments multiple action elements may be associated with a single information window. For example, in
Visual indicators presenting ancillary information may always be present. In some embodiments, visual indicators may be requested manually. In other embodiments, they may be automatically displayed based on context. Visual indicators may be additional information (e.g., hints 514 and 516 shown along with information windows) or state of device (e.g., training mode status 504). Visual indicators may be shown or hidden based on an experience level of the user of the augmented reality device. For example, new updates to the user interface may result in training mode automatically turning on. Further, in some embodiments, training mode might turn off after interacting with the augmented reality device a required minimum number of times. In some embodiments, training mode may turn off after interacting with the user for a defined time period or usages. In some embodiments, the experience level may be tied to the work experience. In some embodiments, the experience level may be tied to a particular role and any change in role may provide access to more features. In turn, those new features may be available only in training mode until a certain experience level is met.
The additional information windows shown in customized user interface 505 may include optional information, which would not be displayed at the onset of interaction with the intended person. For example, the UPSELL information window 542 provides the ability to upsell the intended person 592 with additional services offered by the facility that employs the user of the augmented reality device 145. Such information is optional and does not stop the intended person from being served for the purpose the user of augmented reality devices interacted with the intended person.
In some embodiments additional information windows can be shown when training mode is turned off by deeper evaluation of the information related to the intended person in the field of view of the augmented reality device at the onset of the interaction. For example, the UPSELL information window 540 and TRAVEL DOCUMENTS information window 530 of customized user interface 505 evaluate the historic and real-time information about the intended person to determine the amicability and trust levels and accordingly prepare and display the information windows 530 and 540 with the relevant information and action elements.
The user of the augmented realty device viewing customized user interface 505 may interact with information windows by reciting the trigger word sequences representing action elements in a sequential order. Example sequential orders include clockwise or anti-clockwise manner. Alternatively, the user may decide to directly jump to final possible interaction with the intended person. For example, the user of the augmented reality device 145 display customized user interface 505 may interact with information windows in a clock wise manner beginning with ITINERARY information window or can recite “CHECK IN NOW” trigger word sequence to directly check the intended person. In some embodiments, the user of augmented reality device in
In some embodiments, customized user interface 505 may be associated with multiple actions elements that can be activated when trigger words sequences are used in any order. For example, an information window 550 is associated with three action elements with trigger word sequences “CHECK BAGS” 552, “PAY NOW” 554 and “CHECK IN NOW” 556. In some embodiments, some actions may be disabled on interacting with other actions. For example, by selecting action element associated with trigger word sequence “CHECK IN NOW” 556, there may be no more opportunity to check bags. An alternative selection may result in other options being shown as the selected option. In another example, the amount due may be zero (as indicated by visual indicator “AMOUNT DUE” 558), in which case the trigger word sequence “PAY NOW” 554 and associated action element would be disabled.
In an exemplary interaction a user viewing customized user interface may begin by using information hints displayed in PASSENGER information window 510 of customized user interface 505. The user may continue interacting further to collect missing address information by interacting with TRAVEL DOCUMENTS information window 530. It will be shown in
Referring back to
Referring back to
In training mode, the augmented reality system may display information windows in a sequential order as the user of the augmented reality device interacts with the intended person 502 using the prompts provided by information windows displayed on the viewport 391 of augmented reality device. For example, in training mode the customized user interface 600 is prepared and displayed to the user of the augmented reality device on reciting trigger word sequence “YOUR ITINERARY” 524. A user (when not in training mode) can directly see the option to open the TRAVEL DOCUMENTS information window 630 of customized user interface 600. As show in
In some embodiments, in training mode, a deeper evaluation of the intended person may be performed as the user of the augmented reality device proceeds to interact with the information windows displayed in sequential order. As mentioned in
The amount of information that can be automatically retrieved from data sources to populate the information window may depend on the trust levels of the intended person. In some embodiments, the system may expect to confirm what has been retrieved by the augmented reality system 140 and in other embodiments it may be completely missing. For example, in
Information can be entered into the augmented reality system by typing with a keyboard or by capturing audio. For example, in customized user interface 600 the address information can be entered by speaking into the augmented reality system microphone 322, which is indicated by visual indicator 637. In some embodiments the information is entered by scanning inanimate objects. More on this will be discussed in
The information element may preview temporary information, which may be used as input to search for further information. Additional information may be retrieved by submitting as search string the text retrieved by parsing captured audio. For example, destination address information element 636 of customized user interface 602 in
A user of the augmented reality device may interact with one or more interaction window elements prior to changing focus to a different information window element. For example, several elements of a travel documents information window 630 can be entered and reviewed. The user can always request the interface to save any changes to the information elements and hide TRAVEL DOCUMENTS information window 630 at any time by uttering trigger word sequence “OK FINISHED THERE” 632 or a trigger word sequence with similar meaning. The augmented reality device 145 may transmit the updated information to be stored in database 111 of proprietary data sources 110. In training mode, reciting the trigger word sequence may result in the next information window in the sequence to be displayed. When the training mode is turned off, the augmented reality system may return to previously displayed customized user interface. For example, when the training mode is turned off, reciting the trigger word sequence “OK FINISHED THERE” 632 can result in augmented reality system 140 displaying customized user interface 505.
In training mode, interaction with customized user interfaces of an augmented reality device may interleave information windows for required steps with information windows for optional steps when displaying information windows in customized user interface in sequential order. For example, a user of the augmented reality device reciting trigger word sequence “OK, FINISHED THERE” 632 in
Unlike the information window 630 of
The information window 740 with optional action elements may be visible and customized based on the identity of the intended person 502. The identity information may be derived from historical information. In some embodiments, the information shown in an information window may be customized based on the historical information. Historical information could be based on a recent activity or cumulative information over a period of time. For example, historical information can be travel history and cumulative information can be a membership status determined based on the travel history. As shown in
In some embodiments, the identity information may be derived from real-time information. Real-time information can be verbal or visual information currently available. The real-time information visual information can be captured by the augmented reality device. Real-time visual information can include facial expressions to determine the mood of intended person 502, which may be used in customizing the user interface 700. For example, intended person 502 mood is determined as amiable resulting in upsell information window 740 include several action elements represented by trigger clauses “OK, CABIN UPGRADE” 742, “OK, LOUNGE ACCESS” 744 and “NOTHING? NO PROBLEM” 746 to process passenger ticket upgrade or airport lounge access purchase. The number of optional action elements associated with an information window may also depend on the historical and real-time information. For example, a customer who travels regularly by business class may be more interested in the cabin upgrade. Alternatively, a traveler with family members and a long layover may prefer a lounge access. Accordingly, using the information about the person can assist the user of the augmented reality device to provide a more customized experience for the person. Other options based on historical information may include onboard internet, inflight entertainment package, onboard meal or snacks, insurance etc.
User of the augmented reality device 145 interacting with intended person 502 using customized user interface 700 may select one or more optional action elements followed by reciting trigger word sequence “NOTHING? NO PROBLEM” to dismiss to current information window and access the next information window. Similar to results of reciting trigger word sequence “OK, FINISHED THERE” 632, reciting “NOTHING? NO PROBLEM” results in next information window in the sequence or going back to original customized user interface being displayed as part of the customized user interface.
Certain steps involving interacting with inanimate objects, such as recognizing the type of the objects or measuring the dimensions of the object may be performed as part of an interaction with a person. For example, on completion of optional action elements of UPSELL information window 740 of customized user interface 700 of
Interaction with inanimate objects may be determined based on the role of the user of the augmented reality device. For example, when a user of the augmented reality device is in the gate-agent role, the customized user interface shown in
The customized user interface shown in
A system may continue to interact with objects for accessing information after interacting with inanimate objects. The user of the augmented reality device may be redirected to the original customized user interface. In some embodiments, the customized user interface may include summary of all information windows the user has interacted and providing the ability to update them. For example, user of augmented reality device interacting with intended person 592 on completion of check-in by measuring carry-on baggage dimensions and paying the due amount (as will be discussed in
In some embodiments augmented reality device 390 may need a physical object to be placed in a position corresponding to information in an empty information window. The physical object placed in the empty information window can be initiated by reciting a trigger word sequence. For example, in
The trigger word sequence to interact with inanimate objects may only be visible after placing the physical object in the empty information window. In some embodiments, the trigger word sequence does not appear until the augmented reality system recognizes the type of object. For example, if the physical object is a credit card 912, then the system 140 may display a trigger word sequence 914 to scan the card details. Alternatively, if the physical object is a plane pet kennel, the trigger word sequence may be to take a picture for future verification of true owner when returning the pets in the pet kennels.
In some embodiments, the customized user interface may include information of a physical object transferred to an information window in digital space. The augmented reality device may scan the physical object alpha numeric characters and display them in an information window. In some embodiments the information showing information transferred from a physical object to the information window may be associated with an action element. For example, in
In certain embodiments, augmented reality device may display a customized user interface made up of information windows with read only information. The read only access may be due to access restrictions or based on the role of the user. For example, in
In some embodiments the identity information may include auxiliary information of the user of the augmented reality device. In some embodiments, the auxiliary information is based on the current role of the user of the augmented reality system in a facility. The facility can be a physical facility (e.g., building) or a business offering products and services. The current role of the user may depend on the employment position within a facility. For example, a gate check-in agent in an airport facility may not only have a check-in agent role but may also have access to sell tickets and services as displayed in upsell information window 740.
In some embodiments, the current role of the user of the augmented reality system may change in real-time. For example, a user in the airport facility may be assigned the role of a check-in agent when the user is in the departure check-in area of the airport facility as shown in customized user interface 700 and the same user role changes to gate agent when the user moves to the gate area as shown in
At step 1110, augmented reality device (e.g., augmented reality device 390 of
At step 1120, an augmented reality system 140 accesses customizable data set to populate the customizable user interface. The customizable information may include one or more trigger word sequences. The customizable data set may include generic trigger word sequences at the beginning of an interaction. The generic trigger word sequences may include common forms of interaction with an individual. In some embodiments, the generic trigger word sequences may include salutation or greetings one uses when interacting with another individual. For example, when a user (e.g., airline check-in agent) of the augmented reality system 140 begins interacting with an intended person (e.g., intended person 502 of
At step 1130, augmented reality system captures audio from the user of the augmented reality device (e.g., augmented reality device 390 of
At step 1140, after capturing audio, the system can parse the captured audio data to identify whether a trigger word sequence (e.g., action element 524 from
After identifying the trigger word sequence, the augmented reality system 140 can provide the identified trigger word sequence as input to determine the sources of information to display and the associated action elements. Trigger words map module 413 in the augmented reality system identifies the external and internal sources of information in system 100 to query for information. The system can prepare a customized user interface (e.g., customized user interface 500 of
At step 1150, augmented reality system 140 may identify an action element mapped to a trigger word sequence. An augmented reality system 140 delegates to trigger words map 413 to lookup the trigger word sequence and the mapped action to perform for the matched trigger word sequence.
At step 1160, augmented reality system 140 may update the user interface based on the identified action elements. In some embodiments, updating user interface may involve query data sourced defined in the identified action element and grouping them. Augmented reality system 140 may query one or more data sources (e.g., flight data 129 and mood data 123 of
Augmented reality system 140 may group information retrieved from one or more data sources by topic. The grouping of information may further be based on entities involved in the interaction resulting in the customized user interface being updated. For example, as shown in
Augmented reality system 140 may create information window including grouped information and the trigger word sequence. In some embodiments, the trigger word sequence included along with the grouped information in an information window may help access further information. The further information may be present already in the system or needs to be requested from the intended person 502 with whom the user of the augmented reality system 140 is interacting with. For example, as shown in
Augmented reality system 140 may transmit the information to an augmented reality device (e.g., augmented reality device 390 of
The system can provide (step 1160) the updated customized user interface along with other relevant information to the augmented reality device for display (e.g., as customized user interface 500 in
Reference is now made to
At step 1210, an augmented reality system (e.g., augmented reality system 140) captures audio that include audio of an intended person in a field of view of the augmented reality device (e.g., augmented reality device 390 or device 145). The augmented reality device captures the audio using one or more microphones (e.g., microphone 322 of
At step 1220, augmented reality system 140 may capture video of the intended person in the field of augmented reality device. The augmented reality device 390 may capture video using camera 324. In some embodiments the captured video has embedded audio. Step 1210 may be skipped or captured audio ignored when utilizing the audio from the video stream. In some embodiments, the captured audio only includes the trigger word sequence. The captured audio is parsed to text to identify a trigger word sequence using trigger words map 413.
At step 1230, augmented reality system 140 syncs captured audio to lip movement of an intended person in the captured video. For example, augmented reality system 140 transmits the captured audio and video in steps 1210 and 1220 to lip sync module 415 to determine when the audio matches the movement of the lips of the intended person in the video. In some embodiments, the video may include multiple intended persons in the field of view resulting in various parts of the audio synced to different video sections.
At step 1240, augmented reality system 140 filters any audio that is not synced with the lip movement in the captured video of the intended person. In some embodiments, the system filters by first reviewing the complete audio and video and marking the synced sections from step 1230 and clipping those marked sections. In some embodiments, augmented reality system 140 marks captured audio for extraction when the lip movement in the captured video syncs with the captured audio. In some embodiments, augmented reality system marks a certain length of audio for extraction. In some other embodiments, the augmented reality system continues to mark audio for extraction as long as the lips of the intended person in the video sync to the captured audio. A mark is added to the audio file when the lip movement in the video stream syncs with the audio stream. Another mark is added to the audio file when the lip movement in the video stream stops syncing with the audio. The marks added to the file may be time stamps of start and end points to clip, stored in a separate file with the audio file name they are associated with listed in the same file. The augmented reality system 140 requests the lip sync module 414 to identify the synced sections between the audio and video streams captured by the augmented reality device 145. In some embodiments multiple people may be in field of view of the augmented reality device and lip sync module 414 may request audio/video analyzer module 412 to crop or extract the portions of the video based on the lip movement and group the cropped into sets by each person in field of view.
In some embodiments, augmented reality system 140 clips the captured audio marked for extraction. The markers indicate the starting and end in points in the audio stream when person in the augmented reality device field of view has spoken. The rest of the audio is discarded as external noise may include both human voices and other noises. Lip sync module 414 may request noise cancellation module 415 to discard the audio not between marked sections in step 1240. In some embodiments, the audio considered to have information is stored in the data store. In such cases, the augmented reality system may decide to not discard the non-synced audio. For example, when the audio matches the signature of the audio of previously synced audio signature within the same interaction, it can indicate that the person is part of a group of individuals interacting together with the user of the augmented reality device. The system can request audio/video analyzer module 412 to compare audio signature with the signature in the non-synced portions of the captured audio.
At step 1310, augmented reality system 140 may determine the role of a user of an augmented reality device (e.g., augmented reality device 145 of
At step 1320, augmented reality system 140 finds information based on the role of the user. Finding customized information includes querying data sources based on the role. In some embodiments the type of data sources that can be queried and the entries within a data source can be accessed are based on the role. In some embodiments, the queried information is filtered based on role restrictions prior to presenting to the user. For example, user role based on experience level can be determined by querying usage statistics to display all information at once or in a sequential order. The user of the system in
At step 1330, a change in role of the user of the augmented reality device (e.g., augmented reality device 390 of
At step 1340, display is updated based on customized information associated with a changed role. The updated customized information is displayed on the augmented reality device (e.g., augmented reality device 390 of
At step 1410, augmented reality system 140 may identify an object in the field of view. The user of the augmented reality device 390 may be directed through customized user interface to access information of a certain type and the intended person with whom the user of augmented reality device is interacting with may point to the inanimate object, which may provide the information required by the user. For example, the customized user interface on capturing trigger word sequence “CHECK IN NOW” 556 can recommend the user to look for a carry-on baggage and measure its dimensions requiring the user to change his/her focus from the intended person to a carry-on baggage in the surrounding area.
At step 1420, augmented reality system 140 may determine if the object is a relevant object to measure in a facility where the augmented reality system is being used. Relevancy of the object may be determined by identifying the type of the object and looking it up in the list allowed types. The type of the object can be recognized using the audio/video analyzer module 412 and the look up can be performed by querying the proprietary data sources and searching if the identified type is listed as allowed type of object. For example, the audio/video analyzer module 412 receives an image of a suitcase during a check-in process in an airport facility and identifies it as an allowed type of object for carry-on. In another example, the audio/video analyzer module 412 receives an image of a baby stroller and determines it is a not an allowed type for carry-on and ignores for measuring its dimensions (at which point the method ends 1499). The audio/video analyzer module may use a neural network and compare the received image of the object with allowed object type images to find the closest match and in turn determine the type of the object.
If the object is a relevant object, at step 1430, augmented reality system 140 may identify visible surfaces of the object parallel to X, Y, and Z-axes relative to a plane on which the object is rested. In some embodiments, an object may have several visible surfaces and those not parallel to X, Y, and Z axes are discarded. In circumstances where no visible surface is parallel to a certain axis, a virtual rectangle is created parallel to the axis and considered the visual surface of the object In order to measure dimension along the certain axis using the virtual rectangle surface, the length and width of the virtual rectangle surface is increased or decreased to intersect the identified parallel visible surfaces along other axes. This helps make sure a created surface does not extend beyond the maximum dimension amount along axis to which it is parallel. The virtual rectangle surface may need to be moved along a perpendicular axis if the rectangle is away from the actual object.
At step 1440, augmented reality system 140 may identify the edges of a visible surface of the object. The augmented reality system may utilize audio/video analyzer module 412 to determine the edges of the surface using an image processing algorithm (e.g., Canny, Sobel edge detection algorithm).
At step 1450, augmented reality system 140 may calculate the distance between the identified edges of a surface. Calculating the distance between two edges may require drawing lines between two edges of the visible or virtual rectangle surface identified in step 1440 and are parallel to the axis associated with the surface (surface is parallel to the axis). The length of the lines between two edges of the visible surface along the X, Y, and Z axes identified in step 1450 are determined using a ruler application in applications 334 of
At step 1470, augmented reality system 140 may display the lines with longest length along X, Y, and Z-axes as dimensions of the object. For example, in customized user interface 802 length of
Although the previous systems are described in terms of a travel context, the system can be used for many different domains. The features used and data that is incorporated can be based on the specific domain in which the disclosed embodiments are deployed.
Example embodiments are described above with reference to flowchart illustrations or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flowchart illustrations or block diagrams, and combinations of blocks in the flowchart illustrations or block diagrams, can be implemented by computer program product or instructions on a computer program product. These computer program instructions may be provided to a processor of a computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a hardware processor core of a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium form an article of manufacture including instructions that implement the function/act specified in the flowchart or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart or block diagram block or blocks.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a non-transitory computer readable storage medium. A computer readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM, EEPROM or Flash memory), an optical fiber, a cloud storage, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, IR, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for example embodiments may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The flowchart and block diagrams in the figures illustrate examples of the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or flowchart illustration, and combinations of blocks in the block diagrams or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
It is understood that the described embodiments are not mutually exclusive, and elements, components, materials, or steps described in connection with one example embodiment may be combined with, or eliminated from, other embodiments in suitable ways to accomplish desired design objectives.
In the foregoing specification, embodiments have been described with reference to numerous specific details that can vary from implementation to implementation. Certain adaptations and modifications of the described embodiments can be made. Other embodiments can be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only. It is also intended that the sequence of steps shown in figures are only for illustrative purposes and are not intended to be limited to any particular sequence of steps. As such, those skilled in the art can appreciate that these steps can be performed in a different order while implementing the same method.