Machine-readable optical symbols for encoding data can be used to link users to content and services via a camera-equipped device. The device can image the symbol using the camera and derive data from the image, which can be used to invoke a service or provide content. Such symbols can be in the form of barcodes for example, which can be one dimensional linear barcodes or two dimensional matrix codes or symbologies. Symbols such as barcodes can be monochrome or color.
Symbols can be counterfeit and the data encoded by the symbol can be modified. In order to counter this, authentication of symbols can be effected using custom readers and custom protocols when communicating with authentication services.
Symbols can also be deployed onto media not specifically designed or otherwise suitable for the symbol, such that it is not sufficiently well displayed or such that it can be difficult to discriminate for a user or device. As such the reading experience can be frustrating for a user, and difficult for a manufacturer to monitor and control.
Various features and advantages of the present disclosure will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate, by way of example only, features of the present disclosure, and wherein:
There are a large variety of 1D and 2D symbologies. For example, matrix codes, which feature square or dot-shaped modules (or elements) arranged on a grid pattern. An exemplary matrix code is depicted in
According to an embodiment, the device 201 is brought into the proximity of the symbol 101 by a user, such that the imaging module 202 has the symbol within its field of view. Imaging module 202 can be implemented in the device using any conventional system, including for example providing a digital camera comprising a charge-coupled device (CCD) or complementary metal-oxide-semiconductor (CMOS) sensor arranged to generate image data representative of a scene or subject within its field of view. Accordingly, the device can generate image data representative of the symbol being imaged.
In order to determine payload data encoded by the symbol, the image data is processed in order that the disposition of markings/colors/tones from which the symbol is composed is decoded. The processing of the image data can proceed according to known techniques in order to extract the payload data encoded by the symbol. Such data typically takes the form of a string of characters which can define a Universal Resource Identifier (URI), but can also be raw data representing something else, such as image data or other textual content for example.
According to an embodiment the data-encoding symbol printed on the substrate or displayed on a display is used to generate data. More specifically, an image of the data-encoding symbol is captured using the imaging module of the device and symbol data is generated therefrom, which symbol data represents the image of the data-encoding symbol. Using the symbol data it is possible to determine a number of properties of the symbol, as well as the payload data encoded by the symbol itself.
For example, the symbol data can be used to generate a measure for at least one property of the symbol as deployed on the substrate or as displayed such as the coloration of the symbol for example. More specifically, symbol data can be processed in order to determine a measure of the colors and/or tones in the elements from which the symbol is composed. The measure can be used to compare the coloration etc of the symbol against a known optimal case (for example the same or a similar symbol printed on a certified substrate using a certified printing process or displayed on a certified and/or calibrated display device). The symbol-specific data can therefore be used to determine if the symbol has been deployed in a way which is consistent and genuine (e.g. that the symbol is not counterfeit or otherwise deployed on sub-standard media using a sub-par printing process).
As mentioned, symbols can be deployed on displays such as electronic displays. Such displays can have their own intrinsic problems. For example, some displays can suffer from flicker, or the display proper can be housed behind glass which can cause glare for example. Such properties of electronic displays can adversely affect the reading of a displayed symbol which can be recorded in the symbol data. More specifically, when the symbol is imaged, artifacts caused as a result of the display mechanism can mean that the payload data can be difficult to decode due to the fact that the individual elements from which the symbol is composed can be obscured or otherwise affected. This can result in a failure to image the symbol, or errors in the process of imaging or decoding the symbol. In order to record this, the symbol data can be used to store information representing any failures, difficulties or other parameters associated with the symbol displayed on an electronic display.
According to an embodiment, the symbol data can also be used to generate reading-specific data in the device for determining parameters associated with the capture of the image. Such data can be termed experience data, as it relates to the experience that a user has gone through in order to image the data-encoding symbol. For example, the experience data can be used to record information representing the time taken for the device to image the symbol (including for example focusing and recording data). For example, the time taken to image a symbol can be the elapsed time between i) ‘suspecting’ a symbol to be present (e.g. on the basis of detecting registration indicia belonging to the symbology); and ii) extracting the payload of that same symbol (judged by the continuity of the symbol shape in the image for example).
The experience data can also be used to record information representing the relative conditions under which the capture occurred. For example, by determining a difference in the contrast between background and foreground elements of the image of the symbol, it can be determined if the ambient lighting was sufficient to enable the symbol to be imaged with the degree of accuracy and clarity required in order to determine the payload data encoded by the symbol, that is to say, if the individual elements of the symbol could be discriminated sufficiently from each other and the background to decode
The experience data can be used to record to information representing the capture of an image which is displayed on an electronic display. For example, properties of a display (such as flicker associated with the display, or glare caused by the display being housed behind a transparent screen) can affect the reading experience by making it difficult to image a symbol, or otherwise increase the time taken to suspect, register and image the symbol in an effective way.
The reading-specific data can therefore provide a measure representative of the conditions under which the image data was generated by the imaging module of the device. The experience data can be used to determine factors that indicate how challenging the imaging conditions were. Such factors can be measured in a number of ways. For example, by: the number of bits whose errors were corrected in the process of determining the payload data from the image data of the data-encoding symbol and/or the sharpness of the image.
Information representing the experience data can be communicated in a number of ways. According to an embodiment, the information can be communicated using URI templates which are known in the art. For example, using templates which allow arbitrary URIs to contain variables that can be bound to values, such as those described at http:H/tool.ietf.org/html/draft-gregorio-uritemplate-03.
Two exemplary URI templates are:
http://www.example.com/mobilecodes/3927?a={authentication}&e={err orcount}&c={contrast}; and
sms:07744229?body=code=37377?a=={authentication}&e={errorcount}&c={contrast}
The device can parse the URIs to determine the symbol keywords such as authentication, errorcount and contrast etc, and substitute the corresponding particular values found at read-time into the template. The resultant URI is then dereferenced as normal to invoke the service, for example.
Such URI templates can also be used to communicate the symbol-specific data as well as the reading-specific data, and no new protocol is required in order to communicate the data compared to standard code readers. A device, such as a code reader, simply has to know which predefined slots to fill with symbol-property and experience data, but the rest is the same as when reading a code containing a (non-template) URI. The service transparently processes any experience data and can respond accordingly if authentication fails.
As well as providing reading-specific information from the symbol data and the device, according to an embodiment, authentication data representing a variation in the color or tone of the symbol compared to control data encoding color or tone information for a control symbol when printed onto the same substrate as that of the symbol in question, or displayed on the same or a similar display can be determined using the symbol data. The authentication data can be used to verify the authenticity of the data-encoding symbol as will be described below. Data used for authentication need not be in the symbol proper, but can be disposed around the periphery of the symbol. For example, colored or monochrome cells can be disposed on the outside of a matrix symbol in order to encode authentication data.
When a symbol is deployed onto a certified (that is to say a genuine, quality) substrate using printing processes which are also certified (such as for example using a digital printing press, rather than a consumer grade printer), or is displayed on a suitable display (for example a display which has been optimized for the display of data-encoding symbols, such that flicker, reflections and glare for example are minimized) the distribution of colors and/or tones in the elements or components from which the symbol is composed is optimal in the sense that the contrast between the symbol and its constituent elements and between the symbol and the substrate is such that the symbol can be optimally imaged using the imaging module of a device. This will result in the best possible image data from which to determine the payload data encoded by the symbol.
A symbol printed on a certified substrate using a certified printing process, or displayed on an optimized disaply can be used to obtain control data. The control data can comprise information relating to the colors and/or tones of the symbol, and more specifically its constituent elements (i.e. in the case of a 2D matrix barcode, the dots and spaces that go to make up the symbol proper and encode the data). The control data represents information which describes the optimal color and/or tone distribution for a given symbol when deployed onto a given substrate using a certified printing process, or when displayed using an optimized display device.
Referring to
As explained above, control data represents information which describes the optimal color and/or tone distribution for a given symbol when deployed onto a given genuine substrate using a certified printing process, or when displayed in an optimal way such as on an optimized display for example. Such control data can be stored in the device, or can be stored remotely so that it can be used when the image data has been generated and stored. Alternatively, the control data can be obtained from a remote storage location on-the-fly by the device as required.
At step 405 the authentication data is used to verify the authenticity of the data-encoding symbol. A comparison of the authentication data against control data for the same or a similar symbol gives a measure of the extent to which a variance occurs between the data-encoding symbol in question and one which has been deployed in an optimal fashion. If the measure is above a predefined threshold, the imaged symbol can be considered to be authentic. However, if the measure is at or below the threshold, the imaged symbol may be counterfeit.
At step 505 experience data is generated in the device. The experience data is used for determining parameters associated with the capture of the image, and is reading-specific data relating to information such as the time taken to capture a symbol, and/or the conditions under which the symbol was imaged for example.
It is to be understood that the above-referenced arrangements are illustrative of the application of the principles disclosed herein. It will be apparent to those of ordinary skill in the art that numerous modifications can be made without departing from the principles and concepts of this disclosure, as set forth in the claims below.