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.
-
🔍 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
geovision/
│
├── app/
│ ├── flask_api.py
│ └── streamlit_app.py
│
├── src/
│ ├── segmentation/
│ ├── faults/
│ ├── classification/
│ ├── analysis/
│
├── data/
├── experiments/
├── notebooks/
│
├── requirements.txt
├── README.md
└── .gitignore
- Clone the repository:
git clone https://github.com/git-authority/GeoVision.git
cd GeoVision
- Install dependencies:
pip install -r requirements.txt
streamlit run app/streamlit_app.py
python app/flask_api.py
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.
- Python
- OpenCV
- Scikit-learn
- TensorFlow / Keras
- Flask
- Streamlit
- NumPy / Pandas
- Scikit-image
- 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
Developed as part of Smart India Hackathon (SIH) 2023 project.
- Integrate mobile frontend (Flutter)
- Improve model accuracy and deployment
- Add real-time API integration
- Optimize performance for large-scale datasets