I am currently working on integrating an object tracking algorithm of my own making into the Mission Planner. The algorithm combines Lucas-Kanade and SURF and attempts to learn negative and positive reinforcement values as it runs. Right now it is in the early stages of development, but I hope to have something fully functional within a few months.


My hope is to use this to aid in automatic centering of the tracked object by sending commands to the APM to move the camera gimbal based on the distance of the tracked object from the center of the frame. In the videos below you will see two demonstrations of this tracking algorithm. In both cases it seems to perform well with background noise.


NOTE: I apologize for the terrible frame rate of the videos. I don't have very good screen capture software. The second video is a little higher quality.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Developer

    Hm... well if there is enough interest I can just buy one and get that going. I'll post progress on that as soon as I get one.

  • @adam

    Where do I post it???
  • Developer

    Chuck: This can certainly be adapted for that. If someone wants to buy me one of these I will be happy to write my code to work with that as well. :-D

  • I'm in with Yusuf.

    I want to film my planes, from the ground.  I have no friends to hold the camera.



  • Thanks I cant wait to try it out!

  • Developer

    Ben: I know what you are saying about the resolution. I'll try to find some really low res video just for you. :-) I would use the one that you linked to, but it is edited in a way that a sequence only lasts like 2 seconds.

  • Developer

    Also, I have no experience in Matlab/Octave, so it became very difficult for me to understand the code and to debug the issues I encountered. I figured it would be good experience just to write my own and see what happens. So far I have been pleasantly surprised with the performance. I work to improve it daily.

  • Developer

    Yusuf: I have seen OpenTLD. It is amazing! Unfortunately it has heavy dependencies on Matlab. I did compile and run in using Octave (a Matlab alternative) but it is a bit buggy at the moment. My approach to object learning is similar to what is used in OpenTLD, but it is not quite as sophisticated. Perhaps as I develop this I will be able to come closer to the performance of OpenTLD. If someone successfully removes the dependencies on Matlab, and I haven't gotten any further writing my own, I would certainly integrate it.

  • The problem with that video (and most posted FPV videos) is that (I think) it does not ncontain the actual video source as received in real-time on the ground but instead the on-board recording, which is not only in higher definition but also does not include any of the glitches associated with the radio video transmission you'd have to work with in real-time...


    Then again, looking at some of trappy's footage (e.g., there aren't necessarily as many glitches as I originally expected. You can tell it's lower resolution and recoreded via a lower quaility lens/camera but the noise isn't too bad at all. So perhaps (and I sure hope so) this is not a big issue at all.


  • Adam, i think this is great, as i have been looking for someone to either use the OPENTLD software or use their own. As i would like to also track a flying device and use it to move the filming camera at the object, for self filming and antenna following. So if you have not seen the OPENTLD then go here..

    OpenTLD is an open source library for real-time 2D tracking of a single object in video. This repository is no longer under development. For latest v…
This reply was deleted.