Identification symbol

Abstract: The present invention is a symbol 10 that includes a square array 12 of data cells 14 surrounded by a border (16) of orientation and timing data cells. The border (16) can be surrounded by an external data field (18) also including information data cells (20). The orientation and timing for sampling each data cell can be determined from the border (16) or from additional orientation and timing cells in the internal data field (12) or external data field (18). A system (40) and (42) is also included that captures an image of the symbol, determines symbol orientation, decodes the contents of the symbol and outputs the decoded contents to a display or other device. The present invention also includes a device 48 that can produce symbols on a substrate such as a label.

Description: This application is directed to an identification symbol which can be used on items to be identified and, more particularly, to a symbol that includes an orientation border Conventional identification symbols include circular or polar symbols and bar code symbols. Bar code symbols consist of various width bars arranged in a linear orientation. To determine the meaning of a bar code symbol, the symbol must be scanned in a direction substantially parallel with the linear arrangement of the bars. That is, the bar code symbols have a preferred scanning direction and the scanning device must be positioned to scan in the preferred direction. Because the symbol must be properly oriented for scanning, the symbol must be pre-oriented by the symbol identification system user or the scanning apparatus must be capable of scanning in many different directions. Many bar code scanning systems for bar codes on packages and other objects require a quiet zone (a zone of no data lines) in front of the bar code and behind the bar code in the preferred scanning direction. The quiet zone is designed to define an area in which no printing on the package is allowed because printing within the quite zone will render the bar code unreadable. The exterior of the quiet zone constitutes a printing boundary and, on some packages, is defined by a line that can run all the way around the bar code. This line carries or imprints no timing or orientation information and is merely used to define the printing boundary of the symbol. The boundary line is not part of the symbol. The circular identification symbols also suffer from the scanning orientation problem and must be scanned in one direction although the symbol can be in any orientation. Because of the need to scan the conventional symbols in a preferred direction and because many items that include such symbols are randomly oriented when they arrive at a symbol reader, and need has arisen for a symbol that contains high data density and which can be oriented in any direction and still be cost effectively machine readable. GB 2218240 describes a symbol with a pair of sides which are used to determine the size of the symbol. In accordance with the present invention there is provided an identification symbol comprising an internal data field comprising a matrix of data cells and an orientation border having a continuous optical contrast and a width of a known number of data cells; characterised in that the orientation border surrounds the internal data field. The present invention provides a symbol that can be detected in many and in some cases any orientation without reorientation of the image data, and which does not require a preferred direction of scanning. The present invention can also provide a symbol that increases information density. In a preferred example the symbol includes a rectilinear array of data cells surrounded by other data cells forming one or more orientation borders. There may be provided apparatus comprising image capture means adapted to obtain image data from a symbol according to the invention, the apparatus further comprising decoding means adapted to process the image data to identify the border, determine orientation and timing information from the border, sample the data cells and determine additional information from the external data field. Typically the system captures an image of the symbol, determines symbol orientation, decodes the contents of the symbol and outputs the decoded contents to a display or other device. Examples of the present invention will now be described with reference to the accompanying drawings, in which:- Fig. 1 illustrates a symbol 10 in accordance with the present invention; Fig. 2 illustrates a rotated symbol 10; Fig. 3 illustrates a symbol 10 with three-dimensional yaw, pitch and roll orientation; Fig. 4 illustrates the components of a system capable of capturing and decoding a symbol 10 or printing encoded symbols in accordance with the present invention; Fig. 5 is a flowchart of the processing performed to decode a symbol in accordance with the second aspect of the present invention; Fig. 6-8 and 9A-9H illustrates additional timing data cells provided by a symbol 10; Figs. 10 and 11 illustrate additional orientation data cells; Fig. 12 illustrates gray-scale or color scale data cells; Fig. 13 illustrates a human-readable symbol 10; Figs. 14-16 depict variations on the symbol 10; Figs. 17-19 show dispersed symbols 10; and Figs. 20 and 21 illustrate holographic symbols 10 and image capture means for reading the symbols according to the invention. A symbol 10 in accordance with the present invention includes a rectilinear data field 12 with internal data cells 14 arranged in a matrix, as illustrated in Fig. 1. A matrix 14 of 7 x 7 data cells using one cell as a parity bit will allow 2 48 different symbols 10. The symbol 10 of Fig. 1 has an internal data field of 64 bits and an external data field of 96 bits allowing 2 95 different symbols. The symbol 10, as can be seen, can have internal and external data fields of a size (N/X/N) which is flexible enough to accommodate any desired number of different and unique symbols. The internal data field 12 is surrounded by a an orientation and/or timing data cell border 16 which is used for timing and symbol orientation. The border is typically toned from "on" data cells where an "on" cell can be a light reflecting or light absorbing spot depending on the application. Surrounding the border 16 is an external data field 18 that includes external data cells 20 which provide additional information on orientation, timing or symbol identification. Surrounding the border 16 or the external data field 18 is a quiet zone equivalent to one or more concentric rectilinear rings of "off" data cells surrounding the outermost pattern of "on" cells. The required number of concentric rectilinear rings of the quiet zone is effected by the environmental factors of symbol usage. The external data field 18 can act as a quiet zone or can be surrounded by a further quiet zone. It is possible for the symbol 10 to be as small as is optically readable and as large as desired. The symbol 10 is formed on a substrate such as a sticker or label. The symbol can also be etched, engraved in an object or imaged in a film substrate. The rectangular border 16 of the symbol can provide useful information which is independent of the information in the symbol itself. The border can be used to calculate the size or equivalently the timing sequence for sampling the data cells, if the number of cells per side of the symbol are known in accordance with the following equations: HCL = (X2-X1)/NHC HC = (X2-X1)/HR * NHC VCL = (Y3-Y1)/NVC VC = (Y3-Y1)/VR * NVC where, HCL is horizontal cell length, HC is horizontal correction factor, VCL is vertical cell length, VC is vertical correction factor, and where, when the symbol is tilted as shown in Figure 2, X1, Y1 are the coordinates of the lowest X value 28; X3, Y3 are the coordinates of the lowest Y value 26; X2, Y2 equal the coordinates of the highest Y value; X4, Y4 equals the coordinates of the highest X value 30; NHC equals the number of horizontal cells; HR is the horizontal remainder; NVC is the number of vertical cells and VR is the vertical remainder. If the number of data cells per side is not known, the width or thickness of the border 10 can be determined by counting image pixels. If the width of the border 16 in data cells is known, the size of each data cell can be determined by dividing the pixel width by the data cell width. Once the data cell size is known, the data cells can be properly sampled using the border 16 as a timing or sample separation reference. The orientation of the symbol 10 with respect to a reference system can be determined using known graphics techniques when the location of three corners are known. Knowing the orientation of the symbol 10 provides the orientation of the object to which the symbol 10 is attached. Alternately, using standard slope formulas, the border 16 can provide information defining the rotation or orientation of a symbol 10 in a plane parallel to the image capture plane using the following equation: S12 = (Y2-Y1)/(X2-X1) , where S12 is the slope relative to a reference axis. The value of S12 can be verified using the following equations: S23 = (Y3-Y2)/(X3-X2) S12 = 1/S23 where S23 is the slope of a border line perpendicular to S12. Because of the rectangular nature of the symbol border 16, well known rotational decomposition algorithms common in the graphics industry can also be used to determine the three- dimensional orientation of the symbol, as illustrated in Fig. 3, where the angles Ax, Ay and Az define the three-dimensional orientation (yaw, pitch and roll) of the symbol 10. With the origin defined by horizontal coordinates H o , V o the three dimensional orientation of each portion of the symbol can be defined by the angle it forms with respect to reference axes in accordance with the following equations: H = X cos Ax + y Cos Ay + z COS Az + Ho V = X Sin Ax + Y sin Ay + z sin Az = Vo Using these formulas along with the slope formulas previously discussed it is possible to determine the location of any data cell in the image. Additional information concerning rotational decomposition can be found in "Graphing Quadric Surfaces" by G. Haroney, Byte Magazine, Dec. 1986, page 217 and "3D Graphics Applications of IATX 86/20," Intel Application Note, Intel Solutions Magazine, July/Aug 1982 incorporated by reference herein. The symbol illustrated in Fig. 3 must be of a known size to allow the known triangulation algorithms to properly operate. When a symbol 10 of a known size is imaged, the distance to the symbol 10 can also be determined by comparing the width of the largest border 16 with the width or length of a reference border or the largest data cell with a reference data cell. The size ratio along with the known optical dimensions of lenses, etc. in the imaging system can be used in standard optical geometry algorithms to determine the symbol distance. Fig. 4 illustrates the components of a system capable of detecting and decoding the symbols 10 of the present invention as well as producing symbols on an appropriate substrate such as adhesive labels. An image capture device 40 is used to capture the symbol image and provide it preferably to a microcomputer 42 such as an IBM AT, another suitable computer or a single chip microcomputer which finds the symbol 10 in the image and decodes it. The microcomputer 42 can output the decoded identification to a display device 44 or to other devices 46 such as a robot control system or an inventory tracking system. The microcomputer 42 can also be used to produce unique encoded symbols as described in U.S. Application 013,026 (filed 10 Feb 87) (US-A-4972475) and print those symbols using a printer 48 such as a laser jet printer using a standard graphics package or software available from Cauzin Systems Incorporated of Waterbury, Connecticut. For example, each unique product code for items in an inventory can be converted into a bit stream of 47 bits. A parity bit is then added to provide a symbol self check feature. Assuming that all data and orientation cell sizes are known, for each bit with a "one" value a data cell can be created in a symbol image in the computer memory. Each byte in the computer memory can represent one pixel at the resolution of the printer and a group of pixels can be defined as a single data cell. The bit values can be used to set all the pixels in the data cell to the same value on the grey scale of a laser jet printer. The computer reads out the contents of the image memory and sends it to the printer which would print each symbol on a different adhesive label, drive a laser etcher creating a symbol in a metal substrate or drive an ink jet printer to fill in appropriate data cells. The imaging device 40 can be a two-dimensional symbol reader as described in US Patent Application No 124274 filed 23 Nov 1987 (US-A-5136145). The image capture device 40 can also be a standard video camera or any other imaging device with sufficient resolution to discern the individual data cells in the symbol 10. The microcomputer 42 in most cases will be capturing and decoding the symbol 10 in real-time. It is preferred that the device 40 provide the image in a two-dimensional form with each pixel of the image represented by a bit in an appropriately sized memory. If an image capture device using a video camera is used an appropriate camera is an NEC TI50-ES available from NEC and a suitable frame grabber interface is DT-2803 available from Data Translation. If a line scan image capture device is used, the line image would have to be assembled in the memory of the computer before symbol recognition processing starts. The data provided by the interface can be enhanced and have noise removed by standard image processing techniques such as a three-by-three bit convolution, or other convolution methods such as the La Placian, Sobel, Prewit and high-pass/low-pass filtering techniques. When the image plane and the symbol plane are in parallel and, as a result, the image captured is two-dimensional, a decoding algorithm as illustrated in Fig. 5 will determine the location of the edges and corners, and output the data represented by the symbol. First the image is searched 62 along a center horizontal axis for a symbol edge. If an edge is not found 64 the process stops. If a valid edge is found 66, the process searches 68 for the three corners of the symbol until valid corners are found 70. Once the corners are located, the timing sequence for sampling the value of each data cell can be determined 72. Once the timing sequence is defined the data cells are polled 74 to create the symbol bit stream which is checked for parity 76 and output or translated 78 into a desired format symbol identification code. Source code which performs the above discussed operations based on an image produced by the camera and frame grabber previously discussed is attached as an Appendix. Other more sophisticated image recognition techniques can also be used to determine the symbol identification directly from the captured image. For symbol processing in which the timing used to poll the data cell areas is not part of the internal data structure and is calculated from the corner coordinates and/or from the number of cells per side or width, a symbol as illustrated in Fig. 1 is used. For symbol processing in which essential timing information is not known prior to processing or in which the image is captured in such a way as to be asymmetrical, as depicted in Fig. 3, a symbol as illustrated in Fig. 6 is preferably used, in which the border 16 includes an outermost definition border of all on cells combined with an internal timing data cell border of alternating ON and OFF timing cells 90. The timing sequence for sampling the internal data field cell contents is provided by the reference cells 90 no matter the orientation of the symbol 10. Fig. 7 illustrates a symbol 10 with timing data cells 100 external to the border 16. Timing cells of this type can also be used as additional orientation data cells to help determine the three-dimensional orientation of the symbol. In image capture situations in which there are multiple rectangular shapes within the region of interest a border of several concentric rectilinear data cell rings can be provided as illustrated in Fig. 8. This symbol 10 includes an inner border 16 and an outer border 92 and has numerous applications such as it can be used to provide not only the timing sequence for data cell sampling but can supply additional confirmation of symbol orientation or represent other specific information. Figs. 9A-9H illustrate symbols which can provide additional timing or symbolic information. The data cell bar 102 of Fig. provides timing information for scanning from left to right and a mirror image of 9A will provide right to left timing. Fig. 9B provides timing and orientation information for scanning from top to bottom using bar 104, while it's mirror image will provide bottom to top timing. The two sided border 106 of Fig. 9C provides timing and orientation information both vertically and horizontally. Fig. 9D can be used in a system in which the direction the symbol enters the image field is needed. The provision of the unequally spaced bars 108 and 110 allows the direction in which the symbol moves into the image field to be determined by comparing the relationship of the bars in one image frame with the relationship of the bars in a second image frame. The u-shaped data cell line 112 in Fig. 9E allows timing to be determined from three different directions, while Fig. 9F allows determination of direction of travel along with timing information from the line 114. Fig. 9G also allows orientation to be determined by the provision of the unequal width border side 116. Fig. 9H allows scanning in any direction as well as orientation determination using a variable width additional timing border 118. Fig. 10 illustrates another symbol 10 in which orientation can be quickly determined by external orientation cells 120. Once the border is located the computer 42 need only sample data cells 20 in the external data field 18 exterior and adjacent to the border until the orientation cells 120 are found. Fig. 11 illustrates other forms of the external orientation cells 120 which can be used. It is also possible to determine orientation of a symbol 10 if the internal data field 12 for a particular application has a unique internal data cell pattern for each symbol 10 used in the application. To determine orientation once the data cell values in the internal field 12 are known, the data from the sampled symbol would be compared to all the possible identification symbols in the particular application in each of their possible orientations. A match would identify the symbol and the orientation. Fig. 12 represents a symbol 10 in which the data cells are represented as gray shades on a gray scale or using colors on a color scale ranging from ultraviolet to infrared. The use of a gray scale or a color scale in the symbol 10 will allow stacking of data within the symbol 10, thereby further increasing information density. For example the particular color or gray scale level of a data cell may represent a note in a song while the position of the cell in the symbol represents the sequence in which the note is played. Fig. 13 provides a symbol 10 which is not only readable by machine using magnetic ink character recognition as well as optical recognition, but can also be read by a human without additional decoding or interpretation information. Such a symbol can include not only alphabetic and numeric information but Morse code and other well known information formats. Fig. 14 illustrates a symbol 10 that can be read by a vision system as described herein as well as a bar code reader. This symbol 10 can substitute for a bar code symbol. The symbol 10 represents the varying width columns with vertical regions 124 and 126 where the number of adjacent data cells with the same value vary. The width variations can be made as fine as an image pixel width by defining each data cell as single pixel. Fig. 15 represents a symbol which can function as two adjacent or stacked column codes 130 and 132. Fig. 16 illustrates a symbol in which the data represented is semi-symmetrical (bidirectional) which will facilitate the decoding process. Fig. 17 illustrates how a single symbol can be dispersed within a plane of a substrate 136 or substrates. For example, the symbol can be dispersed on different adjacent parts which allows correct automated assembly to be checked by matching the image symbol to a reference symbol representing correct assembly. Multiple symbols rather than segments of a single symbol can also be used for such automated assembly checking and even for security identification purposes. Figs. 18 and 19 illustrate symbols dispersed on different planes of an object or objects. Once again multiple complete symbols can be used for the alignment task. Fig. 20 illustrates a camera 136 which has a controllable depth of field and focus capability for imaging a film hologram 138 in which symbol images 140-152 are reproduced at varying depths within the holographic image. Fig 21 illustrates how these images 140-152 could be offset within the image produced by the holographic imaging system. It is also possible to combine the symbols of the present invention with other symbols such as the bar code symbol, circular symbol, magnetically encoded characters and optically-human readable characters. The symbol as described herein is described as being rectilinear, however, it is possible for a symbol with a border to be any polygonal shape, such as a triangle, octagon or parallogram depending on the need.

