Releases: pyronear/pyro-engine
v0.2.0: Improved performances & reduced latency with ONNX
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
v0.1.1: Ardèche release
This release contains the solution that we have deployed for our test phase in Ardèche.
What's Changed
- fix port by @MateoLostanlen in #46
- Take picture in pi camera, send and write in pi main by @blenzi in #39
- Add security by @fe51 in #31
- Revert "Add security" by @fe51 in #53
- Update engine by @MateoLostanlen in #50
- Add update rooter module by @MateoLostanlen in #47
- update docker by @MateoLostanlen in #54
- Map hostnames by @MateoLostanlen in #55
- add check connection script by @MateoLostanlen in #56
- refactor: Switched console print to logging.info by @frgfm in #58
- feat: Added heartbeat at each frame prediction by @frgfm in #59
- chore: Updated requirements.txt by @frgfm in #60
- Switch to script by @MateoLostanlen in #63
- feat: Added an alert cache mechanism to avoid loosing information without internet by @frgfm in #61
- Improved router reboot script by @MateoLostanlen in #65
- refactor: Relocated utils for Pi Zeros into pi_utils by @MateoLostanlen in #64
- feat: Reduced image size to save bandwidth by @MateoLostanlen in #62
- ci on develop by @MateoLostanlen in #68
- Code of conduct by @fe51 in #71
- Update licence by @fe51 in #70
- fix: Changed version attribute to dynamic by @MateoLostanlen in #73
- chore: Installed pyrovision from source by @MateoLostanlen in #72
- Fix docker by @MateoLostanlen in #66
- add update script by @MateoLostanlen in #67
- add monitor runner by @MateoLostanlen in #74
- change default loop interval by @MateoLostanlen in #75
New Contributors
Full Changelog: v0.1.0...v0.1.1