The present disclosure relates to food product identification, and more specifically, to identification of stored food products.
A facility that stores goods can employ a variety of tools to facilitate locating specific goods. For example, a grocery store can utilize labels for shelves and aisles and offer mapping software to aid consumers shopping for food products.
According to embodiments of the present disclosure, a method can be for use with an ingredient storage system having a plurality of receptacles. The plurality of receptacles can be configured to store ingredients. The method can include obtaining food-selection data of a user. The food-selection data can indicate a meal. The method can further include obtaining, based on the food-selection data, ingredient data. The ingredient data can indicate a set of ingredients for the meal. The method can further include obtaining synchronization data indicating a cooking time for each ingredient of the set of ingredients. The method can further include selecting, based at least in part on the synchronization data, target ingredients for the meal. The target ingredients can comprise a first ingredient and a second ingredient. The method can further include activating a first indicator and a second indicator in response to the selecting the target ingredients. The first indicator can correspond to a first receptacle of the plurality of receptacles. The first receptacle can store the first ingredient. The second indicator can correspond to a second receptacle of the plurality of receptacles. The second receptacle can store the second ingredient.
According to embodiments of the present disclosure, a system can include an ingredient storage system having a plurality of receptacles. The plurality of receptacles can be configured to store ingredients. The system can further include one or more processors. The system can further include one or more computer-readable storage media storing program instructions which, when executed by the one or more processors, are configured to cause the one or more processors to perform a method. The method can include obtaining food-selection data of a user. The food-selection data can indicate a meal. The method can further include obtaining, based on the food-selection data, ingredient data. The ingredient data can indicate a set of ingredients for the meal. The method can further include obtaining synchronization data indicating a cooking time for each ingredient of the set of ingredients. The method can further include selecting, based at least in part on the synchronization data, target ingredients for the meal. The target ingredients can comprise a first ingredient and a second ingredient. The method can further include activating a first indicator and a second indicator in response to the selecting the target ingredients. The first indicator can correspond to a first receptacle of the plurality of receptacles. The first receptacle can store the first ingredient. The second indicator can correspond to a second receptacle of the plurality of receptacles. The second receptacle can store the second ingredient.
According to embodiments of the present disclosure, a computer program product can include one or more computer readable storage media. The computer program product can further include program instructions collectively stored on the one or more computer readable storage media. The program instructions can include instructions configured to cause one or more processors to perform a method for use with an ingredient storage system. The ingredient storage system can have a plurality of receptacles configured to store ingredients. The method can include obtaining food-selection data of a user. The food-selection data can indicate a meal. The method can further include obtaining, based on the food-selection data, ingredient data. The ingredient data can indicate a set of ingredients for the meal. The method can further include obtaining synchronization data indicating a cooking time for each ingredient of the set of ingredients. The method can further include selecting, based at least in part on the synchronization data, target ingredients for the meal. The target ingredients can comprise a first ingredient and a second ingredient. The method can further include activating a first indicator and a second indicator in response to the selecting the target ingredients. The first indicator can correspond to a first receptacle of the plurality of receptacles. The first receptacle can store the first ingredient. The second indicator can correspond to a second receptacle of the plurality of receptacles. The second receptacle can store the second ingredient.
While multiple embodiments are disclosed, still other embodiments of the present disclosure will become apparent to those skilled in the art from the following detailed description, which shows and describes illustrative embodiments of the disclosure. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive.
While the disclosed subject matter is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the disclosure to the particular embodiments described. On the contrary, the disclosure is intended to cover all modifications, equivalents, and alternatives falling within the scope of the disclosure as defined by the appended claims.
The present disclosure relates to food product identification, and more particular aspects relate to customized identification of ingredients in a storage system. As noted above, a facility, such as a grocery store, can employ a variety of tools to assist consumers in locating food products (e.g., frozen meats and vegetables). In some instances, such tools can aid in locating categories of foods (e.g., a sign indicating dairy products or pastries), and in some instances, such tools can aid in locating a specific product (e.g., a mobile device software application specifying a particular aisle and shelf where a particular box of cereal may be found). However, these tools may be less effective for a consumer attempting to efficiently locate a set of food products to be cooked together to prepare a particular meal. For example, a consumer may wish to quickly locate a set of ingredients that can be baked together in an oven for a predetermined time to prepare a meal (e.g., a sheet pan meal). The consumer may further desire that the set of ingredients accord with the user's nutritional/dietary preferences (e.g., low sodium, organic, vegan, and the like). In this example, tools such as those described above would have a limited ability to assist the consumer.
To address these and other challenges, embodiments of the present disclosure utilize a product identification manager. In some embodiments, the product identification manager can identify ingredients stored in an ingredient storage system that satisfy user specifications (e.g., cuisine type, nutritional/dietary preferences, and the like). In some embodiments, the product identification manager can identify such ingredients based on synchronization data. Synchronization data can include information indicating a temperature and time for which a set of ingredients can be cooked together to reach a predetermined state (e.g., a minimum internal temperature and/or a predetermined appearance, flavor, and/or texture). Accordingly, embodiments of the present disclosure can permit a user to efficiently locate a set of food products that can be cooked together to prepare a meal tailored to the user's specifications. Additionally, embodiments of the present disclosure can permit a user to bundle a custom set of food products at a retail level.
Turning to the figures,
In some embodiments, product identification manager 125 can be included in software installed on a computing device of at least one of ingredient storage system 105, server 150, and/or user device 140. For example, product identification manager 125 can be included as a software component of software installed on ingredient storage system 105. Product identification manager 125 can include program instructions implemented by a processor, such as a processor of ingredient storage system 105, to perform one or more operations discussed with respect to
In some embodiments, product identification manager 125 can include one or more modules, such as data manager 130 and indicator manager 135. In some embodiments, data manager 130 and indicator manager 135 can be integrated into a single module. In some embodiments, data manager 130 can obtain and/or store data. In some embodiments, indicator manager 135 can analyze and/or interpret data. In some embodiments, indicator manager 135 can include natural language processing software for analyzing and interpreting voice and/or text data. In some embodiments, data manager 130 and/or indicator manager 135 can include program instructions implemented by a processor, such as a processor of ingredient storage system 105, to perform one or more operations discussed herein, including operations discussed with respect to
In some embodiments, ingredient storage system 105 can include a system interface 110 (e.g., a display, touchscreen, microphone, speaker, optical scanner (e.g., a barcode scanner) and/or keyboard) configured to obtain input from a user. For example, in some embodiments, a user can input food-selection data to the product identification manager by an optical code of a user device displayed to an optical scanner of the ingredient storage system 105, or by speech of the user uttered to a microphone of the ingredient storage system 105. Ingredient storage system 105 can be configured to store a set of ingredients 115 (e.g., food products). Ingredient storage system 105 includes ingredient indicators 120 (e.g., light-emitting diodes, speakers, and/or projectors) configured to provide an audible or visible indication of a storage location (e.g., a receptacle) where an ingredient is stored. Ingredient storage system 105 can be identical or substantially similar to ingredient storage system 200,
In some embodiments, user device 140 can include a device such as a mobile phone, tablet, smartwatch, and the like. User device 140 can include a user interface 145 (e.g., a display, touchscreen, microphone, speaker, and/or keyboard). In some embodiments, server 150 can include a web server configured to store data 155 (e.g., food-selection data, ingredient data, and/or synchronization data). In some embodiments, network 160 can include a wide area network (WAN), a local area network (LAN), the internet, or an intranet. In some embodiments, network 160 can be bypassed to allow direct communication or hardware integration of one or more of server 150, ingredient storage system 105, user device 140, and product identification manager 125. For example, in some embodiments, a physical connector (e.g., a data cable) can be employed to physically attach a port of user device 140 (e.g., a mobile phone) to a port of ingredient storage system 105. Such a physical connector can permit the user device 140 to directly communicate with the ingredient storage system 105. In this example, a product identification manager 125 can be an installed software component of the ingredient storage system 105 and/or the user device 140 and can be configured to send and/or receive data by the physical connector.
Ingredient storage system 200 includes storage structure 220 having a plurality of receptacles 215 for storing ingredients (e.g., unit food products 225). In some embodiments, ingredient storage system 200 can include a cooling system, such that one or more receptacles 215 can be configured to store food products at reduced temperatures (e.g., between approximately 4° C. to approximately −18° C.). In some embodiments, ingredient storage system 200 can be configured to store ingredients at approximately room temperature, refrigerated temperatures, and/or freezing temperatures. Ingredient storage system 200 further includes at least one receptacle structure 230 configured to vertically retain a set of ingredients (e.g., unit food products 225) within receptacles 215 of storage structure 220. In some embodiments, receptacle structure 230 can include a mechanical device (e.g., a spring or motor) configured to facilitate removal of unit food products 225 from receptacles 215. In some embodiments, a unit food product 225 can be a pre-packaged food from a particular production source. For example, in some instances unit food product 225 can be a bag of frozen potatoes produced and/or provided by a first company, and in some instances unit food product 225 can be a container of refrigerated chicken produced and/or provided by a second company. In some embodiments, storage structure 220 can store a plurality of ingredients from a plurality of production sources. For example, in some instances, a first receptacle 215-1 can store a plurality of packages of frozen broccoli provided by a first company; a second receptacle 215-2 can store a plurality of packages of frozen broccoli provided by a second company; and a third receptacle 215-3 can store a plurality of packages of quinoa provided by a third company. Ingredient storage system 200 further includes a set of indicators 235 (e.g., a set of light-emitting diodes) configured to illuminate and provide a visual indication of a receptacle 215 in which an ingredient is stored, in accordance with embodiments of the present disclosure.
The use of an ingredient storage system, such as ingredient storage system 200 in accordance with embodiments of the present disclosure can improve a user's shopping experience and shopping efficiency. For example, a consumer who wishes to purchase ingredients for a sheet pan meal that satisfies the consumer's dietary restrictions can locate compliant food products efficiently by indicators 235 that identify locations of such compliant food products. Additionally, the ingredient storage system 200 can provide a centralized location for ingredients and facilitate a user's ability to acquire desired ingredients in reduced amount time.
In operation 305, the product identification manager can obtain food-selection data. Food-selection data can include a user's criteria for choosing a set of food products. For example, in some embodiments, food-selection data can include a user's nutritional/dietary preferences (e.g., low sodium, organic, vegan, and the like). In some embodiments, food-selection data can include a type of cuisine (e.g., Italian, Chinese, Caribbean) desired by a user. In some embodiments, food-selection data can include one or more ingredients desired and/or not desired by a user. For example, in some instances, food-selection data can specify a chicken meal, a beef meal, or a pork and vegetable meal. Continuing with this example, in some instances, food-selection data can specify a pork and vegetable meal and include data from a user indicating that the user does not desire specific vegetables, such as peas and brussels sprouts. Further in this example, the food selection data can include data indicating that the user prefers a first set of spices and/or sauces with meals that include chicken and a different set of spices and/or sauces with meals that include beef. In some embodiments, food-selection data can include a name of a particular meal desired by a user, such as a “Beef and Bean Burrito Meal.”
In some embodiments, food-selection data can indicate cooking preferences of a user. For example, in some instances, food selection data can include a preparation time selected by a user (e.g., a user can specify that the user has 45 minutes to prepare a meal). In some instances, food selection data can indicate a cooking ability of a user (e.g., a user can specify a number of times per week the user cooks). In some instances, food selection data can indicate cooking appliances available to the user (e.g., a user can specify whether the user can access one or more of a microwave, a stove, and an oven). In such embodiments, the product identification manager can select target ingredients based, at least in part, on whether ingredients can be cooked with the available cooking appliances (e.g., the product identification manager can select microwaveable ingredients in a case where a user specifies access only to a microwave).
In operation 305, the product identification manager can obtain food-selection data through an interface, such as an interface of a user device (e.g., user device 140,
In operation 310, the product identification manager can obtain ingredient data. Ingredient data can include information that correlates a meal or cuisine name with a list of ingredients that can be cooked together to prepare the meal or cuisine. For example, ingredient data can correlate “chicken skewer meal” with ingredients such as chicken, onions, potatoes, and green beans. In some embodiments, ingredient data can include an indication of ingredients and/or food products stored in an ingredient storage system as well as nutritional data of the stored ingredients and/or food products. In these embodiments, the ingredient data can further include an indication of the storage location of the ingredients and/or food products within the ingredient storage system. In operation 310, the product identification manager can obtain ingredient data from a storage location, such as from memory of a server (e.g., a web server).
In operation 315, the product identification manager can obtain synchronization data. Synchronization data can include information indicating a temperature and time for which a set of ingredients can be cooked together to reach a predetermined state (e.g., a minimum internal temperature and/or a predetermined appearance, flavor, and/or texture). In some embodiments, synchronization data can include an indication (e.g., a brand name) of a production source for the ingredient. For example, in some embodiments, synchronization data can include a time (e.g., a duration for heating ingredients in an oven) and a temperature (e.g., an oven temperature) for cooking a set of ingredients together, such as frozen beef strips produced by “Company A,” frozen sweet potatoes produced by “Company B,” and frozen brussels sprouts produced by “Company C.” In some embodiments, synchronization data can include a first cooking time and first cooking temperature for a first food product and a second cooking time and second cooking temperature for a second food product.
In some embodiments, synchronization data can be predetermined by a third-party entity that can cook a variety sets of food products (e.g., a variety of ingredients produced by a variety of entities) together at a range of temperatures and times. Additionally, for each temperature and time, the third-party entity can rank each set of food products according to metrics such as texture, color, and/or flavor. Based on such metrics, the third-party entity can define synchronization data for a plurality of sets of food products. In an example, for a particular set of food products, a cooking time and cooking temperature yielding the highest rankings among the ranking data for texture, color, and/or flavor can be selected by the third-party entity as synchronization data for the set of food products. The third-party entity can store synchronization data to a data storage location, such as a web server.
In operation 315, the product identification manager can obtain synchronization data from a storage location, such as from memory of a computing device of an ingredient storage system and/or from memory of a server (e.g., a web server).
In operation 320, the product identification manager can select a set of target ingredients. A set of target ingredients can refer to a set of food products stored in an ingredient storage system. In some embodiments, the product identification manager can select the set of target ingredients based, at least in part, on synchronization data obtained in operation 315. For example, the product identification manager can select a set of food products based on each food product's synchronization data indicating a cooking time of 35 minutes and a cooking temperature of 175° C. In some embodiments, the product identification manager can select a set of food products based on each food product's synchronization data indicating a cooking time within a range, such as 30 to 40 minutes and a cooking temperature within a range of 165° C. to 185° C. In some embodiments, the product identification manager can select the set of target ingredients based, at least in part, on ingredient data obtained in operation 310, such as data indicating that the ingredients can be cooked together to prepare a particular meal or cuisine. In some embodiments, the product identification manager can select the set of target ingredients based, at least in part, on the food-selection data obtained in operation 305, such that the selected target ingredients satisfy one or more user preferences and/or user cooking ability.
In operation 325, the product identification manager can activate one or more indicators of the ingredient storage system corresponding to the set of target ingredients selected in operation 320. For example, in some instances, the set of target ingredients can include a bag of frozen vegetables from a first production source stored in a first receptacle of the ingredient storage system and a container of frozen fish from a second production source stored in a second receptacle of the ingredient storage system. In this example, operation 325 can include the product identification manager issuing an instruction to the ingredient storage system to illuminate indicators (e.g., lights) corresponding to the first receptacle and the second receptacle. In some embodiments, operation 325 can include modifying a characteristic (e.g., a color or illumination intensity) of an indicator.
In embodiments, the computing device 400 includes a bus 410 that, directly and/or indirectly, couples one or more of the following devices: a processor 420, a memory 430, an input/output (I/O) port 440, an I/O component 450, and a power supply 460. Any number of additional components, different components, and/or combinations of components may also be included in the computing device 400.
The bus 410 represents what may be one or more busses (such as, for example, an address bus, data bus, or combination thereof). Similarly, in embodiments, the computing device 400 may include a number of processors 420, a number of memory components 430, a number of I/O ports 440, a number of I/O components 450, and/or a number of power supplies 460. Additionally, any number of these components, or combinations thereof, may be distributed and/or duplicated across a number of computing devices.
In embodiments, the memory 430 includes computer-readable media in the form of volatile and/or nonvolatile memory and may be removable, nonremovable, or a combination thereof. Media examples include random access memory (RAM); read only memory (ROM); electronically erasable programmable read only memory (EEPROM); flash memory; optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices; data transmissions; and/or any other medium that can be used to store information and can be accessed by a computing device. In embodiments, the memory 430 stores computer-executable instructions 470 for causing the processor 420 to implement aspects of embodiments of components discussed herein and/or to perform aspects of embodiments of methods and procedures discussed herein. The memory 430 can comprise a non-transitory computer readable medium storing the computer-executable instructions 470.
The computer-executable instructions 470 may include, for example, computer code, machine-useable instructions, and the like such as, for example, program components capable of being executed by one or more processors 420 (e.g., microprocessors) associated with the computing device 400. Program components may be programmed using any number of different programming environments, including various languages, development kits, frameworks, and/or the like. Some or all of the functionality contemplated herein may also, or alternatively, be implemented in hardware and/or firmware.
According to embodiments, for example, the instructions 470 may be configured to be executed by the processor 420 and, upon execution, to cause the processor 420 to perform certain processes. In certain embodiments, the processor 420, memory 430, and instructions 470 are part of a controller such as an application specific integrated circuit (ASIC), field-programmable gate array (FPGA), and/or the like. Such devices can be used to carry out the functions and steps described herein.
The I/O component 450 may include a presentation component configured to present information to a user such as, for example, a display device, a speaker, and/or the like, and/or an input component such as, for example, a microphone, a joystick, a satellite dish, a wireless device, a keyboard, a pen, a voice input device, a touch input device, a touch-screen device, an interactive display device, a mouse, and/or the like.
The devices and systems described herein can be communicatively coupled via a network, which may include a local area network (LAN), a wide area network (WAN), a cellular data network, via the internet using an internet service provider, and the like.
Aspects of the present disclosure are described with reference to flowchart illustrations and/or block diagrams of methods, devices, systems and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions.
Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the disclosed subject matter. For example, while the embodiments described above refer to particular features, the scope of this disclosure also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the disclosed subject matter is intended to embrace all such alternatives, modifications, and variations as fall within the scope of the claims, together with all equivalents thereof.