Techniques to present location information for social networks using augmented reality

Techniques to present location information using augmented reality are described. An apparatus may comprise an augmentation system operative to augment an image with information for an individual, the image having a virtual object representing a real object. The augmentation system may comprise a location component operative to determine location information for the real object, a virtual information component operative to retrieve location information for an individual, and a proximity component operative to determine whether location information for the real object substantially matches location information for the individual. The augmentation system may further comprise an augmentation component operative to augment the virtual object with information for the individual to form an augmented object when the location information for the real object substantially matches the location information for the individual. Other embodiments are described and claimed.

BACKGROUND

Online services have led to generation and storage of vast amounts of information accessible via a network. For instance, popular and fast-growing social networking systems (SNS) allow members to author and publish information about themselves for consumption by other members. As online information grows, new techniques are needed for human-computer interaction to allow a user to organize and access computerized information in a meaningful way. Further, techniques are needed to match current user lifestyles, typically characterized by speed, mobility and convenience.

One class of technology potentially capable of providing such advantages is referred to as “Augmented Reality.” Augmented reality attempts to merge or “augment” a physical environment with a virtual environment to enhance user experience in real-time. Augmented reality techniques may be used to overlay useful computer-generated information over images of a real-world environment. Augmented reality techniques employ the use of video imagery of a physical real-world environment which is digitally processed and modified with the addition of computer-generated information and graphics. For example, a conventional augmented reality system may employ specially-designed translucent goggles that enable a user to see the real world as well as computer-generated images projected over the real world vision. Other common uses of augmented reality systems are demonstrated through professional sports, where augmented reality techniques are used to project virtual advertisements upon a playing field or court, first down or line of scrimmage markers upon a football field, or a “tail” following behind a hockey puck showing a location and direction of the hockey puck.

Although developing quickly, advancement of augmented reality techniques have not yet matched the speed of evolution for other online services, such as SNS services. This technology gap provides a substantial need for enhanced augmented reality techniques capable of allowing a user to access growing volumes of online information in an efficient and effective manner. It is with respect to these and other considerations that the present improvements have been needed.

SUMMARY

Various embodiments are generally directed to techniques to present location information using an augmented reality system. Some embodiments are particularly directed to techniques to augment or modify an image having virtual objects representing real objects from a real-world environment with information for one or more individuals. Examples of information may include without limitation location information and/or contact information, among other types of useful information.

In one embodiment, for example, an apparatus may comprise an augmentation system operative to augment an image with information for an individual, the image having a virtual object representing a real object. The augmentation system may comprise a location component operative to determine location information for the real object, a virtual information component operative to retrieve location information for an individual, and a proximity component operative to determine whether location information for the real object substantially matches location information for the individual. The augmentation system may further comprise an augmentation component operative to augment the virtual object with information for the individual to form an augmented object when the location information for the real object substantially matches the location information for the individual. Other embodiments are described and claimed.

DETAILED DESCRIPTION

Various embodiments are generally directed to techniques to present information about one or more individuals using an augmented reality system. Some embodiments are particularly directed to techniques to augment or modify an image having virtual objects representing real objects from a real-world environment with information for one or more individuals. Examples of information may include without limitation location information and/or contact information for an individual, among other types of information. In this manner, a user may receive a real-world image, and view location and contact information for individuals located within the real-world image in real-time. For instance, a user may utilize a mobile device to record still images (e.g., photographs) or moving images (e.g., video) of a city street, and present the still or moving images on a display with location information and/or contact information for individuals currently located within a building, vehicle or other physical object captured with the image. Furthermore, the mobile device may track an individual as they move within the captured images. A user may then select contact information for an individual directly from the display using an input device (e.g., a touch-screen or pointer) to initiate communications with the individual. As a result, the embodiments can improve affordability, scalability, modularity, extendibility, or interoperability for an operator, device or network.

FIG. 1illustrates a block diagram for an augmented reality system100. In one embodiment, for example, the augmented reality system100may comprise an augmentation system120. In one embodiment, the augmentation system120may comprise a computer-implemented system having multiple components122,124,126,128and130. As used herein the terms “system” and “component” are intended to refer to a computer-related entity, comprising either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be implemented as a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers as desired for a given implementation. The embodiments are not limited in this context.

In the illustrated embodiment shown inFIG. 1, the augmented reality system100and/or the augmentation system120may be implemented as part of an electronic device. Examples of an electronic device may include without limitation a mobile device, a personal digital assistant, a mobile computing device, a smart phone, a cellular telephone, a handset, a one-way pager, a two-way pager, a messaging device, a computer, a personal computer (PC), a desktop computer, a laptop computer, a notebook computer, a handheld computer, a server, a server array or server farm, a web server, a network server, an Internet server, a work station, a mini-computer, a main frame computer, a supercomputer, a network appliance, a web appliance, a distributed computing system, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, television, digital television, set top box, wireless access point, base station, subscriber station, mobile subscriber center, radio network controller, router, hub, gateway, bridge, switch, machine, or combination thereof. Although the augmented reality system100as shown inFIG. 1has a limited number of elements in a certain topology, it may be appreciated that the augmented reality system100may include more or less elements in alternate topologies as desired for a given implementation.

The components122,124,126,128and130may be communicatively coupled via various types of communications media. The components122,124,126,128and130may coordinate operations between each other. The coordination may involve the uni-directional or bi-directional exchange of information. For instance, the components122,124,126,128and130may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

