FIELD AND BACKGROUND OF THE INVENTION

The present invention, in some embodiments thereof, relates to generating offerings based on use of a product and, more particularly, but not exclusively, to generating offerings based on a fill level of a container of the product.

Consumers often use materials, such as foodstuff, provided in containers. Promotions for such containers, when provided, are typically provided on an outside of an enclosure containing the food stuff, inside the enclosure in a separate wrapping, or as a digital or manually entered code.

Additional background art includes: U.S. Pat. No. 9,171,368(B2)—System And Method For Estimating A Quantity Of A Blood Component In A Fluid Canister; WO2016037612(A1)—Apparatus And Method For Recording The Volume Of A Beverage Container Using The Filling Level; JPH1069579(A)—Automatic Charge Settling Device For Eating And Drinking; http://www(dot)ncbi(dot)nlm(dot)nih(dot)gov/pmc/articles/PMC2813222/—Automatic Food Documentation and Volume Computation using Digital Imaging and Electronic Transmission; http://zhiweizhu(dot)com/papers/FIVR_MobileDevice_2009(dot)pdf—Recognition and Volume Estimation of Food Intake using a Mobile Device; U.S. Pat. No. 9,112,960(B2)—Blood alcohol content measurement system powered by an audio signal from a phone; US2016163037(A1)—Estimation Of Food Volume And Carbs; U.S. Pat. No. 8,995,754(B2)—Estimating A Pose Of A Camera For Volume Estimation; U.S. Pat. No. 9,364,106(B1)—Apparatus and method for identifying, measuring and analyzing food nutritional values and consumer eating behaviors; and U.S. Pat. No. 8,345,930(B2)—Method For Computing Food Volume In A Method For Analyzing Food; US2016117952(A1)—Modifying A Person's Eating And Activity Habits.

SUMMARY OF THE INVENTION

The present invention, in some embodiments thereof, relates to generating offerings based on use of a product and, more particularly, but not exclusively, to generating offerings based on a fill level of a container.

Following are examples of some embodiments of the invention. Features of one example may be combined with features of one or more other examples, unless expressly prohibited and form additional examples of some embodiments of the invention.

EXAMPLE 1

A method of reality augmentation, comprising:(a) determining the identity of a container with a top opening;(b) acquiring an image of the container from a top thereof;(c) estimating, by processing circuitry, a geometry of the filling of said container based on said identity and said image; and(d) overlaying, by a display processor, an augmentation on said image or on a further image acquired of said container, based on said estimation.

EXAMPLE 2

A method according to example 1, wherein said estimating a geometry comprises estimating a fill level of said filling in said container.

EXAMPLE 3

A method according to example 1 or example 2, wherein said estimating a geometry comprises estimating a non-level upper surface of said filling in said container.

EXAMPLE 4

A method according to any of the preceding examples, wherein said estimating a geometry comprises estimating a volume of filling or filling removed, from said container.

EXAMPLE 5

A method according to any of the preceding examples, wherein said filling is opaque.

EXAMPLE 6

A method according to any of examples 1-5, wherein said filling is transparent enough to allow human vision 1 cm in.

EXAMPLE 7

A method according to any of the preceding examples, wherein said filling is spreadable.

EXAMPLE 8

A method according to any of examples 1-6, wherein said filling is in the form of small pieces.

EXAMPLE 9

A method according to any of the preceding examples, wherein said filling is flowable under gravity.

EXAMPLE 10

A method according to any of examples 1-8, wherein said filling flows slower than 0.1 m/s under gravity.

EXAMPLE 11

A method according to any of the preceding examples, wherein said filling comprises a material selected from the group comprising: chocolate spread, soft cheese, nut spread and breakfast cereal.

EXAMPLE 12

A method according to any of the preceding examples, wherein said estimating comprises estimating said geometry by comparing to a baseline.

EXAMPLE 13

A method according to any of the preceding examples, wherein said estimating comprises making measurements on said image.

EXAMPLE 14

A method according to any of the preceding examples, wherein said overlying comprises overlaying on an image portion showing said filling.

EXAMPLE 15

A method according to any of the preceding examples, wherein said overlying comprises displaying said augmentation partially within said filling and partially above said filling.

EXAMPLE 16

A method according to any of the preceding examples, wherein said overlying comprises overlaying on an image portion showing an outside of said container.

EXAMPLE 17

A method according to any of the preceding examples, wherein said augmentation comprises an augmentation selected for a group consisting of a monster or other figure, a coupon, food-related information and a marketing object.

EXAMPLE 18

A method according to any of the preceding examples, wherein said augmentation comprises a still or a dynamic image.

EXAMPLE 19

