User Tools

Site Tools


user:deniz001

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
user:deniz001 [2021/02/18 20:26] – [4. Object Tracking] deniz001user:deniz001 [2021/08/24 17:35] (current) – external edit 127.0.0.1
Line 108: Line 108:
 == Type of object trackers: == == Type of object trackers: ==
  
-Offline learning trackers are used when we have a recorded media, in that case we use also the future frames to make tracking predictions. While online trackers can only use the past frames to model the appearance , and the motion models of the object for tracking estimations.+**Offline learning trackers** are used when we have a recorded media, in that case we also use the future frames to make tracking predictions.
  
-Online learning trackers train itself to learn about the object which is initially selected by drawing a bounding box around that object and the bounding box is inputted to the tracker for learning. Those trackers use an array of frames, starting from the initial frame until the frame that is one before the current frame.+**Online learning trackers** train itself to learn about the object which is inputted to the tracker for learning by drawing a bounding box around that object. Those trackers use an array of frames, starting from the initial frame until the frame that is one before the current frame.
  
-So I had to decide to use one of the options:+A decision has to be made:
   - Use an online tracker that could train itself.   - Use an online tracker that could train itself.
   - Use an offline tracker that has been already trained.   - Use an offline tracker that has been already trained.
-  - Train an offline tracker to identify the only drones.+  - Train an offline tracker to identify only the drones.
   - Train an offline tracker to identify drones and many other objects.   - Train an offline tracker to identify drones and many other objects.
  
-Offline trackers do not need to learn anything during the tracking process, that sounded faster but training is not an easy task because we can never train a CNN for every possibility. However, online learning trackers may just learn about the object that we are interested in at that moment, for example the object may be red and the background may have no red color, in this case it will so easy to track the object, in the opposite case it may be challenging. This is not a physics problem that we can explain and formulate using mathematics but rather an engineering problem that requires experimenting, therefore, I have decided to implement several tracking algorithms which the user can decide what to use in different scenarios. +Offline trackers do not need to learn anything during the tracking process, that sounds faster but training is not an easy task because we can never train a CNN for every possibility. However, online learning trackers may just learn about the object that we are interested in at that moment, for example the object may be red and the background may have no red color, in this case it will be so easy to track the object, in the opposite case it may be very challenging. This is not a physics problem that we can explain and formulate using mathematics but rather an engineering problem that requires experimenting and many trackers have its advantage in different cases, therefore, I have decided to implement several tracking algorithms which the user can decide what to use in different scenarios. 
- +
-Most of the traditional trackers that are available in OpenCV are not based on Deep Learning. (KCF is the best one) +
-  +
-CNN(Convolutional Neural Network) based offline trackers: GOTURN +
-CNN(Convolutional Neural Network) based online trackers: MDNet(Multi domain network) best DL based +
- +
-Tracking algorithms available: +
-  * __**Boosting Tracker:**__ A real-time object tracking based on a novel online version of the AdaBoost algorithm. The classifier uses the surrounding background as negative examples in update step to avoid the drifting problem. +
-  * __**MIL Tracker:**__ +
-  * __**KCF Tracker:**__ +
-  * __**KCF Tracker:**__ +
-  * __**KCF Tracker:**__ +
-  * __**KCF Tracker:**__ +
-  * __**KCF Tracker:**__ +
-  * __**KCF Tracker:**__+
  
 +I have been implementing various tracking algorithms and will continue to work on this for the future. For more information, updates, and when to use which algorithm please feel free to check the gitlab page that I provided in this document.
 ==== 5. PID Controller ==== ==== 5. PID Controller ====
  
Line 140: Line 126:
  
 The output of the tracking algorithm is a bounding box that represents the location of the object that we track, that is the drone object. Using the output of the tracker the error, that is the distance between the center of the current frame and the center of the drone object in the current frame, is calculated and this error is the input to the PID controller which tells the PTU(Pan and Tilt Unit) in which direction to move in order to put the object in the center of the current frame. The output of the tracking algorithm is a bounding box that represents the location of the object that we track, that is the drone object. Using the output of the tracker the error, that is the distance between the center of the current frame and the center of the drone object in the current frame, is calculated and this error is the input to the PID controller which tells the PTU(Pan and Tilt Unit) in which direction to move in order to put the object in the center of the current frame.
 +
 +==== 6. References ====
 +
 +
user/deniz001.1613676417.txt.gz · Last modified: 2021/08/24 17:34 (external edit)