In the illustrated embodiment shown inFIG. 1, the augmented reality system100may comprise a digital camera102, an augmentation system120and a display110. The augmented reality system100may further comprise other elements typically found in an augmented reality system or an electronic device, such as computing components, communications components, power supplies, input devices, output devices, and so forth. The embodiments are not limited in this context.

The digital camera102may comprise any camera designed for digitally capturing still or moving images (e.g., pictures or video) using an electronic image sensor. An electronic image sensor is a device that converts an optical image to an electrical signal, such as a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) active-pixel sensor. The digital camera102may also be capable of recording sound as well. The digital camera102may offer any technical features typically implemented for a digital camera, such as built-in flash, zoom, autofocus, live preview, and so forth.

The display110may comprise any electronic display for presentation of visual, tactile or auditive information. Examples for the display110may include without limitation a cathode ray tube (CRT), bistable display, electronic paper, nixie tube, vector display, a flat panel display, a vacuum fluorescent display, a light-emitting diode (LED) display, electroluminescent (ELD) display, a plasma display panel (PDP), a liquid crystal display (LCD), a thin-film transistor (TFT) display, an organic light-emitting diode (OLED) display, a surface-conduction electron-emitter display (SED), a laser television, carbon nanotubes, nanocrystal displays, a head-mounted display, and so any other displays consistent with the described embodiments. In one embodiment, the display110may be implemented as a touchscreen display. A touchscreen display is an electronic visual display that can detect the presence and location of a touch within the display area. The touch may be from a finger, hand, stylus, light pen, and so forth. The embodiments are not limited in this context.

A user101may utilize the digital camera102to capture or record still or moving images108of a real-world environment referred to herein as reality104. The reality104may comprise one or more real objects106-1-a. Examples of real objects106-1-amay include any real-world objects, including buildings, vehicles, people, and so forth. The digital camera102may capture or record the reality104and generate the image108. The image108may comprise one or more virtual objects116-1-b. Each of the virtual objects116-1-bmay comprise a digital or electronic representation of a corresponding real object106-1-a. For instance, a real object106-1may comprise a building while a virtual object116-1may comprise a virtual representation of the building. The image108may be used as input for the augmentation system120.

It is worthy to note that “a” and “b” and “c” and similar designators as used herein are intended to be variables representing any positive integer. Thus, for example, if an implementation sets a value for a=5, then a complete set of real objects106-1-amay include real objects106-1,106-2,106-3,106-4and106-5. The embodiments are not limited in this context.

In various embodiments, the augmentation system120may be generally arranged to receive and augment one or more images108with computer-generated information for one or more individuals to form one or more augmented images118. The augmentation system120may implement various augmented reality techniques to overlay, annotate, modify or otherwise augment an image108having virtual objects116-1-brepresenting real objects106-1-afrom a real-world environment such as reality104with information for one or more individuals. Examples of information may include without limitation location information for an individual, contact information for an individual, a combination of location information and contact information, and other types of virtual information specific to an individual. In this manner, a user101may receive a real-world image as represented by the reality104and captured by the digital camera102, and view location and contact information for individuals located within the real-world image in real-time. For instance, a user may utilize a client mobile device to record still images (e.g., photographs) or moving images (e.g., video) of an urban or suburban street, and present the still or moving images on a display with location information and/or contact information for individuals currently located within a building, vehicle or other physical objects captured within frame boundaries of the image108. Furthermore, a client mobile device may track an individual as they move within the captured images108. The augmentation system120may selectively display contact information for an individual, including presence information. The user101may then select a given type of contact information (e.g., a phone number, IM address, etc.) for an individual directly from the display using an input device (e.g., a touchscreen or pointer) to initiate communications with the individual. For instance, selecting a type of contact information may launch a communications application (e.g., a phone application, a messaging application, etc.) to establish a communications connection with a device used by the individual.

In various embodiments, the augmentation system120may be generally arranged to receive and augment one or more images108with computer-generated information for one or more individuals. In one embodiment, the computer-generated information may be remote information112stored by a remote device accessible via a network. In one embodiment, the computer-generated information may be local information114stored by a local device implementing the augmentation system120. As shown, the augmentation system may120may comprise a location component122, a virtual information component124, a proximity component126, an augmentation component128, and a rendering component130.

The location component122may be generally arranged to determine location information on behalf of the augmentation system120. In one embodiment, the location component122may determine location information representing a location for a real object106-1-a. In one embodiment, the location component122may determine location information representing a location for a device implementing some or all of the augmented reality system100, such as the augmentation system120, for example. The location component122may determine the different types of location information using local resources (e.g., a global positioning system) or remote resources communicated as the remote information112. The location information may comprise any type of location information used for navigating, including various types of information representing a physical three-dimensional location, such as latitude, longitude and altitude information. The location information may also comprise an associated time component, such as a current time.

The virtual information component124may be generally arranged to retrieve computer-generated information used for augmenting the image108. In one embodiment, the virtual information component124may retrieve location information representing a previous, current or future location for an individual. In one embodiment, the virtual information component124may retrieve contact information for an individual. The virtual information component124may retrieve the computer-generated information from a remote device as the remote information112, or from a local data store as the local information114.

The proximity component126may be generally arranged to determine whether location information for a real object106-1-asubstantially matches previous, current or future location information for an individual. The proximity component126may compare location information for a real object106-1-aand an individual to determine if there is some measure of overlap between physical locations for the real object106-1-aand the individual. An amount of overlap may be determined using a proximity parameter. A proximity parameter is a configurable value representing a measure of distance between a location for a real object106-1-aand an individual. The proximity component126may determine whether location information for a real object106-1-asubstantially matches previous, current or future location information for an individual, with “substantially matches” measured by a value set for the proximity parameter. For instance, the proximity parameter may be set to x meters (e.g., x=10 meters) or any other desired level of distance. As such, precision for the proximity component126may be varied based on a size of an individual or real object106-1-a. For example, assume a real object106-1is a building, and the location information for the real object106-1is a center for the building. Further assume the proximity parameter is set to x=10 meters. The proximity component126may determine location information for the real object106-1substantially matches current location information for an individual when the individual is within 10 meters of the center of the building. The match may occur if the individual is currently located in an office of the building that is located within 10 meters from the center of the building, and the location information for the individual indicates the individual is within the office, for example.

The augmentation component128may be generally arranged to augment a virtual object116-1-bof the image108with information for an individual to form an augmented object126-1-c. In one embodiment, an augmented object126-1-cmay be formed based on output from the proximity component126indicating when location information for a real object106-1-asubstantially matches location information for an individual. The augmentation component128may receive and compile virtual information related to an individual as received from the virtual information component124, and augment (or overlay) the virtual information upon appropriate virtual objects116-1-bof the image108to form corresponding augmented objects126-1-c. Various types of virtual information suitable for augmenting a virtual object116-1-bmay be described in more detail with reference toFIG. 2.

The rendering component130may render an augmented image118corresponding to an image108with augmented objects126-1-c. The rendering component130may receive a set of augmented objects126-1-ccorresponding to some or all of the virtual objects116-1-bof the image108. The rendering component130may selectively replace certain virtual objects116-1-bwith corresponding augmented objects126-1-c. For instance, assume the image108includes five virtual objects (e.g., b=5) comprising virtual objects116-1,116-2,116-3,116-4and116-5. Further assume the augmentation component128has augmented the virtual objects116-2,116-4to form corresponding augmented objects126-2,126-4. The rendering component130may selectively replace the virtual objects116-2,116-4of the image108with the corresponding augmented objects126-2,126-4to form the augmented image118.

In one embodiment, the rendering component130may render the augmented image118in a first viewing mode to include both virtual objects116-1-band augmented objects126-1-c. Continuing with the previous example, the rendering component130may render the augmented image118to present the original virtual objects116-1,116-3,116-5, and the augmented objects126-2,126-4. Additionally or alternatively, the augmented image118may draw viewer attention to the augmented objects126-2,126-4using various GUI techniques, such as by graphically enhancing elements of the augmented objects126-2,126-4(e.g., make them brighter), while subduing elements of the virtual objects116-1,116-3,116-5(e.g., make them dimmer or increase translucency). In this case, certain virtual objects116-1-band any augmented objects126-1-cmay be presented as part of the augmented image118on the display110.

In one embodiment, the rendering component130may render the augmented image118in a second viewing mode to include only augmented objects126-1-c. Continuing with the previous example, the rendering component130may render the augmented image118to present only the augmented objects126-2,126-4. This reduces an amount of information provided by the augmented image118, thereby simplifying the augmented image118and allowing the user101to view only the pertinent augmented objects126-1-c. Any virtual objects116-1-bnot replaced by augmented objects126-1-cmay be dimmed, made translucent, or eliminated completely from presentation within the augmented image118, thereby effectively ensuring that only augmented objects126-1-care presented as part of the augmented image118on the display110.

In one embodiment, the user101may selectively switch the rendering component130between the first and second viewing modes according to user preference.

FIG. 2illustrates a more detailed block diagram of the augmentation system120. More particularly,FIG. 2illustrates the location component122having a device location component202and an object location component204.FIG. 2further illustrates the virtual information component124may comprise, store or retrieve different types of virtual information, including individual information212, individual location information214, individual contact information216, and real object information218.

The device location component202may determine device location information representing a location for a device implementing some or all of the augmented reality system100, such as the augmentation system120, for example. The device location component202may comprise or implement a positioning system to determine location of an object in space. In one embodiment, the device location component202may comprise or implement a positioning system to determine device location information implemented as a local resource on the device. In one embodiment, the device location component202may receive device location information as part of the remote information112from a positioning system implemented as a remote resource separate from a local device implementing some or all of the augmentation system120. Examples for the device location component202may include without limitation a global navigation satellite system (GNSS), global positioning system (GPS), a compass navigation system, Galileo positioning system, a GLONASS system, a long range navigation (LORAN) system, an active bat system, a workspace system (e.g., for gaming systems), an inertial sensing system, a gyroscope, an accelerometer, a phase difference system, a direct field sensing system, a real-time location system, a mobile positioning system (e.g., base station triangulation), and so forth. The embodiments are not limited in this context.

The object location component204may determine object location information representing a location for an object in space, such as the real objects106-1-athat are part of the reality104, for example. In one embodiment, the object location component204may comprise or implement any of the positioning systems described with reference to the device location component202. For instance, the object location component204may implement a GPS device to obtain device location information, and estimate distances to the real objects106-1-ausing various distance estimation techniques to obtain object location information. Examples of distance estimation techniques may be similar to those used for machine vision (MV) or computer vision, such as distance estimation techniques used to control automated guided vehicles (AGV), among others. In one embodiment, the object location component204may receive object location information for the real objects106-1-aas part of the remote information112. The embodiments are not limited in this context.

The virtual information component124may comprise, store or retrieve different types of virtual information used by the augmentation system120. The virtual information may comprise the remote information112received via a network220, the local information114stored by a data store222, or a combination of the remote information and the local information114. As shown, the virtual information component124may include individual information212, individual location information214, individual contact information216, and real object information218. However, it may be appreciated that the virtual information component124may comprise, store or retrieve other types of virtual information as desired for a given implementation of the augmentation system120.

The individual information212may comprise any information about an individual. Examples of individual information212may include personal information such as identity information (e.g., first name, last name, maiden name, etc.), address information, subscription information, network information, subscription information to online services (e.g., a web service, a SNS, media sharing service, etc.), security information, authentication information, and any other individual information specific to an individual.

The individual location information214may comprise any information about a previous, current or future location for an individual. In one embodiment, the virtual information component124may receive individual location information as part of the remote information112. Additionally or alternatively, the virtual information component124may generate individual location information utilizing the object location component204and one or more facial recognition techniques. As previously described, the object location component204may comprise or implement a positioning system to determine location of an object in space. In one embodiment, the object may comprise an individual. The object location component204may be arranged to determine a distance for an individual as with any other object, and pass the estimated distance to the virtual information component124. The virtual information component124may utilize facial recognition techniques to identify an individual, and store the identification information and distance information as individual location information.

The individual contact information216may comprise any contact information for contacting an individual using one or more communications applications and/or communications modalities. Contact information may include any type of information or identifier used to establish a connection with a device for an individual. Examples of contact information may include without limitation a telephone number, a cellular telephone number, a home telephone number, a business telephone number, a unified telephone number, a network address, an email address, an instant messaging (IM) address, a short messaging system (SMS) address, a multimedia messaging system (MMS) address, a chat address, a group chat address, a universal resource location (URL), a user name, an SNS user name, login information, and so forth. In one embodiment, the contact information may be stored as local information114in the data store222, such as part of a local contact database implemented for a client device. In one embodiment, the contact information may be stored as remote information112accessible via the network220, such as a remote contact database implemented by a remote device (e.g., a network server such as a SNS server).

In one embodiment, the individual contact information216may represent contact information for a single individual. In one embodiment, the individual contact information216may represent contact information for multiple individuals, such as members of a group, business or entity.

In one embodiment, the individual contact information216may also include presence information. Presence information may comprise a status indicator that conveys ability and willingness of a potential communication partner, such as an individual, to communicate. A communication device for an individual may provide presence information (e.g., presence state) via a network connection to a presence service, which is stored in what comprises a personal availability record (called a presentity) and can be made available for distribution to other users (called watchers) to convey availability for communication. Presence information has wide application in many communication services, particularly for IM applications and voice over IP (VoIP) services.

The real object information218may comprise any object information about a real object106-1-a. For instance, the object information may include an object name, an object location, an object product, an object service, an object advertisement, surrounding objects around a target object, and other general or custom object information about a real object106-1-a. In one embodiment, the object information may be stored as local information114in the data store222, such as part of a local contact database implemented for a client device. In one embodiment, the contact information may be stored as remote information112accessible via the network220, such as a remote contact database implemented by a remote device (e.g., a network server such as a business server).

The augmentation component128may augment a virtual object116-1-busing the various types of information212,214,216and218. For instance, the augmentation component128may augment a virtual object116-1-busing the various types of individual information212, such as a name, home address or business address, for example.

The augmentation component128may augment a virtual object116-1-busing the various types of individual location information214. For instance, the presence or absence of an augmented object126-1-cin the augmented image118may represent one expression of individual location information214for one or more individuals as presented by the augmented image118. In other words, an augmented object126-1-cimplicitly communicates that an individual is located at a location that coincides with the augmented object126-1-c. In other cases, an augmented object126-1-cmay explicitly provide individual location information for the augmented object126-1-cwithin a graphical object associated with the augmented object126-1-c.

The augmentation component128may augment a virtual object116-1-busing the various types of individual location information214, such as a previous, current or future location, for example. In one embodiment, the augmentation component128may augment a virtual object116-1-cwith previous and current individual location information. For instance, assume an individual visited a first store represented as a virtual object116-1at time (t0) and a second store represented as a virtual object116-2at time (t1). The augmentation component128may augment the virtual objects116-1,116-2with respective previous and current location information for an individual to form augmented objects126-1,126-2. Further, the augmentation component128may augment any virtual objects116-3,116-4. . .116-bwith information showing previous location information for the individual, such as a graphic of a line or footsteps illustrating a path between the augmented objects126-1,126-2. In addition, the previous and current individual location information may be varied graphically to enhance a viewing experience for the user101, such as implementing different color schemes for each of the augmented objects126-1,126-2to more easily distinguish between types of location information (e.g., previous and current locations).

In one embodiment, the augmentation component128may augment a virtual object116-1-cwith future individual location information. Continuing with the previous example, assume the individual location information214represents a determined future location for an individual. The future location may be determined based on tracking past behavior or activities for the individual to identify a pattern, such as vectors of movement for the individual, individual preferences as indicated by the individual information212(e.g., store preferences), appointment information for a scheduling application (e.g., meeting at 123 Jefferson Avenue, Washington, D.C.), and so forth. The augmentation component128may augment a virtual object116-1-cwith the future location information indicated by the individual location information214. Continuing with the previous example, assume an individual plans to visit a third store represented as a virtual object116-3at time (t2). The augmentation component128may augment the virtual objects116-1,116-2,116-3with respective previous, current and future location information for an individual to form augmented objects126-1,126-2, and126-3. Further, the augmentation component128may augment any virtual objects116-4,116-4. . .116-bwith information showing previous location information for the individual, such as a graphic of a line or footsteps illustrating a path between the augmented objects126-1,126-2, and future location information for the individual, such as the graphic of a line or footsteps continuing the path between the augmented objects126-2,126-3. In addition, the previous, current and future individual location information may be varied graphically to enhance a viewing experience for the user101, such as implementing different color schemes for each of the augmented objects126-1,126-2,126-3to more easily distinguish between types of location information (e.g., previous, current and future).

The augmentation system120may dynamically continue to augment currently augmented virtual objects116-1-bor other non-augmented virtual objects116-1-bwith information for an individual as information for the individual changes. In one embodiment, the augmentation system120may augment a virtual object116-1-bwith updated information for an individual as information for the individual changes to form an updated augmented object. For instance, assume the augmentation system120augments a virtual object116-4with presence information for an individual indicating availability for communication as represented by the individual contact information216to form a corresponding augmented object126-4. Further assume the presence information for the individual changes to indicate unavailability for communication. The augmentation system120may dynamically update the virtual object116-4with the updated presence information to form an updated augmented object126-4. In another example, assume the location information for an individual changes, such as when the individual moves between offices within an office building. The augmentation system120may augment a virtual object116-5with a first location for the individual to form an augmented object126-5, and dynamically update the virtual object116-5with a second location for the individual to form an update augmented object126-5. In cases where movement of an individual causes a switch in virtual objects116-1-b, such as from the virtual object116-5to a virtual object116-6, the augmentation system120may revert the augmented object126-5back to the virtual object116-5and augment the virtual object116-6with new location information for the individual to form an augmented object126-6.

The augmentation system120may also further augment currently augmented virtual objects116-1-bwith information for an individual based on selection of a corresponding augmented object126-1-c. For instance, assume the augmentation system120forms augmented objects126-1,126-2with a first set of information, such as individual information212of a name and address. Further assume the user101selects the augmented object126-1with an input device, such as via a touchscreen display. The augmentation system120may further augment the augmented object126-1to present a second set of information for the individual, such as contact information for the individual, for example. In one embodiment, the second set of information may be shown simultaneously with the first set of information. In one embodiment, the second set of information may replace the first set of information.

Among the various types of virtual information available for augmenting virtual objects116-1-b, one particularly desirable type of virtual information may comprise contact information for an individual. The augmentation system120may generate augmented objects126-1-cto present contact information for an individual either automatically or when an augmented object126-1-cis selected. As such, the augmented image118may effectively operate as a user interface for controlling communications with an individual. For instance, the user101may review various locations for individuals located within the augmented image118, such as friends or members within a SNS, as well as contact information and presence information for such individuals. The user101may select a contact identifier for an individual when contact information for the individual is presented with the augmented object126-1-c. Once selected, the augmented reality system100may send a control directive to a communications application based on the selected contact identifier for the individual. A device implementing the communications application may then launch the communication application using the selected contact identifier to establish communications between the user101and the individual associated with the selected contact identifier.

FIG. 3illustrates a block diagram of a distributed system300. The distributed system300may distribute portions of the structure and/or operations for the systems100,200across multiple computing entities. Examples of distributed system300may include without limitation a client-server architecture, a 3-tier architecture, an N-tier architecture, a tightly-coupled or clustered architecture, a peer-to-peer architecture, a master-slave architecture, a shared database architecture, and other types of distributed systems. The embodiments are not limited in this context.

In one embodiment, for example, the distributed system300may be implemented as a client-server system. A client system310may implement a digital camera302, a display304, a web browser306, and a communications component308. A server system330may implement some or all of the augmented reality system100, such as the digital camera102and/or the augmentation system120, and a communications component338. The server system330may also implement a social networking system (SNS)334. Additionally or alternatively, the SNS334may be implemented by another server system separate from the server system330.

In various embodiments, the client system310may comprise or implement portions of the augmented reality system100, such as the digital camera102and/or the display110. The client system310may comprise or employ one or more client computing devices and/or client programs that operate to perform various client operations in accordance with the described embodiments. Examples of the client system310may include without limitation a mobile device, a personal digital assistant, a mobile computing device, a smart phone, a cellular telephone, a handset, a one-way pager, a two-way pager, a messaging device, a computer, a personal computer (PC), a desktop computer, a laptop computer, a notebook computer, a handheld computer, a server, a server array or server farm, a web server, a network server, an Internet server, a work station, a mini-computer, a main frame computer, a supercomputer, a network appliance, a web appliance, a distributed computing system, multiprocessor systems, processor-based systems, consumer electronics, programmable consumer electronics, television, digital television, set top box, wireless access point, base station, subscriber station, mobile subscriber center, radio network controller, router, hub, gateway, bridge, switch, machine, or combination thereof. Although the augmented reality system100as shown inFIG. 1has a limited number of elements in a certain topology, it may be appreciated that the augmented reality system100may include more or less elements in alternate topologies as desired for a given implementation.

