Abstract:
Example methods, apparatus, systems to perform context-based image recognition are disclosed. Disclosed example methods include comparing a first and second reference region of a reference image with a first and second region of a first captured image to determine a first and second match value. In response to determining the first and second match values satisfy a first and second threshold: associating the first captured image with a product associated with the first reference image, the product being associated with a plurality of second reference images stored in the database. Decrementing index values associated with ones of the second reference images. Removing a reference record associated with one of the second reference images from the database based on a corresponding one of the second index values satisfying a first condition, the removal of the reference record reducing the storage space required to store reference records in the database.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This patent arises from a continuation of U.S. patent application Ser. No. 14/530,129, filed Oct. 31, 2014, now U.S. Patent No. U.S. patent application Ser. No. 14/530,129 is hereby incorporated herein by reference in its entirety. 
     
    
     FIELD OF THE DISCLOSURE 
       [0002]    This disclosure relates generally to consumer market research, and, more particularly, to context-based image recognition for consumer market research. 
       BACKGROUND 
       [0003]    Image recognition may be used to identify consumer packaged goods for a variety of purposes. For example, when performing an in-store shelf audit, a market research firm may use image recognition to identify the products displayed on store shelves. As another example, a merchant may offer an image recognition application to consumers to facilitate comparison shopping. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  illustrates an example system constructed in accordance with the teaching of this disclosure to perform context-based image recognition for consumer market research. 
           [0005]      FIGS. 2A, 2B, 2C and 2D  illustrate example consumer packaged goods with defined regions of interest. 
           [0006]      FIG. 3  illustrates an example implementation of the example image matcher of  FIG. 1  to identify products in images. 
           [0007]      FIG. 4  illustrates an example data structure maintained by a market research entity to manage and/or store reference image records in relation to product identifiers. 
           [0008]      FIG. 5  illustrates an example implementation of the example reference image generator of  FIG. 1  to generate reference image records with defined regions of interest. 
           [0009]      FIG. 6  is a flow diagram representative of example machine readable instructions that may be executed to implement the example image matcher of  FIG. 3  to identify products in images. 
           [0010]      FIG. 7  is a flow diagram representative of example machine readable instructions that may be executed to implement the example candidate selector in the example image matcher of  FIG. 3  to select, if present, potentially matching reference image records. 
           [0011]      FIG. 8  is a flow diagram representative of example machine readable instructions that may be executed to implement the example reference image generator of  FIG. 5  to generate reference image records with defined regions of interest. 
           [0012]      FIG. 9  is a flow diagram representative of example machine readable instructions that may be executed to implement the example candidate selector in the example image matcher of  FIG. 3  to fit a region of interest of the reference image to the captured image. 
           [0013]      FIG. 10  is a block diagram of an example processor system structured to execute the example machine readable instructions represented by  FIGS. 6, 7 , and/or  9  to implement the example image matcher of  FIG. 3 . 
           [0014]      FIG. 11  is a block diagram of an example processor system structured to execute the example machine readable instructions represented by  FIG. 8  to implement the example reference image generator of  FIG. 5 . 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Examples disclosed herein may be used to identify consumer packaged goods through context-based image recognition. In some disclosed examples, market research entities (MREs) and/or merchants (e.g., wholesalers, club stores, retailers, e-commerce retailers) offer services based on recognizing consumer packaged goods from images captured by image capture devices (e.g., cameras, smartphones, tablets, video recorders, etc.). For example, an MRE may provide shelf-auditing services to marketers, manufacturers, merchants and/or advertisers to help determine if, for example, display locations of consumer packaged goods and/or display quality requirements (e.g., the goods are facing the correct orientation, the shelf is fully stocked, etc.) are being met. As another example, merchants may offer image recognition applications, or apps, for mobiles devices (e.g., smartphones, tablets, etc.) through an app store (e.g., Google Play™, Apple® App Store SM , Apple® iTunes®, Amazon App Store, etc.) or other mechanism to facilitate comparison shopping and/or purchasing of goods through the app and/or the merchant&#39;s website (e.g., by placing the good on a wish list, etc.). 
         [0016]    National brand manufacturers (e.g., Procter &amp; Gamble, Johnson &amp; Johnson, L′Oreal Group, etc.) design packaging for consumer packaged goods to be distinct from competitor&#39;s packaging to foster brand awareness. In addition, a national brand manufacturer may design the packaging for one of its products to be similar to other products that share a brand to promote a cross-product brand image. As a result, differentiating among similarly branded products of a national brand manufacturer can be difficult. Also, merchants that use private label manufacturers (e.g., Costco SM , Walmart®, Walgreens®, etc.) sometimes design packaging (e.g., Kirkland Signature®, Sam&#39;s Choice®, Good &amp; Delish®, etc.) for premium products to be similar to leading brands in the same categories, whereas packaging for economy products may be designed to be distinct from national brands, but similar to other products in the merchant&#39;s economy product lines. 
         [0017]    Examples disclosed herein utilize regions of interest specified or otherwise defined in images representing packaged goods to identify packaged goods though content-based image recognition. For example, regions of interest are defined for reference images of consumer packaged goods and stored in a database in association with a product identifier. The regions of interest identify areas that correspond to one or more key characteristics of a consumer packaged good. The key characteristic(s) may include, but are not limited to, brand, sub-brand, package size, product line differentiators (e.g., flavor, scent, styles, etc.), special claims (e.g., “gluten free,” “high fiber,” “all natural,” etc.), etc. Different key characteristics may be used for different product categories (e.g., carbonated beverages, shampoo, salty snacks, etc.). For example, key characteristics for shampoo may include, but are not limited to, brand (e.g., “Gamier Fructis,” “Head &amp; Shoulders,” “Suave,” etc.), scent (e.g., “ocean lift,” “cherry blossom,” “energy rush,” etc.), treatment type (e.g., “hydration,” “for normal hair,” “volumizing,” etc.), promotional text (e.g., “intensely nourishes and replenishes soft, silky, and shiny hair,” etc.) and/or size and volume. In contrast, the key characteristics for soda may include, but are not limited to, brand (e.g., “Pepsi,” “Shasta,” “Jones Soda,” etc.), flavor (e.g., “Cherry,” “Cream Soda,” “Root Beer,” etc.), sub-type (e.g., “Diet,” “Max,” “Zero,” etc.), special claims (e.g., “Sugar Free,” “Caffeine Free,” “Real Sugar,” etc.), and/or size. 
         [0018]    In some examples, the key characteristics of a product are identified (e.g., selected) when the product reference data is created by the MRE to identify and/or transcribe product characteristics (e.g., barcode information, product category, manufacturer, brand, etc.). Additionally, or alternatively, the key characteristics are identified when the product is categorized and/or when product characteristics (e.g., descriptive words, morphemes and/or phrases that describe a product&#39;s feature, such as flavor, color, material, shape, etc., which may be obtained from a standardized list of features) are identified. In some such examples, the key characteristics are chosen by employees of the MRE based on a combination of (i) visual elements that are common within a brand (e.g., brand logo, manufacturer logo, etc.) to increase the likelihood that a candidate reference image can be used by the MRE to identify products associated with a particular source (e.g., manufacturer) and (ii) visual elements that are distinct within similarly branded products (e.g., flavor, special claims, promotional text, etc.) to increase the likelihood that the reference images used by the MRE can distinguish between similarly branded products. In some examples, key characteristics are chosen based on the category of the product. For example, the key characteristics of products in a “salty snack” category may be the brand (e.g., the brand logo), the manufacturer (e.g., the manufacturer&#39;s logo), sub-brand, flavor, product graphic (e.g., a picture of the product on the packaging), special claims, etc. 
         [0019]    In some examples disclosed herein, the regions of interest are assigned respective significance values. In some examples, a region of interest with a higher significance value indicates that the region of interest is more predictive of a product&#39;s identity than a region of interest with a lower significance value. In some examples, a significance value for a region of interest indicates a threshold similarity (e.g., match percentage) to be met to consider the region of interest as being matched. For example, a consumer packaged good may have a brand region of interest with a 90% significance value, a flavor region of interest with a 90% significance value, and a special claim region of interest with a 50% significance value. In some examples, a spatial relationship may be defined among the regions of interest in a reference image. For example, the distance and orientation of the regions of interest of a reference image relative to each other may be defined as a further matching criteria to be met by an image compared with the reference image. 
         [0020]    In some examples disclosed herein, a captured image of a consumer product good is obtained (e.g., via a camera, a smartphone, a tablet, a video recorder, etc.) or retrieved (e.g., from the Internet) for comparison to a reference image in the reference database. In some examples, the captured image may contain more than one product. In some such examples, techniques such as edge detection, blob detection, etc. are used to determine the boundaries of each product in the captured image. In such examples, the captured image may be segmented into multiple images that each depict one product. 
         [0021]    In some examples disclosed herein, feature points are extracted from the captured image to compare to feature points of a reference image stored in the reference database. As used herein, feature points are pixels and/or area of pixels in an image that are likely to appear regardless of image quality (e.g., differences in lighting, rotation, scale, etc.). Feature points have a position (e.g., expressed in pixel coordinates) on the image (e.g., the captured image, the reference image, etc.). In some examples, a feature point is an area of pixels around a pixel that has a local minimum or maximum amplitude (e.g., a number representing the brightness of the pixel, etc.). In some such examples, the location of the feature point is the location of the pixel that has the local minimum or maximum amplitude. In some examples, a feature point may also include gradient vectors that describes the orientation of the feature point. Feature points may be extracted through one or more methods, such as edge detection, corner detection (e.g., Harris corner detection, etc.), blob detection, affine-invariant feature detection, a scale-invariant feature transform (SIFT), speeded-up robust features (SURF) detection, etc. As used herein, feature points may include feature descriptors (e.g., SIFT feature descriptors, SURF feature descriptors, etc.). 
         [0022]    In some examples disclosed herein, one or more reference images may be associated with a consumer packaged good. Data used for matching reference images is stored as a reference image record. The reference image record may include the reference image, the regions of interest defined in the reference image, reference image feature points extracted from the regions of interest, and/or a reference image match index. In some examples, the reference image match index is used to evaluate the effectiveness of the reference image. In some examples, reference images with a low reference image match index may be removed from the database. 
         [0023]    In some examples disclosed herein, the feature points of one or more reference images are compared to the feature points of the captured image. In some examples, the selection of possible reference images is limited to only a subset of the reference images that meet a selection criterion (e.g., a category of consumer packaged goods, products sold at a particular merchant, etc.) For example, if a captured image is known to be taken from the drink section of a supermarket, the selection criterion may filter possible candidate reference images to include only those in drink-related categories (e.g., soda, sports drinks, water, juice, etc.). As another example, the selection criterion may be based on the category of consumer packaged goods of a preceding identified captured image from the same image capture device. In such an example, if the preceding captured image was identified as “Gain® Liquid Laundry Detergent (Original),” the selection criterion may be laundry-related categories (e.g., detergent, fabric softener, etc.). 
         [0024]    To compare the captured image to a reference image, respective region of interest (ROI) match values are calculated (e.g., using methods such as normalized cross-correlation, etc.) between regions of interest defined for the reference image and corresponding regions of the captured image. In some examples, the features points within the particular ROI (e.g., the ROI to be matched) of the reference image are compared to the feature points of captured image. In such examples, the match value is the percentage of features points within the particular ROI of the reference image that are matched to feature points of the captured image. For example, if an ROI defined for a reference image has ten feature points and during the matching process seven of those feature points are matched to feature points in a corresponding area on the captured image, the match value would be seventy percent. 
         [0025]    In some examples discussed below, the ROI with the highest significance value is used to best fit the regions of interest of the reference image to the captured image. For example, for a reference image with a special claim ROI with a 75% significance value, a flavor ROI with a 50% significance, and a brand ROI with an 85% significance value, the feature points of the brand ROI would be compared to the feature points of the captured image. In such an example, using a technique such as normalized cross-correlation or a nearest-neighbor algorithm, a first region of the on the captured image that best matches (e.g., has the highest match percentage, etc.) the brand ROI of the reference image is determined. The remaining ROIs of the reference image at respective locations relative to the brand ROI are then compared (e.g., a match value is calculated) to the corresponding region(s) of the captured image at the same or similar locations in the captured image relative to the first region that matched the brand ROI. In some examples, after finding the best fit region of the captured image corresponding to the region of interest with the highest significance value, because of the spatial relationships among the regions of interest in the reference image, a region of interest in the reference image may not have a corresponding location in the captured image. In some such examples, the match value for such region(s) are zero. 
         [0026]    In some examples, a candidate reference image is designated a possible match if all of the ROI match value(s) calculated for the respective regions of interest satisfy (e.g., are greater than or equal to) the significance values of the corresponding regions of interest. For example, a candidate reference image with three regions of interest (e.g., brand, flavors, special claims) having significance values of (90%, 90%, 50%) would be designated a possible match to a captured image with calculated ROI match values of (92%, 95%, 63%) because all the three significance values are met. In contrast, the same candidate reference image would not be designated a possible match to the captured image if the calculated ROI match values were (83%, 92%, 51%) because the significance value for the first ROI is not met. 
         [0027]    In some examples, the spatial relationships between the ROIs are used to verify that the reference image is a match for the captured image. In some such examples, initially, the ROIs are matched to captured image without accounting for the spatial relationships between the ROIs. In some such examples, if the ROI match values satisfy the respective significance values, the spatial relationships between the matching locations on the captured image are compared to the expected spatial relationships between the ROIs. In some such examples, if the spatial relationships do not match the expected spatial relationships, the captured image may be flagged for review. Such a scenario may indicate that product in the captured image has new packaging. 
         [0028]    If more than one reference image is designated a possible match, an arbitration technique may be used to select one of the reference images as a match. In some examples, a match score may be calculated using the ROI match values. For example, a possible match with ROI match values of (92%, 95%, 63%) would have a match score of 250 (e.g., determined by summing the match values for the individual ROIs). In some examples, the match score may be weighted using the respective significance values. In such examples, the reference image with the highest match score is selected as a match. Additionally, or alternatively, the products associated with the potentially matching reference images may be compared. In some examples, the product associated with the most possibly matching reference images is selected as a match. 
         [0029]    In some examples, if a match is not found for the captured image, the captured image is flagged for manual review or additional computer processing. In some such examples, the captured image may be flagged as a potential new product (e.g., a product not yet in the reference database) and/or as a potential new packaging design (e.g., a new design for an existing product in the reference database). For example, if comparison of the captured image to a candidate reference image results in a brand region of interest significance value being satisfied, a special claim region of interest significance value being satisfied, but a flavor region of interest not being satisfied, the captured image may be flagged as a potential new product corresponding to the known brand of the candidate reference image. 
         [0030]      FIG. 1  illustrates an example system  100  to perform context-based image recognition for consumer market research. In the illustrated example, an example image capture device  102  (e.g., a camera, a video recorder, a smartphone, a tablet, etc.) captures an example image  104  of an example consumer packaged good  106 . In some examples, the consumer packaged good  106  is located on an example shelf  108  of a merchant (e.g., a retailer, a wholesaler, a club store, etc.). In some examples, the consumer packaged good  106  may be in another location, such as a consumer&#39;s home. In the illustrated example, the captured image  104  is sent to an example market research entity (MRE)  112  through an example network  114  (e.g., the Internet, a local area network, a wide area network, a cellular data network, etc.) via a wired and/or wireless connection (e.g., a cable/DSL/satellite modem, a cell tower, etc.). 
         [0031]    In the illustrated example of  FIG. 1 , the MRE  112  processes the captured image  104  to associate a product (e.g., a product represented by a reference image record) with the captured image  104 . In the illustrated example, the MRE  112  includes an example image segmentor  117 , an example reference image manager  118 , an example product database  120 , an example image matcher  122 , an example staging database  123 , an example match database  124 , and an example report generator  125 . The example image segmentor  117  separates the captured image  104  into one or more images that each depict one consumer packaged good. In some examples, the image segmentor  117  uses techniques, such as edge detection, blob detection, etc. to determine the boundaries between consumer packaged goods in the captured image  104 . Additionally, or alternatively, the captured image  104  may be segmented through operator input. For example, the captured image  104  may be displayed via a graphical user interface and the operator may draw the boundaries between the consumer packaged goods. For example, a captured image  104  may depict a case of John&#39;s Soda and a case of Proxie Cola. In such an example, the image segmentor  117  would create an image of the case of John&#39;s Soda and an image of the case of Proxie Soda. In such a manner, a captured image  104  may be segmented into more than one image. 
         [0032]    In some examples, the example image segmentor  117  determines whether the captured image  104  satisfies a quality threshold. The quality threshold is used to flag captured images  104  that are unlikely to have accurate feature points extracted. The quality threshold may be one or more of a brightness level, a contrast level, a noise level, and/or a sharpness level, etc. In some examples, the image quality may be evaluated by an operator. In some examples, a captured image  104  that does not satisfy the quality threshold may be flagged for manual review. In some examples, a captured image  104  that does not satisfy the quality threshold may be discarded. The example image segmentor  117  stores the segmented images in the staging database  123 . 
         [0033]    The example reference image generator  118  generates reference image records to store in the example product database  120 . In some examples, the reference image generator  118  generates reference records based on images of consumer packaged goods provided by an external source  119  (e.g., a manufacturer, a reference image collection team, the Internet, etc.). In some examples, the reference image generator  118  generates reference records based on captured images  104  that are successfully matched with a product in the product database  120 . As discussed in further detail below, from time to time, the reference image generator  118  may evaluate reference records in the product database  120  to delete reference records that are not frequently matched with captured images  104 . 
         [0034]    In the example illustrated in  FIG. 1 , the image matcher  122  retrieves a segmented image from the staging database  123  and compares the segmented image to the reference image records stored in the product database  120  to attempt to match the segmented image to a catalogued (e.g., known) consumer packaged good (e.g., by assigning a product identifier to the segmented image, etc.). If a match is found, the image matcher  122  stores a match record in the match database  124 . In some examples, the match record includes the captured image, metadata associated with the captured image (if present), and/or a product identifier as returned from the reference record associated with the matching reference image (e.g., an MRE assigned product number, a UPC, etc.). In some examples, the information included in the match record is used by an example report generator to generate a match report  126 . In some examples, the match record(s) are stored in the match database  124  and/or included in the match report  126  and/or are used by the MRE  112  to generate shelf-audit reports. In some examples, the report generator  125  returns the product information (e.g., from the product database  116 ) to the image capture device  102  to, for example, provide price quotes and/or identify merchants that sell the product identified as being represented by the captured image  104 . Because the image matcher  122  is adaptive, in some examples, from time to time (e.g., periodically, randomly, etc.), the report generator  125  flags one or more match records for review. In such a manner, quality control can verify whether the image matcher  122  needs to be corrected and/or the reference records in the product database  120  need to be reviewed. 
         [0035]    While an example manner of implementing the system  100  of  FIG. 1  is illustrated in  FIG. 1 , one or more of the elements, processes and/or devices illustrated in  FIG. 1  may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example reference image generator  118 , the example image matcher  122 , the example report generator  125 , and/or, more generally, the example system  100  of  FIG. 1  may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example reference image generator  118 , the example image matcher  122 , the example report generator  125 , and/or, more generally, the example system  100  of  FIG. 1  could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example reference image generator  118 , the example image matcher  122 , the example report generator  125 , and/or, more generally, the example system  100  of  FIG. 1  is/are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example system  100  of  FIG. 1  may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in  FIG. 1 , and/or may include more than one of any or all of the illustrated elements, processes and devices. 
         [0036]      FIGS. 2A and 2B  illustrate respective example reference images  200   a  and  200   b . In the examples of  FIGS. 2A and 2B , regions of interest (ROIs)  202   a - 202   f  are overlaid on the reference images  200   a - 200   b . The example ROIs  202   a - 202   f  are defined by the example reference image generator  118  of  FIG. 1 . The example ROIs  202   a - 202   f  define a spatial region that may be used to determine which feature points of the captured image (e.g., the captured image  104  of  FIG. 1 ) to use when comparing the particular ROI to a corresponding location on the captured image. In the illustrated example of  FIG. 2A , the example ROIs  202   a - 202   c  encompass areas on the reference image  200   a  corresponding to key characteristics (e.g., brand, sub-brand, package size, product line differentiators, and/or special claims, etc.) of the product depicted in the reference image  200   a . Similarly, in the illustrated example of  FIG. 2B , the example ROIs  202   d - 202   f  encompass areas on the reference image  200   b  corresponding to key characteristics (e.g., brand, sub-brand, package size, product line differentiators, and/or special claims, etc.) of the product depicted in the reference image  200   b . In the illustrated example of  FIG. 2A , an ROI  202   a  is defined for a brand of the product, an ROI  202   b  is defined for a special claim of the product, and an ROI  202   c  is defined for a product differentiator (e.g., flavor) of the product depicted in the reference image  200   a . Similarly, in the illustrated example of  FIG. 2B , an ROI  202   d  is defined for a brand of the product, an ROI  202   e  is defined for a special claim of the product, and an ROI  202   f  is defined for a product differentiator (e.g., flavor) of the product depicted in the reference image  200   b . The example ROIs  202   a - 202   f  may be any suitable regular or irregular shape defined to encompass the respective key characteristic of the consumer packaged good. In the illustrated example, the ROIs  202   a - 202   c ,  202   d - 202   f  do not overlap. Alternatively, the ROIs  202   a - 202   c ,  202   d - 202   f  may overlap when key characteristics overlap on the design of the consumer packaged good. The example ROIs  202   a - 202   f  are assigned respective significance values  204   a - 204   f . In some examples, the significance values  204   a - 204   f  represent respective percentage thresholds (e.g., 90%, etc.) required to be met when comparing the respective ROIs  202   a - 202   f  to corresponding regions of the captured image  104  to determine that the corresponding regions of the captured image  104  include the respective key characteristics associated with the respective ROIs  202   a - 202   f . In some examples, the significance values  204   a - 204   f  are selected based on historical experience. 
         [0037]    In some examples, the significance values  204   a - 204   f  are selected via training and/or machine learning techniques. For example, initially, the significance values for different ROIs of a target reference image (e.g., a reference image to be trained) may be set to the same value (e.g., 50, 75, etc.). A training set of reference images may be constructed to include the target reference image and reference images corresponding to products that are substantially similar (e.g., products of the same brand, products that visually look similar, etc.) to the target reference images. Through an iterative process, the target reference image is compared to the training set of reference images, and the significance values  204   a - 204   f  are adjusted (e.g., raised or lowered) until the target reference image is uniquely identifiable (e.g., is the only correct match found, etc.) from the training set of reference images. Alternatively, or additionally, the significance values  204   a - 204   f  are selected based on ROI type. For example, an ROI representing a brand may be set to a relatively high value (e.g., 90%) and an ROI representing size may be set to a relatively low value (e.g., 50%). In some examples, the significance values  204   a - 204   f  are reevaluated if the corresponding reference image  202   a - 2002   b  is not selected as a match frequently enough (e.g., which may correspond to a reference image index for the reference image not satisfying a threshold, etc.). In such some examples, when the significance values  204   a - 204   f  are reevaluated, the significance values  204   a - 204   f  may be set and/or overridden by an operator. 
         [0038]      FIGS. 2C and 2D  illustrate an example captured (and segmented) image  206  with example extracted feature points  208  (feature points  208  are represented by an “o” in  FIGS. 2C and 2D ). In the illustrated example of  FIG. 2C , ROIs  202   a - 202   c  of the candidate reference image  200   a  of  FIG. 2A  are overlaid on the captured image  206 . In the illustrated example of  FIG. 2D , ROIs  202   d - 202   f  of the candidate reference images  200   b  of  FIG. 2B  are overlaid on the captured images  206 . Example ROI match values  210   a - 210   f  are calculated for the corresponding ROIs  202   a - 202   f . In some examples, the match values  210   a - 210   f  are calculated using only those feature points  208  within the respective ROI  202   a - 202   f  (e.g., subsets of the feature points of the captured imaged and/or the candidate reference image based on the respective ROI  202   a - 202   f ). In some examples, the feature points  208  which are not within one of the ROIs  202   a - 202   f  are disregarded. 
         [0039]    In some examples, the ROI with the highest significance value (e.g., the significance value  204   a  for the reference image  200   a ) is used to best fit the ROIs  202   a - 202   c  with the captured image  206  when comparing the reference image  200   a  with the captured image  206 . To best fit the ROI with the highest significance value, ROI match values are calculated in different locations on the captured image  206  until the significance value corresponding to the ROI is satisfied. In such examples, while maintaining the spatial relationships between the ROIs  202   a - 202   c , match values  210   b - 210   c  for the remaining ROIs  202   b - 202   c  are calculated by comparing the ROIs  202   b ,  202   c  of the reference image  200   a  with the feature points in corresponding regions of the captured image  206 . If, while finding the best fit ROI  202   a  with the highest significance value  202   a , the significance value  202   a  is not satisfied, then the reference image  200   a  is determined not to be a match to the captured image  206 . 
         [0040]      FIG. 3  illustrates an example implementation of the image matcher  122  of  FIG. 1 , which may be used to identify products in captured images  104 . In the illustrated example, the image matcher  122  compares ROIs (e.g. the ROIs  202   a - 202   f  of  FIG. 2 ) of reference images (e.g., the reference images  200   a - 200   b  of  FIG. 2 ) to feature points of captured (e.g., and segmented) images to select a matching reference image corresponding to a product in the product database  120 . The example image matcher  122  of  FIG. 3  includes an example feature point extractor  300 , and an example reference comparator  302 . In the illustrated example, the feature point extractor  300  processes the captured image  206  to extract feature points (e.g., the feature points  208  of  FIG. 2C and 2D ) from the captured image  206 . The example feature point extractor  300  uses one or more techniques, such as edge detection, corner detection (e.g., Harris corner detection, etc.), blob detection, affine-invariant feature detection, and/or a scale-invariant feature transform (SIFT), etc. to extract feature points that are likely to appear regardless of image quality. 
         [0041]    In some examples, the feature points extracted by the feature point extractor  300  include a descriptor comprising image gradient magnitudes and orientations (sometime referred to as “feature vectors”) of region(s) surrounding the feature point. In such examples, the feature vectors represent orientations of the region around the feature point, changes in brightness in the region around the feature point, changes in color around the feature point, etc. For example, the descriptor of a feature point extracted by feature point extractor  300  may include  128  feature vectors, or some other number of feature vectors. In such examples, the descriptors of the feature points are used to calculate Euclidean distances between the feature points of the captured image  206  and the feature points of a reference image. Examples of extracting feature points with descriptors are described in Lowe, David G. “Distinctive Image Features from Scale-Invariant Keypoints.” International Journal of Computer Vision 60.2 (2004): 91-110. The example feature point extractor  300  generates an example captured image record  306  that includes the extracted feature points and the captured image  206 . 
         [0042]    In the example illustrated of  FIG. 3 , the reference comparator  302  processes the reference record(s)  310  to determine if the captured image  206  matches any of the reference records(s)  310  in the product database  120 . The reference comparator  302  retrieves the reference records(s)  310  in the product database  120 . In some examples, the reference image records  310  are retrieved based on a selection criterion. For example, if the captured image  206  includes information regarding the location of the image capture device  102  ( FIG. 1 ), the selection criterion may be used to retrieve reference images related to the same product category location (e.g., drink related reference image records  310  would be retrieved if the captured image was captured in the “drinks” section of a supermarket, etc.). This approach reduces the search space for matching the captured image  104  against reference images, greatly saving processing resources. 
         [0043]    In the illustrated example of  FIG. 3 , the reference comparator  302  calculates ROI match value(s) for the ROI(s) of the retrieved reference record  310 . In some examples, the reference comparator  302  selects one of the ROIs corresponding to the reference record  310 . In some examples, the ROIs are selected in order of their respective significance values (e.g., from highest to lowest significance values, etc.). The reference comparator  302  attempts to match the feature points of a selected ROI to the feature points  208  within a region of the captured image  206  corresponding to the selected ROI of the reference image. 
         [0044]    In some examples, to select a match for a reference image feature point, the reference comparator  302  selects its nearest neighbor in the available captured image feature points. In some such examples, the nearest neighbor is defined as the captured image feature point with the minimum Euclidean distance based on the properties of the feature points (e.g., location, orientation, descriptor, etc.). In some examples, the reference comparator  302  identifies a first nearest neighbor (e.g., the captured image feature point with the minimum Euclidean distance) and a second nearest neighbor (e.g., the captured image feature point with the next minimum Euclidean distance after the first nearest neighbor). In some such examples, a ratio of the first nearest neighbor to the second nearest neighbor (e.g., the first nearest neighbor divided by the second nearest neighbor) is compared to a distance ratio threshold (e.g., 0.8). In some such examples, if the ratio satisfies (e.g., is less than or equal to) the distance ratio threshold, the first nearest neighbor is selected as the matching captured image feature point. Otherwise, if the ratio does not satisfy (e.g., is greater than) the distance ratio threshold, the reference comparator  302  determines that a match does not exist for the particular reference image feature point. In some such examples, the reference comparator  302  continues to match reference image feature points until either (i) the reference comparator  302  has attempted to match all the reference image feature points, or (ii) all captured image feature points have been matched with reference image feature points. In some examples, the match value for the particular ROI is the percentage of reference image feature points of the ROI that are matched with feature points of the captured image  206 .In some examples, before calculating the ROI match value(s) of the remaining ROIs stored in the reference image record  310 , the reference comparator  302  fits the ROI with the highest significance value to the captured image  206 . In such examples, using all the captured image feature points, the reference comparator  302  determines the location in the captured image  206  where the ROI match value satisfies (e.g., is greater than or equal to) the corresponding significance value. In some examples, the remaining ROI match value(s) are then calculated preserving the spatial relationships between the ROIs. In some examples, the reference comparator  302  attempts to match the feature points of the remaining ROI(s) (e.g., by calculating the ROI match value(s)) without taking into account the spatial relationships between the ROIs. In some such examples, reference comparator  302  compares the spatial relationships of the locations on the captured image  206  corresponding the respective matched ROI. 
         [0045]    In the illustrated example, if the ROI match value(s) satisfy (e.g., are greater than or equal to) the corresponding significance value(s) (e.g., a threshold, etc.) defined for the particular reference image record  310 , the reference comparator  302  designates the reference record  310  as a possible match. In some examples, to designate the reference record  310  as a possible match, the reference comparator  302  also determines whether the spatial relationships of the locations on the captured image  206  corresponding the respective matched ROI match the expected spatial relationships defined for the ROIs. After processing the reference image records  310  retrieved from the product database  120 , the reference comparator  302  selects one of the possible matches as the best match for the captured image  206 . In some examples, the reference comparator  302  calculates a match score for each reference image record  310  and selects the reference image record  310  with the highest match score. In some examples, the match score may be calculated by adding up the ROI match values. For example, for a possible match having three ROI match values of (90, 74, 63), the match score would be  227 . For example, if a first reference record  310  has a match score of 227, a second reference record  310  has a match score of 233, and a third reference record  310  has a match score of 215, the reference comparator  302  would select the second reference record  310  as the best match for the captured image 206. 
         [0046]    In some examples, the reference comparator  302  compares the products associated with the reference image records  310  that were designated as a possible match. In some such examples, the reference comparator  302  may select more than one reference record  310  as the best matches. In such examples, the reference comparator  302  selects, as the best match(es), the reference image record(s)  310  associated with the product most identified by the possibly matching reference record. For example, if a first reference record  310  is associated with “Gamier Frutis Sleek and Shine,” a second reference record  310  is associated with “Gamier Frutis Body Boost,” and a third reference record  310  is associated with “Gamier Frutis Sleek and Shine,” the reference comparator  302  would select both the first and third reference records  310  as the best matches. 
         [0047]    In the example illustrated in  FIG. 3 , the reference comparator  302  generates a match record  312  and stores the match record  312  in the match database  124 . Alternatively, or additionally, the match record  312  is included in the match report  126  (e.g., via the report generator  125  of  FIG. 1 ). In some examples, the match record  312  includes the captured image record  306 , the matching reference record(s)  310 , and/or a product identifier (e.g., a UPC, an MRE assigned unique identifier, etc.) of the product associated with the matching reference record(s)  310 . 
         [0048]    While an example manner of implementing the image matcher  122  of  FIG. 1  is illustrated in  FIG. 3 , one or more of the elements, processes and/or devices illustrated in  FIG. 3  may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example feature point extractor  300 , the example reference comparator  302  and/or, more generally, the example image matcher  122  of  FIG. 1  may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example feature point extractor  300 , the example reference comparator  302  and/or, more generally, the example image matcher  122  of  FIG. 1  could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example feature point extractor  300 , the example reference comparator  302  and/or, more generally, the example image matcher  122  of  FIG. 1  is/are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example image matcher  122  of  FIG. 1  may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in  FIG. 3 , and/or may include more than one of any or all of the illustrated elements, processes and devices. 
         [0049]      FIG. 4  illustrates an example data structure  400  maintained by the example MRE  112  of  FIG. 1  to manage and/or store reference image records  310 . In the illustrated example, the data structure  400  is stored in the product database  120 . The example data structure  400  includes a product identifier (ID)  402 . The product ID  402  is a value (e.g., an alphanumeric value, etc.) that uniquely identifies a consumer packaged good. The product ID may be assigned by the MRE or may be a trade item number (e.g., a Universal Product Code, an International Article Number, Manufacture Part Number, etc.) assigned by the manufacturer or any other suitable entity. 
         [0050]    In the illustrated example, the product ID  402  is associated with product characteristics  404 . The example product characteristics  404  include information that describes attributes of the consumer packaged good and/or the manufacturer of the consumer packaged good. For example, the product characteristics  404  may include a manufacturer (e.g., Proctor and Gamble, Johnson and Johnson, Unilever, etc.), a brand (e.g., Tide®, Neosporin®, Suave®, etc.), a category (e.g., laundry supplies, pharmacy, personal grooming, etc.), descriptors (e.g., descriptive words, morphemes, and/or phrases which describe attributes of the consumer packaged good), etc. In the illustrated example, the product characteristics  404  also include key characteristics  406 . The example key characteristics  406  are selected by the MRE  112  to differentiate the consumer packaged good from both differently branded products and products sharing the same brand. The example key characteristics  406  include, but are not limited to, brand, sub-brand, package size, product line differentiators (e.g., flavor, scent, styles, etc.), and/or special claims (e.g., “gluten free,” “high fiber,” “all natural,” etc.), etc. In some examples, different key characteristics  406  may be used for different product categories (e.g., carbonated beverages, shampoo, salty snacks, etc.). The example key characteristics  406  are used to identify areas on the consumer packaged good that define an ROI. 
         [0051]    In the illustrated example of  FIG. 4 , the product characteristics  404  also include one or more reference image records  310  generates by reference image manager  118  ( FIG. 1 ). The example reference image record(s)  310  include reference image(s)  408 . In some examples, the reference image(s)  408  are provided by a manufacturer and/or a marketer. In some such examples, the reference image(s)  408  are high quality images (e.g., images that have even lighting, are in focus, depict details of the consumer package goods that are clear, etc.) of the corresponding consumer packaged good. Additionally, or alternatively, the example reference image  408  is an image of the consumer packaged good on a merchant&#39;s shelf. In some such examples, the reference images  408  are selected from the captured images  206  ( FIGS. 2C and 2D ) in the match database  124 . For examples, a captured image  206  may be selected to be a potential reference image  408  based on the match score calculated by the image matcher  122 . In this manner, multiple images of varying angles and/or quality may be available to compare to a captured image  206  during the matching process. 
         [0052]    In the illustrated example of  FIG. 4 , the reference record  310  includes reference image feature points  410 . As discussed in further detail below, the reference image feature points  410  are extracted from the corresponding reference image  408  by the reference image manager  122 . The example reference image feature points  410  are used, in conjunction with the feature points  208  of the captured image  206 , to calculate ROI match value(s) to determine whether a reference image record  310  is a possible match to the captured image  206 . The example reference record  310  includes reference image ROI data  412 . The example reference image ROI data  412  includes information specifying the boundaries of the ROI(s) (e.g., the ROIs  202   a - 202   f  of  FIGS. 2A and 2B ). In addition, the example reference image ROI data  412  includes the significance value(s) (e.g., the significance values  204   a - 204   f  of  FIGS. 2A and 2B ) for the corresponding ROI(s)  202   a - 202   f . In some examples, the reference image ROI data  412  includes information regarding the spatial relationships (e.g., the locations of the ROI relative to each other) between the ROIs. 
         [0053]    In the illustrated example, the reference record  310  includes a reference image index  414 . The example reference image index  414  is used to sort the reference records  310  and/or to determine the quality and matching preference of the reference record  310 . The example reference image index  414  is a numerical value that is incremented or decremented during the matching process. In some examples, when a reference record  310  is designated as a potential match by the image matcher  122 , the reference image index  414  of the reference image record  310  is increased. Additionally, in some examples, when a reference record  310  is designated as a possible match by the image matcher  122 , the reference image indices  414  of reference records  310  associated with the same product ID  402  that were not considered as possible matches are decreased. In such a manner, reference image records  310  that are considered as potential matches more often than other reference image records  310  for the same product have higher reference image indices  414 . Furthermore, a positive reference image index  414  indicates that a reference record  310  for a product is designated a possible match more often than not when the product is a possible match for the captured image  206 , whereas a negative reference image index  414  indicates the opposite. 
         [0054]    In some examples, from time to time, reference records  310  are removed from the product database  120 . In some such examples, reference records  310  may be removed based on their corresponding reference image index  414 . Various rules may be defined to determine which reference record(s)  310  to remove. For example, a reference record  310  may be removed from the product database  120  if the corresponding reference image index  414  does not satisfy (e.g., is less than) a threshold. In some examples, the threshold may be zero (e.g., which are compared to a reference record  310  having been considered as a match as often as it has not been considered a match). A threshold greater than zero increases the quality requirement of a reference record  310  (e.g., a reference record  310  may be removed even if it has been considered as a match more than it has not been considered a match). Conversely, a threshold less than zero decreases the quality requirement of a reference record  310  (e.g., a reference record  310  may not be removed even if it has been considered as a match less than it has not been considered a match). Alternatively, or additionally, the one or more reference records  310  with the lowest reference image score  414  associated with a product ID  402  may be removed from the product database  120 . In some examples, a maximum number of reference records  310  per product ID  402  may be defined. In such examples, if a new reference record  310  is generated for a consumer packaged good, the reference record  310  with the lowest reference image score  414  is removed from the product database  120 . 
         [0055]      FIG. 5  illustrates an example implementation of the reference image manger  118  of  FIG. 1  which may be used to generate the reference image records  310  specifying defined ROI(s) for the associated reference images. In the illustrated example of  FIG. 5 , an example region of interest definer  500  receives or retrieves potential reference images  502 . In some examples, the potential reference images  502  are provided by manufacturers, marketers and/or merchants. In some examples, the potential reference images  502  are captured images  206  ( FIG. 2 ) retrieved from the match database  124  (e.g. captured images with high match scores). The example ROI definer  500  defines the boundaries of the ROIs (e.g., the ROIs  202   a - 202   f  of  FIG. 2 ) and the spatial relationships between the ROIs based on the key characteristics  406  ( FIG. 4 ) identified for the corresponding consumer packaged good. In some examples, the ROIs are drawn by an operator. The example ROI definer  500  creates a reference record  310  and stores the ROIs as the reference ROI data  412 . In addition, the example ROI definer  500  stores the potential reference image  502  as the reference image  408 . 
         [0056]    In the illustrated example, an example feature point extractor  504  extracts feature points from the potential reference image  502  within the ROIs defined by the ROI definer  500 . In some examples, areas outside the ROIs are ignored by the feature point extractor  504 . To extract feature points from the potential reference image  502 , the example feature point extractor  504  uses one or more image processing techniques, such as edge detection, corner detection (e.g., Harris corner detection, etc.), blob detection, affine-invariant feature detection, and/or a scale-invariant feature transform, etc. The example feature point extractor  504  stores the extracted feature points as the reference image feature points  410  of the reference image record  310 . 
         [0057]    In the illustrated example of  FIG. 5 , a significance value assigner  506  assigns a significance value (e.g., the significance values  204   a - 204   f  of  FIGS. 2A and 2B ) to the respective ROIs defined by the ROI definer  500 . Significance value may be assigned by any method. In some examples, the significance values are assigned based on the corresponding key characteristics  406  associated with the ROI. For example, a ROI associated with a brand key characteristic may be assigned a high significance value (e.g., 80%, 90%, etc.) to emphasize selecting reference records  310  as potential matches that share the brand of the segmented image  206 . As another example, a key characteristics  406  that is used to distinguish consumer packaged goods within the same brand (e.g., flavor, size/volume, etc.) may be assigned a high significance value (e.g., 80%, 90%, etc.). In some examples, the significance values are assigned based on historical experience. 
         [0058]    From time to time, the significance values assigned by the significance value assigner  506  may be evaluated and/or corrected by a significance corrector  508 . For example, the evaluation may be triggered when the reference record  310  is removed from the product database  120 . As another example, the evaluation may be triggered when captured images  206  of a consumer packaged good are flagged for manual review despite matching reference images  310  existing in the product database  120 . The example significance corrector  508  may adjust (e.g., increment or decrement) the significance values based on historical experience (e.g., based on the significance values of similar reference records). In some examples, the significance values may manually be adjusted. In some examples, after adjusting significance values, the significance corrector  508  resets the reference image match score. 
         [0059]    While an example manner of implementing the reference image generator  118  of  FIG. 1  is illustrated in  FIG. 5 , one or more of the elements, processes and/or devices illustrated in  FIG. 5  may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any other way. Further, the example ROI definer  500 , the feature point extractor  502 , the example significance value assigner  508 , the example significance corrector  508  and/or, more generally, the example reference image generator  118  of  FIG. 1  may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Thus, for example, any of the example ROI definer  500 , the feature point extractor  502 , the example significance value assigner  508 , the example significance corrector  508  , and/or, more generally, the example reference image generator  118  of  FIG. 1  could be implemented by one or more analog or digital circuit(s), logic circuits, programmable processor(s), application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or field programmable logic device(s) (FPLD(s)). When reading any of the apparatus or system claims of this patent to cover a purely software and/or firmware implementation, at least one of the example ROI definer  500 , the feature point extractor  502 , the example significance value assigner  508 , the example significance corrector  508  , and/or, more generally, the example reference image generator  118  of  FIG. 1  is/are hereby expressly defined to include a tangible computer readable storage device or storage disk such as a memory, a digital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc. storing the software and/or firmware. Further still, the example reference image generator  118  of  FIG. 1  may include one or more elements, processes and/or devices in addition to, or instead of, those illustrated in  FIG. 4 , and/or may include more than one of any or all of the illustrated elements, processes and devices. 
         [0060]    Flowcharts representative of example machine readable instructions for implementing the example image matcher  122  of  FIG. 1  are shown in  FIGS. 6, 7 , and/or  9 . In these examples, the machine readable instructions comprise program(s) for execution by a processor such as the processor  1012  shown in the example processor platform  1000  discussed below in connection with  FIG. 10 . The program may be embodied in software stored on a tangible computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor  1012 , but the entire program and/or parts thereof could alternatively be executed by a device other than the processor  1012  and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowcharts illustrated in  FIGS. 6, 7 , and/or  9 , many other methods of implementing the example image matcher  122 . For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. 
         [0061]    A flowchart representative of example machine readable instructions for implementing the example reference image generator  118  of  FIG. 1  is shown in  FIG. 8 . In these examples, the machine readable instructions comprise program(s) for execution by a processor such as the processor  1112  shown in the example processor platform  1100  discussed below in connection with  FIG. 11 . The program may be embodied in software stored on a tangible computer readable storage medium such as a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), a Blu-ray disk, or a memory associated with the processor  1112 , but the entire program and/or parts thereof could alternatively be executed by a device other than the processor  1112  and/or embodied in firmware or dedicated hardware. Further, although the example program is described with reference to the flowchart illustrated in  FIG. 8 , many other methods of implementing the example reference image generator  118  may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. 
         [0062]    As mentioned above, the example processes of  FIGS. 6, 7, 8 , and/or  9  may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a tangible computer readable storage medium such as a hard disk drive, a flash memory, a read-only memory (ROM), a compact disk (CD), a digital versatile disk (DVD), a cache, a random-access memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term tangible computer readable storage medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, “tangible computer readable storage medium” and “tangible machine readable storage medium” are used interchangeably. Additionally or alternatively, the example processes of  FIGS. 6, 7, 8 , and/or  9  may be implemented using coded instructions (e.g., computer and/or machine readable instructions) stored on a non-transitory computer and/or machine readable medium such as a hard disk drive, a flash memory, a read-only memory, a compact disk, a digital versatile disk, a cache, a random-access memory and/or any other storage device or storage disk in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, when the phrase “at least” is used as the transition term in a preamble of a claim, it is open-ended in the same manner as the term “comprising” is open ended. 
         [0063]      FIG. 6  is a flow diagram representative of example machine readable instructions  600  that may be executed to implement the example image matcher  122  of  FIGS. 1 and 3  to identify products in captured images  104 . At block  602  of  FIG. 6 , the example feature point extractor  300  retrieves a captured (and possibly segmented) image  206  from the staging database  123 . At block  604 , the example feature point extractor  300  extracts feature points (e.g., the feature points  208  of  FIGS. 2C and 2D ) from the captured image  206  retrieved at block  602  and generates a captured image record  306 . In some examples, the captured image record  306  includes the captured image  206  and the extracted feature points. At block  606 , the example reference comparator  302  retrieves example reference image record(s)  310  from the example product database  120 . In some examples, the reference comparator  302  uses a selection criterion to determine which reference records  310  to retrieve from the product database  120 . The example reference comparator  302  determines the similarity between the retrieved reference records  310  and the captured image  206  by calculating match values for ROIs of the reference record  310 . 
         [0064]    At block  608 , the reference comparator  302  determines whether at least one possible match was found at block  606 . In some examples, a possible match is found if the significance values for the ROIs of a reference record  310  are satisfied by the corresponding match values determined at block  606 . If at least one possible match was found, program control advances to block  610 . Otherwise, if at least one possible match was not found, program control advances to block  612 . At block  610 , the reference comparator  302  generates a match record  312  with one of the possibly matching reference record(s)  310 . In some examples, the reference comparator  302  calculates a match score for the possibly matching reference record(s)  310  and uses the reference record  310  with the highest match score to generate the match record  312 . The example program  600  then ends. At block  612 , the reference comparator  302  flags the captured image  206  for manual review as a potential new product. The example program  600  then ends. 
         [0065]      FIG. 7  is a flow diagram representative of example machine readable instructions  608  that may be executed to implement the example reference comparator  302  of  FIG. 3  to select, if present, reference image record(s)  310  to be possible matches to the captured image  206 . At block  700  of  FIG. 7 , the example candidate selector  302  retrieves a reference image record  310  from the example product database  120 . At block  702 , the candidate selector  302  calculates the similarities between the ROIs and the captured image  206 . In some examples, candidate selector  302  calculates the ROI match values for the ROIs of one of the reference records retrieved at block  700 . At block  704 , the reference comparator  302  determines whether the ROI match values calculated at block  702  satisfies (e.g., is greater than or equal to) the corresponding significance values included in the reference record  310 . If the ROI match values satisfy the corresponding significance values, program control advances to block  706 . Otherwise, the ROI match values do not satisfy the corresponding significance values, program control advances to block  710 . 
         [0066]    At block  706 , the reference comparator  302  designates the reference image record  310  as a potential matching reference record  310  and calculates a match score for the potential matching reference record  310  using the ROI match values. At block  708 , the reference comparator  302  increments the reference image match score  414  of the potential matching reference record  310 . At block  712 , the candidate selector  302  determines if there are more reference image records  310  to compare. If there are more reference image records  310  to compare, program control returns to block  702 . Otherwise, if there are not more reference image records  310  to test, program control advances to block  714 . 
         [0067]    At block  714 , the reference comparator  302  retrieves the reference records  310  from the product database  120  that correspond to the product IDs  402  of the potential matching reference record  310 . The example potential matching reference record  310  then downwardly adjusts the reference image match score  414  of the retrieved reference records  310 . For example, a product ID  402  may be associated with a first reference record, a second reference record, and a third reference record. In that example, if the first reference record was designated as a potential matching reference record  310  while the other reference records were not, the reference image match scores  414  of the second and third reference records would be decremented. Example program  608  then ends. 
         [0068]      FIG. 8  is a flow diagram representative of example machine readable instructions  800  that may be executed to implement the example reference image generator  118  of  FIGS. 1 and 4  which may be used to generate reference image records  310  with defined ROIs (e.g., the ROIs  202   a - 202   F  of  FIGS. 2A and 2B ). At block  802 , the ROI definer  500  retrieves a potential reference image. In some examples, the potential reference image  502  and a product ID  402  is retrieved from an external source  119 . Alternatively, or additionally, the potential reference image  502  and the product ID  402  may be retrieved from the match database  124 . At block  804 , the region of interest definer  500  defines ROI(s) around key characteristic(s)  406  defined for the product ID  402 . At block  804 , the feature point extractor  400  extract reference image feature points  410  from the ROI(s) of the  502  potential reference image. At block  808 , the significance value assigner  504  determines significance value(s) for the ROI(s) defined at block  806 . In some examples, the significance value trainer  504  determines the significance value(s) through supervised machine learning techniques. At block  810 , the significance value trainer  504  generates a reference image record  310  with the potential reference image  502 , the reference image feature points  410 , and the reference image ROIs  412 . In some examples, the significance value trainer  504  sets the reference image match score  141  to zero. The example program  800  then ends. 
         [0069]      FIG. 9  is a flow diagram representative of example machine readable instructions  900  that may be executed to implement the example reference comparator  302  of  FIG. 3  to fit the most significant region of interest (e.g., the ROI with the highest significance value) of the reference image (e.g. the reference image  200   a  of  FIG. 2A ) to the captured image  206 . Initially at block  902 , the reference comparator  302  selects the ROI with the highest significance value stored in the reference record  310  associated with the reference image being matched. At block  904 , the reference comparator  302  selects one of the feature points of the ROI selected at block  902 . At block  906 , the reference comparator  302  selects a matching feature point from the feature points of the captured image  206  for the reference image feature point (e.g., selects the nearest neighbor for the reference image feature point from the feature points of the captured image  206 ). 
         [0070]    At block  908 , the reference comparator  302  attempts to match the remaining feature points of the ROI with feature points in the captured image  206 . In some examples, the reference comparator  302 , using the matched feature point, overlays the boundaries of the ROI on the captured image  206 . In such examples, when attempting to match the remaining feature points of the ROI, the reference comparator  302  ignores feature points of the captured image  206  that are not within the ROI. At block  910 , the reference comparator  302  calculates an ROI match value for the ROI selected at block  902 . In some examples, the ROI match value equals the percentage of feature points of the ROI that were matched to feature points of the capture image  206 . 
         [0071]    At block  912 , the reference comparator  302  determines if the ROI match value calculated at block  910  satisfies (e.g., is greater than or equal to) the significance value of the ROI. If the ROI match value satisfies the significance value of the ROI, program control advances to block  914 . Otherwise, if the ROI match value does not satisfy the significance value of the ROI, program control advances to block  916 . At block  914 , the reference comparator  302  determines that the ROI selected at block  902  is best fit to the captured image  206 . The example program  900  then ends. At block  916 , the reference comparator  302  determines if there is another feature point of the ROI selected at block  902 . If there is another feature point of the ROI, program control returns to block  904 . Otherwise, if there is not another feature point of the ROI, program control advances to block  918 . At block  918 , the reference comparator  302  determines that there is no best fit location on the captured image  206  for the selected ROI. The example program  900  then ends. 
         [0072]      FIG. 10  is a block diagram of an example processor platform  1000  structured to execute the instructions of  FIGS. 6, 7 , and/or  9  to implement the image matcher  118  of  FIGS. 1 and 3 . The processor platform  1000  can be, for example, a server, a personal computer, a workstation, or any other type of computing device. 
         [0073]    The processor platform  1000  of the illustrated example includes a processor  1012 . The processor  1012  of the illustrated example is hardware. For example, the processor  1012  can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. 
         [0074]    The processor  1012  of the illustrated example includes a local memory  1013  (e.g., a cache). The example processor  1012  implements the example feature point extractor  300  and the example reference comparator  302  of  FIG. 3 . The processor  1012  of the illustrated example is in communication with a main memory including a volatile memory  1014  and a non-volatile memory  1016  via a bus  1018 . The volatile memory  1014  may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory  1016  may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory  1014 ,  1016  is controlled by a memory controller. 
         [0075]    The processor platform  1000  of the illustrated example also includes an interface circuit  1020 . The interface circuit  1020  may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface. 
         [0076]    In the illustrated example, one or more input devices  1022  are connected to the interface circuit  1020 . The input device(s)  1022  permit(s) a user to enter data and commands into the processor  1012 . The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. 
         [0077]    One or more output devices  1024  are also connected to the interface circuit  1020  of the illustrated example. The output devices  1024  can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers). The interface circuit  1020  of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor. 
         [0078]    The interface circuit  1020  of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network  1026  (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.). 
         [0079]    The processor platform  1000  of the illustrated example also includes one or more mass storage devices  1028  for storing software and/or data. Examples of such mass storage devices  1028  include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives. 
         [0080]    The coded instructions  1032  of  FIGS. 6, 7 , and/or  9  may be stored in the mass storage device  1028 , in the volatile memory  1014 , in the non-volatile memory  916 , and/or on a removable tangible computer readable storage medium such as a CD or DVD. 
         [0081]      FIG. 11  is a block diagram of an example processor platform  1100  structured to execute the instructions of  FIG. 8  to implement reference image generator  118  of  FIGS. 1 and 4 . The processor platform  1100  can be, for example, a server, a personal computer, a workstation, or any other type of computing device. 
         [0082]    The processor platform  1100  of the illustrated example includes a processor  1112 . The processor  1112  of the illustrated example is hardware. For example, the processor  1112  can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. 
         [0083]    The processor  1112  of the illustrated example includes a local memory  1113  (e.g., a cache). The example processor  1112  implements the example region of interest definer  500 , the example feature point extractor  504 , the example significance value assigner  506 , and the example significance corrector  508  of  FIG. 5 . The processor  1112  of the illustrated example is in communication with a main memory including a volatile memory  1114  and a non-volatile memory  1116  via a bus  1118 . The volatile memory  1114  may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory  1116  may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory  1114 ,  1116  is controlled by a memory controller. 
         [0084]    The processor platform  1100  of the illustrated example also includes an interface circuit  1120 . The interface circuit  1120  may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface. 
         [0085]    In the illustrated example, one or more input devices  1122  are connected to the interface circuit  1120 . The input device(s)  1122  permit(s) a user to enter data and commands into the processor  1112 . The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system. 
         [0086]    One or more output devices  1124  are also connected to the interface circuit  1120  of the illustrated example. The output devices  1124  can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers). The interface circuit  1120  of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor. 
         [0087]    The interface circuit  1120  of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network  1126  (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.). 
         [0088]    The processor platform  1100  of the illustrated example also includes one or more mass storage devices  1128  for storing software and/or data. Examples of such mass storage devices  1128  include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives. 
         [0089]    The coded instructions  1032  of  FIGS. 8  may be stored in the mass storage device  1128 , in the volatile memory  1114 , in the non-volatile memory  1116 , and/or on a removable tangible computer readable storage medium such as a CD or DVD. 
         [0090]    From the foregoing, it will be appreciated that examples have been disclosed which allow identification, through context-based image recognition, of consumer product goods that share similar branding and/or package design. In addition, it will be appreciated that examples have been disclosed that, through context-based image recognition, reduce the processing required (e.g., processor cycles, etc.) to identify a consumer product good from goods that share similar branding and/or package design. In addition, it will be appreciated that examples have been disclosed that, through context-based image recognition, reduce a number of false positive matches, thus reducing processing required to reprocess the false positive matches. 
         [0091]    Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.