The UAV Detection and Tracking project aims to identify and monitor unmanned aerial vehicles (UAVs) using advanced object detection and tracking techniques. It utilizes TensorFlow2 Object Detection API with a finetune of TensorFlow's 'faster_rcnn_resnet101_v1_800x1333_coco17_gpu-8' model.
-
Fine-Tuned Object Detection Model: Utilizes a fine-tuned version of the TensorFlow Faster R-CNN ResNet101 model, optimized for detecting UAVs.
-
End-to-End Pipeline: Includes tools for model preparation, video frame extraction, data conversion, and tracking.
-
Tracking and Visualization: Implements a Kalman filter for trajectory tracking and generates visualizations to show the UAV’s path.
-
download_model.py: Used to fetch the pre-trained model from the TensorFlow model zoo.
-
vids_to_frames: Extracts frames from video and saves them in a given directory using OpenCV.
-
XML_To_TFRecord.py: Converts XML annotation files into TensorFlow’s TFRecord format, which is required for training and validation of the detection model.
-
model_main_tf2.py: Contains a slightly modified TensorFlow 2 training loop tailored for fine-tuning the object detection model. Manages the training process, including model checkpointing and evaluation.
-
UAV_FasterRCNN.py: Used for inference with the fine-tuned Faster R-CNN model. Performs object detection on new video frames, identifying UAVs and generating bounding boxes around detected objects.
-
kalman_filter.py: Implements the Kalman filter algorithm to track the trajectory of detected UAVs. Processes the detection results and compiles them into a video with a line tracing the UAV’s movement, providing a visualization of its path.
Both videos are available in this repo's /kf_vids directory.
output1_mp4.mp4
output2_mp4.mp4
More samples are available in this repo's ./detections directory.
Demo #1 | Demo #2 |
---|---|
This project includes performance metrics to evaluate the effectiveness and accuracy of the UAV detection and tracking system. These metrics are visualized through a series of plots, displaying key metrics such as classification loss, localization loss, and learning rate.