In various embodiments, the server system330may comprise or employ one or more server computing devices and/or server programs that operate to perform various server operations in accordance with the described embodiments. For example, when installed and/or deployed, a server program may support one or more server roles of the server computing device for providing certain services and features. Exemplary server systems330may include, for example, stand-alone and enterprise-class server computers operating a server operating system (OS) such as a MICROSOFT OS, a UNIX® OS, a LINUX® OS, or other suitable server-based OS. Exemplary server programs may include, for example, communications server programs such as MICROSOFT WINDOWS LIVE® or MICROSOFT OFFICE COMMUNICATIONS SERVER (OCS) for managing incoming and outgoing messages, messaging server programs such as MICROSOFT EXCHANGE SERVER for providing unified messaging (UM) for e-mail, voicemail, VoIP, instant messaging (IM), group IM, enhanced presence, and audio-video conferencing, and/or other types of programs, applications, or services in accordance with the described embodiments.

In one embodiment, the server system330may implement the SNS334. The SNS334may generally comprise any application or service provided to establish an electronic or online social network between members of the SNS334. The SNS334may provide an online software platform accessible via a network to publish, distribute, disseminate, share or otherwise communicate information between related members over the network. Examples for the SNS334may include without limitation MICROSOFT® WINDOWS LIVE®, MYSPACE®, FACEBOOK®, LINKEDIN®, TWITTER®, BEBO® and other social networking systems and services consistent with the described embodiments. The embodiments are not limited in this context.

The client system310and the server system330may communicate with each over a communications media320using communications signals322. In one embodiment, for example, the communications media may comprise a public or private network. In one embodiment, for example, the communications signals322may comprise wired or wireless signals. Computing aspects of the client system310and the server system330may be described in more detail with reference toFIG. 7. Communications aspects for the distributed system300may be described in more detail with reference toFIG. 8.

The distributed system300illustrates an example where the client system310implements input and output devices for the augmented reality system100, while the server system330implements the augmentation system120to perform augmentation operations. As shown, the client system310may implement the digital camera302and the display304may be the same or similar as the digital camera102and the display110as described with reference toFIG. 1. The client system310may use the digital camera302to send or stream images108to the server system330as communications signals322over the communications media320via the communications component308. The server system330may receive the images108from the client system310via the communications component338, and perform augmentation operations for the images108to produce the augmented images118via the augmentation system120of the augmented reality system100. The server system330may send the augmented images118as communications signals322over the communications media320to the client system310. The client system310may receive the augmented images118, and present the augmented images118on the display304of the client system310.

The distributed system300also illustrates an example where the client system310implements only an output device for the augmented reality system100, while the server system330implements the digital camera102to perform image capture operations and the augmentation system120to perform augmentation operations. In this case, the server system330may use the digital camera102to send or stream images108to the augmentation system120. The augmentation system120may perform augmentation operations for the images108to produce the augmented images118. The server system330may send the augmented images118as communications signals322over the communications media320to the client system310via the communications component308,338. The client system310may receive the augmented images118, and present the augmented images118on the display304of the client system310.

In the latter example, the augmented reality system100may be implemented as a web service accessible via the web browser306. For instance, the user101may utilize the client system310to view augmented images118as provided by the augmented system100implemented by the server system330. Examples of suitable web browsers may include MICROSOFT INTERNET EXPLORER®, GOOGLE® CHROME and APPLE® SAFARI, to name just a few. The embodiments are not limited in this context.

FIG. 4illustrates a block diagram of a client system400. The client system400may implement all of the structure and/or operations for the systems100,200in a single computing entity. In one embodiment, for example, the client system400may implement the structure and/or operations for the systems100,200entirely within a single computing device. The client system400may be representative of, for example, the client system310modified to include the augmented reality system100and one or more communications applications404.

In the illustrated embodiment shown inFIG. 4, the client system100may comprise or implement the augmented reality system100, a communications application404, and a communications component308. The communications application404may comprise any type of communications application for communicating with a device. Examples for the communications applications404may include without limitation a phone application and a messaging application. Examples of messaging applications may include without limitation a unified messaging (UM) application, an e-mail application, a voicemail application, an instant messaging (IM) application, a group IM application, presence application, audio-video conferencing application, short message service (SMS) application, multimedia message service (MMS) application, facsimile application and/or other types of messaging programs, applications, or services in accordance with the described embodiments.

As previously described, the augmentation system120may generate augmented objects126-1-cto present contact information for an individual either automatically or when an augmented object126-1-cis selected. As such, the augmented image118may effectively operate as a user interface for controlling communications with an individual. For instance, the user101may review various locations for individuals located within the augmented image118, such as friends or members within a SNS, as well as contact information and presence information for such individuals. The user101may select a contact identifier for an individual when contact information for the individual is presented with the augmented object126-1-c. Once selected, the augmented reality system100may send a control directive to the communications application404based on the selected contact identifier for the individual. The client system400implementing the communications application404may then launch the communication application404using the selected contact identifier to establish communications between the user101and the individual associated with the selected contact identifier.

FIG. 5Aillustrates an GUI view of an augmented image500. The augmented image500may comprise an example for the augmented image118. The augmented image500as shown inFIG. 5Amay comprise various virtual objects116-1,116-3,116-5and116-7. Virtual objects116-2,116-4and116-6have been augmented and replaced by corresponding augmented objects126-2,126-4and126-6. Each of the augmented objects126-2,126-4and126-6may each present a set of information about different individuals using corresponding graphical objects502-1-d, such as respective graphical objects502-2,502-4and502-6.