Claims: An identification symbol comprising an internal data field (12) comprising a matrix of data cells and an orientation border (16) having a continuous optical contrast and a width of a known number of said data cells; characterised in that the orientation border (16) surrounds the internal data field. A symbol according to claim 1, wherein the orientation border is formed from "ON" data cells. A symbol according to claim 2 or 3, further comprising a timing line having a continuous optical contrast adjacent said border. A symbol as recited in claim 3, wherein said timing line is on two sides of said border. A symbol as recited in claim 4, wherein said timing line is a different distance from the border on each side. A symbol as recited in claim 3, wherein said timing line is on three sides of said border. A symbol as recited in claim 6, wherein said timing line is a different distance from the border on each side. A symbol as recited in claim 3, wherein said timing line surrounds said border. A symbol as recited in claim 8, wherein said timing line is a different distance from the border on each side. A symbol according to any of the preceding claims, further comprising a timing cell of alternating ON and OFF timing cells in said internal data field. A symbol according to any of the preceding claims further comprising a timing cell of alternating ON and OFF timing cells outside said border. A symbol according to any of the preceding claims further comprising an orientation cell (120) outside said border, said orientation cell being arranged with respect to said border such that when the orientation cell is located, the orientation of the symbol can be determined. A symbol according to any of the preceding claims wherein said data cells are encoded using a gray scale. A symbol according to any of the preceding claims wherein said data cells are encoded using color. A symbol according to any of the preceding claims further comprising an external data field outside the orientation border providing further information. A symbol according to claim 15, wherein the external data field (18) comprises data cells (20) which provide additional information on orientation, timing or symbol identification. A symbol according to claim 15 or 16, wherein the external data field (18) comprises a quiet zone of "OFF" data cells. A symbol according to any of the preceding claims wherein said symbol is formed on a substrate.

Inventors: HOOPER DAVID CHRISTOPHER, SANT ANSELMO CARL, SANT ANSELMO ROBERT, HOOPER, DAVID CHRISTOPHER, SANT'ANSELMO, CARL, SANT'ANSELMO, ROBERT
Applicants: VERITEC INC, VERITEC INCORPORATED
Application year: 1990
Main classification: G06K19
IPC codes: G06K19, G06K7