Viseron
Self-hosted, local-only NVR and AI computer vision software
Alternative to: ring, nest, wyze
v1.9.0
2021-06-19This release brings support for DeepStack object detection aswell as face detection.
Another exciting feature is the support for the Jetson Nano!
Other than that I have spent a lot of effort to increase the stability of Viseron.
Viseron now handles missbehaving cameras in a much better way.
If a camera is unavailable during startup, Viseron will continue to try and reconnect. This is to help against temporarily unavailable cameras.
Viseron carefully monitors any subprocesses or threads that are started, and in the case of one crashing, it will be restarted accordingly.
There are a few more goodies in this one, aswell as some breaking changes. Make sure to read the changelog below.
Enjoy!
Breaking changes
triggers_recordingunderlabelshas been deprecated. Usetrigger_recorderinstead. A warning will be printed if you still usetriggers_recording, reminding you to change your config.- The endpoint
/<camera>/streamhas been renamed to/<camera>/mjpeg-stream. If you still use the old endpoint Viseron will warn you and then redirect to the new URL. In the future this will produce an error.
New features
- DeepStack object detection is now available.
See the new section in the README - The post processor class is now more general which means adding new processors is a piece of cake.
- DeepStack face recognition is now available.
See the new section in the README - Jetson Nano support.
An image specifically made for the Jetson Nano is now available:
roflcoopter/jetson-nano-viseron. Hardware accelerated decoding of cameras is supported, aswell as YOLOv4 with CUDA backend. - New config option
filename_patternunderrecorderandthumbnail. Allows you to change the output filename of recordings and thumbnails. - New config option
ffprobe_loglevel - An alias is created for each ffmpeg process to make it easy to spot which ffmpeg process belongs to which camera.
If you have a camera called Front Door, your ffmpeg command will start with
front_doorinstead offfmpeg - New config option
color_logswhich controls if logs are colored or not. Enabled by default. - New config option
trigger_recorderundermotion_detectionwhich allows motion to start recordings. - New config option
enableunderobject_detectionwhich allows you to disable object detection if you want to run motion_detection only.
Changes
- All docker images are now based on Ubuntu Focal(20.04) which ships Python 3.8
- OpenCV upgraded to 4.5.2
- FFmpeg upgraded to 4.4
- dlib upgraded to 19.22
- OpenCL upgraded to 21.15.19533
- The detector class is now more general which means adding new detectors is a piece of cake.
amd64-viseronimage now once again defaults to YOLOv3.
This is done because YOLOv4 has performance issues that are not present when running CUDA.
YOLOv4 models are still provided so you can pick and choose which one you like if YOLOv3 does not suit you.- Username and passwords are now redacted from logs in the FFmpeg command
- All long-running theads are now monitored and automatically restarted in case of an exception. The FFmpeg process is also monitored. Closes #109. Closes #11. Closes #113
- Permissions are now automatically set when not running as root for EdgeTPU and all hardware acceleration methods. Closes #173. Closes #176
- Viseron now once again runs as root by default. This is to make sure Viseron always works for new users.
Setting PUID and PGID to something other than root works almost always so if you rather not run as root it should work fine. - Subprocesses like the one used for segments only is now monitored and restarted accordingly.
- ffmpeg errors will now be logged to the standard python logging instead of being suppressed
- Cameras are now setup completely independent of eachother.
Previously if one camera was blocking, no other camera would process frames. - If setup of a camera fails, the setup process will be retried indefinitely.
This is done to guard against cameras that are temporarily unavailable at startup.
Fixes
- Fix a crash caused by using
require_motion: trueon a label inside a zone while not tracking it in the entire field of view.
Docker images will be on Docker Hub shortly