Three-dimensional localization of moving objects in a video stream using only a single camera can be difficult. In particular, existing methods use sparse feature points, but this technique is difficult to use on objects such as, e.g., cars, because it is hard to establish stable feature tracks. Other existing methods triangulate object bounding boxes against a fixed ground plane, which leads to high localization errors. These existing techniques may also involve expensive inference mechanisms.
A method for moving object localization includes estimating a ground plane in a video frame based on a detected object within the video frame and monocular structure-from-motion (SFM) information. Object pose for objects in the frame is computed based on the SFM information using dense feature tracking. A three-dimensional location for the detected object is determined based on the estimated ground plane and the computed object pose.
A system for moving object localization includes a processor configured to estimate a ground plane in a video frame based on a detected object within the video frame and monocular structure-from-motion (SFM) information, to compute object pose for objects in the frame based on the SFM information using dense feature tracking, and to determine a three-dimensional location for the detected object based on the estimated ground plane and the computed object pose.
Embodiments of the present invention use monocular structure-from-motion (SFM) to adaptively estimate a ground plane by combining cues from SFM, dense inter-frame stereo, and object detection. Object pose is estimated by intensity alignment, since pose estimation based on very few sparse features is unstable. Dense features are tracked using a one-dimensional optical flow mechanism that imposes epipolar constraints. Outliers in the tracks are eliminated using the estimated object pose. The SFM cues employed by the present embodiments minimize reprojection errors of the tracked three-dimensional points, while an object detection cue fits the best three-dimensional bounding box that is most consistent with a sequence of two-dimensional bounding boxes having detection scores that are highest in relation to the object tracking output.
The present embodiments provide superior accuracy in object localization by using a variety of cues. In addition, the localization is more stable due to the use of dense tracking and intensity alignment for pose computation, and is performed more quickly because motion segmentation and complex inference are not used.
Referring now to
Referring now to
For intensity-aligned object pose computation 202, an object's pose is defined by the vector Ω=(x0, z0, ψ, θ, φ, h)T, where x0 and z0 are coordinates of the object's origin in the camera's coordinates, corresponding to the center of the line where the back plane of the object intersects the ground, ψ, θ, and φ are pitch, roll, and yaw angles of the object, and h is the height of the camera from the ground plane. Given an object pose at time t, the pose at time t+1 is determined as the one that best aligns the intensities I at all pixels in the projected image according to:
where πΩstands for the projection of a 3D point in object coordinates to the 2D image plane.
Epipolar-guided dense tracking 204 estimates TV-L1 regularized optical flow between frames t and t+1. Flow estimation is performed only within the detection bounding boxes to maximize computational efficiency. The optical flow vectors are constrained to satisfy epipolar geometry. This is used to reduce the optical flow problem from a two-dimensional search to a one-dimensional search. The feature tracks are validated and triangulated. The optical flow problem may be expressed as:
E=∫
Ω
[λ|I
0(x)−I1(x+p0+up)|+∇up]dx
where x is an image location, p0 is a point on the image, p is the direction of an epipolar line through p0, and u is the distance along the epipolar line.
Referring now to
ε=ε′SFM+λoε′obj+λpε′prior
where ε′SFM is a cost from SFM, ε′obj is a cost from object bounding boxes, and ε′prior is a prior from the combined smoothness and object size priors. Exemplary parameter values may be λ0=0.7 and λp=2.7. The quantity ε′obj is defined as:
ε′obj=ε′box+λdε′det
where ε′box is an object bounding box error, ε′det is a detection cost, and the parameter λd has an exemplary value of 0.03. The quantity ε′prior is defined as:
ε′prior=ε′smooth+λsε′size
where ε′smooth is a trajectory smoothness prior, ε′size is an object size prior, and an exemplary value for the parameter is λs=0.03.
3D Object localization 112 uses SFM cues 302, bounding box cues 304, and object detection cues 306. Finding object localization cost from SFM cues in block 302 tracks i=1, . . . , N objects in a scene, with j=1, . . . , M features on each object to be tracked in frames t=si, . . . , ei, where si and ei are the first and last frames of the object i. Then, if ūjt=(ūjt,
where u and v are the coordinates of a 2D pixel on the image plane.
Defining N=[nα, nβ, nγ], where nγ=(−n1, n3, −n2)T, nβ=−n, and nα=nβ×nγ, then given a 3D point {tilde over (x)}0 in the object coordinate system, the transformation from object to camera coordinates is given by {tilde over (x)}c=PπPψ{tilde over (x)}0, with:
where ωψ=(0, ψ, 0)T and [.]x is a cross product matrix. The formulation to project a 3D point {tilde over (x)}0 in the object coordinate system is then given by the homogeneous relation:
λũ=K[I|0]PπPψ{tilde over (x)}0
where λ is an unknown scale factor and K is a 3×3 intrinsic camera calibration matrix.
Determining an object localization cost from 2D bounding box cues 304A set of tracklets is considered input for the localization, where a tracklet is an object track. The 2D bounding box cost for localization is given by:
where bi(t) is the 2D projection of the 3D bounding box and Di(t) is the 2D bounding box from tracking. Given the eight corners of the bounding box, vi, then their projections qi are:
λit{tilde over (q)}it=K[I|0]PπtPψt{tilde over (v)}i, i=1, . . . , 8
where λit are the homogeneous scale factors. Then define:
For a 3D bounding box with vertices v1, . . . , v8, the corresponding image points are q1, . . . , q8, where each qi is a 2D pixel on the image plane represented by two numbers, (pi, qi).
Object localization cost from object detection cues 306 makes the present embodiments not solely dependent on tracking output. Using s(.) as a function to compute the detection score of a bounding box, the detection term is:
where bit is the projection of the respective estimated 3D bounding box.
To build the detection score function s(.) without running the detector, the detection score is computed by fitting a model. The detector provides several candidate bounding boxes and their respective scores. The model is a mixture of Gaussians. At each frame, 4×4 full rank covariance matrices Σm are estimated centered at μm as:
where εmn=bn−μm, M is the number of objects, and N is the number of candidate bounding boxes, where the dependence on k has been suppressed for the sake of convenience. Am is the amplitude of the Gaussian, μm is the Gaussian's mean, εmn is the distance from the mean, Σm is the covariance, and δn is a score approximated by this sum of Gaussians.
It should be understood that embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in hardware and software, which includes but is not limited to firmware, resident software, microcode, etc.
Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.
A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Referring now to
The foregoing is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. Additional information is provided in Appendix A and Appendix B to the application. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that those skilled in the art may implement various modifications without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.
This application claims priority to provisional application No. 61/948,981, filed Mar. 6, 2014, and provisional application No. 62/128,347, filed Mar. 4, 2015, and the contents thereof are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61948981 | Mar 2014 | US | |
62128347 | Mar 2015 | US |