This release brings the performance improvements of pyrovision
to edge devices while reducing latency.
Note: pyroengine 0.2.0 requires ONNX Runtime 1.10 or higher.
Highlights
⚡ Go ONNX!
Since this project is meant for edge devices, we completely migrated the Deep learning backend from PyTorch (used for development) to ONNX Runtime (#101). This brings about two major improvements:
- 🪶 lighter environment: the compressed docker image's size is now 8 times smaller
- 🚄 faster inference: by exporting our model to ONNX, a few operations are optimized and this comes with a significant speed boost!
🎨 Documentation theme
It was time to clean the documentation! So we switch from Read the doc theme to Furo (#101, #110, #112)!
This comes with nice features such as dark mode and edit button!
🧹 Cleaned codebase
The project was completely refactored to match its criticity:
- Engine improvement: the package was considerably simplified to serve a single purpose, having the fastest & lightest high-performance wildfire predictor (#101).
- Code quality: flake8, mypy, black and isort are now making sure the codebase is prime quality (#79, #101)! All requirements.txt and config files are now handled by
pyproject.toml
. - CI updates: unittests are not much more extensive (#101, #108) and also run on Raspberry PI (#83)!
- Contribution process: a
Makefile
was added to help contributions (#101), along with new issue templates (#113) and a revamped README
Breaking changes
Deprecated features / files
The following features & files were deprecated:
./server
./pyroengine/pi_utils
Renamed features / files
The following features & files were renamed:
./test
renamed to./tests
./runner
renamed to./src
PyronearEngine
was renamed toEngine
Detailed Changelog
Breaking Changes 🛠
- Drop useless files by @MateoLostanlen in #80
- refactor: Cleaned pyroengine and refactored project by @frgfm in #101
- test: Added unittests with Alert API by @frgfm in #108
New Features 🚀
- setup ci by @MateoLostanlen in #83
- Feature/switch to reolink cam by @MateoLostanlen in #78
- save img for debug by @MateoLostanlen in #92
- feat: Added forced visual capture script by @MateoLostanlen in #95
- ci: Added multi-arch docker build upon release by @frgfm in #106
- ci: Added conda build & publish job for releases by @frgfm in #107
Bug Fixes 🐛
- fix version by @MateoLostanlen in #82
- fix version by @MateoLostanlen in #84
- fix: Fixed dockerfile by @frgfm in #85
- Fixed typo in Dockerfile by @MateoLostanlen in #86
- fix variable name by @MateoLostanlen in #90
- fix variable name (#90) by @MateoLostanlen in #91
- fix update script by @MateoLostanlen in #96
- fix: Ensures prob is defined in the engine prediction by @MateoLostanlen in #99
- docs: Fixed documentation section of the README by @frgfm in #105
- docs: Fixed readme badge for documentation by @frgfm in #111
- docs: Fixed installation and core page indexing by @frgfm in #112
- docs: Fixed branch target of doc edit button by @frgfm in #114
Improvements
- Feature/switch to detection model by @MateoLostanlen in #77
- black formatting by @MateoLostanlen in #79
- Feature/set crontab by @MateoLostanlen in #87
- remove matplotlib by @MateoLostanlen in #88
- Engie V0 by @MateoLostanlen in #89
- refactor: Disabled urllib warnings by @MateoLostanlen in #93
- feat: Improve logging of Engine by @MateoLostanlen in #94
- ignore config data by @MateoLostanlen in #97
- docs: Updated funding by @frgfm in #100
- ci: Added release note template by @frgfm in #104
- docs: Updated changelog by @frgfm in #110
- ci: Updated issue templates and env collection script by @frgfm in #113
Full Changelog: v0.1.1...v0.2.0