METHOD OF IDENTIFYING AN ITEM, WASTE SEPARATION AND ITEM COMPRISING A DOT CODE
20220371055 · 2022-11-24
Inventors
- Johannes Bernardus Kerver (Eindhoven, NL)
- Bjørn-Erik Johan Willem Pieter Hendrik van Dommelen (Twello, NL)
Cpc classification
G06V30/144
PHYSICS
G06K7/1456
PHYSICS
G06V10/145
PHYSICS
B07C2501/0054
PERFORMING OPERATIONS; TRANSPORTING
B07C5/3412
PERFORMING OPERATIONS; TRANSPORTING
G06K19/086
PHYSICS
International classification
B07C5/34
PERFORMING OPERATIONS; TRANSPORTING
G06K7/14
PHYSICS
Abstract
A method of identifying an item includes: capturing by a camera an image of the item, searching in the image a predefined dot start and end codes, determining in the image directions of the predefined dot start and end codes, interpolating in the image a reading line to extend from the predefined dot start code to the predefined dot end code, where a direction of the reading line at the predefined dot start code corresponds to the direction of the predefined dot start code, where the direction of the reading line at the predefined dot end code corresponds to the direction of the predefined dot end code, reading along the reading line the dots from the image, and deriving the identification code from the dots as read along the reading line between the predefined dot start code and the predefined dot end code.
Claims
1. A method of identifying an item, e.g. waste item, wherein the item comprises a dot code comprising plural dots, the dots of the dot code being spaced apart along a dot code line extending along a surface of the item and form a linearly extending string of dots on the dot code line, the dot code comprising a predefined dot start code defining a start of the dot code, a predefined dot end code defining an end of the dot code, and an identification dot code arranged between the predefined dot start code and the predefined dot end code, the predefined dot start code, the identification code and the predefined dot end code being arranged on the dot code line, the method comprising: capturing by a camera an image of the item, searching in the image the predefined dot start code, searching in the image the predefined dot end code, determining in the image a direction of the predefined dot start code, the direction of the predefined dot start code being an orientation of the predefined dot start code in the image, determining in the image a direction of the predefined dot end code, the direction of the predefined dot end code being an orientation of the predefined dot end code in the image, interpolating in the image a reading line to extend from the predefined dot start code to the predefined dot end code and connecting the predefined dot start code to the predefined dot end code, wherein a direction of the reading line at the predefined dot start code corresponds to the direction of the predefined dot start code, wherein the direction of the reading line at the predefined dot end code corresponds to the direction of the predefined dot end code, reading along the reading line the dots from the image, and deriving the identification code from the dots as read along the reading line between the predefined dot start code and the predefined dot end code.
2. The method according to claim 1, wherein the reading line is interpolated according to a Bezier curve.
3. The method according to claim 1, wherein the dot code comprises a centre marking arranged at a centre of the dot code between the predefined dot start code and the predefined dot end code, the method comprising searching in the image the centre marking and interpolating in the image the reading line to adhere to the centre marking.
4. The method according to claim 1, wherein the interpolating in the image the reading line comprises: interpolating in the image a curve to extend from the predefined dot start code to the predefined dot end code, wherein a direction of the curve at the predefined dot start code corresponds to the direction of the predefined dot start code, wherein the direction of the curve at the predefined dot end code corresponds to the direction of the predefined dot end code, interpolating a candidate reading line from at least three consecutive dots in the image; extrapolating the candidate reading line along the curve to an expected position of a following one of the dots; detecting in the image a position the following one of the dots; in case the detected position of the following one of the dots adheres to the expected position of the following one of the dots; and interpolating a following candidate reading line from the at least three consecutive dots and the following one of the dots.
5. The method according to claim 4, further comprising adjusting the curve according to the following candidate reading line.
6. The method according to claim 4, wherein in case a difference between the detected position of the following one of the dots and the expected position of the following one of the dots exceeds a predetermined position threshold: assigning the candidate reading line to a reading line part associated with the at least three consecutive dots in the image, and interpolating a following candidate reading line for at least three following ones of the dots in the image.
7. The method according to claim 1, wherein the method further comprises: determining Bezier points that define the Bezier curve, and deriving additional data from respective locations of the Bezier points.
8. The method according to claim 1, wherein the predefined dot end code and the predefined dot start code represent a same dot code, when read towards a centre of the linearly extending dot code.
9. The method according to claim 1, wherein the identification code is arranged in duplicate along the dot code line between the predefined dot start code and the predefined dot end code, wherein the duplicates are formed by a respective reading from the predefined dot start code to a centre of the linearly extending dot code and by a respective reading from the predefined dot end code to a centre of the linearly extending dot code.
10. The method according to claim 1, wherein each of the dots has a binary value, at least one of the binary values being represented by a predefined local deformation of the surface of the item.
11. The method according to claim 10, wherein the other one of the binary values is represented by no local deformation of the surface of the item.
12. The method according to claim 10, wherein the predefined dot start code starts with two dots having a value represented by the predefined local deformation.
13. The method according to claim 10, wherein the predefined local deformation is a protrusion.
14. The method according to claim 1, wherein each of the dots has a ternary value, at least two of the ternary values being represented by respective predefined local deformations of the surface of the item.
15. The method according to claim 14, wherein the third one of the ternary values is represented by no local deformation of the surface of the item.
16. The method according to claim 14, wherein the predefined dot start code starts with two dots having a value represented by the respective predefined local deformations.
17. The method according to claim 14, wherein one of the predefined local deformations is a protrusion and the other one of the predefined local deformations in an intrusion.
18. The method according to claim 1, wherein reading locations are arranged equidistantly along the reading lines, and wherein the dots are read along the reading line at the equidistant reading locations.
19. The method according to claim 1, wherein a plurality of the dot codes is provided on the item, the dot codes each provided in a different orientation along the surface of the item.
20. A method of waste separation comprising: identifying the item according to the method of claim 1, and separating the item in accordance with the identification.
21. An item comprising a dot code comprising plural dots, the dots of the dot code being spaced apart along a dot code line extending along a surface of the item and form a linearly extending string of dots on the dot code line, the dot code comprising a predefined dot start code defining a start of the dot code, a predefined dot end code defining an end of the dot code, and an identification dot code arranged between the predefined dot start code and the predefined dot end code, the predefined dot start code, the identification code and the predefined dot end code being arranged on the dot code line.
22.-34. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0060] Further features, advantages and effects of the invention will follow from the appended drawings and the below description wherein non limiting embodiments of the invention are described, wherein:
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
DETAILED DESCRIPTION OF THE INVENTION
[0068]
[0069] Reverting to the present example, the linear dot code comprises, when following the pattern of dots from left to right in the plane of drawing: a predefined dot start pattern STA, data dots D1, followed by a mirrored copy of the data dots D2, followed by a predefined dot end pattern STP. In the present example, the predefined dot end pattern forms a mirrored copy of the predefined dot start pattern, thus effectively the predefined start and stop patterns being the same. In the present example, the dot start pattern and the dot end pattern are each formed by 5 dots, i.e. 5 dots, while the identification code, i.e. the payload, i.e. the identification data, is formed by 7 dots. One or more additional dots may be arranged between data dots and the mirrored data dots to mark a centre point of the dot code pattern, so as to enable to retrieve the pair of data dots and mirrored data dots more reliably of more quickly from the image.
[0070] As follows from the present example, the predefined dot start code is 11010, in fact ddndn, whereby d stands for deformation, and n stands for no deformation. Alternatively, the dot code may be referred to as bbobo, whereby b stands for a bump and o stands for a flat part of the surface.
[0071]
[0072] When an image is captured it often occurs that a hard reflection of the light source is visible on the image. This hard reflection, after inversion, provides a black area in which many possible match points are found but which may not result in a correct watermark readout. To eliminate such hard reflections one may pre-process the image by applying a mask which is excluded from the readout which is equal to the n-times eroded image (erosion removes small spots from the image but leaves large areas relatively intact; these large areas which are left intact by the erosion process constitute the hard reflection. Small reflections which constitute the data point are removed by the erosion process. Using the result as a mask may provide that the area of the hard reflection is not processed).
[0073]
[0074] Additionally the dot code patterns comprise further dot sequences FDS1 and FDS2. The further dot sequences are arranged at respective angles in respect of the dot code patterns DP1 and DP2. In the present example, the further dot code sequences FDS1 and FDS2 are arranged at 30 degrees respectively 60 degrees in respect of the dot code pattern DP1, whereby the centres of all dot codes, i.e. DP1, DP2, FDS1 and FDS2 coincide, thus forming a star shaped pattern. Additional data such as manufacturer information and/or product information may be added. Furthermore, the star shape may be associated by consumers with a snow star, hence associating the package with low temperature. Thus, on a package of e.g. a cold drink, a consumer may not be obtruded by the presence of the marker, and even positively associate the snow start with cold drinks.
[0075] The further dot sequences FDS1 and FDS2 would not require a dot start code and a dot end code, as the dot start code and dot end code of the dot patterns DP1 and DP2 may initially be retrieved, while the further dot sequences are found at predetermined angles in respect of the dot patterns DP1 and DP2. As a result of the absence of a dot start pattern and dot end pattern in the further dot sequences, additional information may be decoded therein, e.g. in the present example 7+5 bits=12 bits per further dot sequence.
[0076]
[0077]
[0078] First, an image of the item is taken, e.g. by a camera. An example of a part of the image is depicted as (l). Then, in the image, the predefined dot start and dot end codes, e.g. in the present example 11010 are searched, and found at both ends of the pattern. Then, a reading line is interpolated from the predefined start code to the predefined dot end code. Embodiments of such interpolation are successively shown at (l) depicting an embodiment of a first order interpolation (m) depicting an embodiment of a second order interpolation, and (n) depicting an embodiment of a third order interpolation. It is noted that the first order interpolation may be performed taking account of two data points, e.g. in the present example the most centrally located dot of the predefined dot start code and the predefined dot end code. The first order interpolation may be able to be performed at low data processing requirements, however may be less accurate in predicting a position of the dots. As Shown at (l), the first order reading line may not be able to take into account the directions of the predefined dot start code and dot end code, hence may provide an inaccurate reading line, in particular in case the directions of the predefined dot start code and predefined dot end code differ from each other or if the predefined dot start code and predefined dot end code are not aligned relative to each other. Accordingly, as seen in
[0079] Hence, the interpolation of the Bezier-curve, first start at a straight line between an end of the start-dots and a start of the end-dots, next step is forming the Bezier-curve taking account of the orientation of the start codes and the orientation of the end dots. If the code is read along e.g. the x-axis, the dot code becomes readable.
[0080] Having interpolated the reading line, the dot codes may be read along the reading line. Thus, blank dots (non-deformed dots), such as various ones of the dots in the present example, may be retrieved, as the absence of a deformation along parts of the reading line may be interpreted as the presence of the blank dots.
[0081]
[0087] This process may take place until the first kink in the dot pattern is reached. Then, it is detected that a difference between the detected position of the following one of the dots and the expected position of the following one of the dots exceeds a predetermined position threshold.
[0088] In this case, the process proceeds by: [0089] assigning the candidate reading line to a reading line part associated with the at least three consecutive dots in the image, i.e. in the present case the dots at the led side of the kink, and [0090] interpolating a following candidate reading line for at least three following ones of the dots in the image, i.e. the three following dots at the right side of the kink.
[0091] The process may again start with a new interpolation at the following kink.
[0092] Thus, three reading line parts are obtained as a result of the interpolation. The reading line is now formed from the 3 reading line parts connected to each other. Then, the reading of the dots along the reading line may take place. It is noted that at (o), for illustrative purposes, the dots are depicted adjacent to the curve. A result of the reading is depicted at (p), top part of the image. The read pattern of dots is then aligned, see (p), bottom part, towards a straight line, following which the spacing of the dots is made equidistant, see (q), compare top part with an irregular distance between the dots, to the bottom part where to distance between the dots is set to a fixed value, i.e. the dots being aligned to a raster. The alignment may be particularly beneficial in the case where one of the dot values is represented by no deformation of the surface of the item, thus only one dot value resulting in a detection of a dot in the image. The other dots are then in fact derived by “reading” along the raster, the empty raster points as dots having the “non-deformed” value.
[0093] Thus, in case the interpolation cannot be done with a smooth Bezier-curve, there must be an edge in the dot code. Then interpolation is done on one or more parts of the dot code. The dot code is then again read along e.g. the x-axis and interpreted.
[0094]
[0095] This effect may be enhanced by applying two light sources illuminating the item from at least partly opposing directions and e.g. irradiating at a different wavelength range, e.g. at a different colour.
[0096]
[0097] The Bezier points may be defined as follows. The ends of the Bezier curve are defined by a first Bezier point 1 and a third Bezier point 3. A second Bezier point 2 defines a path of the Bezier curve from the first Bezier point to the third Bezier point. For example a data bit may be encoded in an angle ANG between a line from the first Bezier point 1 to the second Bezier point B and a line from the first Bezier point 1 to the third Bezier point 3. The angle may be in an (absolute) range between 0 degrees and 90 degrees. For example, a bit is assigned based on the determination if the angle is (in absolute terms)>45 degrees as depicted in
[0098]
[0099]
[0100] The following numbered clauses form part of the description:
[0101] 1. A method of identifying an item, e.g. waste item,
wherein the item comprises a dot code comprising plural dots, the dots of the dot code being spaced apart along a dot code line extending along a surface of the item, the dot code comprising a predefined dot start code defining a start of the dot code, a predefined dot end code defining an end of the dot code, and identification dot code arranged along the dot code line between the predefined dot start code and the predefined dot end code, the method comprising: [0102] capturing by a camera an image of the item, [0103] searching in the image the predefined dot start code, [0104] searching in the image the predefined dot end code, [0105] determining in the image a direction of the predefined dot start code, [0106] determining in the image a direction of the predefined dot end code, [0107] interpolating in the image a reading line to extend from the predefined dot start code to the predefined dot end code, wherein a direction of the reading line at the predefined dot start code corresponds to the direction of the predefined dot start code, wherein the direction of the reading line at the predefined dot end code corresponds to the direction of the predefined dot end code, [0108] reading along the reading line the dots from the image, and [0109] deriving the identification code from the dots as read along the reading line between the predefined dot start code and the predefined dot end code.
[0110] 2. The method according to clause 1, wherein the reading line is interpolated according to a Bezier curve.
[0111] 3. The method according to clause 1 or 2, wherein the dot code comprises a centre marking arranged at a centre of the dot code between the predefined dot start code and the predefined dot end code, the method comprising searching in the image the centre marking and interpolating in the image the reading line to adhere to the centre marking.
[0112] 4. The method according to any of the preceding clauses, wherein the interpolating in the image the reading line comprises:
interpolating in the image a curve to extend from the predefined dot start code to the predefined dot end code, wherein a direction of the curve at the predefined dot start code corresponds to the direction of the predefined dot start code, wherein the direction of the curve at the predefined dot end code corresponds to the direction of the predefined dot end code, [0113] interpolating a candidate reading line from at least three consecutive dots in the image; [0114] extrapolating the candidate reading line along the curve to an expected position of a following one of the dots; [0115] detecting in the image a position the following one of the dots; [0116] in case the detected position of the following one of the dots adheres to the expected position of the following one of the dots; [0117] interpolating a following candidate reading line from the at least three consecutive dots and the following one of the dots.
[0118] 5. The method according to clause 4, further comprising adjusting the curve according to the following candidate reading line.
[0119] 6 The method according to clause 4 or 5, wherein [0120] in case a difference between the detected position of the following one of the dots and the expected position of the following one of the dots exceeds a predetermined position threshold: [0121] assigning the candidate reading line to a reading line part associated with the at least three consecutive dots in the image, and [0122] interpolating a following candidate reading line for at least three following ones of the dots in the image.
[0123] 7. The method according to any of the preceding clauses, wherein the method further comprises:
determining Bezier points that define the Bezier curve, and
deriving additional data from respective locations of the Bezier points.
[0124] 8. The method according to any of the preceding clauses, wherein the predefined dot end code and the predefined dot start code represent a same dot code, when read towards a centre of the linearly extending dot code.
[0125] 9. The method according to any of the preceding clauses, wherein the identification code is arranged in duplicate along the dot code line between the predefined dot start code and the predefined dot end code, wherein the duplicates are formed by a respective reading from the predefined dot start code to a centre of the linearly extending dot code and by a respective reading from the predefined dot end code to a centre of the linearly extending dot code.
[0126] 10. The method according to any of the preceding clauses, wherein each of the dots has a binary value, at least one of the binary values being represented by a predefined local deformation of the surface of the item.
[0127] 11. The method according to clause 10, wherein the other one of the binary values is represented by no local deformation of the surface of the item.
[0128] 12. The method according to clause 10 or 11, wherein the predefined dot start code starts with two dots having a value represented by the predefined local deformation.
[0129] 13. The method according to any of clause 10-12, wherein the predefined local deformation is a protrusion.
[0130] 14. The method according to any of clauses 1-9, wherein each of the dots has a ternary value, at least two of the ternary values being represented by respective predefined local deformations of the surface of the item.
[0131] 15. The method according to clause 14, wherein the third one of the ternary values is represented by no local deformation of the surface of the item.
[0132] 16. The method according to clause 14 or 15, wherein the predefined dot start code starts with two dots having a value represented by the respective predefined local deformations.
[0133] 17. The method according to any of clauses 14-16, wherein one of the predefined local deformations is a protrusion and the other one of the predefined local deformations in an intrusion.
[0134] 18. The method according to any of the preceding clauses, wherein reading locations are arranged equidistantly along the reading lines, and wherein the dots are read along the reading line at the equidistant reading locations.
[0135] 19. The method according to any of the preceding clauses, wherein a plurality of the dot codes is provided on the item, the dot codes each provided in a different orientation along the surface of the item.
[0136] 20. Method of waste separation comprising: [0137] identifying the item according to the method of any of clauses 1-19, and [0138] separating the item in accordance with the identification.
[0139] 21. An item comprising a dot code comprising plural dots, the dots of the dot code being spaced apart along a dot code line extending along a surface of the item, the dot code comprising a predefined dot start code defining a start of the dot code, a predefined dot end code defining an end of the dot code, and an identification dot code arranged along the dot code line between the predefined dot start code and the predefined dot end code.
[0140] 22. The item according to clause 21 wherein the dot code line forms a Bezier curve.
[0141] 23. The item according to clause 22, wherein additional data is encoded in respective locations of Bezier points that define the Bezier curve.
[0142] 24. The item according to any of clauses 21-23, wherein the predefined dot end code and the predefined dot start code represent a same dot code, when read towards a centre of the linearly extending dot code.
[0143] 25. The item according to any of clauses 21-24, wherein the identification code is arranged in duplicate along the dot code line between the predefined dot start code and the predefined dot end code, wherein the duplicates extend from the predefined dot start code to a centre of the linearly extending dot code and from the predefined dot end code to a centre of the linearly extending dot code.
[0144] 26. The item according to any of clauses 21-25, wherein each of the dots has a binary value, at least one of the binary values being represented by a predefined local deformation of the surface of the item.
[0145] 27. The item according to clause 26, wherein the other one of the binary values is represented by no local deformation of the surface of the item.
[0146] 28. The item according to clause 26 or 27, wherein the predefined dot start code starts with two dots having a value represented by the predefined local deformation.
[0147] 29. The item according to any of clauses 26-28, wherein the predefined local deformation is a protrusion.
[0148] 30. The item according to any of clauses 21-25, wherein each of the dots has a ternary value, at least two of the ternary values being represented by respective predefined local deformations of the surface of the item.
[0149] 31. The item according to clause 30, wherein the third one of the ternary values is represented by no local deformation of the surface of the item.
[0150] 32. The item according to clause 30 or 31, wherein the predefined dot start code starts with two dots having a value represented by the respective predefined local deformations.
[0151] 33. The item according to any of clauses 30-32, wherein one of the predefined local deformations is a protrusion and the other one of the predefined local deformations in an intrusion.
[0152] 34. The item according to any of clauses 21-33, wherein a plurality of the dot codes is provided on the item, the dot codes each provided in a different orientation along the surface of the item.