Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GeoVision

GeoVision is a computer vision-based geological analysis system developed using Python. The project analyzes rock and lithological images to detect cracks, perform grain-level segmentation, and classify rock properties using machine learning techniques.


🚀 Features

  • 🔍 Crack / Fault Detection

    • Detects cracks using edge detection and contour analysis
    • Estimates real-world crack sizes from pixel measurements
  • 🧱 Grain Segmentation

    • Uses watershed algorithm for separating grains
    • Extracts features such as area, orientation, diameter, and intensity
  • 🧠 Rock Classification

    • CNN-based classifier for multi-class rock identification
    • Supports 50+ rock types
  • Luster Classification

    • Texture-based classification using Local Binary Patterns (LBP) and SVM
  • 🧪 Sandstone Segmentation

    • Pixel-wise classification using Random Forest with handcrafted features
  • 🌐 Web Interface

    • Flask API for backend processing
    • Streamlit UI for user interaction

🏗️ Project Structure

geovision/
│
├── app/
│   ├── flask_api.py
│   └── streamlit_app.py
│
├── src/
│   ├── segmentation/
│   ├── faults/
│   ├── classification/
│   ├── analysis/
│
├── data/
├── experiments/
├── notebooks/
│
├── requirements.txt
├── README.md
└── .gitignore

⚙️ Installation

  1. Clone the repository:
git clone https://github.com/git-authority/GeoVision.git
cd GeoVision
  1. Install dependencies:
pip install -r requirements.txt

▶️ Usage

Run Streamlit UI

streamlit run app/streamlit_app.py

Run Flask API

python app/flask_api.py

📊 Dataset

This project uses:

  • Sandstone tomography dataset for segmentation

  • Custom datasets for:

    • Rock classification
    • Luster classification
    • Cementing material analysis

⚠️ Datasets are not included due to size constraints.

Place datasets inside the data/ directory.


🧠 Technologies Used

  • Python
  • OpenCV
  • Scikit-learn
  • TensorFlow / Keras
  • Flask
  • Streamlit
  • NumPy / Pandas
  • Scikit-image

📌 Notes

  • Some scripts in experiments/ are exploratory and not part of the main pipeline
  • File paths have been normalized for portability
  • Models can be stored in the models/ directory

👤 Author

Developed as part of Smart India Hackathon (SIH) 2023 project.


⭐ Future Improvements

  • Integrate mobile frontend (Flutter)
  • Improve model accuracy and deployment
  • Add real-time API integration
  • Optimize performance for large-scale datasets

About

Computer vision system for rock analysis with crack detection, grain segmentation, and ML-based classification using Flask and Streamlit.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages