Determining if a feature is part of a moving object from sparse optical flow (KLT)

你。 提交于 2019-12-08 03:17:13

问题


I have done extracting optical flow from a sequence of images using KLT. The camera is on a moving vehicle capturing traffic scene. Now, I can obtain the matching results with no mismatched points.

I just use the OpenCV functions (C++) to extract features and tracking. I have no problem with programming though.

cvGoodFeaturesToTrack(), cvFindCornerSubPix(), cvCalcOpticalFlowPyrLK()

Can anybody suggest what topic/paper should I look into to distinguish if the matched points I have are part of a moving object or not? I dont want to recover camera motion. Only to check whether the point is from a moving object or not.

I have no external resource like rangefinder or other sensors, but I know the velocity of the car (mounted a camera) and the angle where the camera is fixed on a vehicle if it tilts up or down the road. (I dont know yaw rate though)

Checking the direction and distance of optical flow are not sufficient. For example, Optical flows of vehicles moving on the opposite site oftentimes are similar to stationary features, or vehicle moving with equivalent speed as the camera.

Which topic I should study to handle this? If I have to choose between FOE or Kalman filter or else? I wonder if RANSAC would help. (I have read several academic papers but seem to be in a bad luck. I skimmed through Kalman filter but not sure how this could help. Also I found resource on FOE quite limited especially in text book)

I appreciate every answers. Thank you very much (sincerely)


回答1:


Not sure if this considers inappropriate to answer my own question. But, since no one answers this question and I have done some research works, not a success story though, I think I'd better share some. It might be helpful for those who have the same problem.

I have a sequence of images capturing urban traffic scene. The images are captured using a smartphone on a moving car every 0.5sec.

For testing purpose, I use only a few pairs of images for testing instead of the whole sequence. I obtained a number of matched points using KLT and performed a two-step outlier removal. The matched results are good, none or very few number of mismatched.

In order to reject points on moving objects, I followed the work presented in the paper below:

Jung, B., and Sukhatme, G.S., 2004. "Detecting moving objects using a single camera on a mobile robot in an outdoor environment" (a revised version presented in a journal is titled as "Real-time motion tracking from a mobile robot")

To summary, in part of their work, they reject the outliers (moving objects) by computing a transformation model between pairs of images. The work used a bilinear model. The procedure is that they compute the transformation model parameters T and rejects the matched if |x2 - T(x1)| < threshold. Here, x2 and x1 mean a pair of corresponding point on the image at time t2 and t1.

I have tried T as affine model, bilinear model, and pseudo-perspective model. My experimental results show that if a number of moving objects are not small, this procedure will always fail as they rely on the the matched points. In my case, the images are captured on urban traffic scene which has a lot of moving objects. Therefore, I cannot discard outliers by this technique. So, I believe that RANSAC will not help as well. That's why a lot of papers assume a small number of moving objects. Among these three models, I found that affine shows show worst result but cannot say which one is better among the other two.

I hope this may help.



来源:https://stackoverflow.com/questions/13289578/determining-if-a-feature-is-part-of-a-moving-object-from-sparse-optical-flow-kl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!