Repository for the GHOST x IRIM project on tree classification (2024/2025)
Explore the docs »
·
Request Feature
·
- About the Project
- How to run
- Built With
- Contributing
- Communication
- The Team
- Acknowledgements
- License
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.
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-irimInstall 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 | shInstall dependencies and run:
uv sync
uv run python src/main.pyFor 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 loginProvide your API key when prompted.
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 pytestThis prints test results to the terminal and generates coverage reports in htmlcov/.
Type Checking with mypy
Run static type checks to catch typing errors:
uv run mypyLinting with ruff
Check for code quality issues:
uv run ruff checkTo auto-fix simple issues:
uv run ruff check --fixFor more complex issues, manual refactoring may be required.
Formatting with ruff format
Check formatting only:
uv run ruff format --checkSee suggested changes:
uv run ruff format --check --diffAuto-format code:
uv run ruff format💡 You can also install the Ruff VS Code extension to auto-format on save.
- 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.
- 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).
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.
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!
- Fork the Project
- 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.
- Commit your Changes (
git commit -m 'Add some AmazingFeature'):- commit messages should be created according to the Conventional Commits framework.
- Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- 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.
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
Special shout-out to: