Final Project Report
Final Project Report
A
MINOR PROJECT
ON
Mr. Bhawani Singh Rathore Mrs. Kavita Chaurasia Dr. Divakar Singh
Project Co-ordinator Project Co-ordinator Project Guide and HoD
CSE Department, UIT, CSE Department, UIT CSE Department, UIT,
BU, Bhopal BU, Bhopal BU, Bhopal
UNIVERSITY INSTITUTE OF TECHNOLOGY,
BARKATULLAH UNIVERSITY, BHOPAL (M.P.)
Department of Computer Science & Engineering
CERTIFICATE
YEAR - 2024
This is to certify that Mr. Ajay Kumar, Mr. Harshit Bhangre, Mr. Kartikay Latoriya
& Mr. Priyanshu Singh have successfully completed this project work titled
“DEFENCE SYSTEM ASTRA” in the partial fulfillment of the requirement for the
award of the degree of Bachelor of Technology in Computer Science & Engineering in
the year 2024 from University Institute of Technology, Barkatullah University, Bhopal.
DECLARATION
YEAR - 2024
This is our original work that has not been submitted earlier for the award of any other
degree, diploma or any other certificate.
Ajay Kumar
Harshit Bhangre
Kartikay Latoriya
Priyanshu Singh
ACKNOWLEDGEMENT
“Genius is one percent inspiration, ninety-nine percent perspiration”. With this quote of Thomas
Alva Edison, I offer my deepest respect and heartfelt gratitude to my teachers, Mr. Bhawani
Singh Rathore and Mrs. Kavita Chaurasia, whose precious contribution of this one-percent
inspiration enlightened the way of ninety-nine percent perspiration for me. Their belief in me is
the founding stone of my project’s success.
Nextly, I cordially express my gratitude towards our HoD sir, Dr. Divakar Singh, whose
optimism and words of continuous motivation led me in sailing through the difficulties of this
project. His words always reminded me of my strength, which I incorporated in my endeavour to
tackle the hard times.
I am thankful to our director sir, Prof. N.K. Gaur, who facilitated this supportive and
encouraging team of erudite professors to mentor us through the thorny path of this minor project
titled “DEFENCE TECHNOLOGY ASTRA”.
Further, I am deeply grateful to all my teammates whose dedication and collaborative endeavour
paved the way of success of this project. It was their constant diligence that made this project
transit on the grounds of reality from my imagination.
Lastly, I express my thankfulness to all the critics whose comments helped in the evolution of
our project and made our project more efficient and fruitful indeed.
Submitted By:
Priyanshu Singh
ABSTRACT
Through this minor project, we are introducing an innovative drone technology to be deployed in
defence sector. We have titled our project as “ASTRA”. ASTRA stands for Advanced Self
Target Recognizer and Attacker. This project aims towards improving the existing drone
technology in the defence sector to detect and eliminate threats in the warzone. ASTRA
strengthens the whole operation by eliminating the previous approach of neutralizing the enemy
or threat by the drone itself.
ASTRA handles the critical situation by scanning, detecting and analyzing threats in an area and
then sending command to the nearest defence system resulting in no harm to the drone itself. It
reduces the overall cost of operation to a great extent. This helps in making the operation more
efficient, reliable, stealth, secure and agile.
I
LIST OF FIGURES
II
LIST OF ABBREVIATIONS
5. AI Artificial Intelligence
III
TABLE OF CONTENTS
ABSTRACT I
LIST OF FIGURES II
CHAPTER – 1: INTRODUCTION
2
1.1 Purpose / Objective
1.2 Existing Systems 2
1.3 Proposed Technology 6
CHAPTER – 5: CODING
13
5.1 Resizing Training Images to 640 x 640 Pixels
5.2 Resizing Validation Images to 640 x 640 Pixels 25
5.3 Cloning Github Repository of YOLOv5 31
5.4 Modifying ‘coco128.yaml’ File of YOLOv5 31
5.5 Uploading Modified File as ‘custom_data.yaml’ on Google Colab 32
5.6 Training YOLOv5 on Custom Data 32
5.7 Detecting Enemy in Given Source Video 32
5.8 Nearest Weapon System Detection 34
5.9 Plotting Weapon Systems and Detected Target 35
5.10 Firing Angle Calculations 37
6.3 Visualization 45
6.3.1 Matplotlib
CONCLUSION 50
REFERENCES 51
CHAPTER – 1
CHAPTER – 1
INTRODUCTION
ASTRA (Advanced Self Target Recognizer and Attacker) is a revolutionary defence technology.
It intends to make the drone technology in defence sector stealthier, agile and quicker. Stealth
and agility are acquired by reducing the size of drone and eliminating the need for carrying
warheads. The response time is reduced by deploying the Automatic Target Recognizing (ATR)
technique to automate the decision-making process in real time for neutralizing the enemy in
order to protect and secure our territorial interests in terms of external security threats in border
patrolling areas of India. AI as an emerging state-of-the-art technology finds its application here.
COMPACT SIZE:
Because of the absence of payload, ASTRA is comparatively smaller in size than the existing
drones in defence sector. It does not carry any warhead, thus it can be easily piloted without any
turbulence or hindrance.
NON-SUICIDAL:
The non-suicidal aspect of ASTRA makes it eligible for reuse in multiple operations. This reduces
the cost of production to a great extent.
Being very light-weight, the flight time of ASTRA is greatly increased. Increased flight time
enables it to remain in the air for a longer period of time to precisely identify the target.
Absence of warheads reduces the need of powerful noisy engines in the drone which ultimately
reduces the noise generated during its operation.
STEALTHY OPERATIONS:
Operating a UAV in a restricted enemy area is a task which requires stealth as the detection of
UAV can lead to a compromise with the whole operation. Small size and low noise operation
makes ASTRA undetectable, thus making it a much better alternative to neutralize the enemies.
1
ECONOMICAL:
ASTRA eliminates the situation where the drone gets destroyed in completing the mission. This
helps in reuse of the drone, eliminating the need of producing more and more drones. Also, the
operational cost is greatly reduced.
In this world of growing technologies like generative AI, every technology is finding an
application with the concepts of Machine Learning and Deep Learning. With ever increasing
threats of border proliferation by non-state actors, it becomes an obliged necessity to develop
an innovative patrolling and retaliating solution. Hence, there is a need of a system which can
automate enemy detection and elimination process in real time without incurring large
expenditure on controlling units as well as make the technology more economically viable,
stealth and agile. This project intends to accomplish the task of automating enemy
neutralization by using ATR technique. This project will make the drone patrolling and
attacking system stealthier and quicker in elimination of enemies, especially in war zone
where the operations are highly time-sensitive and a delay of even a single second is
intolerable. Further it will reduce the cost of the drone production and operation by
eliminating the need of carrying warheads required to maintain in any battlefield.
At present, drone technology employs a full controlling unit comprising of flight controller,
enemy locator, warhead controller and aiming and attacking personnel. The controlling unit
maintains the data manually therefore chances of human errors are there. Some of the existing
systems are described as follows:
DRDO Ghatak also known as armed drone or weaponized drone, are UAVs equipped with
weapons for attacking enemy targets. Combat drones have become increasingly popular in
military operations due to their ability to provide precise and persistent firepower without
risking the lives of human pilots.
Combat drones are controlled remotely by human operators, who can either fly the drone
directly or program it to fly autonomously to a specific target. The drone can be equipped
with a range of weapons, including missiles, bombs, and guns, and can be used for a variety
of missions, such as close air support for ground troops, intelligence gathering, and targeted
strikes against enemy personnel and infrastructure.
2
Fig.1.1: DRDO Ghatak
Combat drones offer several advantages over traditional manned aircraft, including longer
endurance and the ability to fly at higher altitudes, making them less vulnerable to ground-
based air defences. They also have the ability to loiter over a target for an extended period,
providing persistent surveillance and waiting for an opportunity to strike.
Kamikaze drones, also known as suicide drones or loitering munitions, UAVs that are
designed to be used as a weapon. They are equipped with explosives and are designed to
crash into a target, detonating upon impact.
Unlike traditional drones that are remotely piloted and flown back to base after completing
their mission, Kamikaze drones are a one-time use weapon. They can be launched from a
ground-based or air-based platform, and can be controlled remotely or programmed to
autonomously track and engage a target.
3
Kamikaze drones have gained popularity in recent years due to their precision and low cost,
making them an attractive option for military and paramilitary forces. However, the use of
Kamikaze drones has also raised ethical concerns, particularly regarding the risk of civilian
casualties and the potential for misuse. As with any military technology, the use of
Kamikaze drones must be carefully considered and regulated to ensure that they are used
in a manner that is consistent with international law and human rights principles
Rustom 2 has a wingspan of 20 meters and can fly at a maximum altitude of 35,000 feet,
with a maximum endurance of 24 hours. It is equipped with a variety of sensors, including
electro-optical and infrared cameras and synthetic aperture radar, and a SIGINT system
allowing it to perform a range of missions, including reconnaissance, surveillance, and
target acquisition.
The Rustom 2 drone is also capable of carrying a variety of payloads, including guided
missiles and precision-guided munitions, making it suitable for both intelligence gathering
and attack missions.
The development of Rustom 2 is part of India's efforts to strengthen its unmanned aerial
capabilities, and the drone is expected to be used primarily by the Indian Armed Forces for
surveillance and reconnaissance missions.
4
1.2.5 SWARM DRONES:
Indian swarm drones refer to a concept in which multiple drones are deployed and operate
together in a coordinated manner. Swarming technology involves the synchronization and
collaboration of a large number of autonomous drones to achieve specific objectives. In
recent years, there has been growing interest in swarm drone technology in India, with
various research institutions, defense organizations, and private companies exploring its
potential applications. Swarms of drones have the potential to enhance military operations,
disaster response, surveillance, agriculture, and other sectors.
NewSpace Research and Technologies, an Indian startup, has developed this technology
of swarm drones. It is being supported by the Hindustan Aeronautics Limited for the
purpose of designing and delivering these swarm drones to the Indian Army.
These drones are suicidal drones that use the cutting-edge technology of AI to detect the
target. After detecting the target, the swarm of drones crashes itself into the target to
neutralize it.
5
1.3 PROPOSED TECHNOLOGY:
ASTRA does not carry any heavy warheads or substantive sensors. It uses deep learning
based target detection algorithm to detect the presence of enemy. After detecting the
enemy, it sends the approximate geolocation to the cloud. The application deployed at the
cloud always keeps a track of the geolocations of the artillery trucks or other weapon
systems that are in our possession. It then determines the nearest system and accordingly
calculates the projection angle or trajectory path relevant to the speed of missile. After the
calculations have been done, the application then sends a quick firing confirmation
message to the controlling personnel with the image of detected target. Upon confirmation
with the personnel, it automatically sends command to launch the missile at the location to
neutralize the target.
6
CHAPTER – 2
CHAPTER – 2
SOFTWARE AND HARDWARE REQUIREMENTS
2.1.1 YOLOv5:
➢ PyTorch
➢ OpenCV
➢ NumPy
➢ CUDA (optional)
➢ IPython
7
2.2 HARDWARE REQUIREMENTS:
2.2.1 YOLOv5:
➢ RAM: 8 GB or more
8
CHAPTER – 3
CHAPTER – 3
PROJECT DESCRIPTION
9
3.2 ER DIAGRAM:-
Fig.3.2: ER Diagram
10
CHAPTER – 4
CHAPTER – 4
INPUT & OUTPUT DESIGN
Input is given in the form of images or video. Several images were given as input to the system.
A few of them look liked like as follows before detection:
11
4.2 OUTPUT DATA:
The data given as input is analyzed by the detection models and points of interest are found out.
The output of above given data is as follows:
Fig.4.5
12
CHAPTER – 5
CHAPTER – 5
CODING
• Python programming language is used for coding purpose.
5.1.2 OUTPUT:
13
14
15
16
17
18
19
\
20
21
22
23
24
Fig.5.1: Output of resizing training images
25
5.2.2 OUTPUT:
26
27
28
29
Fig.5.2: Output of resizing validation images
30
5.3 CLONING GITHUB REPOSITORY OF YOLOV5:
31
5.5 UPLOADING THE CUSTOMIZED FILE AS CUSTOM_DATA.YAML
ON GOOGLE COLAB:
32
5.7.2 DETECTION OUTPUTS:
33
5.8 NEAREST WEAPON SYSTEM DETECTION:
5.8.1 CODE:
34
5.8.2 OUTPUT:
5.9.1 CODE:
35
5.9.2 OUTPUT:
36
5.10 FIRING ANGLE CALCULATION:
5.10.1 CODE:
37
5.10.2 OUTPUT:
Fig.5.6: Firing angles calculated for the system closest to the detected target
38
CHAPTER – 6
CHAPTER – 6
IMPLEMENTATION DETAILS
In this section, we will analyze the technologies to be used for the implementation of the project.
6.1.1 OPENCV:
Fig,6.1: OpenCV
OpenCV (Open Source Computer Vision Library) is a popular open-source computer vision and
image processing library. It provides various functions and algorithms to manipulate images and
perform tasks like object detection, image recognition, and video processing. It is a powerful
library that provides a wide range of functionalities for computer vision tasks. OpenCV allows
you to read, write, manipulate, and process images and videos. You can perform various
operations such as resizing, cropping, rotating, filtering, and blending images. Additionally, you
can access individual pixel values, apply transformations, and extract information like contours,
edges, and histograms. It supports reading and writing images and videos in various formats,
including popular formats such as JPEG, PNG, BMP, and TIFF. It provides functions to capture
video from webcams or other video sources and save the output as a video file. It includes
methods for detecting and extracting features from images, such as corners, blobs, and key points.
These features can be used for tasks like image matching, object recognition, and tracking. It
offers pre-trained models and algorithms for object detection.
OpenCV provides integration with machine learning frameworks, such as TensorFlow and
PyTorch. This allows you to leverage the power of deep learning models for various computer
vision tasks, including image classification, object detection, and image segmentation. It supports
camera calibration, which involves estimating the parameters of a camera to correct for
distortions. It also provides functionality for 3D reconstruction, which involves creating 3D
39
models of objects or scenes using multiple images or video streams. It includes graphical user
interface (GUI) functions that enable you to create windows, handle mouse and keyboard events,
and display images and videos in real-time. These functions are useful for building interactive
computer vision applications.
6.1.2 YOLOV5:
Fig,6.2: YOLOv5
YOLOv5 is a state-of-the-art object detection algorithm that is part of the You Only Look Once
(YOLO) family. It is a deep learning-based approach that achieves high accuracy and real-time
object detection performance. YOLOv5 was developed by Ultralytics and builds upon the success
of previous YOLO versions. YOLOv5 adopts a single-shot detection approach, which means it
performs object detection in a single forward pass of the neural network. The architecture consists
of a backbone network, feature pyramid network, and a detection head. YOLOv5 uses a modified
version of the EfficientNet as its backbone. It is designed to detect and localize objects in an
image across different categories. It can handle multi-object detection scenarios where multiple
objects of different classes can be present in an image. YOLOv5 achieves this by predicting
bounding box coordinates and class probabilities for each detected object.
YOLOv5 is known for its balance between speed and accuracy. It achieves real-time object
detection performance on both CPUs and GPUs. The model is optimized for efficiency and can
achieve high accuracy while maintaining fast inference times. It provides pre-trained models
trained on large-scale datasets such as COCO (Common Objects in Context) and Open Images.
These pre-trained models serve as a starting point for object detection tasks and can be fine-tuned
on custom datasets for specific applications. It allows users to fine-tune the pre-trained models
on their own datasets. This enables the model to learn and detect objects specific to a particular
domain or application. Fine-tuning the model involves adjusting the weights through further
training using custom data. It provides utilities for training and evaluating object detection
models. It supports data augmentation techniques to increase the diversity of the training data and
improve model generalization. The models can be trained using various optimization algorithms
and loss functions, such as the popular YOLO loss.
YOLOv5 is implemented using the PyTorch deep learning framework. It can be seamlessly
integrated with OpenCV for image and video input/output, preprocessing, and post-processing
tasks. This integration allows for end-to-end object detection pipelines. Ultralytics provides
detailed documentation and examples on how to use YOLOv5, including tutorials on training
40
custom models and deploying them for inference. YOLOv5 comes in different model variants,
such as YOLOv5s, YOLOv5m, YOLOv5l, and YOLOv5x. These variants differ in terms of their
model size, complexity, and accuracy. Smaller variants like YOLOv5s are faster but may sacrifice
some accuracy, while larger variants like YOLOv5x are more accurate but slower. YOLOv5
models can be deployed and run on various devices, including CPUs, GPUs, and specialized
hardware like NVIDIA Jetson and Google Coral. This enables real-time object detection on
embedded systems and edge devices, making YOLOv5 suitable for applications that require on-
device inference.
6.1.3 PYTORCH:
Fig,6.3: PyTorch
PyTorch is an open-source deep learning framework that provides a flexible and efficient
platform for building and training neural networks. It is widely used for various tasks in artificial
intelligence and machine learning, including computer vision, natural language processing, and
reinforcement learning. PyTorch uses a dynamic computational graph, which means that the
graph is constructed and modified on-the-fly as the code is executed. This allows for more
flexibility and ease of debugging compared to static graph frameworks. You can define, change,
and execute operations dynamically during runtime. Tensors are the fundamental data structures
in PyTorch. They are similar to multi-dimensional arrays and can be used to represent scalar
values, vectors, matrices, or higher-dimensional data. Tensors in PyTorch support various
operations such as element-wise operations, matrix operations, and broadcasting. PyTorch
provides automatic differentiation, which allows you to compute gradients automatically for
tensors and operations. This feature is essential for training neural networks using
backpropagation. With PyTorch's automatic differentiation, you can easily calculate gradients
and update model parameters during the training process.
PyTorch provides a high-level abstraction called torch.nn for building neural networks. You can
define and organize network architectures using modules such as linear layers, convolutional
layers, recurrent layers, and activation functions. This modular approach simplifies the design
and implementation of complex networks. it supports GPU acceleration for efficient computation.
You can move tensors and neural network models to GPUs and take advantage of their parallel
processing capabilities. This enables faster training and inference for deep learning models. It
includes a model zoo that provides pre-trained models for various tasks, including image
classification, object detection, and language translation. These models have been trained on large
datasets and can be used as a starting point for transfer learning or as feature extractors.
PyTorch seamlessly integrates with other Python libraries such as NumPy and OpenCV. We can
41
convert tensors between PyTorch and NumPy arrays, enabling easy data interchange.
Additionally, PyTorch integrates well with frameworks like TorchVision for computer vision
tasks and TorchText for natural language processing. It supports distributed training across
multiple machines or GPUs. This allows you to scale up your training process and leverage the
computational power of multiple devices. PyTorch provides utilities and abstractions for efficient
distributed training and data parallelism.
PyTorch follows an eager execution model, where operations are computed immediately as they
are called. This enables intuitive and interactive development, as you can use Python control flow
statements and debug your code more easily. You can inspect and manipulate tensors and
intermediate results during the execution. It offers a high level of customization and flexibility.
You can define custom layers, loss functions, and activation functions by subclassing PyTorch's
base classes. This flexibility allows you to design and implement complex architectures and
experiment with novel network components. It includes TorchScript, a way to serialize PyTorch
models and execute them efficiently in production environments. TorchScript allows you to
export trained models, optimize them for inference, and run them in environments that don't
require the PyTorch Python runtime, such as mobile devices or embedded systems. supports
distributed training using DataParallel and DistributedDataParallel modules. These modules
enable efficient training across multiple machines or GPUs by splitting the data and model across
different devices. You can synchronize gradients and parameters, reducing the communication
overhead and speeding up training.
Fig,6.4: Python
Python is a high-level programming language known for its simplicity, readability, and
versatility. It was created by Guido van Rossum and first released in 1991. Python emphasizes
code readability and uses a clean and concise syntax that makes it easy to understand and write.
Python's syntax is designed to be human-readable, with a clear and expressive style. It uses
indentation and whitespace to define code blocks instead of traditional braces, which promotes
clean and well-structured code. It is considered a beginner-friendly language due to its simple
and intuitive syntax. It provides a gentle learning curve and a large standard library that offers a
42
wide range of built-in functions and modules for common programming tasks. It is available on
multiple platforms, including Windows, macOS, Linux, and various other operating systems.
This makes Python a versatile language for developing applications that can run on different
platforms without significant modifications.
Python is an interpreted language, meaning that the code is executed line by line at runtime. This
allows for interactive development and rapid prototyping, as changes to the code can be tested
immediately without the need for compilation. It has a vast ecosystem of third-party libraries and
frameworks that extend its capabilities for various domains. Libraries like NumPy, Pandas, and
Matplotlib are widely used for scientific computing and data analysis, while frameworks like
Django and Flask are popular for web development. It supports object-oriented programming
(OOP) principles, allowing for the creation of classes, objects, and inheritance. It also supports
other programming paradigms like procedural programming and functional programming.
Python can be easily extended by integrating code written in other languages such as C or C++.
This enables performance-critical parts of an application to be implemented in lower-level
languages while benefiting from Python's higher-level abstractions for the overall structure and
logic.
Python is dynamically typed, which means you don't need to declare variable types explicitly.
The type of a variable is determined at runtime based on the assigned value. This flexibility allows
for easier code development and maintenance. It uses automatic memory management through a
garbage collector. Developers don't need to worry about manually allocating or freeing memory.
The garbage collector automatically deallocates memory for objects that are no longer referenced,
making memory management easier. It comes with a comprehensive standard library that
provides a wide range of modules and packages for various tasks. The standard library includes
modules for file I/O, networking, threading, regular expressions, cryptography, and more. It saves
developers time by providing pre-built functionality to handle common programming needs.
Python is used for a wide range of applications, including web development, data analysis,
scientific computing, machine learning, artificial intelligence, automation, scripting, and more.
Its versatility, simplicity, and extensive community support have contributed to its popularity
among programmers and developers worldwide. It s widely used for scripting and automation
tasks. Its concise syntax, ease of use, and availability on multiple platforms make it a popular
choice for writing scripts to automate repetitive tasks, system administration, and batch
processing.
43
6.2.2 NUMPY:
Fig,6.5: NumPy
NumPy (Numerical Python) is a powerful Python library for numerical computing. It provides
efficient data structures and functions for working with multi-dimensional arrays, mathematical
operations, linear algebra, and random number generation. NumPy serves as a fundamental
building block for many scientific computing and data analysis tasks in Python. The ndarray (n-
dimensional array) is the primary data structure in NumPy. It is a multi-dimensional container for
homogeneous data, such as integers, floats, or other data types. Ndarrays are highly efficient for
storing and manipulating large arrays of data. NumPy provides a wide range of functions for
manipulating arrays. You can reshape arrays, slice and index them to extract subsets of data,
concatenate or stack arrays, and transpose arrays. These operations enable efficient data
processing and manipulation.
NumPy supports broadcasting, which allows for arithmetic operations between arrays of different
shapes. Broadcasting automatically extends the smaller array to match the shape of the larger
array, enabling element-wise operations. Broadcasting eliminates the need for explicit loops and
makes code more concise and efficient.
44
Python's math module is a built-in module that provides a set of mathematical functions and
constants. It allows you to perform various mathematical operations and calculations in Python.
The math module provides constants such as pi (π), e (Euler's number), and other mathematical
constants that can be used in calculations. It includes functions for trigonometric operations like
sine, cosine, tangent, arc sine, arc cosine, and arc tangent. These functions are useful for dealing
with angles and triangles. he math module offers basic arithmetic functions like square root,
absolute value, rounding, floor division (returning the quotient without the remainder), and
modular arithmetic (calculating the remainder). It also provides functions for hyperbolic
trigonometry, including hyperbolic sine, cosine, tangent, arc hyperbolic sine, arc hyperbolic
cosine, and arc hyperbolic tangent.
6.3 VISUALIZATION:
6.3.1 MATPLOTLIB:
Fig,6.7: Matplotlib
Matplotlib is a widely used Python library for creating high-quality plots, graphs, and
visualizations. It provides a flexible and comprehensive set of functions and classes for generating
a wide range of visualizations, from simple line plots to complex 3D plots. Matplotlib is highly
customizable, allowing you to create visually appealing and publication-quality figures. It
provides a simple and intuitive API for creating plots. It allows you to create plots with just a few
lines of code. The library provides a wide range of plot types, including line plots, scatter plots,
bar plots, histograms, pie charts, heatmaps, and more. It follows an object-oriented approach,
allowing you to have full control over every aspect of your plot. You can create Figure and Axes
objects, customize their properties, add multiple subplots, and manipulate individual plot
elements. It offers extensive customization options for your plots. You can control properties such
as line styles, markers, colors, fonts, labels, legends, gridlines, and axis limits. This flexibility
allows you to tailor your plots to match specific requirements and achieve the desired visual
effects.
Matplotlib supports interactive features such as zooming, panning, and adding annotations. This
can be useful for exploring and analyzing data in real-time or creating interactive visualizations
for presentations or web applications. It supports various output formats, including saving plots
as image files (e.g., PNG, JPEG, PDF, SVG), rendering plots in different interactive backends
(e.g., Tkinter, Qt, GTK), and embedding plots in graphical user interfaces (GUIs) or web
applications. It seamlessly integrates with NumPy and Pandas, two popular Python libraries for
numerical computing and data manipulation, respectively. This integration allows you to directly
45
plot data stored in NumPy arrays or Pandas DataFrames, making it convenient for visualizing
data from these sources. Matplotlib includes a sub-library called "pyplot," which provides a
MATLAB-like interface for quickly generating plots. Pyplot simplifies the creation of basic plots
and is commonly used for interactive data exploration, quick visualizations, and scripting.
Matplotlib allows you to create multiple plots within a single figure using subplots. This is useful
when you want to visualize multiple datasets or compare different plots side by side. You can
arrange subplots in a grid layout or customize their positions and sizes as needed.
Matplotlib supports 3D plotting, allowing you to create 3D visualizations such as surface plots,
scatter plots, and wireframe plots. This is particularly useful for representing three-dimensional
data or creating interactive 3D visualizations. It provides a wide range of colormaps for mapping
scalar data to colors. Colormaps are useful for adding depth and meaning to your plots. You can
choose from pre-defined colormaps or create custom colormaps to suit your specific needs. It
allows you to add annotations, text, and arrows to your plots to highlight important features or
provide additional information. Annotations can include text labels, arrows, shapes, or even
images. It provides functionality for creating statistical plots such as histograms, box plots, violin
plots, and error bars. These plots are commonly used to visualize distributions, compare groups,
or display uncertainty in data.
Matplotlib has support for plotting geographic data. The Basemap toolkit, a Matplotlib extension,
provides functionalities for creating maps, plotting points, lines, polygons, and working with
different map projections. Matplotlib allows you to create animated visualizations by updating
the plot data or properties over time. This is useful for visualizing dynamic or time-series data. It
integrates well with tools like IPython, Jupyter Notebook, and interactive backends for displaying
animations.
It is a third-party library that utilizes the Google Text-to-Speech (TTS) engine to convert text to
speech. The library does not have an official API but provides a convenient way to generate
speech from text using Google's TTS technology. The gTTS library works by sending HTTP
requests to the Google Translate TTS service, which then returns an MP3 audio file containing
the synthesized speech. The library acts as a wrapper around this functionality, making it easier
to use the Google TTS engine in Python.
47
CHAPTER – 7
CHAPTER – 7
ADVANTAGES AND FUTURE SCOPE
The proposed drone ASTRA, is a drone far more capable in completing a mission because of its
following advantages over the existing military drone systems: -
COMPACT SIZE:
Because of the absence of payload, ASTRA is comparatively smaller in size than the existing
drones in defence sector. It does not carry any warhead, thus it can be easily piloted without any
turbulence or hindrance.
NON-SUICIDAL:
The non-suicidal aspect of ASTRA makes it eligible for reuse in multiple operations. This reduces
the cost of production to a great extent.
Being very light-weight, the flight time of ASTRA is greatly increased. Increased flight time
enables it to remain in the air for a longer period of time to precisely identify the target.
Absence of warheads reduces the need of powerful noisy engines in the drone which ultimately
reduces the noise generated during its operation.
STEALTHY OPERATIONS:
Operating a UAV in a restricted enemy area is a task which requires stealth as the detection of
UAV can lead to a compromise with the whole operation. Small size and low noise operation
makes ASTRA undetectable, thus making it a much better alternative to neutralize the enemies.
ECONOMICAL:
ASTRA eliminates the situation where the drone gets destroyed in completing the mission. This
helps in reuse of the drone, eliminating the need of producing more and more drones. Also, the
operational cost is greatly reduced.
48
7.2 FUTURE SCOPE:
We would like to share our milestones that we have achieved so far. Till now we are able to
predict the enemy target using our trained model, we have also developed a Python program to
calculate the trajectory path based on the approximate geo location of the target provided by the
drone with missile velocity input.
We are now entailing to accomplish the project by deploying this model to a physical drone and
creating a cloud infrastructure based on which the users can access the technology securely and
wirelessly.
Following figure is an abstract illustration of our present achievements and future goals towards
the direction of successful completion of this project.
49
CONCLUSION:
The military is responsible for defending the country's borders, maintaining internal security, and
responding to emergencies and natural disasters. It also serves as a powerful deterrent against
potential aggressors and helps to promote regional and global stability.
A well-trained and well-equipped military can provide an effective defence against a range of
threats. Innovative military drone systems are playing an increasingly important role in modern
warfare, offering military forces advanced capabilities in intelligence gathering, surveillance, and
precision strike operations. The development of these systems has led to significant advancements
in autonomous operation, stealth technology, advanced sensors, swarming capabilities, and
vertical take-off and landing (VTOL).
The proposed ASTRA drone technology fills another lacuna by embedding the deep learning
concepts into the defence technology. It reduces the overall operational cost by making smaller
and agile drones with no one-time application. The proposed technology can greatly increase the
chances of successful accomplishment of various objectives of Indian Armed Forces.
50
REFERENCES:
[1] Konert, Anna & Balcerzak, Tomasz. (2021). Military autonomous drones (UAVs) - from
fantasy to reality. Legal and Ethical implications.. Transportation Research Procedia. 59. 292-
299. 10.1016/j.trpro.2021.11.121.
[3] Kardasz, Piotr & Doskocz, Jacek. (2016). Drones and Possibilities of Their Using. Journal
of Civil & Environmental Engineering. 6. 10.4172/2165-784X.1000233.
[4] Mohsan, Syed Agha Hassnain & Khan, Muhammad & Noor, Fazal & Ullah, Insaf &
Alsharif, Mohammed. (2022). Towards the Unmanned Aerial Vehicles (UAVs): A
Comprehensive Review. Drones. 6. 10.3390/drones6060147.
51