As shown, the augmented object126-2may present a graphical object502-2with various types of information for an individual named “Jane Smith.” The graphical object502-2may contain such individual information212as a SNS for “Jane Smith,” such as MICROSOFT WINDOWS LIVE. The graphical object502-2may further present individual contact information216, including contact identifiers such as “jsmith@live.com,” a cellular telephone number of “123.4567,” and a home telephone number of “234.5678.” The contact information216may further comprise presence information for each contact identifier indicating whether “Jane Smith” is available to communicate using each of the respective contact identifiers (e.g., “Avail” or “Not Avail.”) It may be appreciated that other types of information may be presented for a graphical object502-1-d, such as pictures, icons, control buttons, radio buttons, and other GUI elements. For instance, the presence information for “Jane Smith” may be conveyed using GUI elements represented as icons presenting a green circle for “Avail” and a red circle for “Not Avail.” The embodiments are not limited in this context.

The augmented object126-4may present a graphical object502-4with various types of information for an individual named “John Doe.” It is worthy to note that the information presented by the graphical object502-4is different from the information presented by the graphical object502-2. For instance, the graphical object502-2includes an address for “John Doe,” a picture for “John Doe,” and more detailed presence information. It may be appreciated that in some implementations the types of information may be uniform for all graphical objects502-1-d.

The augmented object126-6is different from the augmented objects in a couple of respects. First, the augmented object126-6is represented as a vehicle rather than a home or building as for respective augmented objects126-2,126-4. Second, the augmented object126-6may present multiple graphical objects502-6,502-8with various types of information for multiple individuals, one named “Alice Jones” and the other “Sam Jones.” As with the graphical objects502-2,502-4, the graphical objects502-6,502-8may present contact information and presence information for the respective individuals “Alice Jones” and “Sam Jones.” As such, the augmented object126-6represents a case where individual location information214for multiple individuals substantially match object location information for a real object106-6as represented by a virtual object116-6and augmented to form the augmented object126-6.

FIG. 5Billustrates a GUI view of an updated augmented image510. The updated augmented image510may comprise an example of an updated version of the augmented image500. As with the augmented image500as shown inFIG. 5A, the augmented image510may comprise various virtual objects116-1,116-5and116-7, and augmented objects126-2,126-4and126-6.

The updated augmented image510, however, illustrates a case where the augmented image500is updated to reflect a change in individual location information. For instance, assume the individual “Alice Jones” moves from the vehicle represented by the augmented object126-6to her house represented by the virtual object116-3as shown in the augmented image500ofFIG. 5A. In the updated augmented image510, the virtual object116-3has been augmented and replaced by a corresponding augmented object126-3having a corresponding graphical object502-3. The update augmented image510may represent a case where individual location information214for “Alice Jones” has been updated and substantially matches object location information for the real object106-3as represented by a virtual object116-3and augmented to form the augmented object126-3. Note that the individual contact information216has been modified from a cellular telephone number of “123.4567” to a home telephone number of “456.7899.”

The updated augmented image510also illustrates a case where the augmented image500is updated to reflect a change in individual information for an individual. For instance, assume the individual “John Doe” is no longer in a meeting as previously indicated by the graphical object502-4of the augmented object126-4. The presence information for the graphical object502-4may be updated to reflect new presence information indicating “John Doe” is available for communication at office telephone number “567.8912.”

The updated augmented image510further illustrates a case where the augmented image500is updated to reflect a selection of an augmented object126-1-cto reveal additional information about an individual. For instance, assume the user101selects the augmented object126-2, as indicated by the change in pattern for the augmented object126-2from the augmented image500to the updated augmented image510. Selecting the augmented object126-2may expand the graphical object502-2to display additional information about the individual “Jane Smith,” such as additional photographs504-1,504-2and504-3published by “Jane Smith” on the SNS334of MICROSOFT WINDOWS LIVE.

Operations for the above-described embodiments may be further described with reference to one or more logic flows. It may be appreciated that the representative logic flows do not necessarily have to be executed in the order presented, or in any particular order, unless otherwise indicated. Moreover, various activities described with respect to the logic flows can be executed in serial or parallel fashion. The logic flows may be implemented using one or more hardware elements and/or software elements of the described embodiments or alternative elements as desired for a given set of design and performance constraints. For example, the logic flows may be implemented as logic (e.g., computer program instructions) for execution by a logic device (e.g., a general-purpose or specific-purpose computer).

FIG. 6illustrates one embodiment of a logic flow600. The logic flow600may be representative of some or all of the operations executed by one or more embodiments described herein, such as the augmentation system120, for example.

In the illustrated embodiment shown inFIG. 6, the logic flow600may receive an image having a virtual object representing a real object at block602. For example, the augmentation system120may receive an image108having a virtual object116-1representing a corresponding real object106-1. The image108may be generated by one of the digital cameras102,302.

The logic flow600may determine location information for the real object in the image at block604. For example, the object location component204of the location component122may determine object location information for the real object106-1in the image108. The object location information may be determined via the remote information112or as generated by the object location component204using various machine vision or computer vision techniques.

The logic flow600may retrieve location information for an individual at block606. For example, the virtual information component124may retrieve individual location information214. The individual location information214may be retrieved from a remote device, such as remote information112retrieved from the server system330over the network220. The individual location information214may also be generated by the object location component204using various machine vision or computer vision techniques.

