The invention refers to a method of detecting the presence of at least two figures in a space wherein the figures have a first portion having a continuous circular shape and a second portion surrounding the first portion having a multitude of radial line segments. The invention refers further to a method of managing stocks of components like KanBan stocks.
An application of the invention is in the field of a barcodable localization system. The system uses a digital camera or other imaging device to read multiple markers attached to the environment. The result of the recognition of markers can be used for many applications. Another application is to monitor Kanban stocks for the control and management of the enterprise resources. When integrated with enterprise resource planning (ERP) software in factories or warehouses, a just-in-time process can be established without human intervention.
The traditional technique to identifying an object is to use a barcode reader to read a 1-D or 2-D barcode attached to the object. The barcodes are configured in such a way that it requires either a person aiming the barcode reader at the barcode label, or a person or a machine bringing the product to a stationary barcode reader. A conventional barcode reader typically reads one barcode at a time and the distance between the reader and the barcode label generally cannot be more than 10 to 15 cm. With a two-dimensional imaging device such as a camera, it is possible to recognize multiple barcodes at random orientation simultaneously. This multiple barcode reading technique was described in the U.S. patent disclosure No. 20020084330, entitled “Method and Apparatus for Reading a Bar Code” by Chiu which is incorporated herein by reference. However, due to the configuration of the linear barcode, the maximum number of barcodes that can be read in one image is limited. For example, a UPC-A barcode encodes a 12-digit number where each digit is represented by a 7-bit word. With start, stop and guard patterns, a UPC code needs a total of 95 bits. As described in the U.S. patent disclosure No. 20020084330, it is possible to read the barcode with only two pixels in the image to scan across the narrowest element in the space/bar pattern. In other words, one needs at least 190 pixels along the “bin axis” to read an UPC code. The “bin axis” is the direction where data is encoded. With the requirement of quiet zones on both sides, a barcode needs to occupy at least about 200 pixels in the image to be recognized. If one assumes that the other direction (i.e., the orthogonal direction to the bin axis, called “bar axis”) needs ¼ of the length of the barcode, or 50 pixels, then a maximum of 27 (a 3 by 9 array) properly oriented barcodes can be read by an imaging system with a 640 by 480 pixel resolution.
Conventional two-dimensional barcodes are configured to utilize the 2-D space better, thus the pattern is more compact. Typically a 2-D barcode includes a unique and large pattern so that its location and orientation can be computed. The small “data-dots” around the “localization pattern” are then read. For example, the Maxicode uses a bull eye pattern at the center for localization. U.S. Pat. Nos. 5,637,849 and 6,088,482 discuss methods to read 2-D barcodes such as the Maxicode. However, due to the small and high density of the “data-dots” of the 2-D barcodes, only a few 2-D barcodes can be read in one image. Therefore, like 1-D barcodes, the reading operation of the 2-D barcodes is also “serialized”.
Another method to identify an object is to use the radio-frequency tags, or RFIDs. The reading distance of radio frequency tags can be one to two meters. However, reading of multiple tags at the same time is difficult. Therefore the RFID is also a serialized system.
In many situations, it is desirable to identify multiple objects at a distance and without actually moving the objects. One application is the Kanban stock management, used in almost all factory production nowadays. The basic Kanban concept is that when the number of components for an assembly is below a threshold, it triggers the internal production, or external acquisition of that component. There are established process and devices (e.g., “Kanban bins”) in the factory to facilitate this acquisition mechanism. However, currently there is no effective way to automatically monitor the Kanban stocks without human intervention. The process usually involves the scanning of a Kanban card with a barcode reader by a worker.
From the Just-in-Time production concept, it is desirable to count automatically the number of the components that are stored in the production storage shelves. This problem becomes important when the component is expensive and it is acquired from an outside supplier. To implement Just-in-Time, the factory wants to maintain as minimal stocks as possible without requiring the worker to enter the component data (using a barcode reader e.g.) every time the component is removed or restocked. One current solution is to install an Internet webcam looking at the storage shelves and have the supplier monitoring the stocks remotely. However, this solution has several disadvantages. First it opens up the factory communication network and production activity information to an outsider. Second, in some countries, it is not possible to install surveillance cameras on the factory floor due to the privacy concern. Third, the factory is tied somehow to one specific supplier. In case the factory wants to switch to another supplier, the necessary changeover procedures such as network security could be tedious.
The present invention is based on concepts disclosed in U.S. patent disclosure No. 20020067855, entitled “Method and Arrangement for Camera Calibration” by Chiu et al. This document describes a Sunshiny pattern that contains two sub-patterns. In the center is a black circular disk. Around the central disk are multiple bands, or rings, of bar/space elements disposed in the circle, concentric with the central disk. The data are encoded in the varying widths of the bars or spaces in the circular bands. This width-encoding method can be any barcode symbology used in conventional 1-D barcodes except the start and stop pattern is different in the Sunshiny pattern design. This prior art also describes the use of the Sunshiny pattern to perform automatic camera calibration and the calibration of a large room by viewing multiple coded Sunshiny patterns.
It is accordingly an object of the invention to provide a method of detecting the presence of figures and methods of managing a stock of components which overcomes the above-mentioned disadvantages of the prior art methods of this general type, in which multiple markers are read using an imaging system.
With the foregoing and other objects in view there is provided, in accordance with the invention, a method of detecting a presence of at least two figures in a space. The figures contain a first portion having a continuous circular shape and a second portion surrounding the first portion. The second portion has a multitude of radial line segments. The method includes recording a digitized image of the space, extracting edge points of the digitized image, performing a Hough Transform on the edge points of the digitized image to obtain a Hough Transform plane, detecting at least two vote peaks in the Hough Transform plane, associating each one of the at least two vote peaks to a corresponding elliptic continuous shape, obtaining an intensity profile of the digitized image along an elliptic path defined by the corresponding elliptic continuous shape, and decoding digital information provided by contrast edges determined in the intensity profile.
It is another object of the present invention to configure several spatially compact markers so that a reading algorithm can be developed to detect and decode multiple markers from an imaging system located at a large distance from the markers.
It is another object of the present invention to develop a processing algorithm to reliably detect the marker in the clustered background, to determine the marker type, to decode the data embedded in the marker, and to extract geometric parameters associated with the spatial relation between the marker and the camera.
It is another object of the present invention to dispose different types of markers and the location of the marker reader so that a “barcodable localization system” that combines the functions of barcode reading and marker localization can be used for many applications.
It is another object of the present invention to use a flexible hardware with integrated wired or wireless communication function for easy deployment of the marker reader.
It is another object of the present invention to arrange different types of markers and the location of the marker reader to continuously monitor the Kanban stocks in the factory to reduce the inventory of factory.
It is another object of the present invention to construct an optical local positioning system using multiple markers and marker reader for the tracking and localization of pallets in the warehouse.
It is another object of the present invention to use the markers and the marker reader to perform the security monitoring of valuable or important objects over a large area.
It is another object of the present invention to use the markers and the marker reader to track and measure the motion of moving persons or moving objects.
It is another object of the present invention to use the markers and the marker reader to perform the photogrammetry function and construct a 3-D model of an existing structure.
It is another object of the present invention to use the markers and the marker reader to enable self-checkout of products without individually scanning of the products in retail stores.
The method of reading multiple coded markers according to the invention uses an imaging system located at a large distance from the markers. The marker is configured so that with one single image, many markers can be detected and decoded simultaneously in a clustered environment. The detection algorithm uses a Generalized Hough Transform that accumulates votes from radial edges of the marker pattern. The markers and the marker reader constitute a barcodable localization system that combines the functions of a barcode reader and marker localization system. Using different arrangements, the system can be used to monitor continuously the Kanban stocks in factory, to track the locations of pallets in a large warehouse, construct a 3-D model of an existing structure, and many other applications.
By choosing appropriate parameters for the Sunshiny pattern, the present invention enables the reading a large number of barcodable markers at a distance and thus opens up many new applications.
Other features which are considered as characteristic for the invention are set forth in the appended claims.
Although the invention is illustrated and described herein as embodied in a method of detecting the presence of figures and methods of managing a stock of components, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims.
The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.
Referring now to the figures of the drawing in detail and first, particularly, to
The present invention uses the same modified Hough Transform, as described in U.S. patent disclosure No. 20020067855, to detect the Sunshiny patterns. It should be noticed that even though the central black circular disk becomes an ellipse in a digitized image, the modified Hough Transform described in the present embodiment does not use the Hough Transform to detect the ellipse. Rather, the Hough Transform is applied to the radial edges of the Sunshiny pattern and only the central location of the Sunshiny pattern, which is also the intersection of all radial lines, is determined. Therefore only a two-dimensional Hough Transform plane is needed. Since the design of the Sunshiny pattern is that the center where all radial lines intersect is also the center of the ellipse, therefore the center determined by the Hough Transform must fall inside the ellipse. The algorithm then verifies if there is indeed an ellipse there and subsequently determines the ellipse parameters using the edge points of the ellipse (see steps 204 and 205 in
For Sunshiny types R1_D0 and R2_D0, since there is no encoded data, the data rings are formed of alternating and equally spaced black and white elements. In the preferred embodiment, there are 16 space/bar elements in the first ring, i.e. 8 space elements and 8 bar elements, and 32 space/bar elements in the second ring, i.e. 16 space elements and 16 bar elements, as shown in
Like R1_D0, type R1_D2 is a small pattern and encodes only 2 numeric digits. It is used also when the space is tight.
The ratio of the circles of Sunshiny patterns is selected in such a way so that the local density of the black and white elements is roughly equal over the entire pattern. There are a maximum of five radii, depending on the types. In the order of from the center outward, the five radii are:
radius of the black disk;
inner radius of the first data ring (or the outer radius of the white ring);
outer radius of the first data ring;
outer radius of the second data ring; and
outer radius of the third data ring.
In the preferred embodiment, the radius ratio of the five radii is 1:1.45:2.45:3.45:4.45. However, for Sunshiny. types RL_D0 and R1_D2, because there is only one data ring with radial lines, the number of edge points that contributes to the Hough transform peaks are limited. In this case the radii ratio for these two types can be adjusted to be 0.8:1.2:1.45. Therefore as shown in
The barcode encodes data using varying widths of the bar/space elements. Therefore the length of the barcode is proportional to the number of the numeric digits to be encoded. For Sunshiny patterns, the bar/space pattern is along the perimeter of the circular data rings. In order to maintain the same black and white density over the entire pattern, the encoded numeric digits on each data ring is proportional to the perimeters of the data rings. Since the radii of the central lines of the data “bands” have a ratio of roughly 2:3:4 (more precisely: 1.95:2.95:3.95) for the first, second, and third data rings 151, 152, and 153, therefore in the preferred embodiments, 2, 4, and 6 digits are encoded in the first, second and third data rings of R3_D12. For R2_D4, no data is on the first data ring, and only 4 digits are encoded on the second data ring.
The first data ring of R2_D4 is used for the encoding of the “start line” 140 of the data, similar to the start or stop pattern in the linear barcode. Unlike linear barcode that can be read from either direction, the space/bar patterns on the data rings of the Sunshiny pattern are read only in the clockwise direction. However, a starting point of the space/bar pattern must be decided first. For R2_D4, the “start line” 140 is defined at the counterclockwise edge 130 of the widest bar element 120 on the first data ring, as shown in
To encode the data, the present invention in a preferred example chooses the “Interleaved 2 of 5” barcode for all Sunshiny types. The barcode has the highest information density in term of characters per inch. It encodes only numeric characters. Each character is represented by five elements, two wide and three narrow. It is called a “two-level” code because only two widths are used. The element pattern of the first character is interleaved with the element pattern of the second character. Therefore it earns the name of “Interleaved 2 of 5”. For example, the ASCII characters 7 and 1 are represented as patterns 00011 and 10001 respectively, where 0 is a narrow element and 1 is a wide element. Therefore number 71 is represented as 0100001011. The underlined bits belong to character 7. These bits are all colored black (or bar elements) while the bits of the second character are colored white, or are space elements. Because of this interleaving, there is no inter-character element between characters, but the code must have an even number of characters. The ratio of the widths of the wide and narrow elements is arbitrary. In the preferred embodiment, this ratio is selected to be 2.5:1.If the width of the narrow element is represented as w, then each character has a width of 8w and the complete circle has a total width of 32w.
Therefore the narrow element has an angular span of 11.25° and the wide element 28.125°.
Based on the above description, one can read the binary pattern on the second data ring in
0110001001 1000001101.
By separating the interleaved bits, the patterns for the first and second character pattern are 01010 and 10001. The third and fourth characters are 10010 and 00011. This is the number 9187.
Another variation of type R2_D4 is to add a checksum character to ensure the integrity of the data. This extra character and the “start line” element are encoded in the first data ring as shown in
(start_line_element)0u0v0x0y0z0
where uvxyz is the bit pattern for the checksum character. If the checksum character is not needed, then this design can be used to encode 5 digits, or becomes “R2_D5” in case 5 numbers is preferred over 4 numbers.
For Type R3_D12, as shown in
For R3_D12, the encoding order of the data are that the first two characters are in the first data ring, the next four characters in the second data rings, and the last six characters in the third data rings.
For R1_D2, as shown in
It is obvious that many other types of Sunshiny patterns can be designed. For example, it is straightforward to design a R4_D20 Sunshiny marker by adding a fourth data ring encoding an additional 8 numeric digits, thus bringing the total encoded characters to be 20. For alphanumeric data, other linear barcode symbology can be used. For example, Code 39 is also a two-level code and thus the design of Sunshiny pattern using Code 39 is straightforward.
It is now described how the Sunshiny patterns are read.
Referring to
Step 201 performs two 3×3 Sobel operations in the x- and y-direction to extract the x-gradient and y-gradient of the image. Then the gradient magnitude is computed. Those points whose gradient magnitude exceeds a threshold are identified. These points are the “strong edge points” of the image.
Step 202 uses the same Generalized Hough Transform (GHT) for Radial Line Segments (RLS), as described in U.S. patent disclosure No. 20020067855, to locate each of the Sunshiny patterns. The Radial Line Segments correspond to the radial lines 110 of the Sunshiny patterns, shown in
As mentioned in U.S. patent disclosure No. 20020067855, this Generalized Hough Transform method also works quite well for a Sunshiny pattern that is oriented at an oblique angle as large as 45-60 degrees. In this case, the radial segments 110 in
Step 203 uses an iterative procedure to find all potential peaks in the GHT plane. The peaks are called “GHT peaks” to indicate that the peak refers to the maximum vote in the GHT plane. First, the absolute maximum of the vote Vmax in the GHT plane is located. The quality of the GHT peak is computed. If the vote intensity and the quality of the peak both exceed the certain thresholds, then the peak is determined to correspond to the first potential Sunshiny pattern. Otherwise, the image has no Sunshiny present. There are many ways to define the quality of the peak. In the preferred embodiment the quality is defined as the ratio of the peak vote and the average vote around the peak excluding the peak core region. In other words, the average region is a larger square area with a size of Do by Do pixels excluding a smaller square area with a size of Di by Di pixels. Both Di and Do depend on Ri and Ro.
A minimum threshold vote Vthres is then defined as a percentage of the absolute maximum vote Vmax. The votes in the excluding square region around the first peak are then set to zero. Step 203 then repeats the peak finding process by locating the next absolute maximum of the modified vote image. If the next vote maximum exceeds the minimum threshold Vthres and the quality also exceeds a quality threshold, the peak is considered as a potential Sunshiny and the process repeats. Otherwise the process stops. By this method any local maxima in the Hough Transform plane are determined.
The algorithm then processes each peak one at a time. Step 204 verifies if there is a black ellipse at or near the GHT peak location. The Sunshiny pattern, which is circular if viewed normally, becomes an elliptic shape if there is a large angle between the optical axis of the camera and the normal to the Sunshiny plane. Therefore the verification step 204 checks if the central black disk is an ellipse, where a circle is a special case. First, an image intensity threshold Ithres is computed based on the local region around the peak. In the preferred embodiment, Ithres=Imin*2/3+Imax/3, where Imin and Imax are the local minimum and maximum image intensity. Then, step 204 checks if image intensity at the GHT peak is less than Ithres. If not, the peak is not located inside a black disk and the process goes to the next GHT peak. If yes, the algorithm tries to find the edge points of the black ellipse as follows. From the peak location, the image intensity along the lines of sixteen directions, equally spaced in 360°, is compared with the intensity threshold Ithres. This directional checking continues until it reaches a pixel whose image intensity exceeds the intensity threshold Ithres. This point is then an edge point of the black ellipse. If no pixel with intensity larger than Ithres is found after checking Ro pixels from the peak location, or if the pixel hits the image border first, then the peak is not considered as a valid Sunshiny and the process goes to the next peak. Ro is a radius larger than the radius of the entire Sunshiny, thus if this GHT peak corresponds to a Sunshiny, the intensity checking from the peak location must reach a bright pixels in a distance shorter than Ro pixels because there is a white ring around the central black disk. Thus at the end of step 204, sixteen edge points around the peak location are obtained.
Step 205 then fits the 16 edge points with an ellipse equation. The fitting must be precise because the Sunshiny pattern and the algorithm are configured to read the pattern even with a viewing angle of 45-60 degrees. One well-known direct ellipse fitting method is described in the reference by Pilu et al., entitled “Ellipse-specific Direct Least-Square Fitting”, IEEE International Conference on Image Processing, Lausanne, September 1996. Available also at http://vision.dai.ed.ac.uk/ElliFitDemo/demo.html. This fitting algorithm is robust and numerically stable. To make sure that the edge points do correspond to an ellipse, an Error of Fit (EOF), based on the geometric distance between the fitted ellipse and the edge points, is computed. If the EOF is greater than a threshold, the GHT peak is not a Sunshiny and the process goes to the next peak. Otherwise, each qualified peak now has a more precise ellipse center that corresponds to the location of the Sunshiny pattern. The orientation of the ellipse with respect to the x-axis, and the major and minor radii of the ellipse are also extracted. As shown in
Step 206 extracts the image intensity profile along an elliptic path that passes through the first data ring. This is shown in
It is very important that the sampling of the intensity profile of data rings all starts from the same angle, which normally is the major axis and the sampling runs clockwise in the example. The total number of the sampling points is also the same for all data rings so that the angular correspondence between different data rings can be established.
In case the sampling path of the first data ring hits the image border, the GHT peak is counted as one Sunshiny pattern and a special code such as “data-ring-touches-border” is stored for this peak. This information can be used for some applications. In this case, no further processing is performed for this peak and the process goes to the next GHT peak.
Due to many noise factors, the ideal major and minor radii of the elliptic path computed based on the ideal fixed radii ratio between various rings may not pass through the actual data rings of the image. Therefore, the algorithm tries several intensity samplings along elliptic paths for the same data ring. These samplings usually use elliptic paths that are a few pixels larger or smaller than the ideal path while keeping the ratio of the major and minor radii the same. This multiple-profile sampling applies to all data rings until a valid Sunshiny barcode is decoded. If the decoding fails for all intensity profiles tried, then a “decoding-fails” code is stored for this GHT peak.
The 1-D intensity profile obtained now represents the bar/space pattern of each of the data rings of the Sunshiny pattern. Step 207 then extracts the location of the high contrast edges of the first data ring. These edges correspond to the transition from the bar element to the space element or vice versa. This 1-D intensity profile is similar to that obtained from the scanning of the conventional linear barcode with two differences. First, the intensity profile is sampled in angular coordinate; therefore the profile is a wrap-around function. Second, there is no quiet zone in the 1-D profile. To extract the bar/space edges, this 1-D profile is duplicated once to make a function that is two times as long as the original. Then the high contrast edge extraction method used in Step 160 of
From the design of the Sunshiny, we know that the numbers of bar/space elements of the first data ring are 16, 12, 16, 14, 12, 12 for type RL_D0, R1_D2, R2_D0, R2_D4, R3_D12, and R2_D5, respectively. Therefore if the number of run-widths is equal to 16, 14, or 12, the process goes to step 207, 208, or 209, respectively. The processing for R1_D0 and R2_D0 is the same since these Sunshiny patterns are meant for counting only. Step 209 differentiates the R3_D12, R1_D2 and R2_D5 types by using the statistics of the run-widths of the first data ring. The first data ring of R3_D12 has four elements with width 2.5w and eight elements with width w. The first data ring of R1_D2 has one long element with width 5w, 7 elements with width w and 4 elements with width 2.5w. The first data ring of R2_D5 has one long element with width 5w, 9 elements with width w and 2 elements with width 2.5w. The width w can be computed by averaging the run-widths of the lowest half of the runs since all data rings have at least half of the runs with a width of w. Based on the run-width checking of step 209, the processing then goes to step 210, 211 or 212.
When the number of run-widths of the first data ring is not 16, 14 or 12, then the peak is not a valid Sunshiny pattern, as shown in 213 and the process goes to the next GHT peak. There are two cases this can happen. The first case is that a “Radiation warning symbol” just happens in the image. See http://www.orau.com/ptp/articlesstories/radwarnsymbstory.htm. The radiation-warning symbol is essentially a one-ring Sunshiny pattern with 6 equally spaced alternating magenta and yellow color elements. The second case that this can happen is when an object blocks the first data ring of the Sunshiny pattern.
For type R2_D4, step 303 finds the “start line” element in the first data ring by finding the run with the largest run-width. The angular position of the “start line” is then computed at the counterclockwise edge of the “start line” run. Step 303 also checks if the width of the “start line” run (width 3w) is at least two times the width of the remaining run-widths and the remaining run-widths have roughly the same run-widths (step 301). Then step 304 extracts the 1-D intensity profile of the 2nd data ring and computes the corresponding run-widths. From the start line computed in step 303, step 305 obtains the ordered list of bit pattern using the run-widths of the 2nd data ring. If the run-width is less than a width threshold, a bit of 0 is assigned. Otherwise a bit 1 is assigned. To compute the width threshold, the run-widths are sorted in ascending order and then an average the first half of the sorted run-widths is computed. This average is roughly equal to w described in previous section since the number of narrow elements exceeds half of the runs in all data rings that encodes the data. The width threshold is then equal to a number, such as 1.75, multiplies by this average width. Step 306 then decodes the 4 numeric digits using the symbology of the Interleaved 2 of 5 bar code. If decoding is successful, a valid type B Sunshiny is assigned to this GHT peak. Note that the angular position of the “start line” 440, as indicated in
For type R3_D12, step 308 extracts the 1-D intensity profile of the 3rd data ring and computes the run-widths. Step 309 then finds the longest run which is the “start line” run. The angular position of the “start line” is then recorded and the bit pattern of the data on the 3rd data ring starts from the second runs after the “start line” run. This code-start line is indicated at the “code line” 170 in
For type R2_D5, or the checksum version of R2_D4, step 320 locates the “start line” from the longest run in the first data ring. The bit pattern are then extracted starting from the second run after the “start line” run. Step 321 then decodes the single digit by using half of the bit pattern since the other bit pattern is a dummy 00000 pattern. Step 322 proceeds to decode the 4 digits from the 2nd data ring, similar to the processing for R2_D4. Step 323 then checks if the checksum of the 4 digits from the 2nd data ring is consistent with the single digit from the 1st data ring. If it is, a valid type B is assigned 324. Otherwise, the process goes to the next peak directly.
During the intensity profile sampling of the data ring 2 or 3, if the elliptic path hits the image border, as before, a special code “data-ring-touches-border” is stored for the corresponding GHT peak.
In summary, for each Sunshiny pattern recognized, the reader stores the x- and y-position of the Sunshiny pattern, and the major and minor radii of the ellipse. The ratio of the major radius and minor radius determines the tilt angle between the normal direction of the plane of the Sunshiny pattern and the optical axis of the camera. For Sunshiny types that encode the data, two additional data are extracted. One is the encoded number; the other is the angle of the “start line” (450 in
Now it is described how the Sunshiny reader with communication function operates.
A personal computer or personal digital assistant (PDA) equipped with a USB connected camera and the Sunshiny reading software as described above can become a Sunshiny reader. However, in many applications that will be discussed later, the Sunshiny reader needs to be installed at locations such as a ceiling or a mobile platform. In these cases, a compact device with integrated communication function would be more deployable. One preferred embodiment of the present invention is shown in
Now we describe an application of continuous Kanban stock monitoring.
As mentioned earlier, one application of the Sunshiny system is for the Kanban stock management. Besides the traditional 2-card and 1-card Kanban, most factories have adapted three variants of Kanban: 1) floor grid Kanban, 2) container-based Kanban, and 3) shelf-space Kanban. The present invention describes arrangements and systems for the continuously monitoring of these Kanban stocks without human intervention or any change to the existing production processes.
Floor grid Kanban typically is used for bulky or heavy components that normally are placed collectively in one area on the shop floor. These components usually are expensive and therefore only a small number of components are kept in the factory. Therefore it is feasible to attach a Sunshiny pattern encoded with a unique ID on the top of each component. A Sunshiny reader is then mounted on the ceiling and looks directly down to monitor the entire Kanban area continuously. Any removal or replenishment of the stock can be detected immediately and the information be fed into the enterprise resource planning (ERP) system. When the stock is below a threshold, a requisition order can be generated automatically and emailed to the supplier via the GSM network. Since the Sunshiny reader is also connected to the Internet, a user can access the stock status via the wireless cellular phone anywhere anytime.
Referring to
In some factories, it is desirable to associate a process state (or other information) to the Kanban stocks without manually inputting the information into the database (or ERP system). An example is that some components are meant for repair and some for regular production. In this case, another type of the Sunshiny pattern can be used for this process labeling. Referring to
As can be seen from the previous explanation, we use three types of Sunshiny patterns for different functions, taking advantages of the power of the sunshiny reader that provides more information than just the coded data. One can imagine that the users will develop many different usages of these patterns in the real applications.
For Kanban stocks that are inexpensive (e.g. computer keyboards), or small items like screws and nuts (“jellybean” items), it is impractical to attach coded Sunshiny to each component individually. Usually these components are either stored in a specially configured container or stacked on the shelf space. For these stocks, we use a “reverse identification” technique to monitor them. In this method, we label the “background” with Sunshiny patterns instead of labeling the components. We call this kind of Sunshiny a “reverse Sunshiny” marking. When a component is present, it blocks the view of the background Sunshiny, therefore prevents the detection of the particular pattern. On the other hand, if the component is removed, then the background Sunshiny is exposed and detected by the reader. Because the component is identified by the reverse Sunshiny in the background, the factory needs to enforce the rule that the same type of containers or stocks is loaded to the same location. Therefore it is useful to use a visual color code so that workers can easily follow the rule.
In the case of the container-based Kanban, containers 701 themselves are stored in a buffer shelf 700, as shown in
Depending on the factory requirement, the container buffer shelf 700 can be monitored by a Sunshiny reader 705 mounted on the ceiling from the OUT side 707 of the shelf or a Sunshiny reader 704 from the IN side 706 of the shelf, or both. The system can count how many reverse Sunshiny patterns with the same code are present or how many are not, and then it can derive the status of the containers. For a shelf with a buffer size greater than two, it is impossible for the camera to see the containers (and reverse Sunshiny) in between. Thus this type of buffer shelf cannot be monitored. In this situation where a large stock size of the same container is needed, the solution is to use multiple rows for containers that hold the same components.
Finally, the shelf-space Kanban is explained. Referring to
To assign an ID number to different type of component in different compartment, the same “barcodable space-partition” Sunshiny markers shown in
There are two issues related to this solution. First, due to the perspective of the camera, either the shelf racks or the top surface of the components can block some reverse Sunshiny patterns on the back panel. To suppress the perspective effect, a telephoto lens (or a telecentric lens) can be used. Depending on the size and depth of the shelf, the error introduced can be compensated (systematic error) so that the effective error is acceptable. The second concern is the position of the camera. To minimize the perspective effect, the camera should be installed at a height the same as the middle height of the shelf. However, at this position, the camera will interfere with the activity of the workers. One solution is to have the Sunshiny reader 805 view the shelf 800 via a small non-planar, stainless steel mirror 804, as shown in
Another embodiment to estimate the status of the shelf-space Kanban is to compare the intensity difference between the components and a constant background. Referring to
If the undersides 905 of the real shelf racks are painted black, then what the Sunshiny reader 907 sees are the virtual black undersides 906 and the back surfaces 910 of the virtual components 903. Through the mirror image, the top surface 909 of the components, which confuses the evaluation of the vacant space, is no longer visible. When the back surface 910 of the components has a luminance that is sufficiently different from the blackness of the undersides 905, then the area occupied by the components can be computed by a simple thresholding of the image intensity. With proper correction for the perspective transformation of the imaging system and knowing the size of the components, the number of the components in the compartments can be estimated. When the components have a black color, the shelf undersides 905 can be painted white. The same “barcodable space-partition marker” shown in
The advantage of the method described in
To prevent the components from falling through the back side of the shelf, a wire mesh can be installed on the back. Sine the wire is thin, it will not affect the computation of the empty space. The dust accumulated on the mirror also does not affect the result.
A third embodiment for the shelf-space Kanban is to use depth information. This solution eliminates the use of the mirror completely. Instead, the status of the shelf-based Kanban is estimated using light-stripe illumination. Referring to
In summary, by judicious placement of the Sunshiny patterns and the Sunshiny readers, various type of Kanban stocks can be monitored continuously without human intervention and without any change to the existing production processes. When the real-time monitoring data is tied into the ERP system, not only can the inventory be minimized, the quality of the supplier can also be evaluated constantly. The Kanban stocks can also be consigned goods from the suppliers so that the factory only gets billed when the Kanban stocks leave the Kanban area, thus further frees up the working capital. By completing the whole loop with no human gap, the entire process can be constantly optimized and fine-tuned, from the supplier to the finished product, even to the servicing chain. The return of investment can be very short.
We now described the application of an optical local positioning system for pallet localization.
Referring to
The Sunshiny markers offers a very inexpensive solution by setting up a so-called “Optical Local Positioning System” (OLPS) which is in contrast to the Radio-based Global Positioning System, in the warehouse. The concept is to use the Sunshiny patterns like the navigation stars. Many coded Sunshiny patterns 1010 are placed on the ceiling of the warehouse and an upward-looking Sunshiny reader 1000 is installed on the lifting arm of each lift truck. The reader is installed on the lifting arm because the 3-D location of the pallet is associated with the lift arm, not the truck. The Sunshiny patterns 1010 are placed at regular spacing so that no matter where the truck moves in the warehouse, at least 2 to 3 patterns are within the line of sight of the truck-mounted reader. By knowing the locations of all coded Sunshiny (which are determined during an initial calibration procedure), the location of every lift truck, or more precisely the location of the lifting arm or the pallet, can be computed using triangulation. Since all Sunshiny patterns are uniquely coded, there is no confusion on which one is in the field of view.
To know the location of the individual pallet, we assume that there is some kind of conventional 1-D barcode on the pallet. On each lift truck, we install another image based 1-D barcode reader looking forward. The conventional barcode reader can locate and read any 1-D barcode within the field of view without aligning the reader with the barcode label. The invention described in U.S. patent disclosure No. 20020084330 can perform this function exactly. When the truck starts the attach procedure to lift the pallet, the ID on the pallet is read by the forward-looking barcode reader. When the truck moves to a new location and as soon as the detach procedure starts, the upward-looking Sunshiny reader determines the 3-D location of the lift arm. This way the new location of the pallet is associated with the pallet ID. The information is then sent to a database via the wireless link. The worker does not need to know anything about the OLPS while all pallets are tracked automatically.
The OPLS system described above can be used for many indoor navigation applications. The Sunshiny patterns can be posted on walls, ceiling, etc. Because the reader can recognize patterns even when the viewing angle is large, the chance that multiple Sunshiny patterns are recognized in one image is greatly improved. This OPLS can be installed inside the nursery home or private residence for elderly or handicapped persons on the motorized wheel chair. It can also be used in the factory for automated guided vehicles. In the case of hospitals, the OPLS can be used to track the location of mobile medical equipment, which are lost frequently.
We now describe a security monitoring application.
The Sunshiny pattern can be attached to any valuable or important object and monitored by the Sunshiny reader for various security purposes. For example, US military has stockpiles of chemical and gas munitions in many army depots. It is important to make sure that these items do not fall into the hands of the terrorists. The same is true for weapon-grade radiation material. Because the Sunshiny system can monitor multiple labeled objects spread over a large area, it can be a low-cost solution to this kind of security monitoring applications. The same image view is recorded consecutively from the same position of the camera. A dislocation or rotation of a pattern is detected, when consecutive images are compared to each other. Furthermore the Sunshiny reader can detect a small change of the rotation of the Sunshiny pattern, any tampering with the pattern can be detected immediately.
In some applications where privacy is an issue, the monitoring system can be configured to provide only textual data without any knowledge or recording about the scene.
We now describe a motion tracking and measurement application.
There are many motion tracking and measurement systems currently in the market. They are used to analyze the motion of an athlete for training or a person for 3-D animation of characters in the movies. These systems use a video camera to track the motion of many LEDs attached to the suit worn by the person. The technique is reliable except when the motion is too complicated so that the trace of a LED messes up with that of other LEDs. If the LEDs are replaced by coded Sunshiny patterns, not only there is no need to supply the power to Sunshiny patterns, there will be no confusion about the correspondence of every Sunshiny pattern. The system also provides measurement data on the tilt angle and the in-plane rotation of the patterns. These extra data may be useful for the applications since it measures local movement of the body.
For example, first and second images are captured and recorded at consecutive time instances. The images represent the space at consecutive time instances. In each of the recorded images the Sunshiny patterns are detected and each Sunshiny pattern of the first image is associated with a corresponding Sunshiny pattern in the second image. This matching is enabled by detecting the barcode in the outer rings of the pattern. When two Sunshiny patterns in consecutive images are dislocated from each other, it is determined that a movement has taken place during the time between the two recording time instances. A movement in-between is obtained by interpolation.
The Sunshiny-based motion tracking and measurement system is especially good for applications where the region to be measured is large. Consider an imaginary case where one would like to measure the speed and vortices of the water flow of a river. Small floats with coded Sunshiny patterns can be released from the river upstream and their motions recorded by a video camera. By analyzing the consecutively recorded images frame by frame with the Sunshiny reading algorithm, a complete picture of the water movement in the river can be easily obtained.
We now describe a photogrammetry and 3-D CAD system application.
Photogrammetry is a measuring technique that allows modeling a 3-D space using images taken from an existing structure, such as a house or a power plant. By creating a 3-D model of an existing structure, modifications to the structure can be visualized, studied or simulated in the computer before the construction actually begins.
There are many measurement techniques developed for photogrammetry. One of the methods uses passive markers posted at many locations of the structure. Images are then taken from various directions using a digital camera. Because of the complexity of the scene, the markers need to be configured properly so that the software can detect them. Furthermore each maker should have a unique ID so that the software can identify the same 3-D points that may appear in multiple images. Some prior art, for example U.S. Pat. No. 6,246,412 uses interactive input from a user to construct the 3-D model. The “barcodable landmark system” offered by the Sunshiny patterns and Sunshiny reader is ideally suited for this kind of applications because: 1) the reader can recognize Sunshiny markers in very complex environment, 2) every marker has a unique code so that correspondence of 3-D points from different images can be established automatically, 3) a wide field of view can be covered by an image, and 4) the reader can recognize Sunshiny markers oriented at a large oblique angle.
We now describe a self-service checkout in a retail store application.
Unfortunately the Sunshiny system was invented only recently. Consider the situation that if all goods in the retail stores are labeled with the Sunshiny patterns instead of UPS barcodes. In this case, self-service checkout stations can be installed in stores to speed up the checkout process. A customer only needs to place the goods on the conveyor for the Sunshiny readers to identify all goods instead of the need to have the customer bring the good one by one to a laser barcode scanner. Several Sunshiny readers mounted at different locations may be needed to make sure that the pattern is read by at least one reader.
Number | Date | Country | Kind |
---|---|---|---|
02 026 307.5 | Nov 2002 | DE | national |
This is a continuing application, under 35 U.S.C. § 120, of copending international application No. PCT/EP2003/012966, filed Nov. 19, 2003, which designated the United States; this application also claims the priority, under 35 U.S.C. § 119, of European patent application No. 02 026 307.5, filed Nov. 20, 2002; the prior applications are herewith incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP03/12966 | Nov 2003 | US |
Child | 11134105 | May 2005 | US |