The present invention relates generally to methods and apparatus for performing angular measurements. Merely by way of example, embodiments of the present invention provide methods for acquiring high resolution angular measurements using images. Such measurements may be used, for example, in surveying applications. However, the scope of embodiments of the present invention is broader than this particular application and can be applied to other applications utilizing angular measurements.
The art of surveying involves the determination of unknown positions using measurements of angles and distances. For example, in some surveying operations horizontal and vertical angles and distance are measured between reference and target points. In other surveying operations, horizontal and vertical angles are measured between more than one reference point and a target point. In either case, the measured data may be used to calculate the position of the target point.
A theodolite is a surveying instrument that is commonly used to measure horizontal and vertical angles. A theodolite typically includes a telescope mounted so that it can be rotated about horizontal and vertical axes. A theodolite may include circular scales that are used in measuring the angular position of the telescope. The horizontal angle (e.g. yaw) and the vertical angle (e.g. pitch) are read from the circular scales to determine the yaw and pitch of the target with respect to a reference point. Some modern electronic theodolites utilize angle encoders instead of scales to automate angular measurements.
Despite the utility of theodolites, improved methods and apparatus for acquiring angular measurements are desired.
The present invention provides improved methods and apparatus for performing angular measurements by using images. Such measurements may be used, for example, in surveying applications. However, the scope of embodiments of the present invention is broader than this particular application and can be applied to other applications utilizing angular measurements.
In accordance with an embodiment of the present invention, a method of determining an azimuth and an elevation of a point in a first image is provided. The method comprises positioning an imaging device at a first position and acquiring the first image at the first position. The method also includes performing a first rotation of the imaging device and acquiring a second image at the first position. The first image includes the point, and a portion of the first image overlaps a portion of the second image. The method also includes determining correspondences between features in overlapping portions of the first image and the second image, determining a first transformation between coordinates of the first image and coordinates of the second image based on the correspondences, and determining a second transformation between the coordinates of the second image and a local coordinate frame. The method also includes computing the azimuth and the elevation of the point based on the first transformation and the second transformation.
In accordance with yet another embodiment of the present invention, a method of determining a horizontal angle and a vertical angle between a first point in a first image and a second point in a second image is provided. The method comprises obtaining a series of images including the first image and the second image. A portion of each image in the series overlaps a portion of another image in the series and each image in the series is obtained from a first position. The method also comprises determining correspondences between features in overlapping portions of images in the series of images, determining first transformations between coordinates of overlapping images in the series of images, and computing the horizontal angle and the vertical angle between the first point and the second point based on the first transformations.
In accordance with yet another embodiment of the invention, a surveying apparatus is provided. The apparatus comprises a support structure, a rotatable member mechanically coupled to the support structure, and an imaging device mechanically coupled to the rotatable member. The rotatable member may be configured to rotate the imaging device without substantially changing a position of an optical center of the imaging device. The apparatus also comprises an image sensor disposed in the imaging device, a memory in electrical communication with the image sensor, and a processor in electrical communication with the image sensor and the memory. The processor may be configured to determine correspondences between features in overlapping portions of the images, determine first transformations between coordinates of overlapping images based on the correspondences, determine a second transformation between coordinates of one of the images and a local coordinate frame, and compute an azimuth and an elevation of each of a plurality of points in the images based on the first transformations and the second transformation.
Numerous benefits are achieved using the present invention over conventional techniques. For example, an embodiment according to the present invention provides an inexpensive instrument for measuring angles with high accuracy. The instrument does not utilize expensive scales or encoders and tolerances on mechanical components are reduced. Measurement cost may also be reduced, as some embodiments allow measurements between points to be made from a series of images. The measurements can be performed in the field at the time the images are acquired, or at a later time using images stored in memory. Furthermore, because the points are identified in the image, the image can be used as a visual audit trail of points that have been measured.
Depending upon the embodiment, one or more of these benefits may exist. These and other benefits are described throughout the specification and more particularly below.
Embodiments of the present invention provide methods and apparatus for acquiring high resolution angular measurements using images. The measurements can be made without the use of scales or encoders as required with conventional theodolites, thus providing a virtual or encoderless theodolite. As explained more fully below, some embodiments include acquiring a series of overlapping images from a particular position. Coordinate transformations can be determined between the images, and constraints can be applied that allow angles between points in the images to be determined using the coordinate transformations. As with a conventional theodolite, a coordinate transformation between the image coordinate frame and a real world coordinate system (e.g., the local coordinate frame) can also be determined allowing azimuth and elevation to be measured.
In the embodiment shown in
The imaging device 102 can be rotated to adjust the pitch (i.e., rotation about the horizontal axis 106) and the yaw (i.e., rotation about the vertical axis 104) without substantially changing the position of the optical center 110. However, as would be apparent to one of ordinary skill in the art, the position of the optical center 110 may change as a result of the tolerances on the mechanical components or the alignment of the imaging device 102. Such changes are allowed up to certain tolerances. The tolerances may depend, for example, on the particular application for which the surveying apparatus 100 is used and/or the distinctness of features in the images.
The surveying apparatus 100 shown in
In accordance with an embodiment, the imaging device 102 of
where xp, yp is a position in an image plane; X, Y, Z is the corresponding three-dimensional position with respect to the camera coordinate frame; x0, y0 is the principal point of the plane (explained below); and f is the focal length of the imaging device 102. Accordingly, normalized image coordinates x, y for an ideal (undistorted) lens may be defined as:
Conventional calibration models generally depart from the ideal state to account for distortion. For example, a first order radial distortion may be modeled as:
x=xd(1+k(xd2+yd2)) (5)
y=yd(1+k(xd2+yd2)) (6)
where xd, yd is a position in a distorted image plane, and k is the coefficient of radial distortion. Other models may be used in accordance with known techniques.
In accordance with an embodiment, a series of overlapping images may be acquired from a particular position using, for example, the surveying apparatus 100 illustrated in
According to an embodiment of the present invention, the first image 402 and the second image 404 are Obtained with the optical center of the imaging device at substantially the same position. For example, the first image 402 and the second image 404 may be obtained from substantially the same position of the optical center but at a different angle of rotation of the imaging device. Using the surveying apparatus 100 illustrated in
In an embodiment, determining the coordinate transformations between the overlapping images includes determining correspondences between points in the images. Determining correspondences may include identifying features (e.g., distinctive image gradients) in the overlapping portions of the images that can be reliably identified and accurately located. Such features may be identified using well known corner detection techniques, such as the Harris corner detection algorithm. The Harris corner detection algorithm essentially determines the local maxima of the minimum eigenvector of the second moment matrix of the image gradients. The image gradients can be determined by convolution of the image with a derivative of a sampling function.
In one embodiment a variant of the Harris corner detection algorithm is utilized. In this embodiment, a grayscale image is assumed, and gradients Ix and Iy can be derived by convolution of the image with Gaussian differential filters according to the following equations:
The image and the convolution kernel are discrete. The kernels Gx and Gy can be calculated for values of x and y within a specified range. As an example, the kernels Gx and Gy can be calculated for values of x and y within a range of ±3σ, which means the convolution is not valid within 3σ of the edges of the image. For this reason, in some embodiments a small value of σ (e.g., 1.4) is chosen. The convolution may be done in the Fourier domain for efficiency.
The second-moment matrix may be defined as:
A smoothed version of S, Σ(S), can be obtained by convolving each of the components with a Gaussian kernel according to the following equations:
The corner response is a measure of how well a point (or feature) in an image can he localized. The corner response may be determined by the minimum eigenvalue of Σ(S) according to the following equation:
λmin=Σ(Ix2)+Σ(Iy2)=√{square root over (4Σ(IxIy)2+(Σ(Ix2)−Σ(Iy2))2)}{square root over (4Σ(IxIy)2+(Σ(Ix2)−Σ(Iy2))2)}{square root over (4Σ(IxIy)2+(Σ(Ix2)−Σ(Iy2))2)} (14)
In an embodiment, the pixels that can be best localized are determined by disregarding all pixels with a value of λmin less than their surrounding pixels. Of the remaining pixels, those with high values of λmin are selected.
The image gradients identified above are determined at discrete pixel locations and are subject to perspective distortion depending on their location on the image plane relative to the principal point. This is because the image on the plane is effectively a magnified version of the image on the sphere, where the magnification factor changes according to the position on the image plane. In an embodiment, refinement steps are performed to determine sub-pixel coordinates of the image gradients and/or to account for the perspective distortion.
In an embodiment, a convolution shift theorem is used to evaluate gradients at points other than discrete pixel locations. If the following convolution is performed:
h(x)=I(x)*g(x) (15)
then
h(x+Δx)=I(x)*g(x+Δx) (16)
The variable x is a vector that can be image coordinates [x, y] or the column and row indices of the array corresponding to their discrete representation. Although I is sampled for integer values of x, gradients can be calculated at any point x+Δx. This allows sub-pixel image gradients to be determined.
In an embodiment, convolutions can be determined on a small area of the image, for example about a point xc, using the following equation:
h(x+xc)=I(x+└xc┘)*g(x+{xc}) (17)
where └xc┘ is the floor of xc, and {xc} is a sub-pixel part. If I(x+└xc┘) is determined using a portion of image centered about xc, then the value of h corresponding to x=[0,0] will correspond to the convolution being applied at xc.
In some embodiments, the cross-correlation that is equivalent to the convolution can be used, which can be defined as:
h(x)=I(x)*
where
This provides:
h(x+Δx)=I(x)*
The perspective distortion can be corrected using any one of a number of methods.
h(x, y)=I(x, y)*g(x, y) (21)
A convolution on an un-normalized image plane with coordinates [u, v] can be shown by:
I′(u, v)=I′(f(x, y))=I(x, y) (22)
Combining equations (21) and (22) provides:
where |J([u, v], [x, y])(−f−1(u, v))| is the determinant of the Jacobian of [u, v] with respect to [x, y] at the point −f−1(u, v).
In some embodiments, the convolution may be calculated in terms of an equivalent cross-correlation kernel that is subsequently reversed and applied as a convolution. This provides:
and since the undistorted convolution kernel is symmetric:
The Jacobian can be determined by transforming [u, v] to [x, y] at a point [uc, vc] follows:
Given this, the determinant of the Jacobian can be calculated as:
|J([u, v],[x, y])(f−1(u, v))|=w′3 (29)
This solution can be further elaborated to take into account camera calibration using any differentiable calibration model. As an example, describing distorted versions of [u, v] in terms of [ud, vd] and using the function c as a shorthand for equations (5) and (6) provides:
[u, v]=c([ud, vd])=[ud, vd](1+k(ud2+vd2)) (30)
Substituting [ud, vd] for [u, v] in equation (25) provides:
where I″ is the distorted image such that
I″(ud, vd)=I′(c([ud, vd])) (32)
The determinant of the Jacobian |J([ud, vd],[x, y])| can be defined in terms of |J([u, v],[x, y])| as follows:
Using the calibration model given by equation (30) provides:
Equation (31) can be rewritten as:
In an embodiment, equations (11)-(14) can be used to identify points (or features) on the image plane, and known methods can be used to determine local maxima in the area around each feature. Equation (37) can be used to calculate precise feature coordinates on the sphere using coordinates on the image plane.
These methods were tested with synthetically generated images with a field of view of 52 degrees. The mean point correspondence error was on the order of 10−3 pixels. Adding Gaussian noise to give an image signal-to-noise ratio of 42 dB (1 bit RMS in an 8 bit image), the mean error was on the order of 10−2 pixels. Using image pairs having a pure planar rotation, as would be the limiting case for very long focal lengths, point correspondence on the order of 10−5 pixels were achieved.
Some embodiments use the feature identified using the above methods to determine correspondences between features in overlapping images. A set of pairs of points can be determined where each pair includes a feature in each of two overlapping images. In an embodiment a descriptor is determined for each feature. A descriptor may be a sequence of numbers that can be associated with a feature to uniquely identify it. The descriptor of a feature in a first image can be compared with the descriptor of a feature in a second image to determine how likely it is that the features correspond to the same location in the scene.
In an embodiment the descriptors are determined by projecting a small area around each feature onto a unit sphere and defining a sampling pattern on the sphere.
where f is the focal length in pixels.
In the example shown in
Defining the sampling pattern as Sf0,1 . . . n for the point [0,0,1], the sampling pattern can be transformed to the feature point [fx, fy, fz] by applying the transform:
The sampling process essentially calculates the intensity at each sample site of a Gaussian blurred image formed from the projection of the image on the image plane. This can be represented as:
where I1 . . . m are intensities of the pixels in the image plane, P1 . . . m are the corresponding pixel positions on the sphere, d is a distance function, and σd is the standard deviation of the Gaussian distribution. Using the sine of the angle subtended between the image point and the sample point as the distance measure, the measure is independent of where the feature is in the image, σd=θ can be selected so that the sampling is neither over-blurred nor under sampled. This provides:
where Pj.Pf,i is the dot product of the two position vectors.
Using the radial sampling on the sphere, a one-dimensional Fourier transform for each ring in the sample pattern can be determined. Because the sample values are real, the Fourier transform is symmetric and half of it can be disregarded. The DC component can also be disregarded. The first ring includes six real samples that provide three complex values. The three complex values are the Fourier coefficients corresponding to 1 Hz, 2 Hz, and 3 Hz. Repeating the process for the second ring provides six Fourier coefficients (1 Hz-6 Hz), and so on for the remainder of the rings. The coefficients can be denoted as:
Fr,k ∈ where r∈ {1 . . . 8}, k∈ {1 . . . 3r} (42)
In some embodiments a reference phase is determined by selecting the fundamental harmonic (1 Hz) value with the largest magnitude. The value with the largest magnitude can be found in ring R, and the reference phase can be defined as:
The reference phase can be removed from the first harmonic by multiplying its complex conjugate. The second harmonic is multiplied by the square of the complex conjugate, and so on. A set of phase shifted Fourier coefficients can be defined as:
F′r,k=Fr,k
This provides a descriptor that is rotationally invariant (e.g., the rotation is equivalent to a phase shift). Two features that are similar except for their rotation should have the same phase reference although the reference will have a different value. Signals relative to their phase reference (i.e., signals with the reference subtracted) should differ only to the extent of the image noise.
In an embodiment the coefficients are rearranged into vectors to determine the descriptors. For example, the coefficients may be rearranged by:
F″((3r
A matrix of the descriptors for all the features in an image can be created. With one row per descriptor, a matrix with nf features, can be defined as:
F″i, j where i∈ {1 . . . nf}, j∈ {1 . . . 3/2(r2+r)} (46)
In an embodiment, the descriptors in the two images are matched using the total signal power. The total signal power that is in phase between the two descriptors is determined as a portion of the total signal power if they were perfectly in phase. The match M between descriptors A and B can be defined as:
where A.
This provides a comparison between descriptors A and B. All the descriptors in one image can be compared with all the descriptors in another image using equation (47) to make A′ and B′ the normalized versions of the matrices defined by equation (46). With nf,A features in A′ and nf,B features in B′, M will be a nf,A by nf,B matrix of values indicating the similarity between the feature in A′ indicated by the row and the feature in B′ indicated by the column.
Features are likely the same if they are mutual best matches. This can be determined if there is an element M, M(i, j) that is the highest value in row i and the highest value in column j. Mutual best matches can be arranged into a list of putative point correspondences CA,1 . . . n
In an embodiment, compatibility of the putative matches can be determined by constricting a matrix K as follows:
Each element of K, K(i, j) has a value of 1 if the match CA,iCB,i is compatible with the match CA,j
CB,j, otherwise it has a value of 0. Each match is compatible with itself so the diagonal is 1, and K(i, j)=K(j, i) so the matrix is symmetric and only half needs to be calculated.
The match CA,iCB,i is compatible with the match CA,j
CB,j if the angle at the center of the sphere subtended by CA,i and CA,j is equal to the angle subtended by CB,i and CB,j. Using the dot product, this can be presented as:
P(CA,i).P(CA,j)=P(CB,i).P(CB,j)K(i, j)=1
P(CA,i).P(CA,j)≠P(CB,i).P(CB,j)K(i, j)=0 (50)
where P(F) is the position (i.e., three-dimensional coordinates) on the unit sphere of the feature. The geometric interpretation of the dot product is:
P(CA,i).P(CA,j)=cos(α)
P(CB,i).P(CB,j)=cos(β) (51)
where α is the angle subtended by CA,i and CA,j and β is the angle subtended by CB,i and CB,j.
To account for error in the feature estimation, a threshold can be used to identify angles that are sufficiently different such that at least one of the matches is considered an outlier. The threshold can be described in terms of T as the equivalent pixel error measured at the principal point. The value of T can be determined using any one of a number of different techniques. For example, in some embodiments the value of T is determined based on an empirical error distribution of the precise detector for a given camera. If θT is the angular error threshold equivalent to T pixels at the principal point, then:
where f is the focal length in pixels.
The criterion for K(i, j) in the matrix of equation (49) can be expressed as:
|sin(α−β)|<sin(θT) (53)
where
Combining equations (51) and (54) gives:
Equation (55) can be used to populate the matrix K of equation (49) to determine which pairs of matching features have matching angular separation.
In an embodiment, the largest consistent set of pairs of matching points is determined. This may involve taking the square of equation (49):
K′=K.K (56)
such that each element K′(i, j) will be the number of matches that are consistent with both match CA,iCB,i and match CA,j
CB,j. The element in K′ with the highest value will indicate the most likely pair of matches. Denoting this value as n′C and the subsets of CA,1 . . . n
CB,i and match CA,j
CB,j as C′A,1 . . . n′
In an embodiment, matching pairs that are due to reflections rather than rotations are removed from the set of pairs of matching points.
Reflections may be determined using any one of a number of techniques. For example, reflections may be determined using the scalar triple product. Given three points (p1, p2, p3) on the surface of a sphere, the scalar triple product is:
V=(p1×p2).p3 (58)
where × indicates the cross product. V can be interpreted geometrically as the directed volume contained by p1, p2, p3 and the center of the sphere. V will have a different sign depending on whether p1, p2, p3 are in a clockwise or counter-clockwise configuration. When V=0, the points p1, p2, p3 are coplanar with the center of the sphere. In this case the reflection and rotation are the same and the points may be considered valid. The following equation can be used to identify reflections:
(P(CA,i)×P(CA,j)).P(CA,k)=(P(CB,i)×P(CB,j)).P(CB,k) (59)
A threshold on |V| can be set to account for error in location of the points. Values below the threshold are considered coplanar. In an embodiment θT can used to determine the threshold. Considering the left side of equation (59), the maximum error will exist when the cross product is directly in-line with the error in P(CA,k). The magnitude of this would be:
∥P(CA,i)×P(CA,j)∥sin(θT) (60)
where ∥v∥ indicates the norm of vector v. A similar threshold can be applied to the triple product on the right side of equation (59), and the test can be rewritten as:
In an embodiment, the right side of equation (61) and the cross product on the left side can be calculated for a given i and j. The test can be applied for every k that satisfies equation (57). Pairs of matching points that do not satisfy equation (61) can be removed from the set. If points are removed, the number of remaining matches, n″C, can be compared to the next highest value in K′. The largest set of matches has been determined if n″C is greater than or equal to the next highest value in K′. If n″C is less than the next highest value in K′, equations (57)-(61) can be applied to the i and j corresponding to the next highest value in K′. The process can be iterated until a value of n″C is identified that is greater than or equal to all the remaining values in K′. This largest consistent set of matching pairs of points can be denoted as C″A,1 . . . n″
In an embodiment, the coordinate transformations between overlapping images can be determined using the set of pairs of matching points. Subject to any error in locating the features, coordinates of one set of pairs will be the same as the matching set subject to a rotation about the center of the sphere. The transformation between coordinates in a first image (image A) and a second image (image B) can be determined using a singular value decomposition on the matrix product of the feature coordinates in image A and the transpose of the coordinates in image B. This gives two orthogonal matrices U and V and a singular matrix S as illustrated by:
U.S.VT=P(C″A,1 . . . n″
The product of the transpose of V and the transpose of U will give the transform from coordinates in image A to coordinates in image B (XA→B).
XA→B=VT.UT (63)
Equation (63) minimizes the sum of the squares of the residuals if the errors in feature coordinates have a Gaussian distribution.
If the series of overlapping images includes more than two images, the coordinate transformation between each set of overlapping images can be determined and the transformations combined. As an example, a series of overlapping images may include image A, image B, and image C. with a portion of image A overlapping a portion of image B, and a portion of image B overlapping a portion of image C. The coordinate transformation between image A and image B can be determined, and the coordinate transformation between image B and image C can be determined. The transforms can be combined to determine the coordinate transformation between image A and image C as follows:
XA→C=XB→C.XA→B (64)
Transforms can be combined to determine the coordinate transformation between any two images as long as the transformations between intermediate images have been determined.
In some embodiments, the series of images may create a 360° panoramic image. The sequence of transforms in this case would be a closed sequence as illustrated by:
XZ→A . . . XB→C.XA→B=XA→A (65)
The transform XA→A should be the identity matrix, but small errors in one or more of the intermediate transformations may result in the matrix not being identity. Known techniques can be used to optimize the transforms to account for the errors. For example, known Block Bundle Adjustment techniques can be used to enforce the constraint that the closed chain of transforms should be the identity transform. The effect is to apply a small rotation to each of the estimated transforms such that the closure constraint is enforced. Denoting the transform modified by the Block Bundle Adjustment as X′A→B, the closure constraint is enforced by calculating:
X′A→Z=X′Y→Z . . . X′B→C.X′A→B (66)
The value of X′A→Z should be the same regardless of the sequence of intermediate transforms. As a result, the transform from each image to every other image in the series can be determined. For example, the transform between a first image in the series (image E) and a second image in the series (image H) can be calculated using:
X′E→H=X′A→H.(X′A→E)−1=X′A→H.(X′A→E)T (67)
Constraints can be applied so that the coordinate transformations between overlapping images can be used to determine angles between points in the images. As with a conventional theodolite, a coordinate transformation can also be determined between the image coordinate frame and a real world coordinate system (e.g., the local coordinate frame), thus allowing azimuth and elevation to be measured. Because the origin of the local coordinate frame is generally not the origin of the image coordinate frame, the transform may include a translation and a rotation. Determining the transform is essentially equivalent to determining how the imaging device is translated and rotated with respect to the local coordinate frame. In surveying this procedure is typically referred to as stationing.
In an embodiment, the coordinate transformation between the image coordinate frame and the local coordinate frame uses vectorvector constraints. Vector
vector constraints establish corresponding vectors in the image coordinate frame and the local coordinate frame. One method of obtaining a correspondence between vectors in the image coordinate frame and the local coordinate frame includes positioning the imaging device over a known point (p1). As an example, the known point may be a survey mark. Another known point (p2) is identified in at least one of the images. A unit vector from p1 in the direction of p2 in the local coordinate frame is represented as:
vWORLD=(p2−p1)/∥p2−p1∥ (68)
The unit vector in the camera reference frame is represented as:
vCAMERA=[x, y, 1]/∥[x, y, 1]∥ (69)
where x and y are normalized image coordinates described by equations (5) and (6). These coordinates can be transformed to the reference camera frame using equation (67).
Another method of obtaining a correspondence between vectors in the image coordinate frame and the local coordinate frame includes using a tilt sensor to determine the gravity vector in the camera reference frame. The tilt sensor can be considered as having its own coordinate frame. With the imaging device attached to the tilt sensor, a transformation can be defined to the camera coordinate system (XTILT→CAMERA). This transformation can be determined by calibration of the assembly. When inside its operating range, the tilt sensor will either directly or indirectly indicate the gravity vector (vTILT) in its own coordinate system. This can be transformed to the camera coordinate system:
vCAMERA=XTILT→CAMERA.vTILT/∥vTILT∥ (70)
The local coordinate system is typically defined so that the z-axis points in the opposite direction to the gravity vector, so the corresponding vector in the local coordinate system is [0,0,−1].
Singular value decomposition can be used to calculate the rotation part of the transformation between the image coordinate, frame and the local coordinate frame using at least two vectorvector correspondences. In some embodiments, a check is performed to ensure the rotation is calculated and not a reflection. If the transform is a rotation its determinant will be +1, whereas the determinant of a reflection will be −1. The rotation can be obtained by calculating the transform using the equations:
U.S.VT=[vCAMERA,1, . . . vCAMERA,n].[vWORLD,1 . . . vWORLD,n]T (71)
[c1,c2,c3]=VT.UT (72)
XCAMERA→WORLD=[c1,c2,c3|c1,c2,c3|] (73)
where vCAMERA,i, vWORLD,i, and ci are all column vectors. This provides the rotation part of the transformation.
The translation part of the transformation between the image coordinate frame and the local coordinate frame can be determined by placing the imaging device over a known point or it can be measured using known techniques.
In an embodiment, the coordinate transformation between the image coordinate frame and the local coordinate frame uses vectorpoint constraints. Vector
point constraints establish correspondences between the local coordinates of point features and their corresponding image coordinates. The image coordinates represent a unit vector that can be transformed to the camera reference frame. Known techniques can be used to determine the coordinate transformation between the image coordinate frame and the local coordinate frame using vector
point correspondences. For example, the known Space Resection technique uses at least three vector
point correspondences to calculate the rotation and translation simultaneously.
In some embodiments, a transformation between the image coordinate frame and a leveled, un-oriented coordinate frame may be determined. This can be thought of as an intermediate coordinate system between the image coordinate frame and the local coordinate frame. The leveled, un-oriented coordinate frame is the coordinate system typically used with a conventional theodolite. Determining the transformation between the image coordinate frame and the leveled, un-oriented coordinate frame allows any survey procedure to be performed using embodiments of the present invention that could be performed using a conventional theodolite.
A transformation between the image coordinate frame and a leveled, un-oriented coordinate frame may be determined, for example, by determining one or more correspondences between the gravity vector and a vector with respect to the camera reference frame as described above. These correspondences can be used to determine a rotation only transform XCAMERA→LUCS (where LUCS is an abbreviation for leveled, un-oriented coordinate system). This transform can be used to measure horizontal and vertical angles between points in the images. The transform can be used to perform any measurements performed by conventional theodolites. For example, angular measurements can be made to a point in an image with a known (or calculated) azimuth. The difference between the known azimuth and the measured horizontal angle can be added to subsequent measurements to give azimuths. This is analogous to measurements made to a backsight using a conventional theodolite.
For compatibility with existing survey processes, some embodiments include methods for calculating polar coordinates. As described above, a point [x, y, 1] in an image plane can be transformed to the camera reference frame and to the local coordinate frame. Denoting the new coordinates of the point as [X, Y, Z] gives:
[X, Y, Z]T=XREF
As defined above, θ and φ can be calculated as:
where arctan 2(X,Y) is defined as:
Correspondences between features in overlapping portions of the first image and the second image are determined (910). A first coordinate transformation is determined between coordinates of the first image and coordinates of the second image (912). A second coordinate transformation is determined between the coordinates of the second image and a local coordinate frame (914). The azimuth and elevation of the point are determined based on the first transformation and the second transformation.
It should be appreciated that the specific steps illustrated in
Some methods of the present invention, such as the methods illustrated in
In an embodiment of the present invention, one or more targets may placed in a scene to provide stable features for matching overlapping portions of images. A target may be any object that has a distinctive pattern to enhance feature matching. In one embodiment, targets are used as markers for specific points in images that may otherwise be difficult to identify. In another embodiment, targets are placed in scenes that are dynamic or that may change over time. Here the targets may be used, for example, to provide stable features for matching subsequent images. One of ordinary skill in the art would recognize many variations, modifications, and alternatives.
It is to be understood that the features of one or more embodiments of the invention may be combined with one or more features of other embodiments of the invention without departing from the scope of the invention. Also, the examples and embodiments described herein are for illustrative purposes only and various modifications or changes in light thereof will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application and scope a the appended claims.
This application is a continuation of U.S. Nonprovisional application Ser. No. 12/616,673, filed Nov. 11, 2009, which claims the benefit of U.S. Provisional Application No. 61/143,375, filed Jan. 8, 2009, the entire contents of which are incorporated herein by reference in their entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5642285 | Woo et al. | Jun 1997 | A |
5760909 | Nichols | Jun 1998 | A |
5825412 | Hobson et al. | Oct 1998 | A |
6147598 | Murphy et al. | Nov 2000 | A |
6282362 | Murphy et al. | Aug 2001 | B1 |
6346980 | Tani et al. | Feb 2002 | B1 |
7075661 | Petty et al. | Jul 2006 | B2 |
7184088 | Ball | Feb 2007 | B1 |
7339611 | Marold et al. | Mar 2008 | B2 |
7541974 | Scherzinger | Jun 2009 | B2 |
7619561 | Scherzinger | Nov 2009 | B2 |
7697127 | Vogel et al. | Apr 2010 | B2 |
7719467 | Norda et al. | May 2010 | B2 |
8351686 | Graesser | Jan 2013 | B2 |
8379929 | Sharp | Feb 2013 | B2 |
20040051711 | Dimsdale et al. | Mar 2004 | A1 |
20050125142 | Yamane | Jun 2005 | A1 |
20070008515 | Otani et al. | Jan 2007 | A1 |
20070127816 | Balslev et al. | Jun 2007 | A1 |
20070263924 | Kochi et al. | Nov 2007 | A1 |
20070288197 | Martin | Dec 2007 | A1 |
20080129824 | Loveless | Jun 2008 | A1 |
20090138233 | Kludas et al. | May 2009 | A1 |
20090220144 | Mein et al. | Sep 2009 | A1 |
20090262974 | Lithopoulos | Oct 2009 | A1 |
20100141759 | Scherzinger | Jun 2010 | A1 |
20100172546 | Sharp | Jul 2010 | A1 |
20100174507 | Vogel et al. | Jul 2010 | A1 |
20120013736 | Graesser | Jan 2012 | A1 |
Number | Date | Country |
---|---|---|
19922321 | Jul 2008 | DE |
1936323 | Jun 2008 | EP |
1944572 | Jul 2008 | EP |
2005059473 | Jun 2005 | WO |
2007031248 | Mar 2007 | WO |
2009100773 | Aug 2009 | WO |
2009100774 | Aug 2009 | WO |
2009103342 | Aug 2009 | WO |
2009106136 | Sep 2009 | WO |
2009106141 | Sep 2009 | WO |
2010080950 | Jul 2010 | WO |
Entry |
---|
Albertz, J., “Albrecht Meydenbauer—Pioneer of Photogrammetric Documentation of the Cultural Heritage” Proceedings 18th International Symposium CIPA 2001, Potsdam Germany, Sep. 18-21, 2001, pp. 19-25. |
Bouguet, J., “Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the Algorithm”, Intel Corporation, Microprocessor Research Labs, 2000, pp. 1-9. |
Capel, D., “Image Mosaicing and Super-resolution”, Robotics Research Group, Department of Engineering, University of Oxford, Trinity Term, 2001, 269 pages. |
Engels, C., et al., “Bundle Adjustment Rules”, Photogrammetric Computer Vision (PSV), International Society for Photogrammetry and Remote Sensing (ISPRS), Sep. 2006, 6 pages. |
Gruen, A., et al., “Calibration and Orientation of Cameras in Computer Vision, Chapter 4—Fraser, Photogrammetric Camera Component Calibration: A Review of Analytical Techniques”, 2001, pp. 95-121, Springer-Verlag, Berlin Heidelberg, Germany. |
Harris, C., et al., “A Combined Corner and Edge Detector” 1988, Plessey Research Roke Manor, United Kingdom, The Plessey Company plc., pp. 147-151. |
Hartley, R., et al., “Multiple View Geometry in Computer Vision, Second Edition, Chapter 18, N-View Computational Methods”, 2000, Cambridge University Press, United Kingdom, pp. 434-457. |
Heckbert, P., “Fundamentals of Texture Mapping and Image Warping”, Master's Thesis, University of California, Berkeley, Dept. of Electrical Engineering and Computer Science, Jun. 17, 1989, 94 pages. |
Nister, D., et al., “What Do Four Points in Two Calibrated Images Tell us About the Epipoles?”, European Conference on Computer Vision, 2004, Springer-Verlag, 15 pages. |
Photo Towers, Professional Camera Support, Tall Tripods, Retrieved from http://www.photo-towers.com/tall-tripods.htm on Sep. 6, 2011, 1 page. |
Shum, H., et al., “Construction of Panoramic Image Mosaics with Global and Local Alignment”, International Journal of Computer Vision (IJCV), May 1998, vol. 48, pp. 1-48. |
Stein, G.P., “Accurate Internal Camera Calibration Using Rotation, with Analysis of Sources of Error”, 1995, pp. 230-236. |
Stone, H., et al., “A Fast Direct Fourier-Based Algorithm for Subpixel Registration of Images”, IEEE Transactions on Geoscience and Remote Sensing, vol. 39, No. 10, Oct. 2001, pp. 2235-2243. |
Stricker, D., et al., “Real-Time and Markerless Vision-Based Tracking for Outdoor Augmented Reality Applications”, Proceedings of the IEEE and ACM International Symposium on Augmented Reality (ISAR'01), 2001, 2 pages. |
Szeliski, R., “Image Alignment and Stitching: A Tutorial”, Foundations and Trends® in Computer Graphic and Vision, 2006, vol. 2, No. 1, 105 pages. |
Szeliski, R., “Image Alignment and Stitching: A Tutorial”, Preliminary Draft Jan. 26, 2005, Technical Report, MSR-TR-2004-92, 71 pages. Available at URL: http://robots.stanford.edu/cs223b05/MSR-TR-2004-92-Jan26.pdf. |
Szeliski, R., “Video Mosaics for Virtual Environments”, IEEE Computer Graphics and Applications, vol. 16, No. 2, Mar. 1996, pp. 22-30. |
Tsai, R, “An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision”, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Jun. 22-26, 1986, Miami Beach, Florida, pp. 364-337. |
Tsai, R., “Synopsis of Recent Progress on Camera Calibration for 3D Machine Vision”, The Robotics Review 1, 1989, The MIT Press, pp. 147-159. |
Pollefeys et al., “Detailed Real-Time Urban 3D Reconstruction form Video”, Oct. 20, 2007, Springer Science Business Media LLC 2007, pp. 143-167. |
Pedershine et al., “Multi-camera parameter tracking,” Feb. 2001, IEE Proc. Vis. Image Signal Process., vol. 148, No. 1 pp. 70-77. |
International Search Report and Written Opinion for PCT Patent Application No. PCT/US2010/020428 mailed on Mar. 17, 2010, 10 pages. |
Non-Final Office Action of Jun. 25, 2012 for U.S. Appl. No. 12/616,673, 27 pages. |
Notice of Allowance of Oct. 10, 2012 for U.S. Appl. No. 12/616,673, 7 pages. |
Non-Final Office Action of Jun. 22, 2012 for U.S. Appl. No. 13/143,320, 24 pages. |
Notice of Allowance of Sep. 10, 2012 for U.S. Appl. No. 13/143,320, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20140036066 A1 | Feb 2014 | US |
Number | Date | Country | |
---|---|---|---|
61143375 | Jan 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12616673 | Nov 2009 | US |
Child | 13745358 | US |