Brand owners continually deal with the growing threat of product counterfeiting. Attempts have been made to verify product authenticity by incorporating various types of labeling on products. Attempts to stamp out counterfeiting may build trust and loyalty with consumers, and increase profit margins. This may be particularly important for high-volume, high-margin products.
Examples disclosed herein provide a digital authentication solution that allows consumers to verify the authenticity of a product. With the growth of computing devices, such as smartphones, a strong digital authentication solution may be a good complement to physical solutions already existing on the packaging of products, when determining authenticity. The digital authentication solution may enable consumers to verify the authenticity of products with their computing device (e.g., smartphone) via an authentication service.
As an example, at the point of purchase of a product, a consumer may use the camera on theft smartphone to capture a label on the packaging of the product, and send the captured image to the authentication service for verifying the authenticity of the product for copy detection and authentication purposes. The label on the packaging of the product may include authentication features that are used to verify the authenticity of the product via the authentication service. In addition to the authentication features, codes may appear on the label, for example, either as a barcode or in human-readable form. The authentication service may receive the captured label, and determine the authenticity of the product by detecting and identifying copy protection features of the label, such as the authentication features and the code.
One of the general challenges associated with mobile imaging, for example, captured via smartphones, is accounting for the variability in captured frames across a class of devices. As the digital authentication solution described above relies on the capture of the label via the camera on a smartphone, the quality of the captured frame needs to be taken into consideration. Factors affecting the quality of the captured frame include, but are not limited to, the quality of the camera on the smartphone, lighting conditions when capturing the label via the smartphone, and the angle of the smartphone with respect to the label while capturing label.
The quality of the captured frame may play an important role in detecting and identifying the copy protection features of the label, such as the authentication features and the code, via the authentication service. As such, it is necessary that the captured frame meets minimum image quality metric thresholds. The image quality specifications or metrics described below may be used alone or in combination. Examples disclosed herein provide an approach by which a frame is selected that meets such quality conditions or a quality value. Maximizing this quality value when selecting a frame for authenticating a product may reduce the variability in captured frames across a class of devices.
Referring now to the figures,
Referring to
Although barcodes, such as the QR code 102 may offer a number of opportunities for estimating the sharpness, the graphical content may not be limited to a barcode. Examples of other graphical content that may be used include designs that are known to include a distribution of bitonal color values (e.g., a region containing pixels that are either a first or a second color, such as black or white). As will be further described, having a graphical content including a distribution of bitonal color values may assist in determining the sharpness of a captured image of the label 100
In addition to the QR code 102, the label 100 may include copy protection features near and/or around the QR code 102 (area for the copy protection features indicated by 104). Examples of such copy protection features include, but are not limited to, multi-color graphics, photo content, and arrays of differently colored squares. For example, the copy protection features can include color tiles, Guilloche curve patterns, and general photographic data. By selecting a captured frame of the label 100 to upload to the authentication service that meets minimum image quality metric thresholds, the captured frame may include the level of detail for the authentication service to verify authenticity.
As will be further described, by selecting the best frame of the label 100 from a set of frames captured over a period of time or a given time interval, the captured frame behavior across various devices may be regularized. As an example, each frame from the set of frames may be assigned an overall estimate of frame quality, based on, for example, targeted estimates of sharpness, coupled with other measurements (e.g., barcode-based size estimates), as will be further described. The image quality specifications or metrics described below may be used alone or in combination when determining an estimate of frame quality and selecting the frame. As an example, the best frame may be selected from a set of frames that, at a minimum, meets one or more of these metrics. However, rather than filtering out frames that do not meet these metrics, the frame having the highest estimate of frame quality from all frames captured may be selected. As an example for determining the estimate of frame quality, each metric may be weighted, where the estimate of frame quality may be a weighted sum of the metrics. The frame with the highest overall estimate of frame quality may be selected for authentication purposes.
A metric for selecting a captured frame of the label 100 may include determining the image resolution of the frame. As an example, the captured frame of the label 100 may require a minimum image resolution, or a minimum width or height of a given object in the captured frame. Selecting a frame that does not meet the minimum image resolution may prevent detectability of certain security features from the captured frame of the label 100 (e.g., copy protection features 104). As an example, the size of the object may be estimated by binarizing the image, and calculating the vertical and horizontal extents of the non-background part of the binarized image. As an example, the size of certain classes of symbols or markings (e.g., 2-D quasi-periodic designs) may be estimated using frequency domain analysis.
Another metric for selecting a captured frame of the label 100 may include determining the sharpness of the frame. As an example, for each frame of the label 100 from a set of frames captured over a period of time or a given time interval, a sharpness score may be calculated of an area of the captured frame. By determining whether the sharpness score is above a threshold value, and maximizing the sharpness score by selecting the frame having the higher sharpness score, the variability in captured frames across a class of devices may be reduced. As an example, the area of the captured frame for calculating the sharpness score may include a region containing pixels that are known to have either a first or a second color, such as black or white (e.g., a distribution of bitonal color values). For example, the sharpness score may be calculated for a region with relatively known ratios of dark and light pixels.
As an example, the QR code 102 of
Referring to
As an example for calculating the sharpness score, for example, of the portion of the QR code illustrated in
Another metric for selecting a captured frame of the label 100 may include determining the luminous intensity from sets of regions within the captured frame. As an example, the metric may be measured from using black pixels from different regions of the captured frame of the label 100. If an average luminous intensity absolute difference from the different regions of the captured frame is above a threshold value (e.g., >10%), there may be lack of uniformity in lighting across the label 100 while it is being captured. As an example, factors affecting the uniformity in lighting of a captured frame of the label 100 may include the angle of lighting on the label 100 and the angle of the smartphone while it is used to capture the frame. It may be desirable to have luminance uniformity across the image, in order for the authentication service to detect copy protection features of the captured frame of the label 100, and verify authenticity.
Referring to
dL
i,v
=abs(Li,vl−Li,vr)/min(Li,vl, Li,vr).
Upon measuring the six values, the maximum of the six values may be calculated:
dL
max=max(dL1,h, dL2,h, dL2,v, dL3,h, dL3,v).
If the maximum of the average luminous intensity absolute difference for the symbols is less than a threshold value (e.g., 10%), the captured frame may have a sufficient amount of luminous uniformity for the authentication service to detect the copy protection features from the captured frame. However, if dLmax is greater than the threshold value, it may be desirable to select another frame for sending to the authentication service.
For example, authentication service 530 may comprise any combination of hardware and programming to implement the functionalities of authentication service 530. In examples described herein, such combinations of hardware and programming may be implemented in a number of different ways. For example, the programming may be processor executable instructions stored on at least one non-transitory machine-readable storage medium and the hardware may include at least one processing resource to execute those instructions. In such examples, the machine-readable storage medium may store instructions that, when executed by processing resource(s), implement authentication service 530. In such examples, authentication service 530 may include the machine-readable storage medium storing the instructions and the processing resource(s) to execute the instructions, or the machine-readable storage medium may be separate from but accessible to computing device(s) comprising the processing resource(s) and implementing authentication service 530.
In some examples, the instructions can be part of an installation package that, when installed, can be executed by the processing resource(s) to implement authentication service 530. In such examples, the machine-readable storage medium may be a portable medium, such as a CD, DVD, or flash drive, or a memory maintained by a server from which the installation package can be downloaded and installed. In other examples, the instructions may be part of an application, applications, or component already installed on a server including the processing resource. In such examples, the machine-readable storage medium may include memory such as a hard drive, solid state drive, or the like. In other examples, some or all of the functionalities of authentication service 530 may be implemented in the form of electronic circuitry.
As used herein, a “machine-readable storage medium” may be any electronic, magnetic, optical, or other physical storage apparatus to contain or store information such as executable instructions, data, and the like. For example, any machine-readable storage medium described herein may be any of Random Access Memory (RAM), volatile memory, non-volatile memory, flash memory, a storage drive (e.g., a hard drive), a solid state drive, any type of storage disc (e.g., a compact disc, a DVD, etc.), and the like, or a combination thereof. Further, any machine-readable storage medium described herein may be non-transitory.
In the foregoing discussion, various components of the computing device 500 are identified and refer to a combination of hardware and programming configured to perform a designated function. Looking at
Memory resource 520 may be any of a number of memory components capable of storing instructions that can be executed by processing resource 510. Memory resource 520 may be non-transitory in the sense that it does not encompass a transitory signal but instead is made up of one or more memory components configured to store the relevant instructions. Memory resource 520 may be implemented in a single device or distributed across devices. Likewise, processing resource 510 represents any number of processors capable of executing instructions stored by memory resource 520. Processing resource 510 may be integrated in a single device or distributed across devices. Further, memory resource 520 may be fully or partially integrated in the same device as processing resource 510 (as illustrated), or it may be separate but accessible to that device and processing resource 510. In some examples, memory resource 520 may be a machine-readable storage medium.
In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 510 to implement the various components of the foregoing discussion. In this case, memory resource 520 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, memory resource 520 can include integrated memory such as a hard drive, solid state drive, or the like.
In
Assign module 516 represents program instructions that, when executed, cause processing resource 510 to assign a quality score for each frame from the set of frames. As an example, the quality score may be based at least upon one or more of the metrics described above. For example, the quality score may be based upon the number of pixels in the frame between symbols, the sharpness score, and the maximum of the average luminous intensity absolute difference for the sets of regions within the frame. As described above, each metric may be weighted, and the quality score may be a weighted sum of the weighted metrics.
Select module 518 represents program instructions that, when executed, cause processing resource 510 to select a frame (e.g., captured frame 525) from the set of frames, which has a higher quality score than other frames from the set of frames. As an example, the frame selected may meet the quality condition described above, by meeting one or more the metrics. However, rather than filtering out frames that do not meet these metrics, the frame having the highest quality score from all frames captured may be selected. Send module 519 represents program instructions that, when executed, cause processing resource 510 to send the captured frame 525 to the authentication service 530 for authenticating the label 100 captured in the selected frame 525.
At 602, a computing device, such as a smartphone, may obtain a set of frames, capturing the label of a product (e.g., label 100 of
At 604, for each frame from the set of frames, the smartphone may determine whether the frame meets a quality condition. As an example, the quality condition may be one or more of the metrics described above. One metric includes determining whether a number of pixels in the frame between symbols within the frame is greater than a specified number of pixels. Referring to
Another metric includes calculating a sharpness score of an area of the frame defined by the symbols, and determining whether the sharpness score is above a threshold value. Referring to
Another metric includes measuring average luminous intensity absolute differences from several sets of regions within the frame. Referring to
At 606, the computing device may assign a quality score for each frame from the set of frames. As an example, the quality score for each frame may be based at least upon the number of pixels in the frame between the symbols, the sharpness score, and the maximum of the average luminous intensity absolute difference for the sets of regions within the frame. As described above, each metric may be weighted, and the quality score may be a weighted sum of the weighted metrics. Adjusting the weight given to each metric may change the quality score assigned to a particular frame.
At 608, the computing device may select a frame from the set of frames that has a higher quality score than other frames from the set of frames. As an example, the frame selected may meet the quality condition described above, by meeting one or more the metrics. However, rather than filtering out frames that do not meet these metrics, the frame having the highest quality score from all frames captured may be selected. As an example, all weights given to metrics other than the sharpness metric may be set to zero. As a result, the selected frame may have a higher sharpness score than other frames from the set of frames. As another example, the selected frame may have a higher sum of sharpness score plus resolution score than other frames from the set of frames.
Embodiments can be realized in any memory resource for use by or in connection with a processing resource. A “processing resource” is an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain instructions and data from computer-readable media and execute the instructions contained therein. A “memory resource” may be at least one machine-readable storage medium. The term “non-transitory” is used only to clarify that the term media, as used herein, does not encompass a signal. Thus, the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
Although the flow diagram of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.