Determining Moving Objects from Forward Motion Video Nick Hirsch: Progress Report
Determining Moving Objects from Forward
Motion VideoNick Hirsch: Progress Report
• Track features from frame to frame using KLT
• Calculate their optical flow.
• Determine Focus of Expansion• The center that all other points seem to expand from
when moving forward.
• Determine which points aren’t expanding outward from the Focus of Expansion.
Overview of the Technique
Track Features
(KLT)
Calculate Optical Flow
Compare to FoE Direction
FieldUpdate FoE
Stationary Objects Expand OutwardAs you can see, the pixels belonging to stationary objects move along the lines emanating from the FoE.
Pixels belonging to moving objects often don’t expand outward
• Green Arrows = Moving• Red Arrows = Stationary
Jan Prokaj handed his code over to me. Attempted to reproduce Jan’s results.
◦ His algorithm relies on the video being jitter free.◦ His estimate of the Focus of Expansion was highly
inaccurate.
Recent Progress
Jan’s Results: Noisy calculation of the Focus of Expansion using the Fundamental Matrix
Blue Square – Current estimate of Focus of ExpansionYellow Square – Smoothed estimate of Focus of Expansion
We can assume most objects in the given video are stationary and their pixels expand outwards from the FoE.
To find the true FoE(yellow) given the optical flow vectors(black), start with a hypothesized FoE(green), generate some neighbor FoEs, calculate their energy, and update the hypothesis FoE.
Alternate Methods for Determining Focus of Expansion From Optical
Flow Vectors
We assume all pixels should be traveling radially outward from the Focus of Expansion.
To calculate an updated FoE, we want to minimize the SSD of the direction that feature Fi should be traveling.
Minimizing an Energy Function
wi – The magnitude of the feature point I◦ I use this weight because features with larger
magnitudes are often more accurate. ThetaFoE,i – The direction of the FoE field at i Thetai – The direction of the feature point
The Energy Function
Another way to find the FoE is to try to solve for the intersecting point of all the optical flow vectors.
To do this, I convert the optical flow vectors into homogenous lines, creating an Nx3 matrix, then I perform the Singular Value Decomposition on it. The resulting right vector of the Nx3 matrix gives me the point where the lines all intersect.
Yet Another Method for Finding FoE
Improved estimate of the FoE by Combining both methods
An Example Containing More Noise
To further improve my estimation of the FoE, I’m going to use RANSAC to weed out the outliers amongst the optical flow vectors.
Next, I’d like to determine a good method for clustering vectors classified as moving.
Further Areas to Improve Upon