It can be a slow and error prone process to determine and detect information associated with physical objects that is extracted from mobile devices.
Illustrative embodiments are shown by way of example in the accompanying drawings and should not be considered as a limitation of the present disclosure. The accompanying figures, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the disclosure and, together with the description, help to explain the present disclosure. In the figures:
Described in detail herein are systems and methods for recommending objects based on captured data. In accordance with embodiments of the present disclosure, wireless access points disposed in a facility can detect mobile devices in the facility that are executing an instance of an application associated with the facility. The wireless access point can intercept internet browsing data associated with one or more domains unrelated to a domain associated with the facility from the mobile devices as when the mobile devices are in the facility. In some embodiments, the system can recommend objects via the application on the mobile devices within a specified time after the wireless access point intercepts the internet browsing data and/or while the mobile devices are detected within the facility. The wireless access point(s) can transmit the internet browsing data to a computing system corresponding to the domain associated with the facility. The computing system can receive the internet browsing data generated by the mobile devices via the wireless access point. The internet browsing data can also be forwarded to the domains identified in the internet browsing data that are unrelated to the domain associated with the facility. The computing system can detect information in the internet browsing data that is associated with physical objects. The computing system can determine whether the physical objects are disposed in the facility, and can control the operation of the application residing on the mobile device, via the wireless access point, to render information associated with the physical objects on a display of the mobile devices.
The computing system can query the database to retrieve additional information for additional physical objects associated with the physical objects, and can control the operation of the application residing on the mobile devices, via the wireless access point, to render the additional information associated with the additional physical objects on the display of the mobile devices. The computing system can determine user information associated with users of the mobile devices and can select the second set of information based on the user information associated with the users of the mobile devices.
In accordance with embodiments of the present disclosure, a mobile device can execute an application and request a physical object, via the application. A computing system can receive the request. The computing system can identify a set of facilities having facility locations within a specified distance of the current geographic location of the mobile device. The computing system can determine user information associated with the user of the application executing the mobile device. The computing system can determine additional physical objects that are associated with the requested physical object and that are disposed at the identified facilities. The computing system can select one of the additional physical objects based on the current geographic location of the mobile device, the user information, and the requested physical object. The computing system can transmit the object information for the selected additional physical object to the application to instruct the application to render object information associated with the selected additional physical object on a display of the mobile device.
The application can receive a second request associated with the at least one of the additional physical objects and transmit the second request to the computing system. A printing device can be operatively coupled to the computing system. The printing device can be disposed in facilities. The computing system is further configured to determine the mobile device is within a specified distance of the facility and control the operation of the printing device to print the at least one of the additional physical objects.
Terminals including a display and an optical scanner can be disposed in the facility and operatively coupled to the computing system. A terminal can be configured to scan a machine-readable element rendered on the display of the mobile device. The machine-readable element is encoded with an identifier associated with the at least one of the additional physical objects. The terminal can transmit the identifier to the computing system. The computing system is programmed to control the operation of the at least one terminal to render the object information associated with the additional physical object on the display in response to receiving the identifier.
The memory 106 can include any suitable, non-transitory computer-readable storage medium, e.g., read-only memory (ROM), erasable programmable ROM (EPROM), electrically-erasable programmable ROM (EEPROM), flash memory, and the like. In exemplary embodiments, an operating system 126 and applications 128 can be embodied as computer-readable/executable program code stored on the non-transitory computer-readable memory 106 and implemented using any suitable, high or low level computing language and/or platform, such as, e.g., Java, C, C++, C#, assembly code, machine readable language, and the like. In some embodiments, the applications 128 can include an assistance application configured to interact with the microphone, a web browser application, a mobile application specifically coded to interface with one or more servers of embodiments of the system for recommending objects. One or more servers are described in further detail with respect to
The processing device 104 can include any suitable single- or multiple-core microprocessor of any suitable architecture that is capable of implementing and/or facilitating an operation of the mobile device 100. For example, a user can use the mobile device 100 in a facility to perform an image capture operation, capture a voice input of the user (e.g., via the microphone), transmit messages including a captured image and/or a voice input and receive messages from a computing system, display data/information including GUIs of the user interface 110, captured images, voice input transcribed as text, and the like. The mobile device 100 can perform the aforementioned operations using on an internet browser executing on the mobile device, or any web-based application. The processing device 104 can be programmed and/or configured to execute the operating system 126 and applications 128 to implement one or more processes and/or perform one or more operations. The processing device 104 can retrieve information/data from and store information/data to the storage device 106.
The RF transceiver 114 can be configured to transmit and/or receive wireless transmissions via an antenna 115. For example, the RF transceiver 114 can be configured to transmit data/information, such as input based on user interaction with the mobile device 100. The RF transceiver 114 can be configured to transmit and/or receive data/information having at a specified frequency and/or according to a specified sequence and/or packet arrangement.
The touch-sensitive display 110 can render user interfaces, such as graphical user interfaces to a user and in some embodiments can provide a mechanism that allows the user to interact with the GUIs. For example, a user may interact with the mobile device 100 through touch-sensitive display 110, which may be implemented as a liquid crystal touch-screen (or haptic) display, a light emitting diode touch-screen display, and/or any other suitable display device, which may display one or more user interfaces (e.g., GUIs) that may be provided in accordance with exemplary embodiments.
The power source 112 can be implemented as a battery or capacitive elements configured to store an electric charge and power the mobile device 100. In exemplary embodiments, the power source 112 can be a rechargeable power source, such as a battery or one or more capacitive elements configured to be recharged via a connection to an external power supply.
A user can operate the mobile device 100 in a facility, and the graphical user interface can automatically be generated in response executing an application associated with the facility on the mobile device 100. The application can display information associated with physical objects disposed at the facility. A user can use the mobile device 100 to connect with the World Wide Web, e.g., via a web browser application. The mobile device 100 can input and receive data, via the World Wide Web. The data can be stored in a persistent memory of the mobile device, such as ROM as described above. Alternatively, or in addition to the data can be stored in temporary buffers of the mobile device such as SRAM or Flash memory as described above. Wireless access points disposed in facilities can capture the data and transmit the data to a computing system. The wireless access points and computing system are described in further detail with respect to
In an example embodiment, one or more portions of the communications network 415 can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a WiMax network, any other type of network, or a combination of two or more such networks.
The computing system 400 includes one or more computers or processors configured to communicate with the databases 405, wireless access points 220, and mobile devices 100 via the network 415. The computing system 400 hosts one or more applications configured to interact with one or more components of the system 450. The databases 405 may store information/data, as described herein. For example, the databases 405 can include a physical objects database 430 and an accounts database 445. The physical objects database 430 can store information associated with physical objects. The accounts database 445 can include information about accounts associated with the facility application 440. The databases 405 can be located at one or more geographically distributed locations from the first computing system 400. Alternatively, the databases 405 can be included within the computing system 400.
In one embodiment, a user of a mobile device 100 can request to execute the facility application 440 while in a facility. Using the application, the user can select to receive updates regarding physical objects disposed in the facility based on their internet browsing data The computing system 400 can execute the control engine 420 in response to receiving the request. The request can include the location of the mobile device 100 and a device identifier. The mobile device 100 identifier can be one or more of Unique Device ID (UDID), the International Mobile Equipment Identity (IMEI), Integrated Circuit Card Identifier (ICCID) and/or the Mobile Equipment Identifier (MEID). The control engine 420 can determine the location of the mobile device 100 is within the facility. The control engine 420 can retrieve an account associated with the mobile device 100 from the accounts database 445, using the device identifier. The control engine 420 can initiate a session associated with the mobile device 100 in the accounts database 435, indicating the mobile device 100 is within a facility and has launched the facility application 440. The control engine 420 can instruct the wireless access points 220 disposed throughout the facility to detect internet traffic from the mobile device 100, while the mobile device 100 is within the facility and the mobile device 100 is executing the facility application 440.
The wireless access points 220 can detect the mobile device 100 in the facility. Each wireless access point 220 can detect the mobile device 100 based on its proximity to the wireless access point 100. The wireless access points 220 can detect the internet traffic of the mobile device 100, while in the facility and the executing the facility application 440. The internet traffic can include internet browser activity, search engine activity, internet browser history and cache and the use of other applications. The wireless access points 220 can capture the internet traffic from the mobile device and determine any data in the internet traffic associated with physical objects disposed in the facility, acquired from domains other than the domain associated with the facility application 440. In some embodiments, the wireless access points 220 can execute a meta-search engine, to detect the data from the internet traffic. The wireless access points 220 can transmit the data to the computing system 400 and can forward the internet traffic to the intended domain.
The control engine 420 can identify the physical objects information from the data. The control engine 420 can query the physical objects database 435 and the accounts database 440, based on the identified physical objects information. For example, the control engine 435 can identify a first physical object from the data, and query the physical objects database 435 to determine information associated with the first physical object. The information can include, name, type, size, amount of the first physical object disposed in the facility and other information associated with the first physical object. The control engine 420 can also query the physical objects database 435 to retrieve information associated with physical objects associated or similar to the first physical object. The control engine 420 can also query the accounts database 445 to determine the user's preferences associated with the first physical object. The control engine 420 an generate an alert associated with the first physical object and instruct the wireless access points 220 to transmit the alert to the mobile device. The wireless access points 220 can transmit the alert to the mobile device 100. The alert can be displayed via, the facility application 440. In some embodiments, the facility application 440 can be automatically displayed on the display 110 in response to receiving the alert.
In some embodiments, the computing system 400 can receive a request for a physical object, via the facility application 440 executed on the mobile device 100, while the mobile device 100 is not in a facility. The request can include the location of the mobile device 100 and the device identifier. The control engine 420 can retrieve an account for the mobile device 100 from the accounts database 445 using the device identifier. The control engine 420 can also determine the mobile device is within a specified distance of a facility in which a printing device 304 is disposed. The control engine 420 can query the physical objects database 435 to retrieve information associated with a physical object disposed in the facility and associated with the requested physical object. The control engine 420 can query the accounts database to retrieve information associated with a user of the mobile device 100. The control engine 420 can generate an alert including information associated with the physical object disposed in the facility. The control engine 420 can transmit the alert to the mobile device 100, to be displayed on the display 110, via the facility application 440.
The control engine 420 can receive another request in response to the transmitted alert. The request can be for the physical object disposed in the facility, which was included in the alert. The control engine 420 can instruct the printing device 304 to print and/or fabricate the requested physical object in response to receiving the request. The control engine 420 can transmit an alert to the mobile device 100 on completion of the printing and/or fabrication of the requested physical object. The alert can include a machine-readable element encoded with an identifier associated with the requested physical object.
The user can retrieve the requested physical object from the facility. The user can present the machine-readable element on the display 110 of the mobile device 100, at a terminal 306. An optical scanner 308 can scan and decode the identifier from the machine-readable element. The optical scanner 308 can transmit the identifier to the computing system 400. The control engine 420 can query the physical objects database 435 to retrieve information associated with the requested physical object, in response to receiving the identifier. The control engine 420 can display the information on the display 310 of the terminal 304. The requested physical object can be retrieved for the user.
As a non-limiting example, the system 450 can be implemented in a retail store and/or e-commerce environment. A user of a mobile device 100 can request to execute the facility application 440 while in a retail store. Using the application, the user can select to receive updates regarding products in the store based on their internet browsing data. The computing system 400 can execute the control engine 420 in response to receiving the request. The request can include the location of the mobile device 100 and a device identifier. The control engine 420 can initiate a session associated with the mobile device 100 in the accounts database 435, indicating the mobile device 100 is within a retail store and has launched the facility application 440. The control engine 420 can instruct the wireless access points 220 disposed throughout the retail store to detect internet traffic from the mobile device 100, while the mobile device 100 is within the retail store and the mobile device 100 is executing the facility application 440.
The wireless access points 220 can detect the mobile device 100 in the retail store. The wireless access points 220 can detect the internet traffic of the mobile device 100, while in the facility and the executing the facility application 440. The wireless access points 220 can capture the internet traffic from the mobile device and determine any data in the internet traffic associated with products disposed in the facility, acquired from domains other than the domain associated with the facility application 440. For example, the data can include internet browsing data of laptops which are sold in the facility. In some embodiments, the wireless access points 220 can execute a web-crawler, to detect the data from the internet traffic. The wireless access points 220 can transmit the data to the computing system 400.
The control engine 420 can identify the products information from the data. The control engine 420 can query the physical objects database 435 and the accounts database 440, based on the identified products information. For example, the control engine 435 can identify a laptop sold at the facility from the data, and query the physical objects database 435 to determine information associated with the laptop. The information can include, name, type, size, price, sales history, amount of the particular laptops disposed in the facility and other information associated with the first product. The control engine 420 can also query the physical objects database 435 to retrieve information associated with products associated or similar to the first product (i.e. similar laptops of different brands or types). The control engine 420 can also query the accounts database 445 to determine the user's preferences associated with the laptop. The control engine 420 can generate an alert associated with the laptop and instruct the wireless access points 220 to transmit the alert to the mobile device. As an example, the alert can include a sale on the specified laptop or similar laptops. The wireless access points 220 can transmit the alert to the mobile device 100. The alert can be displayed via, the facility application 440. In some embodiments, the facility application 440 can be automatically displayed on the display 110 in response to receiving the alert.
As another non-limiting example, in some embodiments, the computing system 400 can receive a sale of a product, via the facility application 440 executed on the mobile device 100, while the mobile device 100 is not in a retail store. The control engine 420 can retrieve an account for the mobile device 100 from the accounts database 445 using the device identifier. The control engine 420 can also determine the mobile device is within a specified distance of a retail store in which a printing device 304 is disposed. The control engine 420 can query the products database 435 to retrieve information associated with a product disposed in the facility and associated with the requested product. The control engine 420 can query the accounts database to retrieve information associated with a user of the mobile device 100. For example, the control engine 420 can determine the user is interested in free photo prints. The control engine 420 can generate an alert including information associated with the product disposed in the facility. The control engine 420 can transmit the alert to the mobile device 100, to be displayed on the display 110, via the retail store application 440.
The control engine 420 can receive another request in response to the transmitted alert. The request can be for the product disposed in the retail store, which was included in the alert. The control engine 420 can instruct the printing device 304 to print and/or fabricate the requested product in response to receiving the request (i.e. free photo-prints). The control engine 420 can transmit an alert to the mobile device 100 on completion of the printing and/or fabrication of the requested product. The alert can include a machine-readable element encoded with an identifier associated with the requested product.
Virtualization may be employed in the computing device 500 so that infrastructure and resources in the computing device 500 may be shared dynamically. A virtual machine 512 may be provided to handle a process running on multiple processors so that the process appears to be using only one computing resource rather than multiple computing resources. Multiple virtual machines may also be used with one processor.
Memory 506 may include a computer system memory or random access memory, such as DRAM, SRAM, EDO RAM, and the like. Memory 506 may include other types of memory as well, or combinations thereof. The computing device 500 can receive data from input/output devices such as, a reader 534 and an image capturing device 532.
A user may interact with the computing device 500 through a visual display device 514, such as a computer monitor, which may display one or more graphical user interfaces 516, multi touch interface 520 and a pointing device 518.
The computing device 500 may also include one or more storage devices 526, such as a hard-drive, CD-ROM, or other computer readable media, for storing data and computer-readable instructions and/or software that implement exemplary embodiments of the present disclosure (e.g., applications such as the control engine 420 and/or the facility application 440). For example, exemplary storage device 526 can include one or more databases 528 for storing information regarding the physical objects and accounts. The databases 528 may be updated manually or automatically at any suitable time to add, delete, and/or update one or more data items in the databases.
The computing device 500 can include a network interface 508 configured to interface via one or more network devices 524 with one or more networks, for example, Local Area Network (LAN), Wide Area Network (WAN) or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (for example, 802.11, T1, T3, 56kb, X.25), broadband connections (for example, ISDN, Frame Relay, ATM), wireless connections, controller area network (CAN), or some combination of any or all of the above. In exemplary embodiments, the computing system can include one or more antennas 522 to facilitate wireless communication (e.g., via the network interface) between the computing device 500 and a network and/or between the computing device 500 and other computing devices. The network interface 508 may include a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 500 to any type of network capable of communication and performing the operations described herein.
The computing device 500 may run any operating system 510, such as any of the versions of the Microsoft® Windows® operating systems, the different releases of the Unix and Linux operating systems, any version of the MacOS® for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, or any other operating system capable of running on the computing device 500 and performing the operations described herein. In exemplary embodiments, the operating system 510 may be run in native mode or emulated mode. In an exemplary embodiment, the operating system 510 may be run on one or more cloud machine instances.
In describing exemplary embodiments, specific terminology is used for the sake of clarity. For purposes of description, each specific term is intended to at least include all technical and functional equivalents that operate in a similar manner to accomplish a similar purpose. Additionally, in some instances where a particular exemplary embodiment includes a multiple system elements, device components or method steps, those elements, components or steps may be replaced with a single element, component or step. Likewise, a single element, component or step may be replaced with multiple elements, components or steps that serve the same purpose. Moreover, while exemplary embodiments have been shown and described with references to particular embodiments thereof, those of ordinary skill in the art will understand that various substitutions and alterations in form and detail may be made therein without departing from the scope of the present disclosure. Further still, other aspects, functions and advantages are also within the scope of the present disclosure.
Exemplary flowcharts are provided herein for illustrative purposes and are non-limiting examples of methods. One of ordinary skill in the art will recognize that exemplary methods may include more or fewer steps than those illustrated in the exemplary flowcharts, and that the steps in the exemplary flowcharts may be performed in a different order than the order shown in the illustrative flowcharts.
This application claims priority to U.S. Provisional Application No. 62/530,558, filed on Jul. 10, 2017, the content of which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62530558 | Jul 2017 | US |