I'm working with a object tracking project.


  1. Preprocessing the image and achieve some candidates regions of interest.

  2. For each region, test if it is the target by ORB/BF.

  3. After the target region determined, acquire coordinates of some points on the target and their corresponding coordinates in the world coordinate system.

  4. Use solvePnP(in opencv) to get rotation vector and translation vector.

  5. Translation vector is used in VR for localization and view control.

Tracking jitter means, although the object is stationary, because of some tracking errors, such as noise, the position of the target is slightly changing. Then, look at step 4 and step 5, due to the change, translation vector is slightly changed and with the Head Mounted Device, I feel the jitter all the time.

Seems to me that tracking jitter is unavoidable because of change in environment or some noise. But one pixel value change can lead to about a few centimeters change in z value in translation vector. So any proper way to deal with it?

I have googled but there didn't seem much information. Effects of Tracking Technology, Latency, and Spatial Jitter on Object Movement mentions the phemomenon, but did not provide a solution. So can anyone offer some useful information?

It occurs to me that filtering is needed to do some post processing to the tracking data. But the idea is not very idea. Kalman filter can be used for tracking and can be used to attenuate noise. I don't know whether it can compensate for this kind of jitter (I mean, very small fluctuation in values) very well. And investigate how to incorporate Kalman filter into this project is another topic and need extra time.

  • $\begingroup$ ORB means ORB features and BF means Brute Force Matching. In step 2, for each candidate region, calculate the ORB features and use bruteforce matching to compare it with the template pattern. If there are enough(by number and ratio) matches(corresponding feature points in the template and current region), then this candidate region is considered a target. $\endgroup$ – dudu Oct 11 '17 at 1:55
  • $\begingroup$ I cannot give you raw data because I'm off this case now. Kalman filter was once an option, but we solved the problem with an easier solution. Use opencv subpixel. That simply solves it. I have also tried upsampling and then downsampling. Now I cannot remember the result of the experiments. $\endgroup$ – dudu Oct 11 '17 at 2:02
  • $\begingroup$ There are two reasons we didn't do the smoothing. First, we were processing the images on embedded systems. Resources are really limited and something like Gaussian filter costs a lot. The situation is, even with image resolution 640*480, the numbers of frames processed can drop a lot with Gaussian smoothing. Second, with smoothing, there is a chance that the target zone being connected with outer zone. $\endgroup$ – dudu Oct 14 '17 at 3:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.