A method according to any of the preceding examples, wherein said augmentation includes audio.

EXAMPLE 20

A method according to any of the preceding examples, wherein said augmentation is interactive and wherein said processing circuitry detects a physical object interacting with said augmentation after said overlay.

EXAMPLE 21

A method according to any of the preceding examples, comprising detecting the presence of a movable physical object in one of said images and wherein said overlaying comprises overlying in response to a detected position, orientation, motion and/or type of said object.

EXAMPLE 22

A method according to any of the preceding examples, wherein said determining comprises reading a code of said container.

EXAMPLE 23

A method according to any of the preceding examples, wherein said determining comprises identifying said container by shape.

EXAMPLE 24

A method according to any of the preceding examples, wherein said determining comprises identifying said container based on a logo or other human readable visual marking thereon.

EXAMPLE 25

A method according to any of the preceding examples, comprising selecting said augmentation for said overlaying.

EXAMPLE 26

A method according to example 25, wherein said selecting comprises selecting based on a context including one or more of a container id, guessed user of a device used for said acquiring, marketing program, user profile, additional associated user, user input, past interaction with exposures in this or other containers and/or location of purchase of the container.

EXAMPLE 27

A method according to example 26, comprising acquiring at least part of said context using a same device as used for said acquiring.

EXAMPLE 28

A method according to any of examples 25-27, wherein overlaying takes into account a time which passed since a previous exposure for the container and/or a user of said container.

EXAMPLE 29

A method according to any of the preceding examples, wherein said acquiring, said estimating and said overlying are provided by a device with a cellular network connection.

EXAMPLE 30

A method according to any of the preceding examples, comprising tracking said overlaying by a remote server and sending exposure overlay instructions from a remote location, to said display processor.

EXAMPLE 31

A method according to any of the preceding examples, comprising detecting a use of said container by detecting an opening of said container.

EXAMPLE 32

A software component configured for installation on a cellular telephone linked device, comprising:an image acquisition module;a package identification module;a filling geometry estimation module receiving an image form said image acquisition module;an augmentation decision module receiving geometry estimation information from said geometry estimation module and a package identification indication said package identification module; andan augmentation generation module which generate an image augmentation on an image received form said image augmentation module based on input from said augmentation decision module.

EXAMPLE 33

A system for exposure control, comprising:a tracking server or cloud configured to:(a) link packages with exposures to form an exposure plan;(b) receive information about actual exposures;an exposure device configured to:(a) determine that a food material is consumed or manipulated in a manner corresponding to said exposure plan;(b) generate an exposure;(c) report said exposure to said tracking server.

EXAMPLE 34

A method of reality augmentation, comprising:(a) determining the identity of a food material;(b) acquiring an image of the food material;(c) estimating, by processing circuitry, a geometry or change thereof, of the food material based on said identity and said image;(d) determining a consumption or manipulation of the food material based on said estimated geometry or change thereof; and(e) overlaying, by a display processor, an augmentation on said image or on a further image acquired of said food material, based on said determining.

Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.

As will be appreciated by one skilled in the art, some embodiments of the present invention may be embodied as a system, method or computer program product. Accordingly, some embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, some embodiments of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. Implementation of the method and/or system of some embodiments of the invention can involve performing and/or completing selected tasks manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of some embodiments of the method and/or system of the invention, several selected tasks could be implemented by hardware, by software or by firmware and/or by a combination thereof, e.g., using an operating system.

For example, hardware for performing selected tasks according to some embodiments of the invention could be implemented as a chip or a circuit. As software, selected tasks according to some embodiments of the invention could be implemented as a plurality of software instructions being executed by a computer using any suitable operating system. In an exemplary embodiment of the invention, one or more tasks according to some exemplary embodiments of method and/or system as described herein are performed by a data processor, such as a computing platform for executing a plurality of instructions. Optionally, the data processor includes a volatile memory for storing instructions and/or data and/or a non-volatile storage, for example, a magnetic hard-disk and/or removable media, for storing instructions and/or data. Optionally, a network connection is provided as well. A display and/or a user input device such as a keyboard or mouse are optionally provided as well.

Any combination of one or more computer readable medium(s) may be utilized for some embodiments of the invention. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium and/or data used thereby may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for some embodiments of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

Some embodiments of the present invention may be described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. 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. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

Some of the methods described herein are generally designed only for use by a computer, and may not be feasible or practical for performing purely manually, by a human expert. A human expert who wanted to manually perform similar tasks, such as estimating fill geometry, might be expected to use completely different methods, e.g., making use of expert knowledge and/or the pattern recognition capabilities of the human brain, which would be vastly more efficient than manually going through the steps of the methods described herein.

