Awesome
Satellite/Aerial Imagery_Detection
Build a model capable of detecting and classifying objects from a Satellite/Aerial/Overhead Imagery Data.
Objective of this notebook
- The purpose of this notebook is to build model capable of detecting and classifying objects from aerial imagery
- The algorithm of choice here is YOLOV7 and we would be custom training YOLOV7 on an aerial imagery datatset
- Details of the Problem Statement , Data Set , Data Pre-processing & Splits, Architecture/Algorithm , Summary of the Code/Solution , Sample Output/Prediction from the program and Final Result of the project are listed in the sections to follow.
Problem Statement
Computer vision enables armed forces to optimise their missions, enhance the security of soldiers and protect citizens by using oject detection on satellite imagery to detect unusual activities at the borders.
Data Description:
- Data Set: xView1 Dataset https://challenge.xviewdataset.org/data-explore
- Total No Of classes in the entire dataset = 60 - some examples include are Small Aircraft,Cargo Plane,Pickup Truck,Container Ship,Oil Tanker,Helicopter,Crane Truck e.t.c
- Total No Of Image Files = 847
- Total no of Instances/Objects across all images= 6,01,937
Domain:
Defence Surveillance
Data Pre-processing & Splits:
-
The xView dataset contains labels in the format of a geoJSON file. As part of the pre-processing , we converted the the labels from geoJSON(xView_train.geojson) format to YOLOV7 label format.
-
YOLOV7 has a specific label format wherein there will be one label file for each image file and the format of the label file will be as follows class|xcenter|ycentre|width|height for each bounding box in that image and labels were generated in this format
-
A subset of data was taken catering to the follwoing 4 classes
-
The Train and Validation splits were done in a 80:20 split respectively and the details are as follows
Architecture/Algorithm:
YOLOV7 by https://github.com/WongKinYiu/yolov7
Summary of the Solution/Code:
The code aims at custom training YOLOV7 on the xView dataset
- In this notebook we first Explore/Sanity test on YOLOV7 API as is and run some general inferences to validate setup
- We then Custom Train this YOLOV7 API on XView Data for 151 epochs
- We log the mAp score and F1 scores
- Run inferences on some images from validation split
Sample Ouput/Prediction :
Here is a couple of sample Ouput images from the program/model .
Result
Extension
- Some classes performed well while some very poorly .Classes such as small aircraft & helicopter performed poorly compared to Passenger/Cargo flight class.
- Excerpt from final report below