title: Object Tracking Using Open CV
body: <p>I am planning to do a project which involves tracking various kinds of objects (including people, vehicles, etc) from the video input of a CCTV camera. I am intending to use OpenCV. The implementation should be tolerant to occlusion and should be able to recognize and continue tracking objects even if they exit the frame and re-enter after a while. Also new entries into the frame should be identified automatically and tracked and I need to extract the positions of the objects over time. Since there are a lot of options available, I am actually confused. Can somebody suggest the best way forward. I have already tried the following:</p>
  
  <ul>
  <li>I tried using the Tracking API of Open CV and tried out all of the following algorithms: MIL, TLD, BOOSTING, MEDIANFLOW. But none of them seem to be accurate enough.</li>
  <li>I also know about the Kalman Filter. But it cannot handle the problem of recognizing a previous object that has re-entered the frame from a different position. I would prefer a solution that incorporates this feature too.</li>
  <li>I tried out Camshift. But it requires specification of intensity ranges. Since the actual setup of the CCTV installation is not known before-hand, this is not an option either.</li>
  <li>I also looked up the HOGDescriptor class. But it does not provide a facility for tracking directly right? I mean only detection is performed.</li>
  </ul>
  
  <p>Are there better solutions that are more suitable to the problem at hand than the ones mentioned above? Are there any ways to improve the accuracy of the Tracking algorithms? And are there ways to improve on the solutions that I have already considered? Please help to solve my confusion.</p>