Report
Report
INTRODUCTION
Remote sensing satellite images are increasingly integral to a wide range of applications,
including land cover classification, crop monitoring, disaster response, and environmental
monitoring. The vast availability of these images has led to a surge in demand for efficient
and accurate feature extraction methods. However, the intricacies of image processing and
analysis often necessitate specialized skills and advanced software, which can limit
accessibility for non-experts.
Several specialized software packages, such as ERDAS Imagine, ENVI, and ArcGIS, offer
robust solutions for feature extraction. However, these platforms often come with steep
learning curves, necessitating significant training and experience. Additionally, they can be
cost-prohibitive and lack the flexibility or customization options that certain users might
require for specific tasks. As a result, there is a growing need for more accessible, user-
friendly tools that can democratize the use of remote sensing data.
In recent years, Python has emerged as a powerful and versatile programming language for
remote sensing and image processing tasks. Its simplicity, flexibility, and rich ecosystem
of libraries—such as OpenCV, scikit-image, and GDAL—make it an ideal choice for
developing feature extraction algorithms. These libraries offer a range of efficient tools that
facilitate various stages of image processing, from basic enhancements to complex feature
1
extraction. Despite the advantages Python offers, the feature extraction process remains
intricate and can be challenging for those without a background in programming or remote
sensing.
This proposed system would also incorporate tools for visualization and post-processing,
allowing users to refine and analyze the extracted features further. The impact of such a
tool could be profound, particularly in fields like land cover classification and crop
monitoring, where improved accessibility to accurate data can drive better decision-
making. Similarly, disaster response and environmental monitoring efforts would benefit
from the rapid and precise extraction of critical features from remote sensing data.
2
1.2 Motivation and Perspective
Remote sensing satellite images have become an indispensable tool for numerous
applications, ranging from land use/land cover mapping to disaster management. However, the
technical complexities associated with image processing and feature extraction often limit the
accessibility of these powerful tools to a specialized audience. This project aims to bridge this
gap by developing a user-friendly web interface that simplifies the process of extracting
valuable information from remote sensing images.
Remote Sensing: Remote sensing is the science and art of obtaining information about an
object, area, or phenomenon through the analysis of data acquired by a device that is not in
contact with the object, area, or phenomenon under investigation. Remote sensing systems
typically involve a sensor that records electromagnetic radiation emitted or reflected from the
Earth's surface.
Image Preprocessing: Image preprocessing is a crucial step in remote sensing image analysis.
It involves various techniques to enhance image quality and correct distortions caused by
factors like atmospheric conditions, sensor noise, and geometric errors. Common
preprocessing techniques include:
Radiometric Correction: Adjusting pixel values to account for atmospheric effects and
sensor calibration.
Geometric Correction: Correcting spatial distortions and aligning images to a specific
coordinate system.
Atmospheric Correction: Removing the effects of the atmosphere on the recorded
radiance.
Python and Relevant Libraries: Python, with its rich ecosystem of libraries, has become a
popular language for remote sensing and image processing. Libraries such as OpenCV, scikit-
image, and GDAL provide essential tools for image reading, writing, processing, and analysis.
3
CHAPTER 2
LITERATURE REVIEW
The application of remote sensing satellite images has revolutionized various fields
including environmental monitoring, land cover classification, and disaster response.
However, the complexity of processing and extracting features from these images has
necessitated the development of advanced tools and software. This literature survey
reviews existing methods and tools for feature extraction, focusing on their strengths
and limitations, and highlights the need for a more accessible web-interface.
Several software packages are commonly used for feature extraction from remote
sensing images. ERDAS Imagine and ENVI are two prominent examples that offer
comprehensive tools for image analysis [4]. ERDAS Imagine provides functionalities
for image processing, including feature extraction and classification, but requires
4
substantial training to use effectively [5]. ENVI, similarly, offers extensive image
processing capabilities but can be costly and complex for non-experts [6].
The advent of Python as a programming language for image processing has introduced
more accessible alternatives. Libraries such as OpenCV, scikit-image, and GDAL
provide powerful tools for feature extraction and image analysis. OpenCV, for example,
is renowned for its extensive set of computer vision tools, including feature detection
and image segmentation [7]. scikit-image offers a user-friendly interface for various
image processing tasks, while GDAL focuses on geospatial data processing, including
satellite imagery [8]. These libraries simplify the development of custom feature
extraction algorithms but still require programming skills.
Recent developments in web-based interfaces have sought to bridge the gap between
complex image processing and user accessibility. Web platforms such as Google Earth
Engine provide an intuitive interface for analyzing satellite imagery and extracting
features, making advanced remote sensing tools more accessible to non-experts [9].
However, these platforms may not offer the same level of customization as standalone
software solutions or Python libraries.
a. Despite the availability of advanced tools and libraries, the process of feature
extraction remains challenging for many users due to its complexity. There is a clear
need for a user-friendly web-interface that simplifies the process of uploading images,
selecting features, and analyzing results. Such an interface would leverage the power of
existing Python libraries while providing an intuitive, accessible platform for users with
limited technical backgrounds.
b. As the demand for more sophisticated analysis increased, machine learning
algorithms began to gain traction in the field of remote sensing. Algorithms such as
Support Vector Machines (SVM), Random Forest (RF), and k-Nearest Neighbors (k-
NN) have been extensively applied to satellite imagery for feature extraction and
5
classification tasks. These algorithms are capable of handling large datasets with high
dimensionality, making them well-suited for the complex nature of satellite imagery.
The use of machine learning techniques has been shown to significantly improve the
accuracy of feature extraction, particularly when combined with OBIA. For instance,
studies have found that integrating SVM with OBIA results in more precise land cover
classification compared to traditional methods.
c. The advent of deep learning has further revolutionized the field of remote sensing.
Convolutional Neural Networks (CNNs), in particular, have shown exceptional promise
in automating the feature extraction process. Unlike traditional methods, which require
manual feature engineering, CNNs can learn hierarchical features directly from the data.
This ability to learn both low-level and high-level features makes CNNs particularly
effective for high-resolution satellite imagery, where the complexity and variety of
features are high. Several studies have demonstrated that CNNs outperform
conventional machine learning methods in tasks such as object detection, scene
classification, and change detection.
6
2.1.6 Typical Deep Network Models
In this section, we briefly review the following three typical deep neural network
models that have been used for RS image classification. More details about DL
architectures in machine learning can be found in (Bengio, 2009; Bengio, Courville, &
Vincent, 2013).
7
where is the value at the position (h, w) of the kernel connected to the mth feature map
in the (l − 1)th layer, H i and W i are the height and width of the kernel, respectively,
and b l, j is the bias of the jth feature map in the lth layer. Such convolution layers
introduce weight sharing mechanism within same feature maps, which helps reduce
significantly the number of parameters otherwise required. It can take two-dimensional
(2D) images with any scale directly as input while reserving the location information of
objects in the images. Due to the recognition of the inherent advantages of convolution
operation, a significant amount of work has been focused on improving the ability of
convolution layers in the literature. For instance Lin, Chen, and Yan (2013) proposed a
network in a network, substituting the conventional convolution layer with a multilayer
perceptron consisting of multiple fully connected layers. Long, Shelhamer, and Darrell
(2017) replaced the fully connected layers in a CNN with a deconvolution layer to build
a novel convolutional network.
Generally, a pooling layer follows a convolutional layer and it is used to reduce the
dimensionality of feature maps. There are two types of basic pooling operation which
are the most commonly used: average pooling and max pooling, as shown in Figure 2.
Detailed theoretical analysis of these is beyond the scope of this paper, but can be found
in Scherer, Muller, and Behnke (2010). As the computation process of pooling operation
takes neighboring pixels into account, a pooling layer is translation invariant. Apart
from average and max pooling, there are several other pooling operations, including
spatial pyramid pooling (He et al., 2014), stochastic pooling (Zeiler & Fergus, 2013)
and def-pooling (Ouyang et al., 2014).
Figure 3: Two basic pooling operations. (a) Average pooling. (b) Max pooling
8
Stacked autoencoders
(1)
(2)
where M denotes the number of training samples. The objective is finding the
parameters θ = (W, b y, b z) which can minimize the difference between the output and
the input over the whole training set X = [x(1), x(2), …, x(m), …, x(M)], and this can be
efficiently implemented via the stochastic gradient descent algorithm (Johnson &
Zhang, 2013).
9
Figure 4: Stacked auto-encode and auto-encoder
(3)
(4)
(5)
10
Figure 5: Deep belief network and restricted Boltzmann machine
DBN is a probabilistic generative model which provides a joint probability distribution over
observable data and labels. A DBN first takes advantages of an efficient layer-by-layer
greedy learning strategy to initialize the deep network, and then fine-tunes all of the weights
jointly with the desired outputs.
11
CHAPTER 3
PROBLEM FORMULATION
Remote sensing satellites generate vast amounts of data, covering large geographical
areas across multiple spectral bands. This results in several issues:
Large Data Sets: The sheer volume of satellite imagery, often in terabytes,
makes manual analysis nearly impossible. Effective processing requires
automated algorithms capable of handling such extensive data.
High Dimensionality: Satellite images often contain information across several
spectral bands, leading to high-dimensional data. The complexity of this data
requires sophisticated methods to extract relevant features without losing critical
information.
Data Redundancy: Large datasets can include redundant information across
spectral bands, making it challenging to focus on the most relevant features for
analysis.
12
3.1.2. Variability in Image Quality
The quality of satellite images can vary significantly due to several factors, which
introduces challenges in feature extraction:
Varied Terrain Types: Satellite images cover diverse terrains such as urban
areas, forests, water bodies, and agricultural fields. Each terrain type has distinct
spectral characteristics, making it difficult to develop a one-size-fits-all feature
extraction method.
Heterogeneity in Urban Areas: Urban environments are particularly challenging
due to their heterogeneity, with various small-scale features such as buildings,
roads, and vegetation. Accurate extraction of these features requires algorithms
capable of distinguishing between closely situated and similar-looking objects.
Dynamic Landscapes: Certain landscapes, such as coastal regions or areas prone
to seasonal flooding, undergo frequent changes. Feature extraction methods must
account for these dynamic environments to ensure consistent results.
13
3.1.4. Challenges with High-Resolution Images
High-resolution satellite images provide greater detail but also introduce specific
challenges:
“[10] Logistic Regression is a supervised Machine Learning (ML) method used for
classification tasks. The input 𝑋X is a matrix containing N data instances, each
described by K features. Inputs xij are K-length feature-vectors (xi’s), which are
continuous, with indexes 𝑗=1,……,𝐾 and 𝑖=1,……, 𝑁. Output yi falls in the
interval {0,1} and it is a binary variable, with Bernoulli distribution and parameter pi.
The decision/activation function of “Linear Classifier” Logistic Regression is called
‘logistic function’ (sigmoid). The main characteristic of the sigmoid function is to
determine the output of one system in the interval (0,1), regardless of the variables on
its input. The posteriors are expressed through the logistic function as
𝑃 = ( ) (6)
In the above expression features (𝑥𝑗) and the corresponding weights (𝛽𝑗) make up the
function 𝑓(𝑥).
14
In addition to the ‘logistic function,’ this Machine Learning (ML) method has an
“objective function”—“Maximum Likelihood Estimation (MLE).” Its purpose is to
make the “likelihood function” of the training process as large as possible and is
expressed with
Its parameters are: the output y which is in the interval (0,1), 𝑃(𝑦𝑖|𝑥𝑖) is the posterior
probability and is given with 1/(1+𝑒^−𝑓), and the weights vector in 𝑓(𝑥)−𝛽.”
The kernel can be linear, polynomial, exponential, etc. The kernel type we considered
in this work was linear. For the linear kernel, the prediction for input is calculated with
𝑓(𝑥)=𝐵(0)+𝑠𝑢𝑚(𝑎𝑖∗(𝑥,𝑥𝑖)). (8)
It is obtained with the dot product of the input (x) and each of the support vectors
(xi). It calculates the inner products of a new input vector (x) with all support
vectors in training data. The coefficients 𝐵(0) and 𝑎𝑖 (for each input) are
estimated from the training data by the learning algorithm. The polynomial kernel
and exponential kernel are given with
𝐾(𝑥,𝑥𝑖)=1+𝑠𝑢𝑚(𝑥∗𝑥𝑖)^d (9)
Remote sensing technology offers invaluable insights into our planet's environment,
climate, and urban development. However, the complex process of extracting
meaningful information from satellite images often requires specialized knowledge and
technical skills. This inaccessibility hinders the wider adoption of remote sensing by
researchers, policymakers, and the general public.
The Challenge:
Technical Barriers: The current state-of-the-art tools for feature extraction are
often command-line based, requiring significant technical expertise.
The Solution:
16
Upload and Visualize Satellite Images: Easily upload and visualize satellite
images in various formats (e.g., GeoTIFF, JPEG, PNG).
This web interface will not only simplify the complex process of feature extraction but
also foster innovation and collaboration in the field of remote sensing.
17
3.3 Block diagram of feature extraction and recognition process.
Flow diagram: 1
18
Flow diagram: 2
3.4 Objectives
The primary objective of this project is to design and develop a user-friendly web-
interface for feature extraction from remote sensing satellite images using Python. The
specific objectives are:
4. To enable feature visualization and analysis: Provide tools for visualizing and
analyzing the extracted features, including visualization of feature maps, scatter
plots, and histograms.
By achieving these objectives, the proposed system will provide a user-friendly and
efficient platform for feature extraction from remote sensing satellite images, enabling
non-experts to extract accurate features and make informed decisions.
20
CHAPTER 4
PROPOSED WORK
4.1 Introduction
Preprocess the images using Python libraries such as OpenCV and scikit-image to
correct for atmospheric and geometric distortions, and to enhance image quality
Store the preprocessed images in a database or file system for later use
Implement algorithms for extracting features such as texture, shape, and spectral
characteristics
Develop a web-based interface using Flask or Django to allow users to upload their
remote sensing satellite images and select the desired features to extract
Design an intuitive and user-friendly interface using HTML, CSS, and JavaScript
21
Integrate the feature extraction algorithms with the web-interface using Python's
request and response handling mechanisms
Develop APIs to enable communication between the web-interface and the feature
extraction algorithms
Develop tools for visualizing and analyzing the extracted features using Python
libraries such as Matplotlib, Seaborn, and Plotly
Implement visualization tools for feature maps, scatter plots, and histograms
Provide interactive visualization tools to enable users to explore and analyze the
extracted features
Evaluate the performance of the system using metrics such as accuracy, precision,
and recall
Conduct user testing to ensure the system meets the requirements and expectations
of the users
Develop a maintenance plan to ensure the system remains up-to-date and secure
Provide user support and training to ensure effective use of the system
22
4.2 Proposed Methodology/Algorithm
Overview
This methodology leverages the distinct spectral signatures of water bodies to identify
and extract them from remote sensing imagery. The core approach involves the
calculation and analysis of spectral indices, which are mathematical combinations of
different spectral bands.
Methodology
1. Image Pre-processing:
NDWI effectively differentiates water bodies from land cover due to the high
reflectance of water in the green band and low reflectance in the near-infrared (NIR)
band.
MNDWI is more sensitive to water bodies, particularly in urban areas with high levels
of built-up surfaces.
23
AWEI = (4*(Green - SWIR) - (NIR + Blue)) / (4*(Green + SWIR) + (NIR
+ Blue))
3. Thresholding:
4. Post-processing:
app = Flask(name)
CORS(app)
@app.route('/process-ndwi', methods=['POST'])
24
def process_ndwi():
file = request.files.get('image')
if not file:
return jsonify({"error": "No file uploaded"}), 400
try:
file.seek(0)
print(f"Received file: {file.filename}, size: {len(file.read())} bytes")
file.seek(0)
img = Image.open(file).convert("RGB")
img_array = np.array(img)
if img_array.ndim == 3: # If RGB
grayscale_img = np.dot(img_array[..., :3], [0.299, 0.587, 0.114])
else:
grayscale_img = img_array
result_img = Image.fromarray(water_mask).convert("L")
buffered = BytesIO()
result_img.save(buffered, format="PNG")
encoded_img = base64.b64encode(buffered.getvalue()).decode('utf-8')
25
return jsonify({"error": str(e)}), 500
if name == 'main':
print("===========================================")
print(" Flask Server is Running! ")
print("===========================================")
print(" You can now test the NDWI Processing API ")
print(" Access it at: http://127.0.0.1:5000/ ")
print("===========================================")
app.run(debug=True)
Image Preprocessing: Perform tasks like cloud masking, noise reduction, and
band selection.
2. NDWI Calculation:
26
Thresholding: Determine an appropriate threshold value to differentiate water
bodies from other land cover classes.
Create Water Mask: Generate a binary mask where pixels with NDWI values
above the threshold are classified as water.
Set up Flask App: Create a Flask web application to handle image processing,
NDWI calculation, and serving results.
Image Upload: Implement a route to handle image uploads from the frontend.
Image Processing: Process the uploaded image using the NDWI calculation
and thresholding steps.
Result Generation: Generate the water mask and other relevant visualizations.
API Endpoint: Create an API endpoint to send the processed image and water
mask to the frontend.
API Call: Send a request to the Flask backend API to trigger image processing.
Result Display: Once the backend processes the image, display the original
image, the water mask overlay, and other relevant visualizations.
27
Download Functionality: Allow users to download the processed image and
water mask.
5. Deployment:
Deploy Flask Backend: Deploy the Flask app to a web server or cloud
platform.
Deploy React Frontend: Deploy the React frontend to a web server or a static
hosting service.
Additional Considerations:
User Experience: Optimize the user interface for ease of use and a seamless
experience.
Scalability: Consider scalability for handling large datasets and high user
traffic.
By following these steps and leveraging the power of NDWI, Flask, and React.js, you
can create a robust and user-friendly web application for water body extraction from
satellite imagery.
28
CHAPTER 5
SYSTEM DESIGN
Process:
External Entities:
Data Flows:
The Level 1 DFD breaks down the main process identified in Level 0 into sub-
processes, providing more detail about how data flows through the system.
1. Sub-Processes:
Image Uploading
29
Feature Extraction
Results Visualization
User Management
2. Data Stores:
3. External Entities:
Same as in Level 0.
4. Data Flows:
Description of Sub-Processes
Image Uploading: Users can upload satellite images through a web interface.
This process validates and stores images in the Image Database.
30
5.2 Detail Block/ Diagram/ Flowchart
31
CHAPTER 6
IMPLEMENTATION
Dataset:
Preprocessing Steps:
4. Band Selection: Select the appropriate spectral bands (e.g., Green and Near-
Infrared) for NDWI calculation.
NDWI Calculation:
Compute the Normalized Difference Water Index (NDWI) for each pixel in the
image using the following formula:
where:
32
NIR: Near-Infrared band reflectance
Thresholding:
Experiment with different threshold values to find the best balance between
sensitivity and specificity.
Visualize the water mask to assess the accuracy of the thresholding process.
Create a binary mask where pixels with NDWI values above the threshold are
classified as water bodies.
Apply morphological operations (e.g., erosion, dilation) to refine the water mask
and remove noise.
Visualization:
Visualize the original satellite image, the NDWI image, and the extracted water
mask using appropriate colormaps and spatial reference systems.
Overlay the water mask on the original image to visually assess the accuracy of
the extraction.
Image upload
Image processing
Result generation
33
API endpoint for frontend communication
Image Processing:
NDWI calculation
Thresholding
API Endpoint:
Create an API endpoint to send processed images and water masks to the
frontend.
User Interface:
Progress bar
Download button
Result Display:
Display the original image, NDWI image, and water mask on the frontend.
34
Allow users to download the processed results.
Note: The specific implementation details may vary depending on the chosen satellite
imagery, programming languages, and libraries. It's essential to experiment with
different parameters and techniques to optimize the water body extraction process.
Key Characteristics:
Frequent Revisit Time: With two satellites in orbit, Sentinel-2 can revisit the
same location every 5 days, allowing for timely monitoring of dynamic
processes.
Global Coverage: The mission provides global coverage, making it suitable for
various applications across the globe.
Applications:
Water Body Mapping: Identifying and monitoring water bodies, including lakes,
rivers, and coastal zones.
Urban Planning: Assessing urban growth, land use changes, and infrastructure
development.
35
Disaster Monitoring: Responding to natural disasters like floods, fires, and
earthquakes.
Sentinel-2 data is freely available to the public, making it a valuable resource for
researchers, scientists, and policymakers worldwide.
Image 1
Image 2
36
Image 3
37
CHAPTER 7
RESULT ANALYSIS
Comparison Table
38
Flow Diagram of water extraction
39
CHAPTER 8
8.1 Conclusion
Disaster Management: The extracted water bodies can aid in flood risk
assessment, flood mapping, and post-disaster damage assessment.
8.2 Limitation
While the project has demonstrated promising results, there are a few limitations to
consider:
40
Cloud Cover: The presence of cloud cover can hinder accurate water body
extraction. Cloud masking techniques can be employed to mitigate this issue, but
they may not be entirely effective in heavily cloudy regions.
Water Body Complexity: Complex water bodies, such as highly turbid waters or
shallow water bodies, may pose challenges for accurate extraction.
The future scope of this project involves expanding its capabilities and addressing the
identified limitations. Some potential areas for future development include:
41
Water Quality Assessment: Integrating water quality parameters, such as
turbidity and chlorophyll-a concentration, to assess water quality.
Integration with Other Remote Sensing Data: Combining Sentinel-2 data with
other remote sensing sources, such as radar data, to improve the accuracy and
robustness of water body extraction.
In addition to water body extraction, we plan to extend the project to include feature
extraction for vegetation, roads, and buildings. This will involve exploring suitable
spectral indices, machine learning algorithms, and deep learning techniques for each
specific feature. By incorporating these additional features, the platform can provide
comprehensive land cover and land use information, enabling a wide range of
applications in environmental monitoring, urban planning, and disaster management.
42
REFERENCES
[p1] mdpi.com/1424-8220/20/14/3906
[3] A. Gupta, "Feature Extraction Methods for Remote Sensing," International Journal
of Image Processing, vol. 15, no. 1, pp. 55-67, 2019.
[6] M. Clark, "Advanced Image Processing with ENVI," Spatial Data Analysis, vol. 31,
no. 2, pp. 78-90, 2020.
[7] R. Jones, "OpenCV and Its Applications in Remote Sensing," Computer Vision
Journal, vol. 30, no. 1, pp. 45-59, 2022.
[9] L. Robinson, "Google Earth Engine: A Platform for Large-Scale Remote Sensing
Analysis," Earth Science Reviews, vol. 65, no. 4, pp. 142-159, 2023.
[10] mdpi.com
43
LIST OF PUBLICATIONS
44
CONTRIBUTION OF PROJECT
Objective:
The primary objective of this project is to develop a user-friendly web interface that
simplifies the complex process of extracting meaningful information from remote
sensing satellite images. By providing an intuitive and accessible platform, we aim to
empower a wider range of users, from researchers to policymakers and the general
public, to harness the power of remote sensing.
Relevance:
Environmental Monitoring:
Agriculture:
45
Monitoring crop health and yield potential
Disaster Management:
Technical Novelty:
The proposed web interface introduces several technical novelties to the field of remote
sensing:
46
Integration of Advanced Algorithms: The interface integrates a variety of state-
of-the-art feature extraction algorithms, including machine learning and deep
learning techniques, making advanced analysis accessible to a broader audience.
Utility:
The proposed web interface offers significant utility for various applications:
Education: Educators can use the interface to teach remote sensing concepts and
techniques to students of all levels.
Private Sector: Businesses can benefit from the platform for market analysis,
resource management, and risk assessment.
By providing a user-friendly and accessible platform, this project has the potential to
revolutionize the way remote sensing data is utilized, leading to innovative applications
and solutions to global challenges.
3. Expected Outcome/Deliverables
Expected Outcomes:
47
User-Friendly Interface: A robust and intuitive web interface that simplifies the
process of accessing, processing, and analyzing remote sensing data.
Deliverables:
2. Algorithm Integration:
48
Implementation of efficient data management strategies to ensure data
integrity and accessibility.
By delivering these key components, the project will provide a valuable tool for
researchers, policymakers, and the general public to harness the power of remote
sensing data.
49
4b. Environmental Sustainability
The development and deployment of the proposed project must adhere to ethical, legal,
and cultural considerations. Ethical guidelines should be established to ensure
responsible data collection, storage, and analysis. Data privacy and security must be
prioritized to protect user information and sensitive data. Legal compliance with
relevant regulations, such as data protection laws and intellectual property rights, is
essential. Cultural sensitivity should be considered when designing the interface and
interpreting data, particularly in diverse cultural contexts. Transparency and
accountability are crucial in the development and use of the platform. Clear guidelines
should be established for data sharing, collaboration, and the potential impact of the
technology on society. By addressing these ethical, legal, and cultural aspects, the
project can contribute to a positive and equitable impact.
50