ID~TIFICATION ~Y~BO~ 8T~ AND ~ETNOD
C~O ~-R FBRENCE8 ~O R~A~ED APP~ICATION~
This application i~ related to U.S.
Application Serial No. 013,026, filed February 10, 1987, entitled Authenticating Ps~udo-Random Code and Apparatus by ~arl Sant' Anselmo and U.S. Application entitled Symbol Reader by James L. Karney filed November 23, 1987, both incorporated by reference herein.
BAC~GRO~D OF ~E INV~NTION
Field_of the Invention This application is directed to an identification symbol which can be used on items to be îdentified and,:more particularly, to a 15 sym~ol that includes an orientation border and a method for recognizing and decoding the information represented hy the symbolO
. , ~ , :
Desari~tion o~ the Related Art 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 sym~ols have a pre~erred 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 ~e capabl~ of scanning in many different directions. Many bar code scanning systems for bar code~ on packages and other objects require a quiet zona (a zone of no data lines~ in front of the bar code and behind the bar code in the pre~erred scanning direction.
The qu.iet zon~ is designed to de~ine an area in which no printing on the packaye is allowed because printing within the quite zone will render the bar code unreadahle. 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 inform~tion and is merely used to define the printing boundary of the symbol. The boundary line i~ not part of the symbol. The circular identification symbols also suffer from , 2~
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, a 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.
8U~NARY OF ~E INVENTION
It is an object o~ the present invention to provide a ~ymbol that can be detected in any orientation without re-orientation of the image data.
It is another object of the present invention to provide a s~mbol that does not require a preferred direction of scanning.
It is an additional object of the present invention to provide a symbol that increases information density.
The above objects can be accomplished by a symbol that includes a rectilinear array of data cells surrounded by other data cells forming one or more orientation borders. A
system i~ also included that captures an image of the symbol, determine~ symbol orientation, decodes the contents o~ the s~mbol and outputs the decoded contents to a display or other device.
These together with other objects and advantages which will be subsequently apparent, reside in the details of construction and operation as more fully hereinafter described ,, ,~
:, and claimed, reference being had to the accompanying drawings forming a part hereof, wherein like numerals refer to like parts throughout.
BRIEF DE8CRIPTION QF THE DR~WINGS
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 thre2-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 present invention. ~``
Figs. 6-lOH illustrate additional timing data cells provided by a symbol 10;
Figs. 11 and 12 illustrate additional orientation data cells;
Fig. 13 illustrates gray-scale or color scale data cells;
Fig. 14 illustrates a human-readable symbol 10;
Figs. 15-17 dapict variations on the symbol 10;
Figs. 18-20 show dispersed symbols 10;
Figs. 20 and 21 illustrate holographic symbols 10; and Fig. 22 illustrates an offset arrangement of the symbols shown in Fig 21.
DESCRIP~ION OF ~E PREFERRED EMBODINENTS
- 5 ~
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. l. A matrix 14 of 7 x 7 data cells using one cell as a parity bit will allow 248 different symbols 10. The symbZol 10 of Fig. 1 has an internal data field of 64 bits and an external data field of 9Z5 bits allowinZ3 2ff different symbols. The symhol lO
as can be seen, can have internal and external data fields of a siZlleZ (N/X/N) which is flexible enough to accommodate any desired number of differeZnt and uniZ~ue symbols. The internal data fiel~ 12 is surrounded by a an oriZentation and/or timing data cell border 1Z6 which is used for timing and symbol orientation. The border i5 typically formed f rom "on" data cells where an "on" cell can be a light reflecting or light absorbing spot depending on the application~
Surrounding the border 16 can be an external data field 18 that includes external data cells 20 which provide addition information on oriPntation, timing or symbol identification.
Surrounding the border 16 or the eZxternal data field 18 is a quite 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 quite zone is effected by the environmental factors of symbol usage.
The external data field 18 can act as a Z~uiet zone or can be surrourlded by a further ~uiet zone. Is it possible for ths symbol 10 to be as small as is optically readable and as large as .::
. ~ , Z
: ..., - . :, , :: .. ..
-8~3 desired. The symbol 10 is formed on a substrate such as a sticker or label. The s~mbol 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 in~ormation in the symbol itself. The border can be used to calculate the size or equiva].enkly the timing sequence for sampling the data cells, if the number of cells per side o~ the symbol are known in aecordance with the ~ollowinq equations:
HCL = (X2-X1)/NHC (1) HC = (X2-Xl)/HR * NHC (2) VCL = (Y3-Yl)/NVC (3) VC = (~3-Y1)/VR * NVC (4) where X1, Yl are the coordinates of the lowest X
value 24; X2, Y2 are the coordinates of tha lowest Y value 26; X3, Y3 equals the coordinates of the highest Y value; X4, Y4 equals the coordinates of the hlghest X vaIue 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 tha 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 khe 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 sep~ration reference.
The orientation o~ the s~bol 10 with respect to a reference system can be deter~ined using known graphics techniques when the location of three corners are known. Knowing the orientation of the s~mbol 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 de~ining the rotation or ori~ntation of a symbol 10 in a plane parall~l to the image capture plane using the following equation:
S12 = ~Y2-Yl~/(X2-Xl) (5) , where S12 is the slope relative to a reference axis. The value of S12 can be verifi.ed using the followihg equations:
S23 - ~Y3-Y2)/(X3-X2) (6) S12 = 1/S23 t7) where S23 i5 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 us~d to determine the thrae- dimensional orientation of the symbol, as illustrated in Fig. 3, wherP the angles Ax, Ay and Az define the three dimensional orientation (yaw, pitch and roll) of the symbol 10. With ~he origin da~ined by horizontal coordinat~s H
. : .: . ,....... ~; ~
: : :: : ;
VO the three dimensional orientation of each por~ion of the symbol can be defined by the angle it forms with respect to reference axes in accordance with the ~ollowing equations:
H = X cos Ax + y Cos Ay ~ z COS Az ~ Ho (8) V = X Sin Ax + Y sin Ay + z sin A~ = Vo (9 Using these formulas along with the sIope formulas previously discussed it is possible to determine the location of any data cell in the 13 image. Additional inPormation concerning rotational decomposition can be found in I~Graphing Quadric Surface~" by G. Haroney, Byte Magazine, Dac. 1986, page 217 and "3D Graphics Applications of IATX 86/20t" Intel AppIication Note, Intel Solutions Magazine, July/Aug 1982 incorporated by reference herein. The symbol illustrated in Fig. 3 must be vf a known size to allow the known triangulation algorithms to properly operate.
When a symbol 10 of a known size is imaged, the distanc~ to the symbol 10 can also be determined by comparing the width of the largest ~order 16 with the width or length of a re~erence 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 ~ystem can be used in standard optical geometry algorithms to determine the symbol distance.
Fig. 4 illustrates the components of a system capable o~ dete~.ting and decoding the symbols 10 of the present invention as well as producing symbols on an appropriate substrate 8~
_ g 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 5 a single chip microcomputer which finds th~
sy~bol 10 in the image and decodes it. The m1crocomputer 42 can output th~ decoded identification to a display device 44 or to other devices 46 such as a robot control system lo or an inventory tracking system. The microcomputer 42 can also be used ~o produce unique encoded 5ymbols as described in U.S.
Application 013,026 and print those symbol~
using a printer 48 ~uch as a laser jet printer 15 using a standard graphi~s package or so~tware 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.
20 A party bit is then added ~o provide a symbol self check featur~. 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 ths computer memoryO Each 25 byte in the computer memory can represent one pixel ak the resolution of the printer and a group of pix~ls 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 30 grey scale of a laser jet printer. The computer ~eads out the ~ontents o~ the image memoxy and sends it to the printer which would print each s~nbol on a different adhesive label, drive a laser etcher creating a symbol in a metal . .... .
:.: ' . ; :
-- 10 ~
substrate or drive an ink jet printer to fill in appr.opriate data cells. .
The imaging capture 40 can be a two-dimensional symbol reader as described in the Karney application previously mentioned.
The image capture device 40 can also be a standard video camera or any other imaging device with suf*icient re~olution to discern the individual data cells in the 5ymbol 10. The microcomputer 42 in most cases will be capturing ~:
and decoding the symbol ~0 in real-time. It is preferred that the device 40 provide the image in a two-dimensional form with each pixel of th~
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 o~ the computer be~ore s~mbol recognition processing starts.
The data provided by the interface can be enhanced and have noise removed by starldard 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-p~ss ~iltering 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 Fiy. 5 will determine the location of the edges and corners, and ~utput - :
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 s~ops. If a valid edge is found 66, the process searches 68 for the three corners of the 5ymbOl 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 timin~
sequence is defined the data cells are polled 74 to craate 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 ~rame 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 îmage.
For symbol processing in which the timing used to poll th~ data cPll areas is not part of the internal data structure and is calculated from the corner ¢oordinates and/or from the number o~ 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 ~uch 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 :. .: ; , :
., i.: ;,. . . ; . : , .. :
~ 12 -border of alternating ON and OFF timin~ cells 90., The timing sequance ~or sampling the internal data field cell content~ is provided by the rsference 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 o~ 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 con~irmation of symbol orientation or represent other specific information.
In an nvironment in which the symbol is strictly aligned with the image plane of the imaging device 40, a symbol as illustrated in Fig. 9 can be provided. This symbol 10 provides a single border 16 on two sides 94 and 96 nearest to the scanning direction and which provides timing information. A key to all the border patterns discussed in this application i5 that the outermost border 16, not including the quiet zone, be smooth and on at least two sides of the data area. This type o~ border 16 leads to the fastest imaye proce~sing of the pixel data in an environment where the exact location :
~ 13 -of a symbol 10 is not known because the number of edges to be located is at a minimum and the edges àre contiguous~ In an environment where the exact location of the symbol is known in advance along with the symbol size and data density, the border can be completely eliminated which will produce the faste~t possible symbol decoding environment.
Figs. lOA-lOH illustrate symbols which can provide additional timing or symbolic information. The data cell bar 102 of Fig. lOA
provides timing informativn ~or scanning from left to right and a mirror image of lOA will provide right to left timing. Fig. lOB provides timing and orientation information for scanning from top to bottom using bar 10~, while it's mirror image will provide bottom to top timing.
The two sided border 106 of Fig. lOC provides timing and orientation information both vertically and horizontally. Fig. lOD can be used in a system in which the direction the sy~bol enters the image field is needed. The provision of the unequally spaced bars 108 and 110 allows the dir~ction in which the symbol moves into the image field to be determined by comparing the xelationship of the bars in one image frame with the relationship o~ the bars in a second image frame. The u-shaped data c~ll line 112 in Fig. lOE allows timing to be determined from three different directions, while Fig. lOF allows determination of direction of travel along with timing information from the line 114. Fig. lOG also allows orientation to be determined by the provision of tha unequal 200~8~B
widkh border side 116. Fig. 10H allows scanning in any direction as well as orientation determination using a variable width additional timing border 118.
Fig. 11 illustrates anothPr 5ymbol 10 in which orientation can be quickly determined by external orientation c~115 120. Once the border is locat~d the computer 42 ne d only sample data cells 20 in the external data ~ield 18 exterior and adjacent to the border until the orientation cells 120 are found. Fig. 12 illustra~es o~h~r forms of the external orientation cells 120 which can be us~d.
It is also pos~i~le to determin~
orientation o~ a symbol 10 if the internal data field 12 for a particular application has a unique internal data cell pattern for each symbol 10 us~d in tha 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 id~ntification sy~bols in the particular application in each of their possible orientations. A match would identify ths symbol and the orien~ation.
Fig. 13 represents a symbol 10 in which the data cells are represented as gray shades on a gray scale or usin~ colors on a color scale ranging from ultraviolet to infrared. The use of a gray scale or a color scale in the sy¢bol 10 will allow stacking o~
data within the symbol 10, ther~by further increasing information density. For ~xample the particular color or gray scale lev 1 of a data . . .
, .: . .. .. .
cell may represent a note in a song while the position of the cell in the symbol represents the s~quence in which the note i5 played.
Fig. 14 provide~ a symbol 10 which is not only readable by machine using magnetic ink character recognition as well as optical recogni~ion, but can also be read by a human without additional decoding or interpr tation information. Such a symbol can include not only alphabetic and numeric information but ~orse code and other well known information formats.
Fig. 15 illu~trates a symboI 10 that can be read by a vision system as described herein as well as a bar code reader. This symbol lO can substitute for a bar code symbol.
The symbol 10 represents the varying width col~mns with vertical regions 124 and 126 wh~re the number of adjacent data cells with the same valu~ vary. The width variations can be made as fine as an image pixel width by defining each data cell as single pix~l. Fig. 16 represents a symbol which can function as two adjacent or stacked column codes 130 and 132.
Fig. 17 illustrates a symbol in which the data repr~sented i5 semi-symmetrical (bi-directional) which will facilitate the decoding process r Fig. 18 illustrates how a single s~mbol can be dispersed within a plane of a substrate 136 or substrate~. For examplet the symbol can be dispersed on different adjacent parts which allows correct automated assembly to be checked by matchlng the image symbol to a re~erence symhol representing coxrect assembly.
. ;. . .
,.: , . ~ . . :.:
:: ; ' .~ ': :; ; : : ~
8~3 Multiple symbols rather than segmen~s of a single sym~ol can also be used for such automated assembly checking and even for security identification purposes. Figs. 19 and 20 illustrate symbols di~persed on different planes of an object or objectsO Once again multiple complete s~mbols can b~ used for the alignment task.
Fig. 21 illustrates a camera 136 which has a controllable depth of field and focus capability for imaging a ~ilm hologram 138 in which symbol images 140-152 are reproduced at varying depths within the holographic image.
Fig. 22 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 o~ the pres~nt invention with other s~mbols 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.
The many features and advantages of the invention are apparent from the detailed specification and, thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope thereof. Further, since numerous modifications and changPs will r~adily occur to those skilled in the art, it is ~ ...
::`': ~: ~' ;
- 17 ~
not desired to limit the invention to the exact con$truction and operation illustrated and described, and accordingly all suitable modification~ and equivalents may be resorted to, falling within the scope of the invention.
, .~. . .
''' ., ' "~ ' " ''' .' ' ' . ' , ,';' ~ ` " ;'i'', ' ~ ' ; '' ' '' ~ ' "