The logic flow600may determine when the location information for the real object substantially matches the location information for the individual at block608. For example, the proximity component126may determine when the object location information for the real object106-1substantially matches the individual location information for the individual. A substantial match may be determined using a proximity parameter representing a distance between the object location information and individual location information.

The logic flow600may augment the virtual object with information for the individual to form an augmented object at block610. For example, the augmentation component128may augment the virtual object116-1with information for the individual to form an augmented object126-1. The information may comprise location information and/or contact information. The rendering component130may receive the image108and the augmented object126-1, and render the augmented image118with the augmented object126-1either alone or with other augmented objects126-2,126-3. . .126-cand/or one or more virtual objects116-2,116-3. . .116-b.

FIG. 7illustrates an embodiment of an exemplary computing architecture700suitable for implementing various embodiments as previously described. The computing architecture700includes various common computing elements, such as one or more processors, co-processors, memory units, chipsets, controllers, peripherals, interfaces, oscillators, timing devices, video cards, audio cards, multimedia input/output (I/O) components, and so forth. The embodiments, however, are not limited to implementation by the computing architecture700.

As shown inFIG. 7, the computing architecture700comprises a processing unit704, a system memory706and a system bus708. The processing unit704can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures may also be employed as the processing unit704. The system bus708provides an interface for system components including, but not limited to, the system memory706to the processing unit704. The system bus708can be any of several types of bus structure that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.

The computer702may include various types of computer-readable storage media, including an internal hard disk drive (HDD)714, a magnetic floppy disk drive (FDD)716to read from or write to a removable magnetic disk718, and an optical disk drive720to read from or write to a removable optical disk722(e.g., a CD-ROM or DVD). The HDD714, FDD716and optical disk drive720can be connected to the system bus708by a HDD interface724, an FDD interface726and an optical drive interface728, respectively. The HDD interface724for external drive implementations can include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.

The drives and associated computer-readable media provide volatile and/or nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For example, a number of program modules can be stored in the drives and memory units710,712, including an operating system730, one or more application programs732, other program modules734, and program data736. The one or more application programs732, other program modules734, and program data736can include, for example, the augmentation system120, the client systems310,400, and the server system330.

A user can enter commands and information into the computer702through one or more wire/wireless input devices, for example, a keyboard738and a pointing device, such as a mouse740. Other input devices may include a microphone, an infra-red (IR) remote control, a joystick, a game pad, a stylus pen, touch screen, or the like. These and other input devices are often connected to the processing unit704through an input device interface742that is coupled to the system bus708, but can be connected by other interfaces such as a parallel port, IEEE 1394 serial port, a game port, a USB port, an IR interface, and so forth.

A monitor744or other type of display device is also connected to the system bus708via an interface, such as a video adaptor746. In addition to the monitor744, a computer typically includes other peripheral output devices, such as speakers, printers, and so forth.

When used in a LAN networking environment, the computer702is connected to the LAN752through a wire and/or wireless communication network interface or adaptor756. The adaptor756can facilitate wire and/or wireless communications to the LAN752, which may also include a wireless access point disposed thereon for communicating with the wireless functionality of the adaptor756.

When used in a WAN networking environment, the computer702can include a modem758, or is connected to a communications server on the WAN754, or has other means for establishing communications over the WAN754, such as by way of the Internet. The modem758, which can be internal or external and a wire and/or wireless device, connects to the system bus708via the input device interface742. In a networked environment, program modules depicted relative to the computer702, or portions thereof, can be stored in the remote memory/storage device750. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.

FIG. 8illustrates a block diagram of an exemplary communications architecture800suitable for implementing various embodiments as previously described. The communications architecture800includes various common communications elements, such as a transmitter, receiver, transceiver, radio, network interface, baseband processor, antenna, amplifiers, filters, and so forth. The embodiments, however, are not limited to implementation by the communications architecture800.

As shown inFIG. 8, the communications architecture800comprises includes one or more clients802and servers804. The clients802may implement the client systems310,400. The servers804may implement the server system330. The clients802and the servers804are operatively connected to one or more respective client data stores808and server data stores810that can be employed to store information local to the respective clients802and servers804, such as cookies and/or associated contextual information.

The clients802and the servers804may communicate information between each other using a communication framework806. The communications framework806may implement any well-known communications techniques, such as techniques suitable for use with packet-switched networks (e.g., public networks such as the Internet, private networks such as an enterprise intranet, and so forth), circuit-switched networks (e.g., the public switched telephone network), or a combination of packet-switched networks and circuit-switched networks (with suitable gateways and translators). The clients802and the servers804may include various types of standard communication elements designed to be interoperable with the communications framework806, such as one or more communications interfaces, network interfaces, network interface cards (NIC), radios, wireless transmitters/receivers (transceivers), wired and/or wireless communication media, physical connectors, and so forth. By way of example, and not limitation, communication media includes wired communications media and wireless communications media. Examples of wired communications media may include a wire, cable, metal leads, printed circuit boards (PCB), backplanes, switch fabrics, semiconductor material, twisted-pair wire, co-axial cable, fiber optics, a propagated signal, and so forth. Examples of wireless communications media may include acoustic, radio-frequency (RF) spectrum, infrared and other wireless media. One possible communication between a client802and a server804can be in the form of a data packet adapted to be transmitted between two or more computer processes. The data packet may include a cookie and/or associated contextual information, for example.

Some embodiments may be described using the expression “one embodiment” or “an embodiment” along with their derivatives. These terms mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.