Skip to content

GHOST-Science-Club/tree-classification-irim

Repository files navigation

Contributors Forks Stargazers Issues
Tests


Tree classification - Foto from Markus Spiske: https://www.pexels.com/de-de/foto/vogelperspektive-natur-wald-baume-113338/

Tree-classification-irim

Repository for the GHOST x IRIM project on tree classification (2024/2025)
Explore the docs »

· Request Feature ·

Table of Contents

About the Project

GHOST x IRIM is an initiative by the GHOST student organization to develop and test an AI algorithm for identifying tree species from aerial photos, focusing on Polish forests.

How to run the project 💡

This project uses uv for dependency management. Python 3.11+ is required.

Clone the repo and cd into:

git clone [email protected]:GHOST-Science-Club/tree-classification-irim.git
cd tree-classification-irim

Install uv (if not already installed):

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Linux/MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh

Install dependencies and run:

uv sync
uv run python src/main.py

For CUDA PyTorch installation, please refer to this link: https://pytorch.org/get-started/locally/ and select your platform and CUDA.

If you are a project maintainer you should have received Wandb api key. To send logs from local builds to wandb use:

uv run wandb login

Provide your API key when prompted.

How to test the project 💡

Before running tests, ensure your setup follows the How to run the project section. See tests/README.md for details.

Run tests with pytest:

uv run pytest

This prints test results to the terminal and generates coverage reports in htmlcov/.

Additional Checks 📋

Type Checking with mypy

Run static type checks to catch typing errors:

uv run mypy

Linting with ruff

Check for code quality issues:

uv run ruff check

To auto-fix simple issues:

uv run ruff check --fix

For more complex issues, manual refactoring may be required.

Formatting with ruff format

Check formatting only:

uv run ruff format --check

See suggested changes:

uv run ruff format --check --diff

Auto-format code:

uv run ruff format

💡 You can also install the Ruff VS Code extension to auto-format on save.

Objectives:

  • Identify tree species sensitive to fires, storms, disease, and pests.
  • Promote diverse, resilient tree stands over vulnerable monocultures.
  • Enable cost-effective, large-scale forest health monitoring.

Long-Term Goals:

  • Present findings at well recognized Polish conferences (MLinPL, GHOST Day).
  • Contribute to the open-source Deepness project.

Supported by the Institute of Robotics and Machine Intelligence (IRIM) at Poznań University of Technology (PUT).

(back to top)

Built With

Dependencies:

  • PyTorch: For deep learning model implementation and processing (torch, torchvision).
  • PyTorch Lightning: Simplifies training workflows (pytorch-lightning).
  • NumPy: Efficient numerical computing (numpy).
  • Matplotlib: Visualization library for plotting (matplotlib).

Datasets:

  • PureForest: Aerial images for tree species classification.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature):
    • the name of the branch should identify the issue it addresses (e.g. issue number and/or some explanation).
    • branch can also be created directly inside an issue: https://shorturl.at/3KkQP.
  3. Commit your Changes (git commit -m 'Add some AmazingFeature'):
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Communication

  • GHOST Website: Learn about the GHOST community, its sections (including GHOST x IRIM), and find contact links (e.g., Facebook, LinkedIn).
  • IRIM Website: Explore IRIM's work and find contact information for project supervisors.
  • GitHub Issues: Report bugs, request features, install issues, RFCs, thoughts, etc.

For participant contact details, see the Team section.

(back to top)

The Team

We are a passionate group of students from Poznan University of Technology (PUT), ranging from first-year undergraduates to final-year graduate students.

Team Leader: Kacper Dobek (kacperdobek01{at}gmail{dot}com)

Team Members:

  • Adam Dobosz
  • Adam Mazur
  • Jakub Drzymała
  • Jędrzej Warczyński
  • Maria Szymańska
  • Mateusz Konat
  • Michał Redmer
  • Wiktor Kamzela
  • Łukasz Osiewicz

(back to top)

Acknowledgments

Special shout-out to:

(back to top)

License

Apache-2.0

(back to top)

About

Repository for the GHOST x IRIM project on tree classification (2024/2025)

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors