This invention relates to coding information, and more particular to encoding and decoding the information such that the effect of motion blur is reduced when the information is acquired by a moving sensor.
Lane markings, such as white and yellow lines, guide a vehicle operator along roads. A lane marking recognition system typically uses a camera to acquire images of the markings, and provides feedback to the vehicle or operator to automatically maintain the vehicle in the marked lanes. The markings can also store information as described in the related application.
If the vehicle is moving, then the effect of motion blur is a problem because the image of the marking is integrated on the camera sensor over the time. In the images, motion blur appears as streaked or blurred lines along the direction of motion. If the images include encoded information, the blurring can cause the decoding to fail.
The embodiments of the invention provide a system and method for reducing the effects of motion blur on coded information in images acquired by a moving camera. More particularly, the information is stored as lane markings on a road surface, and the camera is mounted on a moving vehicle.
Symbols in the information are encoded as a codeword using a differential orthogonal code. The codeword is stored in a substrate. A moving sensor acquires an image of the codeword in the substrate and decodes the codeword using a balanced differential decoder. The codeword can be painted as lane markings on a road surface.
Information 101 is in the form of symbols 111. For example, a symbol is a “0” bit, or a “1” bit. Symbols can also be multilevel, for example, 00, 01, 10, and 11. Using codes 211, the symbols of the information 101 are encoded 110 as a codeword 120, and the codeword is stored in a substrate 121. In one embodiment, the substrate is a road surface, and the information is part of lane markings. For example, the information relates to geographical locations, traveling directions, or road conditions. The substrate can also be used with a road sign, an autonomous vehicle transport system, a traffic light, a conveyor belt, a robot, a train, or an unmanned aerial vehicles (UAV), etc.
An image 141 of the codeword 120 is acquired by a sensor 140 mounted on a vehicle. If the vehicle is moving, the image is subject to motion blur H(f) 130. Multiple images can be acquired as the vehicle travels along the road 121 to decode codewords at different locations.
The sensor can be a camera, an infrared camera, a magnetic sensor, and the like, depending on the way the information is stored, as described below.
In the case the sensor is a camera, the camera includes a shutter 145, which can be opened and closed repeatedly while the image is integrated on the camera sensor. It should be noted, that the sensors can be matched with the manner in which the information is stored in the substrate (visibly, infrared, magnetic, and the like).
A decoder extracts the information 110 from the codeword in the image 141 in the presence of the motion blur.
Differential Orthogonal Codes (DOC)
In one embodiment we use a differential orthogonal codes (DOCs) and a balanced differential decoder to reduce the effects of motion blur. The DOC is orthogonal even when subject to mutual interference between codes because orthogonal codes have zero cross-correlation. Example orthogonal codes include Walsh and Gold codes. Differential orthogonal codes have been used in wireless communication networks. However in communication networks, the differential code refers to differences between adjacent transmitted symbols.
We use the orthogonal codes to retrieve the information with a moving camera from painted patches on a road. The receive performs a subtraction operation, in combining various information collected from the painted patches, hence the use of “differential” in the name DOC. We use the same convention as in the communication networks and call the fundamental unit of information a symbol, i.e., one or more bits.
In one embodiment as shown in
To construct our DOC, we remove the first (all 1's) column 201 from the Hadamard matrix. Each remaining column is a code 211. To encode a “1” symbol for a particular code (column), we retain “1”, and set “−1” to zero in the matrix. To encoded a “0” symbol for a particular code, we retain “1” at locations “−1”, and set “0” at locations “1”. Thus, all matrix elements are non-negative, in contrast with the Hadamard matrix, which also includes negative elements.
This is a general characteristic of all embodiments of our codes in that the invention only deals with non-negative values. This is because the physical measurements of the encoded information are also non-negative. For example, pixels always have some positive or zero intensity. Pixels can never have a negative value for the intensity.
More important, when the intensity is measured at a photo-detector, any further observation cannot decrease the intensity. This is very different from observing electric field in typical wireless communications scenario, where further observation of negative electric field would decrease the overall observed value at a decoder.
For example, for the matrix H4, the column-wise codes are c1=[1 −1 1 −1]T, c2=[1 1 −1 −1]T, c3=[1 1 −1 −1]T, where T is transpose operator. To encode a “1” symbol for code c1, we use [1 0 1 0]T. To encode a “0” symbol for code c1, we use [0 1 0 1]T.
Each column in the matrix corresponds to one bit of information. The codes are mutually orthogonal because the information can be inferred in the presence of motion blur interference by codes in adjacent columns.
To decode the differential orthogonal codes subject to motion blur, we first can optionally deblur the image as described in U.S. Patent Application Publication 2007/0258706, “Method for deblurring images using optimized temporal coding patterns, filed by Raskar et al., on Nov. 8, 2007, incorporated herein by reference. However, that method does not consider the fact that the image includes coded information. Hence, in that method, the specific task of deblurring information is not addressed.
After the optional initial deblurring as described above, we detect marking that includes the encoded digital information using minimal spread thresholding and by corner detection, see Otsu, “A threshold selection method from gray-level histograms,” IEEE Trans. Sys., Man., Cyber. 9, pp. 62 −66, 1979, incorporated herein by reference.
The four corners of each lane marking are at maximum distances from the mean of all the corners determined using the naïve corner detection. After determining the boundaries of the marking, the information in the marking is determined by correlating the pixels of each column to pattern for each code.
Balanced Differential Decoder
As shown in
Therefore, the decoder adds all patches that are supposed to be “1” as a first sum 301, and all patches that are supposed to be “0” as a second sum 302. Then, the two sums are subtracted 303 from each other. If the difference is non-negative, the codeword represents a “1”, otherwise the codeword represents a “0.”
In the example shown in
In
In
In
Specifically, c1=[1 −1 1 −1]T, c2=[1 1 −1 −1]T, and E1(c) is the encoding function of code c for bit 1, and E0(c) is the encoding function of code c for bit 0. That is, E1(c1)=[1 0 1 0]T (white-black-white-black), and E0(c1)=[0 1 0 1]T (black-white-black-white). Then, the DOC has the following property:
{E1(ci), cj}=0 for all i≠j, and
{E0(ci), cj}=0 for all i≠j,
where {a, b} denotes the inner product of a and b, which is implemented by the balanced differential decoder. In the expression, b denotes the wirings of the orthogonal decoder, and a denotes the marking on the substrate, which has only positive or zero value, that is
Using the above properties, the following effect follows:
{Ea(ci)+Eb(cj), cj}−{Eb(cj), cj}=0, for all i≠j, and a, b ε{0, 1}.
This means that by mixing codes i and j in the substrate due to motion blur, the decoded value is the same as if only code i was sensed.
Non-Hadamard-Based DOCs
DOCs need not be generated by Hadamard matrix, and it is possible to relax the orthogonal condition and still general codes that work under motion blur.
For example, consider the following four codes:
To encode bit 1 using r1, the substrate encodes E1(r1)=[1 1 1 0 0 0]T, and to encode bit 0, the substrate encodes E0(r1)=[0 0 0 1 1 1]T. Clearly, the non-negative value constraint is satisfied for marking in the substrate. Also,
|{E1(c1), cj}|≦1 for all i≠j,
|{E1(c1), cj}|≦1 for all i≠j.
Even more generally, the codes would work under motion blur if
|{E1(ci), cj}|<Q for all i≠j, and
|{E1(cj), cj}|<Q for all i≠j,
where Q is the minimum number of non-zero elements in E1(ci) and E0(ci). For example E1(r1)=[1 1 1 0 0 0]T has three non-zero elements, and Q=3.
Using the above properties,
|{Ea(ci)+Eb(cj), cj}−{Eb(cj), cj}|<Q, for all i≠j, and a, bε{0, 1}.
Multilevel Codes
The codewords in the substrate do not need to store only zeros and ones symbols. For example, it is possible to encode two bit symbols of the information using each code. Using c1=[1 −1 1 −1]T from the Hadamard-derived DOC, we can encode the symbols 00, 01, 10, and 11 using the following codes:
For example, the values 0, 1 and 2 can be represented by black, grey and white color on the substrate, respectively.
To decode multilevel codes, the balanced differential decoder no longer threshold the decoded values at 0. Instead, the decoder performs a maximum likelihood estimate to determine the most likely bit pattern for the specific code. Nonetheless, the property of the code satisfies the following constraints:
Directional Blurring
As shown in
Although the invention has been described by way of examples of preferred embodiments, it is to be understood that various other adaptations and modifications can be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.
This application is a Continuation-in-Part application Ser. No. 12/495,419, “Method and system for coding digital information in lane markings, filed by Yim et al., on Jun. 30, 2009, now U.S. Pat. No. 8,174,374 and incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
7140803 | Cummings | Nov 2006 | B2 |
7421095 | Ikeda | Sep 2008 | B2 |
20060132295 | Gern | Jun 2006 | A1 |
20060177265 | Cummings | Aug 2006 | A1 |
20070198146 | Ikeda | Aug 2007 | A1 |
20070225913 | Ikeda | Sep 2007 | A1 |
20070258706 | Raskar | Nov 2007 | A1 |
20080255724 | Fechner | Oct 2008 | A1 |
Entry |
---|
Otsu, “A threshold selection method from gray-level histograms,” IEEE Trans. Sys., Man., Cyber. 9, pp. 62-66, 1979. |
Number | Date | Country | |
---|---|---|---|
20100327064 A1 | Dec 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12495419 | Jun 2009 | US |
Child | 12640949 | US |