US20160028842A1 - Methods and systems for a reminder servicer using visual recognition - Google Patents
Methods and systems for a reminder servicer using visual recognition Download PDFInfo
- Publication number
- US20160028842A1 US20160028842A1 US14/871,474 US201514871474A US2016028842A1 US 20160028842 A1 US20160028842 A1 US 20160028842A1 US 201514871474 A US201514871474 A US 201514871474A US 2016028842 A1 US2016028842 A1 US 2016028842A1
- Authority
- US
- United States
- Prior art keywords
- reminder
- target object
- computing device
- information
- server system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000000007 visual effect Effects 0.000 title description 40
- 238000004891 communication Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 10
- 238000012015 optical character recognition Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012552 review Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 16
- 238000003860 storage Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 230000001960 triggered effect Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 8
- 230000006855 networking Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 206010015037 epilepsy Diseases 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- H04L67/26—
-
- G06K9/00744—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B3/00—Audible signalling systems; Audible personal calling systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25841—Management of client data involving the geographical location of the client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25866—Management of end-user data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42202—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] environmental sensors, e.g. for detecting temperature, luminosity, pressure, earthquakes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47214—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4882—Data services, e.g. news ticker for displaying messages, e.g. warnings, reminders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6582—Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/812—Monomedia components thereof involving advertisement data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/18—Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
- H04W4/185—Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals by embedding added-value information into content, e.g. geo-tagging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
Definitions
- Embodiments of the present invention generally relate to the field of downloadable applications cooperating with a backend server system, and in some embodiments, specifically relate to the setting of future reminders based on visual recognition of an object.
- a reminder system having a downloadable reminder application and a backend reminder server system.
- a reminder application database in the backend reminder server system is configured to store multiple instances of a downloadable reminder application.
- the backend server system is configured to serve a given instance of the downloadable reminder application to a mobile computing device.
- Each downloadable reminder application is configured to be resident in its own mobile computing device.
- the backend reminder server system has a set of engines and databases that are configured to work with and exchange information with the multiple instances of the downloadable reminder application.
- a target object database in the set of databases is configured to store and maintain a complete master set of all known target objects in the backend server system.
- a trigger condition database 332 is configured to store trigger conditions for each known target object.
- a reminder engine is configured to generate customized reminder packets for each instance of the downloadable reminder application based on an entry in the set of databases that a future reminder is currently set for that target object with its current trigger conditions for that target object in that instance of the downloadable reminder application.
- Each instance of the downloadable reminder application is scripted to use its customized reminder packet to detect when the known target objects satisfy their trigger conditions.
- FIG. 1 illustrates one example of block diagram of a mobile computing device that may be used, in accordance with some embodiments.
- FIG. 2 illustrates a diagram of a network environment in which the techniques described herein may be applied.
- FIG. 3A illustrates an example of a backend reminder server system with a set of engines and databases that are configured to work with and exchange information with a downloadable reminder application configured to be resident in mobile computing device, in accordance with some embodiments.
- FIG. 3B illustrates a diagram of an example of backend reminder server system that may be connected with one or more third party servers via the Internet, in accordance with some embodiments.
- FIG. 4 illustrates an example diagram of a network of mirrored backend reminder server system that may be used to perform the reminder processing, in accordance with some embodiments.
- FIG. 5 illustrates an example block diagram of some modules of an IDOL server, in accordance with some embodiments.
- FIG. 6 illustrates a block diagram of example architecture of an embodiment of the downloadable reminder application in the mobile computing device.
- FIG. 7 illustrates a block diagram of an example computing system that may use an embodiment of one or more of the software applications discussed herein.
- FIG. 7 and FIG. 2 illustrate example environments to implement the reminder service using visual recognition herein.
- the reminder experience as described herein relates to an experience with minimal actions from a user that the user can enjoy with a mobile computing device.
- the techniques described herein may enable the users to use the mobile computing device to identify information that may be used to trigger future reminders.
- the information may be captured using a still camera device, a video capturing device, browsing on the Internet, and captured from other feed sources, and may include video, images, and/or audio signals.
- a visual recognition module of the downloadable reminder application may be configured to use object recognition technology to recognize one or more objects appearing on a display screen of the mobile computing device and match them to a set of known target objects stored in the local target database.
- the downloadable reminder application in the mobile computing device can then after recognizing and matching the target object appearing on the display screen, process any associated trigger conditions for the target object.
- the downloadable reminder application then sets the future reminder for the target object to activate.
- the downloadable reminder application sets up the future reminder for the target object, then the downloadable reminder application transmits a communication to the reminder engine in the backend server system.
- the reminder engine receives the flagged target object to set the reminder on, updates its databases, checks what the latest triggering conditions and triggerable contributions are for that target object, and sends an updated reminder packet over the public wide area network back to the downloadable reminder application.
- the downloadable reminder application when it detects that the mobile computing device is satisfying the trigger condition for a target object for which it has set a future reminder on, then the downloadable reminder application in the mobile computing device fires the future reminder that was set for that target object and provides the alert to the user along with any triggerable contributions associated with that target object.
- FIG. 1 illustrates one example of block diagram of a mobile computing device that may be used, in accordance with some embodiments.
- Mobile computing device 100 may include display module 105 , wireless communication module 110 , global positioning system (GPS) module 115 , video capturing module 120 , processor 125 , browser application 144 , the downloadable reminder application 150 , memory 130 , and multiple other applications and modules.
- the mobile computing device 100 may be, for example, a smart cellular phone, a laptop, a netbook, a touch pad, or any other similar device.
- the downloadable reminder application 150 and its application program interfaces and call routines are configured to work with the various blocks of functionality 105 , 110 , 125 , 144 , 115 , 140 , in the mobile computing device.
- the downloadable reminder application 150 routines are configured to communicate and cooperate with a reminder engine in a backend server system via the communication module 110 .
- the downloadable reminder application 150 includes a visual recognition module 135 to assist in the identification of objects captured in, for example, each video frame as well as then highlight actionable objects in the frames of the video stream.
- an existing visual recognition module 135 in the mobile computing device 100 may be enhanced by portions of the downloadable reminder application 150 .
- the communication module 110 may be used to allow the mobile computing device 100 to be connected to a public wide area network such as, for example, (see FIGS. 2-4 ).
- the communication module 110 may be configured to enable the mobile computing device 100 to connect to the public wide area network using wireless communication protocol or any other suitable communication protocols.
- the communication module 110 may include a wireless fidelity (Wi-Fi) module 111 , a Bluetooth module 112 , a broadband module 113 , a short message service (SMS) module 114 , and so on.
- the communication module 110 may be configured to transmit information including visual information associated with a video stream from the mobile computing device 100 to one or more servers in the backend server system connected to the network.
- the downloadable reminder application 150 has one or more locations of servers (e.g. Universal Resource Locations) stored and security protocol routines in order to create secure communications with the backend server system over the public wide area network.
- the downloadable reminder application 150 is scripted to create a communication connection between itself and a reminder engine resident in the backend server system by cooperating with the communication module 110 .
- the GPS module 115 may be used to provide the mobile device's geographical location to the downloadable reminder application 150 .
- the geographical location information may be monitored or called for by the downloadable reminder application 150 .
- the GPS module 115 may also be used to enable generating the geographical information and associating the geographical information with images and frames of video streams. This process is typically referred to as geotagging.
- the geographical information may be inserted into one or more the frames of the video stream.
- the geographical information may also be inserted and stored with images, video streams, and text messages generated by the mobile computing device 100 .
- the geographical information may be stored as metadata, and may include latitude and longitude coordinates.
- the video capturing module 120 may be configured to capture images or video streams.
- the video capturing module 120 may be associated with a video camera 121 and may enable a user to capture the images and/or the video streams.
- the video camera 121 may be a built-in video camera.
- the downloadable reminder application 150 is scripted to set a future reminder on a target object, to be triggered based on local and temporal trigger conditions including but not limited to 1) time of day indicated by a clock function of the mobile computing device, 2) date and time of day indicated by the clock function, 3) an amount of time from an initial start time by referencing the clock function, 4) a visual recognition of the target object being displayed on a display screen of the mobile computing device, 5) a current geographic location of the mobile computing device indicated by a GPS module of the mobile computing device, and 6) any combination of these five.
- local and temporal trigger conditions including but not limited to 1) time of day indicated by a clock function of the mobile computing device, 2) date and time of day indicated by the clock function, 3) an amount of time from an initial start time by referencing the clock function, 4) a visual recognition of the target object being displayed on a display screen of the mobile computing device, 5) a current geographic location of the mobile computing device indicated by a GPS module of the mobile computing device, and 6) any combination of
- the future reminder can be set simply by pointing the mobile computing device's 100 camera at some pre-determined object that is visual recognized by the downloadable reminder application 150 as a target object and selecting to then set the future reminder.
- the user points the camera, digital still or video camera, of the mobile computing device 100 at a given object.
- the visual recognition portion of the downloadable reminder application 150 resident in the mobile computing device 100 is scripted to perform recognition operations to recognize a target object. This may include comparing the reminder target object with the known target objects stored in the target database of the mobile computing device to determine when there is a match.
- the local target object database in the mobile computing device is a smaller subset of known target objects, than the full set of all known target objects to the backend server system, which is stored in a target object database in the backend server system.
- the target database of the mobile computing device may be simply a cache memory that is frequently updated using content coming from the target database of the backend server system.
- Each future reminder will contain a trigger condition to be satisfied for the target object.
- the trigger condition may be based on local and temporal trigger conditions including but not limited to 1) time 2) visually recognizing that object being displayed on the display screen and being analyzed by either the visual recognition module of the downloadable reminder application 150 or the recognition engines in the backend server system or any combination of both, and 5) geographic location indicated by the GPS module of the mobile computing device.
- the downloadable reminder application 150 is scripted to have its application program interfaces and call routines monitor the blocks of functionality in the mobile computing device, (E.g. GPS module 115 , the clock, the video capturing module 120 , etc.) to determine when the computing device 100 satisfies any above trigger condition for the target object, and then the future reminder for this instance of the downloadable reminder application 150 is triggered.
- Each known target object may have both triggerable conditions to trigger the future reminder on that known target object and triggerable contributions associated with the known target object to cause an additional beneficial action beyond the alert when the future reminder on that known target object is triggered.
- the downloadable reminder application 150 is scripted to notify a user that the future reminder on the target object is triggered via an alert along with the causing of any associated triggerable contributions associated with the target object.
- the user is alerted via an alert 1) appearing on a display screen of the mobile computing device, 2) through an audile alert via speakers of the mobile computing device, 3) through a vibrating of the mobile computing device, and 4) any combination of the three.
- Third party vendor systems and the backend server system may add on valuable triggerable contributions, coupons, comparisons, video trailers, associated with a given target object and executed when the triggering condition occurs.
- the downloadable reminder application 150 may be configured to set a future reminder to trigger at a subsequent time based on subsets of the trigger conditions such as merely 1) a geographical location of the mobile computing device as determined by a built-in global positioning system (GPS) module or 2) a specific time established by a third party, or 3) recognizing the target object in a current video stream being captured by the camera of the mobile computing device.
- GPS global positioning system
- the display module 105 may be associated with a display screen 106 .
- the display module 105 may be configured to display the images and/or the video streams captured by the video capturing module 120 on the display screen 106 .
- the display module 105 may also display images from a still camera or from a browser on the display screen 106 .
- the downloadable reminder application 150 is scripted to cooperate with the display module 105 .
- the downloadable reminder application 150 may be also scripted to enhance certain objects appearing on the display screen with a high lighting, including objects appearing in still images, on web pages, in video streams, and any combination of the three, that 1) have been or 2) can be and 3) any combination of the two, set as a candidate target object that actionable future reminders can be set for.
- the candidate target object that actionable future reminders can be set for is enhanced with the high lighting around the target object on the display screen.
- the user may use 1) finger touches, 2) mouse clicks, or 3) otherwise select the highlighted target to set the future reminder on that target object.
- the downloadable reminder application 150 is also scripted to be able to flag any objects appearing on the display screen of the mobile computing device, including objects potentially coming from a video stream, web browsing, etc., and then send the flagged object to the backend server system through the communication module 110 .
- One or more recognition engines in the backend server system then are configured to analyze the flagged object in an attempt to identify the flagged object and make a known target object.
- the memory 130 may include internal memory and expansion memory.
- the internal memory may include read-only memory (ROM) and random access memory (RAM), and the expansion memory may include flash memory.
- the memory 130 may be used to store an operating system (OS), the software portions of the downloadable reminder application 150 , and various other applications including, for example, productivity applications, entertainment applications, communication applications, image and/or video processing applications, user interface applications, etc.
- the memory 130 also stores reminder packets sent by the reminder engine in the backend server system.
- the reminder engine in the backend server system is configured to send one or more digital fingerprints of known target objects that have actionable trigger conditions in a reminder packet to the downloadable reminder application 150 to update a local target object database of known target objects set for that specific instance of the downloadable reminder application 150 .
- the reminder packets form a small subset of known target objects for the unlimited number of possible objects in the world.
- the reminder packets also form a small subset of known target objects as compared to the amount of known target objects stored in the target object database in the backend server system.
- the downloadable reminder application 150 is configured to recognize the reminder target object using this small subset of known target objects.
- the downloadable reminder application 150 is also scripted to use these reminder packets to detect trigger conditions, determine triggerable contributions, and other information.
- the reminder engine is scripted to generate customized reminder packets for each instance of the downloadable reminder application 150 , and thus, each instance of the application may have a different set of known target objects in its local target object database.
- the volatile portion of the memory 130 stores certain portions of the code for the downloadable reminder application 150 as well.
- the processor 125 may be configured to execute instructions associated with the OS, network browsers 144 , and the various applications.
- Some examples of the OS may include Android from Google, iOS from Apple, Windows Phone from Microsoft, and WebOS from Palm/HP, and so on.
- the network browsers 144 may be used by the mobile computing device 100 to allow the user to access websites using the network.
- the visual recognition module 135 of the downloadable reminder application 150 is configured to process images and/or video streams captured by the video capturing module 120 or images supplied by the browser 144 or images supplied by the display module 105 .
- the downloadable reminder application 150 is configured to perform recognition operations to identify any objects within each frame of the captured video stream to determine whether one or more target objects are contained on that frame of the captured video stream to be displayed on the display screen.
- the visual recognition module 135 is scripted to perform recognition operations to recognize the target object, including comparing the objects within each frame of the captured video stream to known target objects stored in the local target object database stored in a memory of the mobile computing device, in order to determine when there is a close match between the objects in the frame and the known target objects.
- the reminder target object is not in the database of known objects, then the object may be sent to the numerous engines for comparisons and finding potential matches to the target object.
- the visual recognition module 135 of the downloadable reminder application may analyze, for example, the frames of the captured video stream and identify the objects within each frame of the captured video stream. Some of those objects will be close matches to the small subset of known target objects. Identifying points of interest for an analyzed object may include breaking the object into geometric shapes and distinctive features. The operations may break down each object into different geometric shapes and associated distinctive features. This will form sort of a digital fingerprint for that object.
- the video stream may also be analyzed by the engines in the backend server system as well.
- the visual recognition module 135 may analyze each captured frame of the video stream.
- the visual recognition module 135 may analyze these frames to identify the characteristics or visual information of the object.
- the visual recognition module 135 may also relate patterns from the series of frames to assist in determining what the points of interest are for an object. As the video capturing module 135 continues to capture the video stream, it may be possible that the visual recognition module 135 may identify many different objects.
- the visual recognition module 135 may generally perform recognition operations, including object analysis for identifying distinguishing characteristics of an object, basic scene analysis, optical character recognition (OCR), etc., to extract any distinctive features of the objects appearing on the display screen 106 and then code the distinctive features of the object into a digital fingerprint of that object, which is then compared with a set of digital fingerprints of known target objects stored in a local target object database stored in a memory of the mobile computing device. Note, the visual recognition module 135 may also detect the geographical information of that object and other known distinctive features for that object and then also include this metadata in the digital fingerprint of that object.
- OCR optical character recognition
- the visual recognition module 135 can analyze against a JPEG or MPEG type file, as well as files with merely distinctive features including shapes, dot-to-dot type X-Y coordinates of the shapes, patterns colors, letters numbers, symbols, etc. associated with objects.
- Similar analysis to a captured video stream analysis may occur when monitoring the browser and the user's surfing on the Internet.
- a web pages metadata is collected to aid in the identification of objects appearing during the Internet session.
- Shopping items, services, broadcast programs, etc. may be identified as target objects while the browser is being used to navigate through the Internet.
- FIG. 3A illustrates an example of a backend reminder server system with a set of engines and databases that are configured to work with and exchange information with a downloadable reminder application configured to be resident in mobile computing device, in accordance with some embodiments.
- a browser of the mobile computing device 300 may download the downloadable reminder application over the public wide area network from the backend reminder server system 352 .
- a user of the mobile computing device 300 may need to register the mobile computing device 300 with the reminder engine 308 in the server 300 to enable the downloaded reminder application modules to be run on the mobile computing device 300 .
- Backend reminder server system 352 may include a communication module (not shown) to allow it to be connected to a network such as the network 200 illustrated in FIGS. 2 and 4 , then to one or more mobile computing devices 300 , 302 .
- Communication sessions may be established between the reminder engine 308 of the backend reminder server system 352 and the mobile computing device 300 to enable the receipt of the visual information, geographic location information, etc. from the mobile computing device 300 and the reminder engine 308 to transmit information including the reminder packets to the mobile computing device 300 .
- Multiple mobile computing devices will normally be in regular communication with the backend server system.
- the backend reminder server system 352 may include one or more servers having one or more databases.
- the backend reminder server system 352 may be include a reminder engine 308 , an object recognition engine 310 , target object database of known target objects 330 , reminder database of current reminders and history of reminders for each instance of the downloadable reminder application 315 , a trigger condition database 332 , which also includes geographic locations of known target objects, a reminder database 350 , and many other components.
- the target object database 330 is configured to store objects/services/broadcast programs that can be used to recognize the reminder target object.
- the target database 330 may store one or more composite images of all of the known target objects.
- the object recognition engine 310 may include a facial recognition engine, a scene analysis engine, an optical character recognition engine, and other visual analysis engines.
- the object recognition engine 310 may be associated with the target object database 315 to detect known target objects as well as determine and create information about new known target objects.
- the reminder engine 308 may be configured to perform operations that enable the future reminders to be set, a future reminder condition to be monitored, and the future reminder to be triggered.
- the reminder engine 308 may receive information from multiple mobile computing devices 300 , 302 about the reminder target objects that have been selected and about the locations of the mobile computing devices 300 , 302 .
- the reminder engine 308 may interact with the object recognition engine 310 to recognize the target objects.
- the reminder engine 308 may continuously or periodically monitor for the trigger conditions to trigger the future reminders for the target objects.
- the trigger conditions may be related to the location of the mobile computing device 300 , a time related to an occurrence of an event associated with the reminder target objects, etc.
- the reminder engine 308 may store the future reminders for every instance of the downloadable reminder applications that have been deployed in the reminder database 307 and periodically send reminder packets to the instance of the downloadable reminder applications to update the current reminders scheduled for each instance of the downloadable application.
- the target object database 330 stores and maintains a complete master set of all known target objects in the backend server system.
- the trigger condition database 332 configured to store trigger conditions for each known target object.
- the trigger condition database 332 may be a relational database that makes a nexus of all the possible triggerable conditions for each of those known target objects as well as any specific trigger conditions currently set for each instance of the downloadable reminder application for a specific target object.
- the reminder engine 308 is configured to generate customized reminder packets for each instance of the downloadable reminder application based on the nexus matchings for that instance and an entry in the set of databases that a future reminder is currently set for that target object with its current trigger conditions for that target object in that instance of the downloadable reminder application.
- both the downloadable application in the mobile computing device 300 , 302 and an interface for third parties presented by the backend mirrored server system can be used as the initial starting point to use the object recognition engine 310 in the backend server system to identify an object to set a future reminder on.
- both an instance of the downloadable application in the mobile computing device and an interface for third parties presented by the backend server system are used as sources to supply objects to the object recognition engine 310 in the backend server system to identify an object to create a target object with an actionable a future reminder.
- the downloadable reminder application is configured to enable a user of the mobile computing device 300 to select an object and flag the object as a candidate to make a known target object.
- the third party interface is configured to solicit a third party administrator to identify an object to set a future reminder on and assign actionable trigger conditions for a future reminder for that object, and then the interface for third parties is configured to send the object to the object recognition engine 310 in the backend server system.
- the third party will be described in more detail in FIG. 3B .
- Code, including one or more routines, is scripted to set personal future reminders in a downloadable reminder application resident in a mobile computing device 300 through a combination of image recognition, scene analysis, OCR, metadata analysis, etc. from 1) a video feed, 2) a still picture of the object, 3) monitoring the browser activity and web pages appearing on the display of the mobile computing device, and 4) any combination of these three object feeding sources.
- the potential object on which the user of the mobile device wishes to set a future reminder on is set, either the 1) user/third party administrator affirmatively indicates the object/service in the image of 1) a still photo, 2) the video feed, and/or 3) displayed on the browser, should be flagged as the reminder target object.
- the positively affirmed and identified reminder target object is sent to the object recognition engine 310 in the backend server system to be identified via matching to known target objects in the database or by further analysis and web crawling to find the closest matches on the Web.
- a number of possible candidate objects can be presented on the display screen of the mobile device as a list of possible matching items to the identified and flagged object to the user of the mobile device and the user will select which is the correct one.
- the backend server system can scale to a large number of recognizable target objects with an indefinite number of future reminders and send subsets of possible recognizable known target objects and triggerable conditions in the reminder packets customized for that instance of the downloadable reminder application. Note, as later described, the system may treat objects supplied by third party administrators in a similar manner
- the reminder engine 308 when the reminder engine 308 receives the potential object desired to have an actionable reminder function, then the reminder engine 308 cooperates with the object recognition engine 310 and other any other engines to analyze the object. The reminder engine 308 then sends back to the downloadable reminder application a number of possible candidate objects presented as a list of possible closest matching items recognized by the engines to the potential object desired to have an actionable reminder function. The user of the mobile computing device can positively affirm that the potential object was correctly identified by the system and then set this object as a target object.
- the object recognition engine 310 in the backend server system logs in an entry in the target object database 330 if the identified target object was new to the system.
- the reminder engine 308 in the backend server system logs in an entry in the reminder database 307 to set a current reminder for that target object for this instance of the downloadable application and any triggerable conditions and triggerable contributions actionable with that target object.
- the reminder engine 308 then sends a reminder packet that includes one or more objects to the downloadable reminder application to establish or update the local database of known target objects stored in the memory of the mobile device.
- the reminder engine 308 in the backend server system sends one or more of those digital fingerprints in a reminder packet of known target objects that have actionable trigger conditions to each instance of the downloadable reminder application to update the current subset of target objects.
- the reminder engine 308 generates the customized reminder packets for each instance of the downloadable reminder application and sends the customized reminder packets over the wide area network to be stored in a memory/cache of the mobile computing device.
- the downloadable reminder application regularly references the local target database and actively requests regular updates for the customized reminder packet rather than having the reminder engine 308 pushing the updates of the customized reminder packet to each instance of the downloadable reminder application. In the alternative, the reminder engine 308 pushes the reminder packet updates to each instance of the downloadable reminder application.
- the visual recognition module of the downloadable reminder application is configured to allow a consumer the ability to set a reminder simply by pointing their smart phone or tablet device at a related object and confirming that a future reminder should be set.
- the user points the video camera of the mobile computing device, such as a smart phone or tablet, at an object.
- the target objects already known by the system potentially appear with a highlighting around them when appearing on the display screen.
- the user may affirmatively indicate the object/service appearing on the display screen of the mobile device on which the future reminder should be set, and the downloadable reminder application sends the identified object/service to a number of recognition engines in the backend server system to be identified. Once positively identified the object is flagged and sent as a target object that a reminder needs to be established for.
- the reminder engine 308 in the backend server system creates in the set of databases, a number of target objects, i.e. objects/services/etc., that can be recognized and accordingly have a triggerable reminder condition associated with that target object.
- target objects may be highlighted in, for example, the video stream being displayed on the display screen of the mobile device. The user may select that object on the display screen and then the trigger conditions and triggerable contributions associated with that target object are set as a reminder for that instance of the downloadable application.
- the downloadable reminder application in the mobile computing device uses object recognition technology, including image analysis, scene analysis, OCR, and other routines, to recognize the target object.
- object recognition technology including image analysis, scene analysis, OCR, and other routines.
- the user points the video camera of the mobile computing device points at some image of a pair of shoes, and the resident software on the mobile device identifies the object displayed on the display screen in view of the camera as a pair of shoes flagged as a target object.
- the downloadable reminder application in the mobile computing device after identifying the target object appearing on the display screen, the system processes any associated reminders and sets them up to activate.
- the downloadable reminder application processes the reminder association on the shoes image and sets a reminder based on the location of shops known to sell that pair of shoes.
- the process may occur solely on the mobile computing device itself or be a dynamic exchange between the downloadable reminder application and processing power on the mobile computing device and the applications and processing power in the backend server system.
- the processing by the downloadable reminder application along with a dynamic exchange between the downloadable reminder application and the applications and processing power in the backend server system are configured to give the ability to recognize a large number and wide variety of real world objects. The combination gives scalability of on top of what merely device object recognition allows.
- the reminder target object or information related to the reminder target object may be sent by the mobile computing device 300 to the backend reminder server system 352 using templates with various fields.
- the template with various guidance and menus may be presented to the user, and the user fills in the solicited information.
- the solicited information may be extracted from the template and sent to the reminder engine 308 to set the future reminder and the object recognition engine 310 to identify or match the reminder target object with known target objects stored in the target object database 330 .
- the reminder engine 308 in the backend server system receives the flagged target object to set the reminder on, updates its databases, checks what the latest triggering conditions and triggerable contributions on a reminder are for that target object and sends back an updated reminder packet to the downloadable reminder application.
- the downloadable reminder application in the mobile computing device and/or the reminder engine 308 in the backend server system fires the reminder set for that target object and alerts the user.
- the user walks through the mall and past a shoe shop selling the same pair of shoes.
- the user's smart phone reminds the user of their desire to purchase the pair of shoes.
- Triggerable contributions such as price comparisons of the shoes to other shops may also appear, coupons for the shoes or to the store may appear, etc.
- the target object database 330 is configured to store information about a group of known objects.
- the information may describe the different characteristics of the known objects. This may include geographical information, color information, pattern information, and so on.
- the characteristics of the object may include any information about the object that may be useful to identify the object and recognize it as a known object. For example, an office building located on the corner of Fourth Street and Broadway Avenue in downtown San Francisco may be identified based on its unique pyramid shape architecture and orange color.
- the object database 330 may be a large database when it is configured to store information about many objects or many groups of objects. Many techniques may be used to generate the information about the objects. For example, the information may be generated by human, or it may be generated by a special computer application coded to scan a color image and generate a list of objects included in the image along with their characteristics.
- the trigger condition database 332 may be configured to store information on possible trigger conditions as well as possible triggerable contributions.
- the possible triggerable contributions may include additional identification or descriptive information (e.g., the university and its history), advertisement information (e.g., restaurant discount coupons), link information (e.g., a URL link to the website of a restaurant), listing of food establishments in various buildings, links to user reviews for a particular business, links to web pages, etc.
- advertisement information e.g., restaurant discount coupons
- link information e.g., a URL link to the website of a restaurant
- Different types of triggerable contributions may be stored for the same target object.
- the reminder engine 308 can start transmitting triggerable contributions including the video files, and advertisements and images, textual messages, links to relevant web pages, etc. after the when a trigger condition is satisfied.
- the visual recognition module 135 then overlays this augmented information onto the frames of the images appearing on the display screen of the mobile device.
- the object recognition engine 310 can be configured to take advantage of distributed workload computing across multiple servers to increase the speed of filtering out known images stored in the target object database 330 compared to the characteristics information transmitted by the visual recognition module 135 .
- the object recognition engine 310 may use the geographical information included in the frames of the captured video stream 305 and the information stored in the object database 330 to recognize the objects. For example, the yellow building with the pyramid shape located at latitude coordinate X and longitude coordinate Y may be recognized as the National Financial Building.
- the object recognition engine 310 may use a set of filters and apply the filters to the characteristics or visual information received from the mobile computing device 100 to determine whether it can recognize what the object or who the person is.
- the frames generally include the same objects and/or persons and the characteristics/visual information may have the same pattern of identified major features of the object (or the points of interest). This may help the object recognition engine 310 to narrow down the matching options that are available in the object database 330 .
- the object recognition engine 310 may recognize the distinctive features for the point of interest as a billboard or poster for a movie, a restaurant such as McDonalds, a building such as an office, historic landmark, residence, etc.
- Periodic synchronization may occur between the downloadable reminder application resident in the mobile computing device and the reminder engine 308 of the backend reminder server system 352 .
- that instance of the reminder application modules downloaded to the mobile computing device may store objects and commands that the user selects in the non-volatile portion of the memory of the mobile computing device and then transmit those stored objects and commands to the backend reminder server system 352 when the communication connection is re-established.
- the backend reminder server system 352 may enable the mobile computing devices to download application modules necessary to perform the reminder processing operations independently of the backend reminder server system 352 .
- the downloadable application modules may be stored in the application module database 308 .
- that mobile computing device 350 may operate as described in FIG. 1 where they use the application modules along with the local target database 160 previously downloaded from the backend reminder server system 352 .
- the content of the local target database 160 in the memory of the mobile computing device and the downloadable application modules may be updated during the periodic synchronization with the reminder engine 308 of the backend reminder server system 352 .
- the downloadable reminder application is scripted to function independently of the backend server system when a communication connection between them is interrupted, for example internet service is lost due to coverage or the mirrored server system goes down.
- the downloadable reminder application then refers to the set of digital fingerprints for the known target objects in the local target object database stored in the memory of the mobile device, performs its own target object identification with a visual recognition module, stores currently unknown objects desired to be set as target objects, stores any candidate known target objects selected and flagged by the user to have a future reminder set on, as well as stores any commands that the user selects while the communication connection is interrupted in non-volatile portions of the mobile computing device.
- the downloadable reminder application is scripted to retrieve the unknown objects, known target objects selected to have a future reminder set, and any commands and then transmit this information over a public wide area network to the reminder engine 308 in the backend server system.
- the backend mirrored server system has a reminder database 307 configured to store multiple instances of a downloadable reminder application that the backend server system is configured to serve a given instance of the downloadable reminder application to a mobile computing device requesting an instance to install on that device.
- the backend mirrored server system has a reminder database 307 that keeps enough information on reminder service for the multiple instances of the downloadable reminder application, each on its own mobile computing device, to create a backup copy of current future reminders set for each instance of the downloadable reminder application, and a history of past future reminders for each instance of the downloadable reminder application and associate that with a user profile. If a user switches mobile devices the entire user profile along with all the reminders is downloaded to the new mobile device and new instance of the downloadable reminder application. It may be noted although multiple databases are illustrated in FIGS. 3A & 3B , two or more of these databases may be combined or spread over even more databases. Similarly, the engine functions on the server may be combined or spread over even more severs.
- the backend reminder server system 352 may be implemented as an Intelligent Data Operating Layer (IDOL) server using the IDOL application and hardware system—a product of Autonomy Corporation of San Francisco, Calif. Other software and systems associated with the IDOL application may also be used.
- IDOL Intelligent Data Operating Layer
- the IDOL application collects indexed data from connectors from various sources to train the engines and stores it in its proprietary structure, optimized for fast processing and retrieval of data.
- the IDOL application forms a conceptual and contextual understanding of all content in an enterprise, automatically analyzing any piece of information from over thousands of different content formats and even people's interests. Hundreds of operations can be performed on digital content by the IDOL application, including hyperlinking, agents, summarization, taxonomy generation, clustering, deduction, profiling, alerting and retrieval.
- the IDOL application has a knowledge base of concept information and is able to inter-relate the reminder target objects with the corresponding media.
- An example of the modules included in the IDOL application is illustrated in FIG. 5 .
- the IDOL application enables organizations to benefit from automation without losing manual control. This complementary approach allows automatic processing to be combined with a variety of human controllable overrides, offering the best of both worlds and never requiring an “either/or” choice.
- the IDOL application integrates with all known legacy systems, eliminating the need for organizations to cobble together multiple systems to support their disparate component.
- the IDOL application may be associated with an IDOL connector which is capable of connecting to hundreds of content repositories and supporting over thousands of file formats. This provides the ability to aggregate and index any form of structured, semi-structured and unstructured data into a single index, regardless of where the file resides.
- the extensive set of connectors enables a single point of search for all enterprise information (including rich media), saving organizations much time and money. With access to virtually every piece of content, the IDOL application provides a 360 degree view of an organization's data assets.
- the IDOL application implements a conceptual technology, is context-aware, and uses deep audio and video indexing techniques to find the most relevant products, including music, games and videos.
- the IDOL application categorizes content automatically to offer intuitive navigation without manual input.
- the IDOL application also generates links to conceptually similar content without the user having to search.
- the IDOL application may be trained with free-text descriptions and sample images such as a snapshot of a product.
- a business console presents live metrics on query patterns, popularity, and click-through, allowing the operators to configure the environment, set-up promotions and adjust relevance in response to changing demand.
- the visual recognition module 135 of the mobile computing device 100 may identify the characteristics of the objects and/or persons and then causes that information to be transmitted to an IDOL server in real time.
- the third party interface and/or the visual recognition module 135 of the mobile computing device 100 may send the object to an IDOL server to be processed.
- the downloadable application and backend server system cooperate to use real world images and objects as triggers, merging them with rich interactive content such as videos and 3D animations called, “Auras”.
- the downloadable application is available for mobile compting devices such as iPhone4, iPad2 and Android devices, the downloadable application is available in on-line data stores such as Apple's App Store and the Android Market.
- the downloadable application and backend server system cooperate to change the way a user sees and interacts with the world by merging the physical with the virtual world.
- the downloadable application and backend server system cooperate to may chose ordinary objects as the “triggers”—a newspaper, a wireless router and a floor plan.
- the downloadable application and backend server system cooperate to bring these everyday things into digital life, showing just how useful this technology can be—whether it's delivering breaking news from a printed newspaper, showing you how to install a home entertainment system or even finding your way around a building.
- the downloadable application and backend server system cooperate to provide an interactive platform that uses advanced image recognition technology to merge the physical and virtual worlds.
- the downloadable application and resident browser cooperate to be a visual browser, capable of recognizing objects in the real world and overlaying this view with interactive digital content such as video, 3D animation and audio.
- FIG. 3B illustrates a diagram of an example of backend reminder server system that may be connected with one or more third party servers via the Internet, in accordance with some embodiments.
- the components included in the backend reminder server system 352 may be in addition to the components illustrated in FIG. 3A .
- the backend reminder server system 352 presents a user interface to the third party administrators to obtain an object/service/etc. to be a target object from the third party and/or present an already known target objects that the third party may configure trigger conditions and triggerable contributions with that known target object.
- the backend reminder server system 352 processes candidates for target objects from third party administrators in a similar fashion as described above for candidates for target objects from the mobile computing device.
- the backend reminder server system 352 may receive information from a third party server 405 .
- the third party server 405 may be associated with the third party database 409 .
- the interface for third parties is presented by the backend server system.
- An administrator of the third party server interacts with the interface to register an object, including real world objects, services, broadcast programs, and movies, as a target object with the backend server system, and assigns trigger conditions with that target object.
- the object recognition engine 310 of the backend server system process the registered object to determine any identifying characteristics of that object, and then the reminder engine 308 stores the registered object, its identifying characteristics, and assigned trigger conditions into the target object database as a known target object.
- the backend reminder server system 352 stores the registered object/service/movie/etc. and stores the target object in the reminder target object database 315 .
- the administrator may also register and associate trigger conditions and triggerable contributions with a target object.
- Each third party server 405 may provide information that may be related to the reminders and may enhance the information about the reminders.
- the third party information may include triggerable contributions including coupon information, product review and feedback information, etc.
- the backend reminder server system 352 may store the third party information and may transmit the third party information to the mobile computing devices 300 , 302 to be stored locally.
- the reminder engine in the server system sends the latest triggerable contribution for that target object.
- the administrator may register an image of a pair of brown shoes and associate that with target object a trigger condition of various geographical locations of shoe stores where the pair of brown shoes is sold. Reminders are now triggered when the location of the mobile computing device is near one of these shoe stores.
- the location information of the shoe stores in this example may be stored in the reminder target database 315 , or it may be stored in a separate time and location database 316 .
- the trigger condition of time associated with the target object is set by a third party. An identifiable upcoming sports event advertised on the Internet, TV, and news papers is submitted by the third party administrator. The administrator sets the trigger condition of time both one day before as well as an hour before the sports event is to start and triggerable contributions of video trailers, offers for tickets, etc.
- the reminder engine of the backend server system retrieves the content information from the fields of the template user interface presented to the third party administrator and sends the information to both 1 ) the set of databases for known target objects and their associated triggerable conditions and contributions, and 2) the various recognition engines so that one or more composite image recognition profiles of that target object are generated so that a match to the target object can be easily made when displayed on the mobile computing device.
- the third party may add triggerable contributions such as coupons, comparison charts, surveys, Advertisements, etc. when the target object is registered.
- the third party may select from a list of pre-selectable triggerable contributions presented via the third party interface or add a customized triggerable contribution for that object being identified by the administrator.
- the third party commercial partners interacts with the interface for third party's presented by the backend mirrored server system to allow consumers to intuitively and easily set reminders about target objects.
- the backend server system also includes the user profile engine 328 and user profile database 360 .
- the backend reminder server system 352 may tailor target objects, triggerable contributions, and even trigger conditions with information on those points that is more relevant to the user of the specific mobile computing device hosting the visual recognition module 135 by maintaining a user profile.
- the user profile database 360 is maintained to represent each user's interests, demographics, and/or specific patterns of use, which can be referenced by the user profile engine 328 when determining what type of information to augment a target object.
- the user profile engine 320 may be associated with the user profile database 328 which is configured to store information about registered users and/or mobile computing devices.
- the user profile engine 320 may be also configured to validate registered mobile computing devices 300 , 302 .
- the backend reminder server system 352 may be configured to store information related to the current and well as past reminder target objects in the reminder database 307 .
- the backend reminder server system 352 may also be configured to keep track of the instances of application modules that have been downloaded to the mobile computing devices 300 , 302 .
- the backend reminder server system 352 is able to recognize the switch and update the new mobile computing device automatically using the stored information.
- the IDOL server system may automatically profile the way the users interact with each other and with information on their mobile computing devices, build a conceptual understanding of their interests and location to deliver tailored commercial content.
- the IDOL server provides automatic notification as soon as new tracks and relevant products are released, or location-specific information such as traffic reports and up-to-the-minute news, without the user having to search.
- the backend server system and its set of engines 300 and set databases are trained on a set of views of the world and the models derived are stored for future retrieval.
- the engines may use the combination of geographical information and visual characteristics to allow a faster matching.
- the downloadable reminder application in the mobile computing device can be deployed to collect geospatial information and a video data stream from the camera and feed it back to the system. This is used to pinpoint the objects or locations within view and augment the video stream with additional visual or audiovisual objects or images.
- FIG. 6 illustrates a block diagram of example architecture of an embodiment of the downloadable reminder application 150 in the mobile computing device.
- the downloadable reminder application 150 may include one or more application modules to enable a user of the mobile computing device 100 to set future reminders. These application modules may include reminder setting module 155 , visual recognition module 135 , browser monitoring module 170 , third party information module 175 , and future reminder triggering module 180 . One or more of these modules may be downloaded to the mobile computing device 100 from the reminder engine in the server 300 that the mobile computing device 100 is connected with.
- the reminder setting module 155 may be configured to enable the user to affirmatively select the objects/services/broadcast programs displayed on the display screen of the mobile computing device 100 and flag them as the reminder target objects.
- the browser monitoring module 170 may work together with the reminder setting module 155 and may be configured to monitor web pages that the user may be viewing on the display screen and to enable the user to select objects/services/broadcast programs displayed via those web pages and flag them as the reminder target objects.
- a set of objects in the video feed or the internet browsing can both be identified and be associated with the third party information provided by the third party information module 175 .
- the recognition module 135 may be configured to process the reminder target objects or information associated with the reminder target objects to determine whether the reminder target objects are recognized as previously known targets.
- Information about the previously known targets may be stored in the target database 160 .
- the target database 160 may include other information related to the previously known targets.
- the target database 160 may include information about the shoe stores that sell particular types of shoes and the location of those shoe stores. It may be noted that different techniques may be used to implement the target database 160 .
- the target database 160 may simply be a cache memory inside the mobile computing device 100 .
- Comparison operations may be performed by the recognition module 135 .
- the reminders may be established by the reminder triggering module 180 .
- the reminders may be triggered based on the location (e.g., corner of 5th street and Main Street) of the mobile computing device or based on a time (e.g., Wednesday at 7:00 p.m.).
- the third party information module 175 may be configured to provide information related to the reminder target objects.
- the third party may be a shoe manufacturing company (e.g., Nike), and it may have a coupon to encourage the user to purchase a pair of Nike brown shoes when the reminder is about a pair of brown shoes.
- the information from the third party may be displayed along with the reminder.
- each reminder may be associated with multiple matching results, and the user of the mobile computing device 100 may be presented with a list of all the possible matching results.
- the user may use the mobile computing device 100 to capture a video or image of a pair of brown shoes. The user may then select the brown shoes from that video or image and flag them as a reminder target.
- the application modules in the mobile computing device 100 may perform operations to recognize the brown shoes and establish the reminders.
- a reminder may be triggered based on the location of the mobile computing device 100 using its GPS feature.
- the reminder is triggered because the application modules determine that there are many shoe stores in that shopping center sell brown shoes similar to the ones that the user previously flagged.
- the reminder may be displayed on the display screen of the mobile computing device 100 along with other related information. It should be noted that the information about the location of the shoe stores and the types of shoes that each shoe store sells have already been stored in the target database 160 .
- the user may use a combination of selecting and flagging objects/services/programs that have not been pre-recognized and flagging the objects/services/programs that have been pre-recognized as the reminder target objects.
- the target object may include video or still images of a real world object, a service, a movie, a broadcast program, etc.
- the future reminders may be triggered based on a location, a specific time or both.
- the specific time may be determined by a third party.
- the target object may be a broadcast program by NBC broadcasting television network. The user may select the broadcast program as a target object by using the mobile computing device to capture an image on a billboard promoting the broadcast program.
- the recognition module 135 in the mobile computing device 100 may recognize the image as being associated with the broadcast program to be broadcast by NBC.
- the recognition module 135 may further identify that the broadcast program will be broadcast at 7:00 p.m. on Saturday on NBC Channel 11. That information may be sent to a reminder triggering module 180 which triggers the future reminder at 7:00 p.m. on Saturday.
- the future reminder may be displayed along with the information about the broadcast program and the television channel that the user may want to tune the television to watch the broadcast program.
- the future reminders may be triggered based on a specific time set by the user or based on recognition of a target object from a current video feed.
- FIG. 4 illustrates an example diagram of a network of mirrored backend reminder server system that may be used to perform the reminder processing, in accordance with some embodiments.
- each server site is represented by one server computer for simplicity. However, it should be understood that each server site may include multiple server computers working together collaboratively in a distributive manner.
- Server computers 405 M, 405 A, 405 B and 405 C connected to the network 200 may be configured as IDOL servers.
- the IDOL servers may include a main IDOL server 405 M and multiple mirrored IDOL servers 405 A- 405 C.
- the main IDOL server 405 M may mirror its information onto the mirrored IDOL servers 405 A- 405 C.
- the mirroring may include mirroring the content of the main IDOL server database 406 M into the mirrored IDOL sever databases 406 A- 406 C.
- the application module database 308 , the target database 315 , and the user profile database 328 may be mirrored across all of the mirrored IDOL servers 405 A- 405 C.
- the main IDOL server 405 M and the mirrored IDOL servers 405 A- 405 C may be located or distributed in various geographical locations to serve the mobile computing devices in these areas.
- the main IDOL server 405 M may be located in Paris
- the mirrored IDOL server 405 A may be located in Boston, 405 B in Philadelphia, and 405 C in New York.
- the mirroring of a server computer in one location with another server computer in another location may be understood as the mirroring of a server site with all of its server computers together with associated hardware and content.
- a set two or more IDOL servers may work together in a cooperative and distributive manner to do the work of the object recognition engine 310 described in FIG. 3A .
- a set of two or more IDOL servers may work together in the same cooperative and distributive manner to do the work of the reminder processing 308 or the user profile engine 320 . This allows the functionalities of the object recognition engine 310 , the reminder engine 308 and the user profile engine 320 amongst the set of server computers to be performed in a faster manner.
- the dotted lines 451 , 452 and 453 are used to illustrate examples of the IDOL mirrored servers working together collaboratively.
- the dotted lines 450 and 454 are used to illustrate the IDOL servers processing of the requests from the mobile computing devices 410 A and 410 B.
- the distribution of server computers within a given location or sister location may help improving the response time of the reminder processing operations.
- the mirroring of sites with identical compositions of hardware and content may also help improving the response time of the reminder processing operations.
- the mirroring of identical server site locations aids in servicing potentially millions of mobile computing devices with the downloadable reminder processing application modules to select target objects and to trigger the future reminders by distributing the workload and limiting the physical transmission distance and associated time.
- the IDOL server set being duplicated with the same content and mirrored across the Internet to distribute this load to multiple identical sites to increase both response time and handle the capacity of the queries by those mobile computing devices. Load balancing techniques may also be used to improve response time.
- Combining the visual information and the geographical information may allow a rapid recognition or matching to the characteristics of objects that are known and pre-stored in an object database.
- the geographical information may be provided by a global positioning system (GPS).
- GPS global positioning system
- Combining the visual information with the geographical information may reduce the amount of possible points of interest that need to be sorted through by a server computer to identify and recognize known objects and/or persons.
- the rough geographical information from the GPS reduces the amount of possible points of interest that need to be sorted through as a possible match to known objects in that area.
- FIG. 5 illustrates an example block diagram of some modules of an IDOL server, in accordance with some embodiments.
- IDOL server 900 may include automatic hyperlinking module 905 , automatic categorization module 910 , automatic query guidance module 915 , automatic taxonomy generation module 920 , profiling module 925 , automatic clustering module 930 , and conceptual retrieval module 935 .
- the automatic hyperlinking module 905 is configured to allow manual and fully automatic linking between related pieces of information. The hyperlinks are generated in real-time at the moment the document is viewed.
- the automatic categorization module 910 is configured to allow deriving precise categories through concepts found within unstructured text, ensuring that all data is classified in the correct context.
- the automatic query guidance module 915 is configured to provide query suggestions to find most relevant information. It identifies the different meanings of a term by dynamically clustering the results into their most relevant groupings.
- the automatic taxonomy generation module 920 is configured to automatically generate taxonomies and instantly organizes the data into a familiar child/parent taxonomical structure. It identifies names and creates each node based on an understanding of the concepts with the data set as a whole.
- the profiling module 925 is configured to accurately understand individual's interests based on their browsing, content consumption and content contribution. It generates a multifaceted conceptual profile of each user based on both explicit and implicit profiles.
- the automatic clustering module 930 is configured to help analyze large sets of documents and user profiles and automatically identify inherent themes or information clusters. It even cluster unstructured content exchanged in emails, telephone conversations and instant messages.
- the conceptual retrieval module 935 is configured to recognize patterns using a scalable technology that recognizes concepts and find information based on words that may not be located in the documents. It should be noted that the IDOL server 900 may also include other modules and features that enable it to analyze the objects and other information content sent by the interface for third parties and downloadable reminder application.
- FIG. 7 illustrates a block diagram of an example computing system that may use an embodiment of one or more of the software applications discussed herein.
- the computing system environment 800 is only one example of a suitable computing environment, such as a client device, and is not intended to suggest any limitation as to the scope of use or functionality of the design. Neither should the computing environment 800 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 800 .
- the computing system may be a client mobile computing system.
- the system includes a processor, a memory, a built in battery to power the mobile computing device, a built-in video camera and display screen for the mobile computing device, and built-in Wi-Fi circuitry to wirelessly communicate with a server computer connected to network.
- the design is operational with numerous other general purpose or special purpose computing system environments or configurations.
- Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the design include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- the design may be described in the general context of computing device executable instructions, such as program modules, being executed by a computer.
- program modules include routines, programs, objects, components, data structures, etc. that performs particular tasks or implement particular abstract data types.
- Those skilled in the art can implement the description and/or figures herein as computer-executable instructions, which can be embodied on any form of computing machine readable media discussed below.
- the design may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote computer storage media including memory storage devices.
- an exemplary computing type system for implementing the design includes a general-purpose computing device in the form of a computer 810 .
- Components of computer 810 may include, but are not limited to, a processing unit 820 having one or more processing cores, a system memory 830 , and a system bus 821 that couples various system components including the system memory to the processing unit 820 .
- the system bus 821 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) locale bus, and Peripheral Component Interconnect (PCI) bus.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- Computer 810 typically includes a variety of computing machine readable media.
- Computing machine readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media.
- computing machine readable mediums uses include storage of information, such as computer readable instructions, data structures, program modules or other data.
- Computer storage mediums include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information and which can be accessed by computer 800 .
- Communication media typically embodies computer readable instructions, data structures, program modules, or other transport mechanism and includes any information delivery media.
- the system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832 .
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system 833
- RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820 .
- FIG. 7 illustrates operating system 834 , application programs 835 , other program modules 836 , and program data 837 .
- the computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media.
- FIG. 7 illustrates a hard disk drive 841 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 851 that reads from or writes to a removable, nonvolatile magnetic disk 852 , and an optical disk drive 855 that reads from or writes to a removable, nonvolatile optical disk 856 such as a CD ROM or other optical media.
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, USB drives and devices, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 841 is typically connected to the system bus 821 through a non-removable memory interface such as interface 840
- magnetic disk drive 851 and optical disk drive 855 are typically connected to the system bus 821 by a removable memory interface, such as interface 850 .
- the drives and their associated computer storage media discussed above and illustrated in FIG. 7 provide storage of computer readable instructions, data structures, program modules and other data for the computer 810 .
- hard disk drive 841 is illustrated as storing operating system 844 , application programs 845 , other program modules 846 , and program data 847 .
- operating system 844 application programs 845 , other program modules 846 , and program data 847 are given different numbers here to illustrate that, at a minimum, they are different copies.
- a user may enter commands and information into the computer 810 through input devices such as a keyboard 862 , a microphone 863 , and a pointing device 861 , such as a mouse, trackball or touch pad.
- Other input devices may include a joystick, game pad, satellite dish, scanner, or the like.
- These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB).
- a monitor 891 or other type of display screen is also connected to the system bus 821 via an interface, such as a video interface 890 .
- computers may also include other peripheral output devices such as speakers 897 and printer 896 , which may be connected through an output peripheral interface 890 .
- the computer 810 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 880 .
- the remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810 .
- the logical connections depicted in FIG. 7 include a local area network (LAN) 871 and a wide area network (WAN) 873 , but may also include other networks.
- LAN local area network
- WAN wide area network
- a browser application may be resident on the computing device and stored in the memory.
- the computer 810 When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870 .
- the computer 810 When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873 , such as the Internet.
- the modem 872 which may be internal or external, may be connected to the system bus 821 via the user-input interface 860 , or other appropriate mechanism.
- program modules depicted relative to the computer 810 may be stored in the remote memory storage device.
- FIG. 7 illustrates remote application programs 885 as residing on remote computer 880 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- the present design can be carried out on a computing system such as that described with respect to FIG. 7 .
- the present design can be carried out on a server, a computer devoted to message handling, or on a distributed system in which different portions of the present design are carried out on different parts of the distributed computing system.
- the wireless communication module 872 may employ a Wireless Application Protocol to establish a wireless communication channel.
- the wireless communication module 872 may implement a wireless networking standard such as Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, IEEE std. 802.11-1999, published by IEEE in 1999.
- IEEE Institute of Electrical and Electronics Engineers
- While other systems may use, in an independent manner, various components that may be used in the design, a comprehensive, integrated system that addresses the multiple advertising system points of vulnerability described herein does not exist.
- mobile computing devices may be a laptop computer, a cell phone, a personal digital assistant, or other similar device with on board processing power and wireless communications ability that is powered by a Direct Current (DC) power source that supplies DC voltage to the mobile device and that is solely within the mobile computing device and needs to be recharged on a periodic basis, such as a fuel cell or a battery.
- DC Direct Current
- FIG. 2 illustrates a diagram of a network environment in which the techniques described may be applied.
- the network environment 200 has a network 202 that connects server computing systems 204 - 1 through 204 - n , and at least one or more client computing systems 200 - 1 .
- server computing systems 204 - 1 through 204 - n there may be many server computing systems 204 - 1 through 204 - n and many client computing systems 200 - 1 through 200 - n connected to each other via a network 220 , which may be, for example, the Internet.
- the network 220 might be or include one or more of: an optical network, the Internet, a Local Area Network (LAN), Wide Area Network (WAN), satellite link, fiber network, cable network, or a combination of these and/or others.
- LAN Local Area Network
- WAN Wide Area Network
- client computing system and server computing system is for clarity in specifying who generally initiates a communication (the client computing system) and who responds (the server computing system). No hierarchy is implied unless explicitly stated. Both functions may be in a single communicating device, in which case the client-server and server-client relationship may be viewed as peer-to-peer. Thus, if two systems such as the client computing system 200 - 1 and the server computing system 204 - 1 can both initiate and respond to communications, their communication may be viewed as peer-to-peer.
- communications between the client computing systems 204 - 1 and 204 - 2 , and the server computing systems 200 - 1 and 200 - 2 may be viewed as peer-to-peer if each such communicating device is capable of initiation and response to communication.
- One or more of the server computing systems 204 - 1 to 204 - n may be associated with a database such as, for example, the databases 206 - 1 to 206 - n .
- a firewall such as, for example, the firewall may be established between a client computing system 200 - 3 and the network 220 to protect data integrity on the client computing system 200 - 3 .
- FIG. 2 also illustrates a block diagram of an embodiment of a server computing system to display information, such as a web page, etc.
- the application such as a social network application (e.g., Twitter), when executed on the server computing system 204 - 1 , causes the server computing system 204 - 1 to display windows and user interface screens on a portion of a media space, such as a web page.
- a user via a browser from the client computing system 200 - 1 may interact with the web page, and then supply input to the query/fields and/or service presented by a user interface of the application.
- the web page may be served by a web server computing system 204 - 1 on any Hypertext Markup Language (HTML) or Wireless Access Protocol (WAP) enabled client computing system 200 - 1 or any equivalent thereof.
- the client mobile computing system 200 - 1 may be a smart phone, a touch pad, a laptop, a netbook, etc.
- the client computing system 200 - 1 may host a browser to interact with the server computing system 204 - 1 .
- Each application, widget, plug-in, etc. has a code scripted to perform the functions that the software component is coded to carry out such as presenting fields and icons to take details of desired information.
- Algorithms and engines within the server computing system 204 - 1 take the information from the presenting fields and icons and put that information into an appropriate storage medium such as a database.
- the applications may be hosted on the server computing system 204 - 1 and served to the browser of the client computing system 200 - 1 .
- the applications then serve pages that allow entry of details and further pages that allow entry of more details.
- a computing machine readable medium includes any mechanism that provides (e.g., stores) information in a form readable by a machine (e.g., a computer).
- a computing machine readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; DVD's, EPROMs, EEPROMs, FLASH, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
- the downloadable reminder application may be implemented as software code, hardware logic circuits, and any combination of the two, and portions of the downloadable reminder application scripted in software code are stored in a non-transitory computing device readable medium in an executable format.
- an algorithm may be written in a number of different software programming languages such as C, C++, Java, or other similar languages. Also, an algorithm may be implemented with lines of code in software, configured logic gates in software, or a combination of both. In an embodiment, the logic consists of electronic circuits that follow the rules of Boolean Logic, software that contain patterns of instructions, or any combination of both.
- the present concept also relates to apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Environmental & Geological Engineering (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Ecology (AREA)
- Emergency Management (AREA)
- General Business, Economics & Management (AREA)
- Environmental Sciences (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Display Devices Of Pinball Game Machines (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
- Embodiments of the present invention generally relate to the field of downloadable applications cooperating with a backend server system, and in some embodiments, specifically relate to the setting of future reminders based on visual recognition of an object.
- Various types of video capturing devices are available in the market today at very affordable prices. This allows many consumers the ability to capture video for any occasions at any place and any time. Typically, the content of the captured video is limited to what is visible to the operator of the video capture device. For example, when the operator is videotaping a building because of its unique architecture, what the operator sees in a viewfinder or on a display of the video capturing device are images of the same building and nothing more. Further, the artificial intelligence to do some action based on recognizing objects within the current stream of video is not common in these video capturing devices. Current reminder techniques typically involve setting timers or using calendars. However, they still fail to meet the needs of many users in today's environments, especially in the mobile computing arena.
- For some embodiments, a reminder system is described having a downloadable reminder application and a backend reminder server system. A reminder application database in the backend reminder server system is configured to store multiple instances of a downloadable reminder application. The backend server system is configured to serve a given instance of the downloadable reminder application to a mobile computing device. Each downloadable reminder application is configured to be resident in its own mobile computing device. The backend reminder server system has a set of engines and databases that are configured to work with and exchange information with the multiple instances of the downloadable reminder application. A target object database in the set of databases is configured to store and maintain a complete master set of all known target objects in the backend server system. A
trigger condition database 332 is configured to store trigger conditions for each known target object. A reminder engine is configured to generate customized reminder packets for each instance of the downloadable reminder application based on an entry in the set of databases that a future reminder is currently set for that target object with its current trigger conditions for that target object in that instance of the downloadable reminder application. Each instance of the downloadable reminder application is scripted to use its customized reminder packet to detect when the known target objects satisfy their trigger conditions. - The multiple drawings refer to the embodiments of the invention. While embodiments of the invention described herein is subject to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail.
-
FIG. 1 illustrates one example of block diagram of a mobile computing device that may be used, in accordance with some embodiments. -
FIG. 2 illustrates a diagram of a network environment in which the techniques described herein may be applied. -
FIG. 3A illustrates an example of a backend reminder server system with a set of engines and databases that are configured to work with and exchange information with a downloadable reminder application configured to be resident in mobile computing device, in accordance with some embodiments. -
FIG. 3B illustrates a diagram of an example of backend reminder server system that may be connected with one or more third party servers via the Internet, in accordance with some embodiments. -
FIG. 4 illustrates an example diagram of a network of mirrored backend reminder server system that may be used to perform the reminder processing, in accordance with some embodiments. -
FIG. 5 illustrates an example block diagram of some modules of an IDOL server, in accordance with some embodiments. -
FIG. 6 illustrates a block diagram of example architecture of an embodiment of the downloadable reminder application in the mobile computing device. -
FIG. 7 illustrates a block diagram of an example computing system that may use an embodiment of one or more of the software applications discussed herein. - In the following description, numerous specific details are set forth, such as examples of specific data signals, components, connections, etc. in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well known components or methods have not been described in detail but rather in a block diagram in order to avoid unnecessarily obscuring the present invention. Thus, the specific details set forth are merely exemplary. The specific details may be varied from and still be contemplated to be within the spirit and scope of the present invention. It is to be understood that other embodiments can be used and structural changes can be made without departing from the scope of the embodiments of this invention. Also, it should be appreciated that one or more structural features described in one embodiment could be implemented in a different embodiment, even if not specifically mentioned as being a feature thereof.
-
FIG. 7 andFIG. 2 illustrate example environments to implement the reminder service using visual recognition herein. - In general, the reminder experience as described herein relates to an experience with minimal actions from a user that the user can enjoy with a mobile computing device. The techniques described herein may enable the users to use the mobile computing device to identify information that may be used to trigger future reminders. The information may be captured using a still camera device, a video capturing device, browsing on the Internet, and captured from other feed sources, and may include video, images, and/or audio signals. Many embodiments are discussed, however in an embodiment, a visual recognition module of the downloadable reminder application may be configured to use object recognition technology to recognize one or more objects appearing on a display screen of the mobile computing device and match them to a set of known target objects stored in the local target database. The downloadable reminder application in the mobile computing device can then after recognizing and matching the target object appearing on the display screen, process any associated trigger conditions for the target object. The downloadable reminder application then sets the future reminder for the target object to activate. When the downloadable reminder application sets up the future reminder for the target object, then the downloadable reminder application transmits a communication to the reminder engine in the backend server system. The reminder engine receives the flagged target object to set the reminder on, updates its databases, checks what the latest triggering conditions and triggerable contributions are for that target object, and sends an updated reminder packet over the public wide area network back to the downloadable reminder application. The downloadable reminder application when it detects that the mobile computing device is satisfying the trigger condition for a target object for which it has set a future reminder on, then the downloadable reminder application in the mobile computing device fires the future reminder that was set for that target object and provides the alert to the user along with any triggerable contributions associated with that target object.
-
FIG. 1 illustrates one example of block diagram of a mobile computing device that may be used, in accordance with some embodiments. Mobile computing device 100 may includedisplay module 105,wireless communication module 110, global positioning system (GPS)module 115,video capturing module 120,processor 125,browser application 144, thedownloadable reminder application 150,memory 130, and multiple other applications and modules. The mobile computing device 100 may be, for example, a smart cellular phone, a laptop, a netbook, a touch pad, or any other similar device. Thedownloadable reminder application 150 and its application program interfaces and call routines are configured to work with the various blocks offunctionality downloadable reminder application 150 routines are configured to communicate and cooperate with a reminder engine in a backend server system via thecommunication module 110. Thedownloadable reminder application 150 includes avisual recognition module 135 to assist in the identification of objects captured in, for example, each video frame as well as then highlight actionable objects in the frames of the video stream. Alternatively, an existingvisual recognition module 135 in the mobile computing device 100 may be enhanced by portions of thedownloadable reminder application 150. - The
communication module 110 may be used to allow the mobile computing device 100 to be connected to a public wide area network such as, for example, (seeFIGS. 2-4 ). Thecommunication module 110 may be configured to enable the mobile computing device 100 to connect to the public wide area network using wireless communication protocol or any other suitable communication protocols. For example, thecommunication module 110 may include a wireless fidelity (Wi-Fi)module 111, a Bluetoothmodule 112, abroadband module 113, a short message service (SMS)module 114, and so on. As will be described, thecommunication module 110 may be configured to transmit information including visual information associated with a video stream from the mobile computing device 100 to one or more servers in the backend server system connected to the network. Thedownloadable reminder application 150 has one or more locations of servers (e.g. Universal Resource Locations) stored and security protocol routines in order to create secure communications with the backend server system over the public wide area network. Thedownloadable reminder application 150 is scripted to create a communication connection between itself and a reminder engine resident in the backend server system by cooperating with thecommunication module 110. - The
GPS module 115 may be used to provide the mobile device's geographical location to thedownloadable reminder application 150. The geographical location information may be monitored or called for by thedownloadable reminder application 150. TheGPS module 115 may also be used to enable generating the geographical information and associating the geographical information with images and frames of video streams. This process is typically referred to as geotagging. When the mobile computing device 100 is used to capture a video stream, the geographical information may be inserted into one or more the frames of the video stream. The geographical information may also be inserted and stored with images, video streams, and text messages generated by the mobile computing device 100. The geographical information may be stored as metadata, and may include latitude and longitude coordinates. - The
video capturing module 120 may be configured to capture images or video streams. Thevideo capturing module 120 may be associated with avideo camera 121 and may enable a user to capture the images and/or the video streams. Thevideo camera 121 may be a built-in video camera. - The
downloadable reminder application 150 is scripted to set a future reminder on a target object, to be triggered based on local and temporal trigger conditions including but not limited to 1) time of day indicated by a clock function of the mobile computing device, 2) date and time of day indicated by the clock function, 3) an amount of time from an initial start time by referencing the clock function, 4) a visual recognition of the target object being displayed on a display screen of the mobile computing device, 5) a current geographic location of the mobile computing device indicated by a GPS module of the mobile computing device, and 6) any combination of these five. Thus, the future reminder can be set simply by pointing the mobile computing device's 100 camera at some pre-determined object that is visual recognized by thedownloadable reminder application 150 as a target object and selecting to then set the future reminder. First, the user points the camera, digital still or video camera, of the mobile computing device 100 at a given object. The visual recognition portion of thedownloadable reminder application 150 resident in the mobile computing device 100 is scripted to perform recognition operations to recognize a target object. This may include comparing the reminder target object with the known target objects stored in the target database of the mobile computing device to determine when there is a match. Note, the local target object database in the mobile computing device is a smaller subset of known target objects, than the full set of all known target objects to the backend server system, which is stored in a target object database in the backend server system. The target database of the mobile computing device may be simply a cache memory that is frequently updated using content coming from the target database of the backend server system. - Each future reminder will contain a trigger condition to be satisfied for the target object. As discussed, the trigger condition may be based on local and temporal trigger conditions including but not limited to 1) time 2) visually recognizing that object being displayed on the display screen and being analyzed by either the visual recognition module of the
downloadable reminder application 150 or the recognition engines in the backend server system or any combination of both, and 5) geographic location indicated by the GPS module of the mobile computing device. Thedownloadable reminder application 150 is scripted to have its application program interfaces and call routines monitor the blocks of functionality in the mobile computing device, (E.g.GPS module 115, the clock, thevideo capturing module 120, etc.) to determine when the computing device 100 satisfies any above trigger condition for the target object, and then the future reminder for this instance of thedownloadable reminder application 150 is triggered. - Each known target object may have both triggerable conditions to trigger the future reminder on that known target object and triggerable contributions associated with the known target object to cause an additional beneficial action beyond the alert when the future reminder on that known target object is triggered. Thus, the
downloadable reminder application 150 is scripted to notify a user that the future reminder on the target object is triggered via an alert along with the causing of any associated triggerable contributions associated with the target object. The user is alerted via an alert 1) appearing on a display screen of the mobile computing device, 2) through an audile alert via speakers of the mobile computing device, 3) through a vibrating of the mobile computing device, and 4) any combination of the three. Third party vendor systems and the backend server system may add on valuable triggerable contributions, coupons, comparisons, video trailers, associated with a given target object and executed when the triggering condition occurs. - Note, the
downloadable reminder application 150 may be configured to set a future reminder to trigger at a subsequent time based on subsets of the trigger conditions such as merely 1) a geographical location of the mobile computing device as determined by a built-in global positioning system (GPS) module or 2) a specific time established by a third party, or 3) recognizing the target object in a current video stream being captured by the camera of the mobile computing device. - The
display module 105 may be associated with adisplay screen 106. Thedisplay module 105 may be configured to display the images and/or the video streams captured by thevideo capturing module 120 on thedisplay screen 106. Thedisplay module 105 may also display images from a still camera or from a browser on thedisplay screen 106. For some embodiments, thedownloadable reminder application 150 is scripted to cooperate with thedisplay module 105. Thedownloadable reminder application 150 may be also scripted to enhance certain objects appearing on the display screen with a high lighting, including objects appearing in still images, on web pages, in video streams, and any combination of the three, that 1) have been or 2) can be and 3) any combination of the two, set as a candidate target object that actionable future reminders can be set for. The candidate target object that actionable future reminders can be set for is enhanced with the high lighting around the target object on the display screen. The user may use 1) finger touches, 2) mouse clicks, or 3) otherwise select the highlighted target to set the future reminder on that target object. - The
downloadable reminder application 150 is also scripted to be able to flag any objects appearing on the display screen of the mobile computing device, including objects potentially coming from a video stream, web browsing, etc., and then send the flagged object to the backend server system through thecommunication module 110. One or more recognition engines in the backend server system then are configured to analyze the flagged object in an attempt to identify the flagged object and make a known target object. - The
memory 130 may include internal memory and expansion memory. For example, the internal memory may include read-only memory (ROM) and random access memory (RAM), and the expansion memory may include flash memory. Thememory 130 may be used to store an operating system (OS), the software portions of thedownloadable reminder application 150, and various other applications including, for example, productivity applications, entertainment applications, communication applications, image and/or video processing applications, user interface applications, etc. Thememory 130 also stores reminder packets sent by the reminder engine in the backend server system. The reminder engine in the backend server system is configured to send one or more digital fingerprints of known target objects that have actionable trigger conditions in a reminder packet to thedownloadable reminder application 150 to update a local target object database of known target objects set for that specific instance of thedownloadable reminder application 150. The reminder packets form a small subset of known target objects for the unlimited number of possible objects in the world. The reminder packets also form a small subset of known target objects as compared to the amount of known target objects stored in the target object database in the backend server system. Thedownloadable reminder application 150 is configured to recognize the reminder target object using this small subset of known target objects. Thedownloadable reminder application 150 is also scripted to use these reminder packets to detect trigger conditions, determine triggerable contributions, and other information. Thus, the reminder engine is scripted to generate customized reminder packets for each instance of thedownloadable reminder application 150, and thus, each instance of the application may have a different set of known target objects in its local target object database. - The volatile portion of the
memory 130 stores certain portions of the code for thedownloadable reminder application 150 as well. Theprocessor 125 may be configured to execute instructions associated with the OS,network browsers 144, and the various applications. Some examples of the OS may include Android from Google, iOS from Apple, Windows Phone from Microsoft, and WebOS from Palm/HP, and so on. Thenetwork browsers 144 may be used by the mobile computing device 100 to allow the user to access websites using the network. - For some embodiments, the
visual recognition module 135 of thedownloadable reminder application 150 is configured to process images and/or video streams captured by thevideo capturing module 120 or images supplied by thebrowser 144 or images supplied by thedisplay module 105. For example, thedownloadable reminder application 150 is configured to perform recognition operations to identify any objects within each frame of the captured video stream to determine whether one or more target objects are contained on that frame of the captured video stream to be displayed on the display screen. Thevisual recognition module 135 is scripted to perform recognition operations to recognize the target object, including comparing the objects within each frame of the captured video stream to known target objects stored in the local target object database stored in a memory of the mobile computing device, in order to determine when there is a close match between the objects in the frame and the known target objects. When the reminder target object is not in the database of known objects, then the object may be sent to the numerous engines for comparisons and finding potential matches to the target object. - The
visual recognition module 135 of the downloadable reminder application may analyze, for example, the frames of the captured video stream and identify the objects within each frame of the captured video stream. Some of those objects will be close matches to the small subset of known target objects. Identifying points of interest for an analyzed object may include breaking the object into geometric shapes and distinctive features. The operations may break down each object into different geometric shapes and associated distinctive features. This will form sort of a digital fingerprint for that object. - As discussed, when the
visual recognition module 135 of thedownloadable reminder application 150 sends the video stream to the backend server through thecommunication module 110, the video stream may also be analyzed by the engines in the backend server system as well. Thevisual recognition module 135 may analyze each captured frame of the video stream. Thevisual recognition module 135 may analyze these frames to identify the characteristics or visual information of the object. Thevisual recognition module 135 may also relate patterns from the series of frames to assist in determining what the points of interest are for an object. As thevideo capturing module 135 continues to capture the video stream, it may be possible that thevisual recognition module 135 may identify many different objects. - The
visual recognition module 135 may generally perform recognition operations, including object analysis for identifying distinguishing characteristics of an object, basic scene analysis, optical character recognition (OCR), etc., to extract any distinctive features of the objects appearing on thedisplay screen 106 and then code the distinctive features of the object into a digital fingerprint of that object, which is then compared with a set of digital fingerprints of known target objects stored in a local target object database stored in a memory of the mobile computing device. Note, thevisual recognition module 135 may also detect the geographical information of that object and other known distinctive features for that object and then also include this metadata in the digital fingerprint of that object. - Note, the
visual recognition module 135 can analyze against a JPEG or MPEG type file, as well as files with merely distinctive features including shapes, dot-to-dot type X-Y coordinates of the shapes, patterns colors, letters numbers, symbols, etc. associated with objects. - Note, similar analysis to a captured video stream analysis may occur when monitoring the browser and the user's surfing on the Internet. However a web pages metadata is collected to aid in the identification of objects appearing during the Internet session. Shopping items, services, broadcast programs, etc. may be identified as target objects while the browser is being used to navigate through the Internet.
-
FIG. 3A illustrates an example of a backend reminder server system with a set of engines and databases that are configured to work with and exchange information with a downloadable reminder application configured to be resident in mobile computing device, in accordance with some embodiments. A browser of themobile computing device 300 may download the downloadable reminder application over the public wide area network from the backendreminder server system 352. A user of themobile computing device 300 may need to register themobile computing device 300 with thereminder engine 308 in theserver 300 to enable the downloaded reminder application modules to be run on themobile computing device 300. Backendreminder server system 352 may include a communication module (not shown) to allow it to be connected to a network such as thenetwork 200 illustrated inFIGS. 2 and 4 , then to one or moremobile computing devices reminder engine 308 of the backendreminder server system 352 and themobile computing device 300 to enable the receipt of the visual information, geographic location information, etc. from themobile computing device 300 and thereminder engine 308 to transmit information including the reminder packets to themobile computing device 300. Multiple mobile computing devices will normally be in regular communication with the backend server system. The backendreminder server system 352 may include one or more servers having one or more databases. For some embodiments, the backendreminder server system 352 may be include areminder engine 308, anobject recognition engine 310, target object database of known target objects 330, reminder database of current reminders and history of reminders for each instance of thedownloadable reminder application 315, atrigger condition database 332, which also includes geographic locations of known target objects, a reminder database 350, and many other components. - The
target object database 330 is configured to store objects/services/broadcast programs that can be used to recognize the reminder target object. Thetarget database 330 may store one or more composite images of all of the known target objects. Theobject recognition engine 310 may include a facial recognition engine, a scene analysis engine, an optical character recognition engine, and other visual analysis engines. Theobject recognition engine 310 may be associated with thetarget object database 315 to detect known target objects as well as determine and create information about new known target objects. - The
reminder engine 308 may be configured to perform operations that enable the future reminders to be set, a future reminder condition to be monitored, and the future reminder to be triggered. For example, thereminder engine 308 may receive information from multiplemobile computing devices mobile computing devices reminder engine 308 may interact with theobject recognition engine 310 to recognize the target objects. Thereminder engine 308 may continuously or periodically monitor for the trigger conditions to trigger the future reminders for the target objects. As discussed, the trigger conditions may be related to the location of themobile computing device 300, a time related to an occurrence of an event associated with the reminder target objects, etc. Thereminder engine 308 may store the future reminders for every instance of the downloadable reminder applications that have been deployed in thereminder database 307 and periodically send reminder packets to the instance of the downloadable reminder applications to update the current reminders scheduled for each instance of the downloadable application. - The
target object database 330 stores and maintains a complete master set of all known target objects in the backend server system. Thetrigger condition database 332 configured to store trigger conditions for each known target object. Thetrigger condition database 332 may be a relational database that makes a nexus of all the possible triggerable conditions for each of those known target objects as well as any specific trigger conditions currently set for each instance of the downloadable reminder application for a specific target object. Thereminder engine 308 is configured to generate customized reminder packets for each instance of the downloadable reminder application based on the nexus matchings for that instance and an entry in the set of databases that a future reminder is currently set for that target object with its current trigger conditions for that target object in that instance of the downloadable reminder application. - Next, both the downloadable application in the
mobile computing device object recognition engine 310 in the backend server system to identify an object to set a future reminder on. Thus, both an instance of the downloadable application in the mobile computing device and an interface for third parties presented by the backend server system are used as sources to supply objects to theobject recognition engine 310 in the backend server system to identify an object to create a target object with an actionable a future reminder. The downloadable reminder application is configured to enable a user of themobile computing device 300 to select an object and flag the object as a candidate to make a known target object. Likewise, the third party interface is configured to solicit a third party administrator to identify an object to set a future reminder on and assign actionable trigger conditions for a future reminder for that object, and then the interface for third parties is configured to send the object to theobject recognition engine 310 in the backend server system. The third party will be described in more detail inFIG. 3B . Code, including one or more routines, is scripted to set personal future reminders in a downloadable reminder application resident in amobile computing device 300 through a combination of image recognition, scene analysis, OCR, metadata analysis, etc. from 1) a video feed, 2) a still picture of the object, 3) monitoring the browser activity and web pages appearing on the display of the mobile computing device, and 4) any combination of these three object feeding sources. - In an embodiment, once the potential object on which the user of the mobile device wishes to set a future reminder on is set, either the 1) user/third party administrator affirmatively indicates the object/service in the image of 1) a still photo, 2) the video feed, and/or 3) displayed on the browser, should be flagged as the reminder target object. The positively affirmed and identified reminder target object is sent to the
object recognition engine 310 in the backend server system to be identified via matching to known target objects in the database or by further analysis and web crawling to find the closest matches on the Web. A number of possible candidate objects can be presented on the display screen of the mobile device as a list of possible matching items to the identified and flagged object to the user of the mobile device and the user will select which is the correct one. The backend server system can scale to a large number of recognizable target objects with an indefinite number of future reminders and send subsets of possible recognizable known target objects and triggerable conditions in the reminder packets customized for that instance of the downloadable reminder application. Note, as later described, the system may treat objects supplied by third party administrators in a similar manner - Accordingly, when the
reminder engine 308 receives the potential object desired to have an actionable reminder function, then thereminder engine 308 cooperates with theobject recognition engine 310 and other any other engines to analyze the object. Thereminder engine 308 then sends back to the downloadable reminder application a number of possible candidate objects presented as a list of possible closest matching items recognized by the engines to the potential object desired to have an actionable reminder function. The user of the mobile computing device can positively affirm that the potential object was correctly identified by the system and then set this object as a target object. Theobject recognition engine 310 in the backend server system logs in an entry in thetarget object database 330 if the identified target object was new to the system. Thereminder engine 308 in the backend server system logs in an entry in thereminder database 307 to set a current reminder for that target object for this instance of the downloadable application and any triggerable conditions and triggerable contributions actionable with that target object. - The
reminder engine 308 then sends a reminder packet that includes one or more objects to the downloadable reminder application to establish or update the local database of known target objects stored in the memory of the mobile device. - The
reminder engine 308 in the backend server system sends one or more of those digital fingerprints in a reminder packet of known target objects that have actionable trigger conditions to each instance of the downloadable reminder application to update the current subset of target objects. Thereminder engine 308 generates the customized reminder packets for each instance of the downloadable reminder application and sends the customized reminder packets over the wide area network to be stored in a memory/cache of the mobile computing device. The downloadable reminder application regularly references the local target database and actively requests regular updates for the customized reminder packet rather than having thereminder engine 308 pushing the updates of the customized reminder packet to each instance of the downloadable reminder application. In the alternative, thereminder engine 308 pushes the reminder packet updates to each instance of the downloadable reminder application. - As discussed, the visual recognition module of the downloadable reminder application is configured to allow a consumer the ability to set a reminder simply by pointing their smart phone or tablet device at a related object and confirming that a future reminder should be set. The user points the video camera of the mobile computing device, such as a smart phone or tablet, at an object. The target objects already known by the system potentially appear with a highlighting around them when appearing on the display screen.
- At least two ways exist to select a target object for the reminder service. First, the user may affirmatively indicate the object/service appearing on the display screen of the mobile device on which the future reminder should be set, and the downloadable reminder application sends the identified object/service to a number of recognition engines in the backend server system to be identified. Once positively identified the object is flagged and sent as a target object that a reminder needs to be established for.
- Second, alternatively or in combination with the first way, the
reminder engine 308 in the backend server system creates in the set of databases, a number of target objects, i.e. objects/services/etc., that can be recognized and accordingly have a triggerable reminder condition associated with that target object. Known target objects may be highlighted in, for example, the video stream being displayed on the display screen of the mobile device. The user may select that object on the display screen and then the trigger conditions and triggerable contributions associated with that target object are set as a reminder for that instance of the downloadable application. - Next, the downloadable reminder application in the mobile computing device uses object recognition technology, including image analysis, scene analysis, OCR, and other routines, to recognize the target object. E.g. The user points the video camera of the mobile computing device points at some image of a pair of shoes, and the resident software on the mobile device identifies the object displayed on the display screen in view of the camera as a pair of shoes flagged as a target object.
- Next, the downloadable reminder application in the mobile computing device after identifying the target object appearing on the display screen, the system processes any associated reminders and sets them up to activate. E.g. the downloadable reminder application processes the reminder association on the shoes image and sets a reminder based on the location of shops known to sell that pair of shoes. The process may occur solely on the mobile computing device itself or be a dynamic exchange between the downloadable reminder application and processing power on the mobile computing device and the applications and processing power in the backend server system. The processing by the downloadable reminder application along with a dynamic exchange between the downloadable reminder application and the applications and processing power in the backend server system are configured to give the ability to recognize a large number and wide variety of real world objects. The combination gives scalability of on top of what merely device object recognition allows.
- The reminder target object or information related to the reminder target object may be sent by the
mobile computing device 300 to the backendreminder server system 352 using templates with various fields. The template with various guidance and menus may be presented to the user, and the user fills in the solicited information. The solicited information may be extracted from the template and sent to thereminder engine 308 to set the future reminder and theobject recognition engine 310 to identify or match the reminder target object with known target objects stored in thetarget object database 330. - Next, the
reminder engine 308 in the backend server system receives the flagged target object to set the reminder on, updates its databases, checks what the latest triggering conditions and triggerable contributions on a reminder are for that target object and sends back an updated reminder packet to the downloadable reminder application. - At a later time when the downloadable reminder application detects that the computing device is satisfying the reminder trigger conditions, the downloadable reminder application in the mobile computing device and/or the
reminder engine 308 in the backend server system fires the reminder set for that target object and alerts the user. E.g. 4 days later, the user walks through the mall and past a shoe shop selling the same pair of shoes. The user's smart phone reminds the user of their desire to purchase the pair of shoes. Triggerable contributions such as price comparisons of the shoes to other shops may also appear, coupons for the shoes or to the store may appear, etc. - The
target object database 330 is configured to store information about a group of known objects. The information may describe the different characteristics of the known objects. This may include geographical information, color information, pattern information, and so on. In general, the characteristics of the object may include any information about the object that may be useful to identify the object and recognize it as a known object. For example, an office building located on the corner of Fourth Street and Broadway Avenue in downtown San Francisco may be identified based on its unique pyramid shape architecture and orange color. It may be noted that theobject database 330 may be a large database when it is configured to store information about many objects or many groups of objects. Many techniques may be used to generate the information about the objects. For example, the information may be generated by human, or it may be generated by a special computer application coded to scan a color image and generate a list of objects included in the image along with their characteristics. - For some embodiments, the
trigger condition database 332 may be configured to store information on possible trigger conditions as well as possible triggerable contributions. The possible triggerable contributions may include additional identification or descriptive information (e.g., the university and its history), advertisement information (e.g., restaurant discount coupons), link information (e.g., a URL link to the website of a restaurant), listing of food establishments in various buildings, links to user reviews for a particular business, links to web pages, etc. Different types of triggerable contributions may be stored for the same target object. - The
reminder engine 308 can start transmitting triggerable contributions including the video files, and advertisements and images, textual messages, links to relevant web pages, etc. after the when a trigger condition is satisfied. Thevisual recognition module 135 then overlays this augmented information onto the frames of the images appearing on the display screen of the mobile device. - The
object recognition engine 310 can be configured to take advantage of distributed workload computing across multiple servers to increase the speed of filtering out known images stored in thetarget object database 330 compared to the characteristics information transmitted by thevisual recognition module 135. Theobject recognition engine 310 may use the geographical information included in the frames of the capturedvideo stream 305 and the information stored in theobject database 330 to recognize the objects. For example, the yellow building with the pyramid shape located at latitude coordinate X and longitude coordinate Y may be recognized as the National Financial Building. For some embodiments, theobject recognition engine 310 may use a set of filters and apply the filters to the characteristics or visual information received from the mobile computing device 100 to determine whether it can recognize what the object or who the person is. Since the capturedvideo stream 305 is comprised of a series of closely related frames both in time and in approximate location, the frames generally include the same objects and/or persons and the characteristics/visual information may have the same pattern of identified major features of the object (or the points of interest). This may help theobject recognition engine 310 to narrow down the matching options that are available in theobject database 330. For example, theobject recognition engine 310 may recognize the distinctive features for the point of interest as a billboard or poster for a movie, a restaurant such as McDonalds, a building such as an office, historic landmark, residence, etc. - Periodic synchronization may occur between the downloadable reminder application resident in the mobile computing device and the
reminder engine 308 of the backendreminder server system 352. When there is a loss of communication connection between themobile computing devices reminder server system 352, that instance of the reminder application modules downloaded to the mobile computing device may store objects and commands that the user selects in the non-volatile portion of the memory of the mobile computing device and then transmit those stored objects and commands to the backendreminder server system 352 when the communication connection is re-established. - For some embodiments, the backend
reminder server system 352 may enable the mobile computing devices to download application modules necessary to perform the reminder processing operations independently of the backendreminder server system 352. The downloadable application modules may be stored in theapplication module database 308. For example, when there is no connection with the backend reminder server system 352 (e.g., the Internet service is lost due to coverage or the backendreminder server system 352system 300 is down), that mobile computing device 350 may operate as described inFIG. 1 where they use the application modules along with thelocal target database 160 previously downloaded from the backendreminder server system 352. The content of thelocal target database 160 in the memory of the mobile computing device and the downloadable application modules may be updated during the periodic synchronization with thereminder engine 308 of the backendreminder server system 352. - The downloadable reminder application is scripted to function independently of the backend server system when a communication connection between them is interrupted, for example internet service is lost due to coverage or the mirrored server system goes down. The downloadable reminder application then refers to the set of digital fingerprints for the known target objects in the local target object database stored in the memory of the mobile device, performs its own target object identification with a visual recognition module, stores currently unknown objects desired to be set as target objects, stores any candidate known target objects selected and flagged by the user to have a future reminder set on, as well as stores any commands that the user selects while the communication connection is interrupted in non-volatile portions of the mobile computing device. When the communication connection is re-established between them, the downloadable reminder application is scripted to retrieve the unknown objects, known target objects selected to have a future reminder set, and any commands and then transmit this information over a public wide area network to the
reminder engine 308 in the backend server system. - The backend mirrored server system has a
reminder database 307 configured to store multiple instances of a downloadable reminder application that the backend server system is configured to serve a given instance of the downloadable reminder application to a mobile computing device requesting an instance to install on that device. - The backend mirrored server system has a
reminder database 307 that keeps enough information on reminder service for the multiple instances of the downloadable reminder application, each on its own mobile computing device, to create a backup copy of current future reminders set for each instance of the downloadable reminder application, and a history of past future reminders for each instance of the downloadable reminder application and associate that with a user profile. If a user switches mobile devices the entire user profile along with all the reminders is downloaded to the new mobile device and new instance of the downloadable reminder application. It may be noted although multiple databases are illustrated inFIGS. 3A & 3B , two or more of these databases may be combined or spread over even more databases. Similarly, the engine functions on the server may be combined or spread over even more severs. - For some embodiments, the backend
reminder server system 352 may be implemented as an Intelligent Data Operating Layer (IDOL) server using the IDOL application and hardware system—a product of Autonomy Corporation of San Francisco, Calif. Other software and systems associated with the IDOL application may also be used. The IDOL application collects indexed data from connectors from various sources to train the engines and stores it in its proprietary structure, optimized for fast processing and retrieval of data. As the information processing layer, the IDOL application forms a conceptual and contextual understanding of all content in an enterprise, automatically analyzing any piece of information from over thousands of different content formats and even people's interests. Hundreds of operations can be performed on digital content by the IDOL application, including hyperlinking, agents, summarization, taxonomy generation, clustering, deduction, profiling, alerting and retrieval. The IDOL application has a knowledge base of concept information and is able to inter-relate the reminder target objects with the corresponding media. An example of the modules included in the IDOL application is illustrated inFIG. 5 . - The IDOL application enables organizations to benefit from automation without losing manual control. This complementary approach allows automatic processing to be combined with a variety of human controllable overrides, offering the best of both worlds and never requiring an “either/or” choice. The IDOL application integrates with all known legacy systems, eliminating the need for organizations to cobble together multiple systems to support their disparate component.
- The IDOL application may be associated with an IDOL connector which is capable of connecting to hundreds of content repositories and supporting over thousands of file formats. This provides the ability to aggregate and index any form of structured, semi-structured and unstructured data into a single index, regardless of where the file resides. The extensive set of connectors enables a single point of search for all enterprise information (including rich media), saving organizations much time and money. With access to virtually every piece of content, the IDOL application provides a 360 degree view of an organization's data assets.
- The IDOL application implements a conceptual technology, is context-aware, and uses deep audio and video indexing techniques to find the most relevant products, including music, games and videos. The IDOL application categorizes content automatically to offer intuitive navigation without manual input. The IDOL application also generates links to conceptually similar content without the user having to search. The IDOL application may be trained with free-text descriptions and sample images such as a snapshot of a product. A business console presents live metrics on query patterns, popularity, and click-through, allowing the operators to configure the environment, set-up promotions and adjust relevance in response to changing demand.
- For some embodiments, the
visual recognition module 135 of the mobile computing device 100 may identify the characteristics of the objects and/or persons and then causes that information to be transmitted to an IDOL server in real time. Alternatively, the third party interface and/or thevisual recognition module 135 of the mobile computing device 100 may send the object to an IDOL server to be processed. - The downloadable application and backend server system cooperate to use real world images and objects as triggers, merging them with rich interactive content such as videos and 3D animations called, “Auras”. The downloadable application is available for mobile compting devices such as iPhone4, iPad2 and Android devices, the downloadable application is available in on-line data stores such as Apple's App Store and the Android Market.
- The downloadable application and backend server system cooperate to change the way a user sees and interacts with the world by merging the physical with the virtual world. The downloadable application and backend server system cooperate to may chose ordinary objects as the “triggers”—a newspaper, a wireless router and a floor plan. The downloadable application and backend server system cooperate to bring these everyday things into digital life, showing just how useful this technology can be—whether it's delivering breaking news from a printed newspaper, showing you how to install a home entertainment system or even finding your way around a building.
- The downloadable application and backend server system cooperate to provide an interactive platform that uses advanced image recognition technology to merge the physical and virtual worlds. Using a smart phone or tablet computer, the downloadable application and resident browser cooperate to be a visual browser, capable of recognizing objects in the real world and overlaying this view with interactive digital content such as video, 3D animation and audio.
-
FIG. 3B illustrates a diagram of an example of backend reminder server system that may be connected with one or more third party servers via the Internet, in accordance with some embodiments. The components included in the backendreminder server system 352 may be in addition to the components illustrated inFIG. 3A . The backendreminder server system 352 presents a user interface to the third party administrators to obtain an object/service/etc. to be a target object from the third party and/or present an already known target objects that the third party may configure trigger conditions and triggerable contributions with that known target object. The backendreminder server system 352 processes candidates for target objects from third party administrators in a similar fashion as described above for candidates for target objects from the mobile computing device. - The backend
reminder server system 352 may receive information from athird party server 405. Thethird party server 405 may be associated with thethird party database 409. The interface for third parties is presented by the backend server system. An administrator of the third party server interacts with the interface to register an object, including real world objects, services, broadcast programs, and movies, as a target object with the backend server system, and assigns trigger conditions with that target object. Theobject recognition engine 310 of the backend server system process the registered object to determine any identifying characteristics of that object, and then thereminder engine 308 stores the registered object, its identifying characteristics, and assigned trigger conditions into the target object database as a known target object. The backendreminder server system 352 stores the registered object/service/movie/etc. and stores the target object in the remindertarget object database 315. The administrator may also register and associate trigger conditions and triggerable contributions with a target object. - Each
third party server 405 may provide information that may be related to the reminders and may enhance the information about the reminders. For example, the third party information may include triggerable contributions including coupon information, product review and feedback information, etc. For some embodiments, the backendreminder server system 352 may store the third party information and may transmit the third party information to themobile computing devices - As an example, the administrator may register an image of a pair of brown shoes and associate that with target object a trigger condition of various geographical locations of shoe stores where the pair of brown shoes is sold. Reminders are now triggered when the location of the mobile computing device is near one of these shoe stores. The location information of the shoe stores in this example may be stored in the
reminder target database 315, or it may be stored in a separate time and location database 316. In another example, the trigger condition of time associated with the target object is set by a third party. An identifiable upcoming sports event advertised on the Internet, TV, and news papers is submitted by the third party administrator. The administrator sets the trigger condition of time both one day before as well as an hour before the sports event is to start and triggerable contributions of video trailers, offers for tickets, etc. all associated with that target object. The reminder engine of the backend server system retrieves the content information from the fields of the template user interface presented to the third party administrator and sends the information to both 1) the set of databases for known target objects and their associated triggerable conditions and contributions, and 2) the various recognition engines so that one or more composite image recognition profiles of that target object are generated so that a match to the target object can be easily made when displayed on the mobile computing device. - As discussed, the third party may add triggerable contributions such as coupons, comparison charts, surveys, Advertisements, etc. when the target object is registered. The third party may select from a list of pre-selectable triggerable contributions presented via the third party interface or add a customized triggerable contribution for that object being identified by the administrator. The third party commercial partners interacts with the interface for third party's presented by the backend mirrored server system to allow consumers to intuitively and easily set reminders about target objects.
- The backend server system also includes the user profile engine 328 and
user profile database 360. The backendreminder server system 352 may tailor target objects, triggerable contributions, and even trigger conditions with information on those points that is more relevant to the user of the specific mobile computing device hosting thevisual recognition module 135 by maintaining a user profile. Theuser profile database 360 is maintained to represent each user's interests, demographics, and/or specific patterns of use, which can be referenced by the user profile engine 328 when determining what type of information to augment a target object. The user profile engine 320 may be associated with the user profile database 328 which is configured to store information about registered users and/or mobile computing devices. The user profile engine 320 may be also configured to validate registeredmobile computing devices - Using the user profile engine 320 and the user profile database 328, the backend
reminder server system 352 may be configured to store information related to the current and well as past reminder target objects in thereminder database 307. The backendreminder server system 352 may also be configured to keep track of the instances of application modules that have been downloaded to themobile computing devices reminder server system 352 is able to recognize the switch and update the new mobile computing device automatically using the stored information. - In an embodiment, the IDOL server system may automatically profile the way the users interact with each other and with information on their mobile computing devices, build a conceptual understanding of their interests and location to deliver tailored commercial content. The IDOL server provides automatic notification as soon as new tracks and relevant products are released, or location-specific information such as traffic reports and up-to-the-minute news, without the user having to search.
- The backend server system and its set of
engines 300 and set databases are trained on a set of views of the world and the models derived are stored for future retrieval. The engines may use the combination of geographical information and visual characteristics to allow a faster matching. Following this, the downloadable reminder application in the mobile computing device can be deployed to collect geospatial information and a video data stream from the camera and feed it back to the system. This is used to pinpoint the objects or locations within view and augment the video stream with additional visual or audiovisual objects or images. -
FIG. 6 illustrates a block diagram of example architecture of an embodiment of thedownloadable reminder application 150 in the mobile computing device. Thedownloadable reminder application 150 may include one or more application modules to enable a user of the mobile computing device 100 to set future reminders. These application modules may includereminder setting module 155,visual recognition module 135,browser monitoring module 170, thirdparty information module 175, and futurereminder triggering module 180. One or more of these modules may be downloaded to the mobile computing device 100 from the reminder engine in theserver 300 that the mobile computing device 100 is connected with. - The
reminder setting module 155 may be configured to enable the user to affirmatively select the objects/services/broadcast programs displayed on the display screen of the mobile computing device 100 and flag them as the reminder target objects. Thebrowser monitoring module 170 may work together with thereminder setting module 155 and may be configured to monitor web pages that the user may be viewing on the display screen and to enable the user to select objects/services/broadcast programs displayed via those web pages and flag them as the reminder target objects. Alternatively a set of objects in the video feed or the internet browsing can both be identified and be associated with the third party information provided by the thirdparty information module 175. - Information associated with the reminder target objects may then be processed to identify the reminder target objects. The
recognition module 135 may be configured to process the reminder target objects or information associated with the reminder target objects to determine whether the reminder target objects are recognized as previously known targets. Information about the previously known targets may be stored in thetarget database 160. Thetarget database 160 may include other information related to the previously known targets. For example, thetarget database 160 may include information about the shoe stores that sell particular types of shoes and the location of those shoe stores. It may be noted that different techniques may be used to implement thetarget database 160. For example, thetarget database 160 may simply be a cache memory inside the mobile computing device 100. - Comparison operations may be performed by the
recognition module 135. When the reminder target is recognized, the reminders may be established by thereminder triggering module 180. The reminders may be triggered based on the location (e.g., corner of 5th street and Main Street) of the mobile computing device or based on a time (e.g., Wednesday at 7:00 p.m.). The thirdparty information module 175 may be configured to provide information related to the reminder target objects. For example, the third party may be a shoe manufacturing company (e.g., Nike), and it may have a coupon to encourage the user to purchase a pair of Nike brown shoes when the reminder is about a pair of brown shoes. The information from the third party may be displayed along with the reminder. - It may be noted that each reminder may be associated with multiple matching results, and the user of the mobile computing device 100 may be presented with a list of all the possible matching results. For example, the user may use the mobile computing device 100 to capture a video or image of a pair of brown shoes. The user may then select the brown shoes from that video or image and flag them as a reminder target. The application modules in the mobile computing device 100 may perform operations to recognize the brown shoes and establish the reminders. At a subsequent time (e.g., four days later), when the user is walking through a shopping mall, a reminder may be triggered based on the location of the mobile computing device 100 using its GPS feature. The reminder is triggered because the application modules determine that there are many shoe stores in that shopping center sell brown shoes similar to the ones that the user previously flagged. The reminder may be displayed on the display screen of the mobile computing device 100 along with other related information. It should be noted that the information about the location of the shoe stores and the types of shoes that each shoe store sells have already been stored in the
target database 160. - For some embodiments, the user may use a combination of selecting and flagging objects/services/programs that have not been pre-recognized and flagging the objects/services/programs that have been pre-recognized as the reminder target objects. Note, the target object may include video or still images of a real world object, a service, a movie, a broadcast program, etc. The future reminders may be triggered based on a location, a specific time or both. For some embodiments, the specific time may be determined by a third party. For example, the target object may be a broadcast program by NBC broadcasting television network. The user may select the broadcast program as a target object by using the mobile computing device to capture an image on a billboard promoting the broadcast program. The
recognition module 135 in the mobile computing device 100 may recognize the image as being associated with the broadcast program to be broadcast by NBC. Therecognition module 135 may further identify that the broadcast program will be broadcast at 7:00 p.m. on Saturday on NBC Channel 11. That information may be sent to areminder triggering module 180 which triggers the future reminder at 7:00 p.m. on Saturday. The future reminder may be displayed along with the information about the broadcast program and the television channel that the user may want to tune the television to watch the broadcast program. For some embodiments, the future reminders may be triggered based on a specific time set by the user or based on recognition of a target object from a current video feed. -
FIG. 4 illustrates an example diagram of a network of mirrored backend reminder server system that may be used to perform the reminder processing, in accordance with some embodiments. In this example, each server site is represented by one server computer for simplicity. However, it should be understood that each server site may include multiple server computers working together collaboratively in a distributive manner.Server computers network 200 may be configured as IDOL servers. The IDOL servers may include amain IDOL server 405M and multiple mirroredIDOL servers 405A-405C. Themain IDOL server 405M may mirror its information onto the mirroredIDOL servers 405A-405C. - The mirroring may include mirroring the content of the main
IDOL server database 406M into the mirrored IDOL severdatabases 406A-406C. For example, theapplication module database 308, thetarget database 315, and the user profile database 328 may be mirrored across all of the mirroredIDOL servers 405A-405C. Themain IDOL server 405M and the mirroredIDOL servers 405A-405C may be located or distributed in various geographical locations to serve the mobile computing devices in these areas. For example, themain IDOL server 405M may be located in Paris, the mirroredIDOL server 405A may be located in Boston, 405B in Philadelphia, and 405C in New York. As discussed, the mirroring of a server computer in one location with another server computer in another location may be understood as the mirroring of a server site with all of its server computers together with associated hardware and content. - For some embodiments, a set two or more IDOL servers may work together in a cooperative and distributive manner to do the work of the
object recognition engine 310 described inFIG. 3A . For example, there may be a set of two or more IDOL servers in Boston configured to perform the operations of theobject recognition engine 310. Similarly, a set of two or more IDOL servers may work together in the same cooperative and distributive manner to do the work of the reminder processing 308 or the user profile engine 320. This allows the functionalities of theobject recognition engine 310, thereminder engine 308 and the user profile engine 320 amongst the set of server computers to be performed in a faster manner. Thedotted lines dotted lines mobile computing devices - The distribution of server computers within a given location or sister location may help improving the response time of the reminder processing operations. The mirroring of sites with identical compositions of hardware and content may also help improving the response time of the reminder processing operations. In addition, the mirroring of identical server site locations aids in servicing potentially millions of mobile computing devices with the downloadable reminder processing application modules to select target objects and to trigger the future reminders by distributing the workload and limiting the physical transmission distance and associated time. The IDOL server set being duplicated with the same content and mirrored across the Internet to distribute this load to multiple identical sites to increase both response time and handle the capacity of the queries by those mobile computing devices. Load balancing techniques may also be used to improve response time.
- Combining the visual information and the geographical information may allow a rapid recognition or matching to the characteristics of objects that are known and pre-stored in an object database. The geographical information may be provided by a global positioning system (GPS). Combining the visual information with the geographical information may reduce the amount of possible points of interest that need to be sorted through by a server computer to identify and recognize known objects and/or persons. The rough geographical information from the GPS reduces the amount of possible points of interest that need to be sorted through as a possible match to known objects in that area.
-
FIG. 5 illustrates an example block diagram of some modules of an IDOL server, in accordance with some embodiments.IDOL server 900 may includeautomatic hyperlinking module 905,automatic categorization module 910, automaticquery guidance module 915, automatictaxonomy generation module 920,profiling module 925,automatic clustering module 930, andconceptual retrieval module 935. Theautomatic hyperlinking module 905 is configured to allow manual and fully automatic linking between related pieces of information. The hyperlinks are generated in real-time at the moment the document is viewed. Theautomatic categorization module 910 is configured to allow deriving precise categories through concepts found within unstructured text, ensuring that all data is classified in the correct context. - The automatic
query guidance module 915 is configured to provide query suggestions to find most relevant information. It identifies the different meanings of a term by dynamically clustering the results into their most relevant groupings. The automatictaxonomy generation module 920 is configured to automatically generate taxonomies and instantly organizes the data into a familiar child/parent taxonomical structure. It identifies names and creates each node based on an understanding of the concepts with the data set as a whole. Theprofiling module 925 is configured to accurately understand individual's interests based on their browsing, content consumption and content contribution. It generates a multifaceted conceptual profile of each user based on both explicit and implicit profiles. - The
automatic clustering module 930 is configured to help analyze large sets of documents and user profiles and automatically identify inherent themes or information clusters. It even cluster unstructured content exchanged in emails, telephone conversations and instant messages. Theconceptual retrieval module 935 is configured to recognize patterns using a scalable technology that recognizes concepts and find information based on words that may not be located in the documents. It should be noted that theIDOL server 900 may also include other modules and features that enable it to analyze the objects and other information content sent by the interface for third parties and downloadable reminder application. -
FIG. 7 illustrates a block diagram of an example computing system that may use an embodiment of one or more of the software applications discussed herein. The computing system environment 800 is only one example of a suitable computing environment, such as a client device, and is not intended to suggest any limitation as to the scope of use or functionality of the design. Neither should the computing environment 800 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 800. - As discussed, the computing system may be a client mobile computing system. The system includes a processor, a memory, a built in battery to power the mobile computing device, a built-in video camera and display screen for the mobile computing device, and built-in Wi-Fi circuitry to wirelessly communicate with a server computer connected to network.
- The design is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the design include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- The design may be described in the general context of computing device executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that performs particular tasks or implement particular abstract data types. Those skilled in the art can implement the description and/or figures herein as computer-executable instructions, which can be embodied on any form of computing machine readable media discussed below.
- The design may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
- With reference to
FIG. 7 , an exemplary computing type system for implementing the design includes a general-purpose computing device in the form of acomputer 810. Components ofcomputer 810 may include, but are not limited to, aprocessing unit 820 having one or more processing cores, asystem memory 830, and asystem bus 821 that couples various system components including the system memory to theprocessing unit 820. Thesystem bus 821 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) locale bus, and Peripheral Component Interconnect (PCI) bus. -
Computer 810 typically includes a variety of computing machine readable media. Computing machine readable media can be any available media that can be accessed bycomputer 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computing machine readable mediums uses include storage of information, such as computer readable instructions, data structures, program modules or other data. Computer storage mediums include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information and which can be accessed by computer 800. Communication media typically embodies computer readable instructions, data structures, program modules, or other transport mechanism and includes any information delivery media. - The
system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements withincomputer 810, such as during start-up, is typically stored inROM 831.RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processingunit 820. By way of example, and not limitation,FIG. 7 illustratesoperating system 834,application programs 835,other program modules 836, andprogram data 837. - The
computer 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,FIG. 7 illustrates ahard disk drive 841 that reads from or writes to non-removable, nonvolatile magnetic media, amagnetic disk drive 851 that reads from or writes to a removable, nonvolatilemagnetic disk 852, and anoptical disk drive 855 that reads from or writes to a removable, nonvolatileoptical disk 856 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, USB drives and devices, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. Thehard disk drive 841 is typically connected to thesystem bus 821 through a non-removable memory interface such asinterface 840, andmagnetic disk drive 851 andoptical disk drive 855 are typically connected to thesystem bus 821 by a removable memory interface, such asinterface 850. - The drives and their associated computer storage media discussed above and illustrated in
FIG. 7 , provide storage of computer readable instructions, data structures, program modules and other data for thecomputer 810. InFIG. 7 , for example,hard disk drive 841 is illustrated as storingoperating system 844,application programs 845,other program modules 846, andprogram data 847. Note that these components can either be the same as or different fromoperating system 834,application programs 835,other program modules 836, andprogram data 837.Operating system 844,application programs 845,other program modules 846, andprogram data 847 are given different numbers here to illustrate that, at a minimum, they are different copies. - A user may enter commands and information into the
computer 810 through input devices such as akeyboard 862, amicrophone 863, and apointing device 861, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit 820 through auser input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). Amonitor 891 or other type of display screen is also connected to thesystem bus 821 via an interface, such as avideo interface 890. In addition to the monitor, computers may also include other peripheral output devices such asspeakers 897 andprinter 896, which may be connected through an outputperipheral interface 890. - The
computer 810 may operate in a networked environment using logical connections to one or more remote computers, such as aremote computer 880. Theremote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer 810. The logical connections depicted inFIG. 7 include a local area network (LAN) 871 and a wide area network (WAN) 873, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. A browser application may be resident on the computing device and stored in the memory. - When used in a LAN networking environment, the
computer 810 is connected to theLAN 871 through a network interface oradapter 870. When used in a WAN networking environment, thecomputer 810 typically includes amodem 872 or other means for establishing communications over theWAN 873, such as the Internet. Themodem 872, which may be internal or external, may be connected to thesystem bus 821 via the user-input interface 860, or other appropriate mechanism. In a networked environment, program modules depicted relative to thecomputer 810, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,FIG. 7 illustratesremote application programs 885 as residing onremote computer 880. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. - It should be noted that the present design can be carried out on a computing system such as that described with respect to
FIG. 7 . However, the present design can be carried out on a server, a computer devoted to message handling, or on a distributed system in which different portions of the present design are carried out on different parts of the distributed computing system. - Another device that may be coupled to bus 811 is a power supply such as a battery and Alternating Current adapter circuit. As discussed above, the DC power supply may be a battery, a fuel cell, or similar DC power source that needs to be recharged on a periodic basis. The
wireless communication module 872 may employ a Wireless Application Protocol to establish a wireless communication channel. Thewireless communication module 872 may implement a wireless networking standard such as Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, IEEE std. 802.11-1999, published by IEEE in 1999. - While other systems may use, in an independent manner, various components that may be used in the design, a comprehensive, integrated system that addresses the multiple advertising system points of vulnerability described herein does not exist. Examples of mobile computing devices may be a laptop computer, a cell phone, a personal digital assistant, or other similar device with on board processing power and wireless communications ability that is powered by a Direct Current (DC) power source that supplies DC voltage to the mobile device and that is solely within the mobile computing device and needs to be recharged on a periodic basis, such as a fuel cell or a battery.
-
FIG. 2 illustrates a diagram of a network environment in which the techniques described may be applied. Thenetwork environment 200 has a network 202 that connects server computing systems 204-1 through 204-n, and at least one or more client computing systems 200-1. As shown, there may be many server computing systems 204-1 through 204-n and many client computing systems 200-1 through 200-n connected to each other via anetwork 220, which may be, for example, the Internet. Note, that alternatively thenetwork 220 might be or include one or more of: an optical network, the Internet, a Local Area Network (LAN), Wide Area Network (WAN), satellite link, fiber network, cable network, or a combination of these and/or others. It is to be further appreciated that the use of the terms client computing system and server computing system is for clarity in specifying who generally initiates a communication (the client computing system) and who responds (the server computing system). No hierarchy is implied unless explicitly stated. Both functions may be in a single communicating device, in which case the client-server and server-client relationship may be viewed as peer-to-peer. Thus, if two systems such as the client computing system 200-1 and the server computing system 204-1 can both initiate and respond to communications, their communication may be viewed as peer-to-peer. Likewise, communications between the client computing systems 204-1 and 204-2, and the server computing systems 200-1 and 200-2 may be viewed as peer-to-peer if each such communicating device is capable of initiation and response to communication. One or more of the server computing systems 204-1 to 204-n may be associated with a database such as, for example, the databases 206-1 to 206-n. A firewall such as, for example, the firewall may be established between a client computing system 200-3 and thenetwork 220 to protect data integrity on the client computing system 200-3. -
FIG. 2 also illustrates a block diagram of an embodiment of a server computing system to display information, such as a web page, etc. The application, such as a social network application (e.g., Twitter), when executed on the server computing system 204-1, causes the server computing system 204-1 to display windows and user interface screens on a portion of a media space, such as a web page. A user via a browser from the client computing system 200-1 may interact with the web page, and then supply input to the query/fields and/or service presented by a user interface of the application. The web page may be served by a web server computing system 204-1 on any Hypertext Markup Language (HTML) or Wireless Access Protocol (WAP) enabled client computing system 200-1 or any equivalent thereof. For example, the client mobile computing system 200-1 may be a smart phone, a touch pad, a laptop, a netbook, etc. The client computing system 200-1 may host a browser to interact with the server computing system 204-1. Each application, widget, plug-in, etc. has a code scripted to perform the functions that the software component is coded to carry out such as presenting fields and icons to take details of desired information. Algorithms and engines within the server computing system 204-1 take the information from the presenting fields and icons and put that information into an appropriate storage medium such as a database. The applications may be hosted on the server computing system 204-1 and served to the browser of the client computing system 200-1. The applications then serve pages that allow entry of details and further pages that allow entry of more details. - Any application and other scripted code components may be stored on a computing machine readable medium which, when executed on the machine causes the machine to perform those functions. In an embodiment, the software used to facilitate the functions and processes described herein can be embodied onto a computing machine readable medium such as computer readable medium. As discussed above a computing machine readable medium includes any mechanism that provides (e.g., stores) information in a form readable by a machine (e.g., a computer). For example, a computing machine readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; DVD's, EPROMs, EEPROMs, FLASH, magnetic or optical cards, or any type of media suitable for storing electronic instructions. The downloadable reminder application may be implemented as software code, hardware logic circuits, and any combination of the two, and portions of the downloadable reminder application scripted in software code are stored in a non-transitory computing device readable medium in an executable format.
- Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These algorithms may be written in a number of different software programming languages such as C, C++, Java, or other similar languages. Also, an algorithm may be implemented with lines of code in software, configured logic gates in software, or a combination of both. In an embodiment, the logic consists of electronic circuits that follow the rules of Boolean Logic, software that contain patterns of instructions, or any combination of both.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussions, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computing system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computing system's registers and memories into other data similarly represented as physical quantities within the computing system memories or registers, or other such information storage, transmission or display devices.
- The present concept also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- Although embodiments of this invention have been fully described with reference to the accompanying drawings, it is to be noted that various changes and modifications will become apparent to those skilled in the art. Such changes and modifications are to be understood as being included within the scope of embodiments of this invention as defined by the appended claims. For example, several specific modules have been shown. Each module performs a few specific functions. However, all of these functions could be grouped into one module or even broken down further into scores of modules. Most functions performed by electronic hardware components may be duplicated by software emulation and vice versa. The invention is to be understood as not limited by the specific embodiments described herein, but only by scope of the appended claims.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/871,474 US20160028842A1 (en) | 2011-10-07 | 2015-09-30 | Methods and systems for a reminder servicer using visual recognition |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/268,256 US9183546B2 (en) | 2011-10-07 | 2011-10-07 | Methods and systems for a reminder servicer using visual recognition |
US14/871,474 US20160028842A1 (en) | 2011-10-07 | 2015-09-30 | Methods and systems for a reminder servicer using visual recognition |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/268,256 Continuation US9183546B2 (en) | 2011-10-07 | 2011-10-07 | Methods and systems for a reminder servicer using visual recognition |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160028842A1 true US20160028842A1 (en) | 2016-01-28 |
Family
ID=48041727
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/268,256 Expired - Fee Related US9183546B2 (en) | 2011-10-07 | 2011-10-07 | Methods and systems for a reminder servicer using visual recognition |
US14/871,474 Abandoned US20160028842A1 (en) | 2011-10-07 | 2015-09-30 | Methods and systems for a reminder servicer using visual recognition |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/268,256 Expired - Fee Related US9183546B2 (en) | 2011-10-07 | 2011-10-07 | Methods and systems for a reminder servicer using visual recognition |
Country Status (2)
Country | Link |
---|---|
US (2) | US9183546B2 (en) |
WO (1) | WO2013052408A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019055679A1 (en) | 2017-09-13 | 2019-03-21 | Lahood Edward Rashid | Method, apparatus and computer-readable media for displaying augmented reality information |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032385B2 (en) * | 2011-12-28 | 2015-05-12 | Lg Electronics Inc. | Mobile terminal and control method thereof |
JP6021366B2 (en) * | 2012-03-12 | 2016-11-09 | キヤノン株式会社 | Information processing system, information processing system control method, information processing apparatus, and computer program. |
CN103546364B (en) * | 2012-07-13 | 2017-08-08 | 腾讯科技(深圳)有限公司 | Prompting message method for pushing and system |
US20140240523A1 (en) * | 2013-02-22 | 2014-08-28 | T-Mobile Usa, Inc. | Information delivery based on image data |
US9195896B2 (en) * | 2013-07-10 | 2015-11-24 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for image recognition |
US9459889B2 (en) | 2014-05-19 | 2016-10-04 | Qualcomm Incorporated | Systems and methods for context-aware application control |
US20180063372A1 (en) * | 2014-11-18 | 2018-03-01 | Elwha Llc | Imaging device and system with edge processing |
US10110933B2 (en) * | 2015-09-01 | 2018-10-23 | International Business Machines Corporation | Video file processing |
CN105389203B (en) | 2015-10-19 | 2017-11-17 | 广东欧珀移动通信有限公司 | A kind of call method of fingerprint identification device, device and mobile terminal |
US10043102B1 (en) | 2016-01-20 | 2018-08-07 | Palantir Technologies Inc. | Database systems and user interfaces for dynamic and interactive mobile image analysis and identification |
US10831349B2 (en) | 2016-02-05 | 2020-11-10 | International Business Machines Corporation | Implementing automated personalized, contextual alert displays |
US10572281B1 (en) * | 2017-04-20 | 2020-02-25 | Intuit Inc. | Bi-directional notification service |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US12066900B2 (en) | 2018-03-15 | 2024-08-20 | Pure Storage, Inc. | Managing disaster recovery to cloud computing environment |
US11651054B2 (en) * | 2020-11-30 | 2023-05-16 | Vmware, Inc. | Intelligent workflows on a user device |
CN113037536B (en) * | 2021-02-05 | 2022-08-23 | 宁波奥克斯电气股份有限公司 | Equipment distribution network reminding method and device and electronic equipment |
CN113518240B (en) * | 2021-07-20 | 2023-08-08 | 北京达佳互联信息技术有限公司 | Live interaction, virtual resource configuration and virtual resource processing method and device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120083294A1 (en) * | 2010-09-30 | 2012-04-05 | Apple Inc. | Integrated image detection and contextual commands |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7319987B1 (en) * | 1996-08-29 | 2008-01-15 | Indivos Corporation | Tokenless financial access system |
US6356543B2 (en) * | 1997-11-25 | 2002-03-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Controlling mobile phone system user views from the world-wide web |
US6370282B1 (en) | 1999-03-03 | 2002-04-09 | Flashpoint Technology, Inc. | Method and system for advanced text editing in a portable digital electronic device using a button interface |
US6774908B2 (en) | 2000-10-03 | 2004-08-10 | Creative Frontier Inc. | System and method for tracking an object in a video and linking information thereto |
US20060120686A1 (en) * | 2004-12-03 | 2006-06-08 | Frank Liebenow | Method, apparatus and system for storage and retrieval of images |
US7720890B2 (en) * | 2005-02-22 | 2010-05-18 | Microsoft Corporation | Ghosted synchronization |
US20100311399A1 (en) | 2005-03-31 | 2010-12-09 | United Video Properties, Inc. | Systems and methods for generating audible reminders on mobile user equipment |
US20070257934A1 (en) * | 2006-05-08 | 2007-11-08 | David Doermann | System and method for efficient enhancement to enable computer vision on mobile devices |
KR100795160B1 (en) * | 2007-03-22 | 2008-01-16 | 주식회사 아트닉스 | Apparatus for face detection and recognition and method for face detection and recognition |
US20090082045A1 (en) * | 2007-09-26 | 2009-03-26 | Blastmsgs Inc. | Blast video messages systems and methods |
US8406531B2 (en) | 2008-05-15 | 2013-03-26 | Yahoo! Inc. | Data access based on content of image recorded by a mobile device |
US8467768B2 (en) * | 2009-02-17 | 2013-06-18 | Lookout, Inc. | System and method for remotely securing or recovering a mobile device |
US8731533B2 (en) * | 2009-03-03 | 2014-05-20 | Peter Roach | Methods and apparatuses for reconnecting calls with quality problems or reconnecting dropped calls |
US9185174B2 (en) | 2009-04-29 | 2015-11-10 | Ianywhere Solutions, Inc. | Maintaining mobile device operations |
US8537003B2 (en) * | 2009-05-20 | 2013-09-17 | Microsoft Corporation | Geographic reminders |
JP2011039647A (en) * | 2009-08-07 | 2011-02-24 | Sony Corp | Device and method for providing information, terminal device, information processing method, and program |
US8856656B2 (en) * | 2010-03-17 | 2014-10-07 | Cyberlink Corp. | Systems and methods for customizing photo presentations |
US8645208B2 (en) * | 2010-12-14 | 2014-02-04 | Yellowpages.Com Llc | Systems and methods for providing automatic reminders for saved advertisements |
-
2011
- 2011-10-07 US US13/268,256 patent/US9183546B2/en not_active Expired - Fee Related
-
2012
- 2012-10-01 WO PCT/US2012/058265 patent/WO2013052408A2/en active Application Filing
-
2015
- 2015-09-30 US US14/871,474 patent/US20160028842A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120083294A1 (en) * | 2010-09-30 | 2012-04-05 | Apple Inc. | Integrated image detection and contextual commands |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019055679A1 (en) | 2017-09-13 | 2019-03-21 | Lahood Edward Rashid | Method, apparatus and computer-readable media for displaying augmented reality information |
Also Published As
Publication number | Publication date |
---|---|
US9183546B2 (en) | 2015-11-10 |
US20130088337A1 (en) | 2013-04-11 |
WO2013052408A3 (en) | 2014-05-08 |
WO2013052408A2 (en) | 2013-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183546B2 (en) | Methods and systems for a reminder servicer using visual recognition | |
US9338589B2 (en) | User-generated content in a virtual reality environment | |
US9530251B2 (en) | Intelligent method of determining trigger items in augmented reality environments | |
US8392450B2 (en) | System to augment a visual data stream with user-specific content | |
US9064326B1 (en) | Local cache of augmented reality content in a mobile computing device | |
EP2673737B1 (en) | A system for the tagging and augmentation of geographically-specific locations using a visual data stream | |
US8953054B2 (en) | System to augment a visual data stream based on a combination of geographical and visual information | |
US8493353B2 (en) | Methods and systems for generating and joining shared experience | |
US8447329B2 (en) | Method for spatially-accurate location of a device using audio-visual information | |
US9002490B2 (en) | Methods and systems for generating frictionless social experience environment | |
US20210168412A1 (en) | Method and apparatus for provisioning secondary content based on primary content | |
US8645554B2 (en) | Method and apparatus for identifying network functions based on user data | |
Vega et al. | Towards a multi-screen interactive ad delivery platform | |
KR20210060970A (en) | Signage integrated management system providing Online to Offline user interaction based on Artificial Intelligence and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LONGSAND LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AUTONOMY CORPORATION LIMITED;REEL/FRAME:037017/0314 Effective date: 20150727 |
|
AS | Assignment |
Owner name: AURASMA LIMITED, UNITED KINGDOM Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LONGSAND LIMITED;REEL/FRAME:037022/0547 Effective date: 20151021 Owner name: AUTONOMY CORPORATION LIMITED, ENGLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BLANCHFLOWER, SEAN MARK;LOXAM, JAMES;REEL/FRAME:037027/0514 Effective date: 20111011 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |