Various types of vehicles, such as cars, sport-utility vehicles, light, medium, and heavy-duty trucks, etc., may include exterior-facing cameras, e.g., mounted in a vehicle interior behind a windshield. Such cameras are used for a variety of operations, such as lane departure or lane keeping warnings, headlamp control (e.g., high-beam control), detecting traffic signs and signals, oncoming vehicles, etc. However, if a camera height and alignment angle (angle of the camera with respect to the horizon) is not properly determined, then the camera may not be able to provide accurate measurement and/or detection data (e.g., lateral distance from camera to lane marker) for operations such as the foregoing. A camera alignment angle may be determined by knowing a height of a camera, e.g., a distance from the ground at which the camera is mounted in a vehicle and parameters of a target board (distance, size). Thus, determining a camera alignment angle depends on a predictable vehicle height. However, some vehicles have many configurations and/or weights, and thus vehicle height at the end of assembly process, when a camera is typically calibrated, can vary significantly. Mechanisms are lacking for determining camera heights and/or alignment angles for vehicles where a height is unknown (e.g., without additional reference height measurements such as wheelhouse or vehicle ride height).
As shown in
An angle θ1 is defined between the line D and the line C, i.e., the angle θ1 represents the angle from the nominal centerline of the camera 12 (line D) to the center point CP1 of the board 14 (line C). Likewise, an angle θ2 represents the angle from the nominal centerline of the camera 12 (line D) to the center point of the board 16 (line B). As disclosed herein, mechanisms are provided for determining an angle θA between the nominal or starting position (line D) and a horizon, i.e., horizontal orientation of, the camera 12 (line A). Further, mechanisms are provided for determining a height H, i.e., a distance between a centerpoint CP2 of the board 16 and the point 12 defining the horizon line A. By determining the height H, and knowing a distance of the centerpoint CP2 from a floor 18, e.g., determined according to a location of the centerpoint CP2 in the board 16, and a height at which the board 16 is suspended from the floor 18, a height CH of the camera 12 with respect to the floor 18 may thereby be determined.
The camera 12 may include a processor and a memory, the memory storing instructions for measuring angles θ1, θ2. For example, detecting the center points CP1, CP2, and measuring angles θ1, θ2, may be performed using standard image processing techniques, e.g., counting pixels a known center or point CP1, CP2, on a board 14, 16 and a location (e.g., row of pixels) at which a target feature (e.g., edge, crosshair, etc.) is detected on the board 14, 16. Instructions stored in and executable by the camera 12 may further use such measurements, along with data relating to the distances to obtain the height H and the angle θA, e.g., as described below. The angle θA is sometimes referred to as a misalignment angle because it measure a difference between an actual and an expected, or ideal, alignment, of the camera 12. In any case, information including the angle θA and/or the height H may then be used by the camera 12 and/or other computing devices in a vehicle for using data from the camera 12 in performing various operations, e.g., monitoring lane changing, oncoming vehicles, traffic signs and/or stoplights, etc. Note that, additionally or alternatively, the camera could be communicatively coupled, e.g., via known wired or wireless connections, to a second device, e.g., a computing device comprising a processor and a memory and configured to perform some or all of the determinations disclosed herein based on measurements made by the camera 12.
For example, because the distances R1, R2 are known, as well as the angles θ1, θ2, the height H and the angle θA may be determined using algebra and trigonometry, as illustrated by the following equations. (Note that, although the tangent function is used in the illustrative equations below, other trigonometric functions could be used alone or in combination with one another, along with values for R1, R2, θ1, and θ2, that may be obtained as described above.)
H=R
1(tan(θA−θ1) Equation (3);
H=R
2(tan(θA−θ2) Equation (4);
R
1(tan(θA−θ1)=R2(tan(θA−θ2) Equation (5);
And, continuing with further forms of Equation(5), culminating in Equation (12),
R
1[(tan θA−tan θ1)/(tan θA tan θ1+1)]=R2[tan θA−tan θ2)/(tan θA tan θ2+1)] Equation (6);
Let x=tan θA, y=tan θ1, z=tan θ2, then:
R
1[(x+y)/(xz+1)]=R2[(x−z)/(xy+1)] Equation (7);
R
1(zx2+x−yzx−y)=R2(yx2+x−yzx−z) Equation (8);
R
1
zx
2
+R
1
x−R
1
yzx−R
1
y=R
2
yx
2
+R
2
x−R
2
yzx−R
2
z) Equation (9);
R
1
zx
2
+R
1
x−R
1
yzx−R
1
y−R
2
yx
2
−R
2
x+R
2
yzx+R
2
z=0 Equation (10);
x
2(R1z−R2y)+x(R1−R2)−R1yzx−R1y+R2yzx+R2z=0 Equation (11);
and
x
2(R1z|R2y)+x(R1−R2)−x(R1yz+Rzyz)−R1y+R2z=0 Equation (12).
Recall that x=tan θA. Therefore, from Equation 11, solving for x allows for a determination of OA. Further, once OA is known, the height H may be determined from any of Equations 1-4 above.
Next, in a block 52, the camera 12 may record images from the boards 14, 16, as described above, and angles of orientation of the camera 12 may be measured as described above, e.g., the angles θ1, θ2.
Next in a block 54, the misalignment angle θA may be computed, e.g., according to equations such as Equations 1-12 as described above. For example, as stated above, the camera 12 could include a processor and a memory, where the memory was provided with instructions for computing the angle, as well as with data for computing the angle, including the distances R1, R2 as well as the recorded angles θ1, θ2.
Next, in a block 56, the camera 12 computes and stores the height H.
Next, in a block 58, the camera 12 computes a vertical height CH, illustrated in
Following the block 56, the process 48 ends.
Computing devices such as those discussed herein generally each include instructions executable by one or more computing devices such as those identified above, and for carrying out blocks or steps of processes described above. For example, process blocks discussed above may be embodied as computer-executable instructions.
Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, HTML, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media. A file in a computing device is generally a collection of data stored on a computer readable medium, such as a storage medium, a random access memory, etc.
A computer-readable medium includes any medium that participates in providing data (e.g., instructions), which may be read by a computer. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, etc. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes a main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
In the drawings, the same reference numbers indicate the same elements. Further, some or all of these elements could be changed. With regard to the media, processes, systems, methods, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claimed invention.
Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent to those of skill in the art upon reading the above description. The scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the arts discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the invention is capable of modification and variation and is limited only by the following claims.
All terms used in the claims are intended to be given their ordinary meanings as understood by those skilled in the art unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary.
This application claims priority to U.S. provisional patent application Ser. No. 61/969,956, filed Mar. 25, 2014, entitled “CAMERA CALIBRATION.” The contents of the foregoing provisional patent application are hereby incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
61969956 | Mar 2014 | US |