Awesome
FSDL Deforestation Detection
<div align="center">Detecting deforestation from satellite images: a full stack deep learning project
</div>Description
A deep learning approach to detecting deforestation risk, using satellite images and a deep learning model. We relied on Planet imagery from two Kaggle datasets (one from the Amazon rainforest and another on oil palm plantations in Borneo) and trained a ResNet model using FastAI. For more details, check the following links:
This is the result of a group project, made by André Ferreira and Karthik Bhaskar, for the Full Stack Deep Learning - Spring 2021 online course.
Very first steps
Initial
- Initialize
git
inside your repo:
git init
- If you don't have
Poetry
installed run:
make download-poetry
- Initialize poetry and install
pre-commit
hooks:
make install
- Upload initial code to GitHub (ensure you've run
make install
to usepre-commit
):
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/karthikraja95/fsdl_deforestation_detection.git
git push -u origin main
Initial setting up
- Set up Dependabot to ensure you have the latest dependencies.
- Set up Stale bot for automatic issue closing.
Poetry
All manipulations with dependencies are executed through Poetry. If you're new to it, look through the documentation.
<details> <summary>Notes about Poetry</summary> <p>Poetry's commands are very intuitive and easy to learn, like:
poetry add numpy
poetry run pytest
poetry build
- etc
Makefile usage
Makefile
contains many functions for fast assembling and convenient work.
make download-poetry
</p>
</details>
<details>
<summary>2. Install all dependencies and pre-commit hooks</summary>
<p>
make install
If you do not want to install pre-commit hooks, run the command with the NO_PRE_COMMIT flag:
make install NO_PRE_COMMIT=1
</p>
</details>
<details>
<summary>3. Check the security of your code</summary>
<p>
make check-safety
This command launches a Poetry
and Pip
integrity check as well as identifies security issues with Safety
and Bandit
. By default, the build will not crash if any of the items fail. But you can set STRICT=1
for the entire build, or you can configure strictness for each item separately.
make check-safety STRICT=1
or only for safety
:
make check-safety SAFETY_STRICT=1
multiple
make check-safety PIP_STRICT=1 SAFETY_STRICT=1
</p> </details> <details> <summary>4. Check the codestyle</summary> <p>List of flags for
check-safety
(can be set to1
or0
):STRICT
,POETRY_STRICT
,PIP_STRICT
,SAFETY_STRICT
,BANDIT_STRICT
.
The command is similar to check-safety
but to check the code style, obviously. It uses Black
, Darglint
, Isort
, and Mypy
inside.
make check-style
It may also contain the STRICT
flag.
make check-style STRICT=1
</p> </details> <details> <summary>5. Run all the codestyle formaters</summary> <p>List of flags for
check-style
(can be set to1
or0
):STRICT
,BLACK_STRICT
,DARGLINT_STRICT
,ISORT_STRICT
,MYPY_STRICT
.
Codestyle uses pre-commit
hooks, so ensure you've run make install
before.
make codestyle
</p>
</details>
<details>
<summary>6. Run tests</summary>
<p>
make test
</p>
</details>
<details>
<summary>7. Run all the linters</summary>
<p>
make lint
the same as:
make test && make check-safety && make check-style
</p> </details> <details> <summary>8. Build docker</summary> <p>List of flags for
lint
(can be set to1
or0
):STRICT
,POETRY_STRICT
,PIP_STRICT
,SAFETY_STRICT
,BANDIT_STRICT
,BLACK_STRICT
,DARGLINT_STRICT
,ISORT_STRICT
,MYPY_STRICT
.
make docker
which is equivalent to:
make docker VERSION=latest
More information here.
</p> </details> <details> <summary>9. Cleanup docker</summary> <p>make clean_docker
or to remove all build
make clean
More information here.
</p> </details>🛡 License
This project is licensed under the terms of the MIT
license. See LICENSE for more details.
📃 Citation
@misc{fsdl_deforestation_detection,
author = {Karthik Bhaskar, Andre Ferreira},
title = {Predicting deforestation from Satellite Images},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/karthikraja95/fsdl_deforestation_detection}}
}