user:deniz001
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user:deniz001 [2021/02/18 19:19] – [2. Image Augmentation] deniz001 | user:deniz001 [2023/01/05 14:38] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 48: | Line 48: | ||
In object detection we aim to find an instance of an object of a certain class in an image or a frame of a video stream and output the bounding box coordinates of that instance. In our case, one of our drone from our laboratory is an instance of the drone object. | In object detection we aim to find an instance of an object of a certain class in an image or a frame of a video stream and output the bounding box coordinates of that instance. In our case, one of our drone from our laboratory is an instance of the drone object. | ||
- | Object detection can be achieved using machine learning and deep learning based algorithms. In machine learning approaches we need to feature engineer in order to define features. While in deep learning, we do not need to manually define the features but rather the CNN(Convolutional Neural Network) finds its way to define the features. | + | Object detection can be achieved using machine learning and deep learning based algorithms. In machine learning approaches we need to feature engineer in order to define features. While in deep learning, we do not need to manually define the features but rather the CNN(Convolutional Neural Network) finds its way to define the features. In conclusion, the deep learning approaches do not require feature engineering and give better results, therefore I decided to use deep learning in the object detection step. |
Example of Machine Learning approaches: | Example of Machine Learning approaches: | ||
Line 77: | Line 77: | ||
== Why not using tracking by detecting in each frame? == | == Why not using tracking by detecting in each frame? == | ||
- | * There can be multiple objects entering and exiting the scene of the camera over time in frames, in that case there is no possibility to match or connect the objects in the current frame with the previous frames that the camera was recording in the past. | + | * There can be multiple objects entering and exiting the view of the camera over time in frames, in that case there is no possibility to match or connect the objects in the current frame with the previous frames that the camera was recording in the past. |
- | * The object may suddenly go out of the camera' | + | * The object may suddenly go out of the camera' |
* There can be blur or noise in the frames due to the motion of the object or camera, that is why the object may look very different so the detection would fail again. | * There can be blur or noise in the frames due to the motion of the object or camera, that is why the object may look very different so the detection would fail again. | ||
- | * The object may have a very viewpoint | + | * The object may have a various viewpoints |
+ | * The object may go far away from the camera | ||
* Low resolution, the number of pixels | * Low resolution, the number of pixels | ||
- | * Tracking algorithms are faster than object detection | + | * Tracking algorithms are faster than object detection |
+ | * There can be obstacles where the object ,that the system suppose to track, may hide behind another object. | ||
==== 4. Object Tracking ==== | ==== 4. Object Tracking ==== | ||
- | By object tracking we can uniquely identify an object instance, | + | By using an object tracking |
- | + | ||
- | + | ||
- | The goal of an object tracker is to locate a moving object by estimating the location of the target object in the future frames and check if the object in current frame is the same as the one which was in the very previous frame. | + | |
Tracking process goes by first initially defining a bounding box of the target object. | Tracking process goes by first initially defining a bounding box of the target object. | ||
+ | |||
+ | A good tracker must model the motion, and appearance of an object and detect the motion space to localization the object in the future frames using the knowledge from the past frames. | ||
== Motion modelling == | == Motion modelling == | ||
- | Objects do not randomly move in the space but rather they have moving characteristics and | ||
- | patterns which can be modeled. | ||
- | movement prediction model to remember how the object moved in the past frames so that we can predict the next possible location space of the object. | ||
- | An object tracker tries to understand and model the motion of an object mostly in the pixel level, that is called the motion model. it can estimate the location of an object in the future frames that would reduce the size of the image that the tracker looks for the object. | ||
- | == Appearance Modelling == | + | Any object do not randomly move in the space but rather they have moving characteristics and patterns which can be modeled. |
- | A good tracker must understand the appearance | + | Therefore, a successful object |
- | == Motion Detection | + | == Appearance Modelling |
- | A good tracker must learn to estimate | + | An instance of an object has also an appearance characteristics. |
+ | A good tracker must understand | ||
- | == Object Localization == | + | To sum up, if the tracker |
- | Focus the attention on the region of interest in the frame. Data reduction | + | |
- | A good tracker uses the motion estimation and figures out the possible region where the target may be locating in the current frame and scan this area using the model that the tracker | + | |
- | Offline 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 | + | == Type of object |
- | Online | + | **Offline |
- | Offline | + | **Online |
- | Most of the traditional trackers | + | A decision has to be made: |
- | + | - Use an online tracker | |
- | CNN(Convolutional Neural Network) based offline | + | - Use an offline tracker that has been already trained. |
- | CNN(Convolutional Neural Network) based online trackers: MDNet(Multi domain network) best DL based | + | - Train an offline |
+ | - Train an offline tracker to identify drones and many other objects. | ||
- | Tracking algorithms available: | + | Offline trackers do not need to learn anything during the tracking |
- | * __**Boosting Tracker: | + | |
- | * __**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, | ||
==== 5. PID Controller ==== | ==== 5. PID Controller ==== | ||
Line 136: | 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.1613672343.txt.gz · Last modified: 2023/01/05 14:38 (external edit)