Video Analytics Plugin Architecture

If you've made a patch to quick fix a bug or to add a new feature not yet in the main tree then post it here so others can try it out.
sudheer
Posts: 3
Joined: Thu Apr 07, 2016 7:13 am

Re: Video Analytics Plugin Architecture

Post by sudheer »

Hai ,

Motion detection is not happening with plugin installed
Here is log file

Date/Time Component PID Level Message File Line
2016-04-07 11:06:55.533827 zma_m1 17438 INF Monitor-1: 2000 - Processing at 12.50 fps zm_monitor.cpp 1121
2016-04-07 11:06:55.189675 zmc_dvideo0 17426 INF Monitor-1: 2000 - Capturing at 12.50 fps zm_monitor.cpp 2747
2016-04-07 11:05:35.528866 zma_m1 17438 INF Monitor-1: 1000 - Processing at 12.50 fps zm_monitor.cpp 1121
2016-04-07 11:05:35.190139 zmc_dvideo0 17426 INF Monitor-1: 1000 - Capturing at 12.50 fps zm_monitor.cpp 2747
2016-04-07 11:04:40.178772 zms 17452 INF Got signal 15 (Terminated), exiting zm_signal.cpp 44
2016-04-07 11:04:18.239078 zms 17452 INF Load monitor 1, purpose = 0 zm_monitor.cpp 2429
2016-04-07 11:04:16.580563 zma_m1 17438 INF In mode 3/1, warming up zma.cpp 101
2016-04-07 11:04:15.562176 zma_m1 17438 WAR Waiting for capture daemon zm_monitor.cpp 569
2016-04-07 11:04:15.549820 zma_m1 17438 INF Configure plugins with '/usr/share/zm/plugins.conf' config file. zm_monitor.cpp 488
2016-04-07 11:04:15.549463 zma_m1 17438 INF Runtime error: Could not load '/usr/share/zm/libzm_plugin_face_haar.zmpl'zm_plugin_manager.cpp 77
2016-04-07 11:04:15.548967 zma_m1 17438 INF Plugin path /usr/share/zm/libzm_plugin_face_haar.zmpl zm_monitor.cpp 479
2016-04-07 11:04:15.548740 zma_m1 17438 INF Load plugins from the directory /usr/share/zm ... zm_monitor.cpp 473
2016-04-07 11:04:15.548128 zma_m1 17438 INF In the constructor of Monitor class with ID=1: zm_monitor.cpp 470

Please share your suggestions;
armorm2
Posts: 2
Joined: Tue Jun 07, 2016 6:21 pm

Re: Video Analytics Plugin Architecture

Post by armorm2 »

sudheer - Your ZM installation is not loading the plugins correctly. This plugin framework introduced front-end fields for users to supply the name(s) of the vision plugin(s) that should get used with a given monitor. In your log:

Runtime error: Could not load '/usr/share/zm/libzm_plugin_face_haar.zmpl'zm_plugin_manager.cpp 77

I would advise you to check in the Monitor options and make sure the 'Used plugins' field has the correct file name(s) of the vision plugin(s) you want to apply to the monitor (by default i think the plugin file name ends with .so - for the plugins compiled via scons). Also check the PATHS tab in zoneminder as you also need to set the PATH to the plugins folder containing the .so files

When the .so file loads correctly, please post the log after that. I've tested face & upper body which do work. However I've found that you also need to play with the accuracy settings for each plugin via the provided plugins.conf. The more restrictive these settings are, the more accurate the face/upper body/etc detection will be, but it depends on environment
Last edited by armorm2 on Thu Jun 09, 2016 4:57 am, edited 1 time in total.
armorm2
Posts: 2
Joined: Tue Jun 07, 2016 6:21 pm

Re: Video Analytics Plugin Architecture

Post by armorm2 »

I've been doing some work on this vision plug-in architecture. Mostly what's been done here with a slight difference - I patched the changes introduced in the CVision Lab plug-in framework into ZM version (1.28.1). I've been using this version of ZM as it seems more up-to-date. I've also managed to get OpenCV linked against ZM and correctly detecting faces and upper bodies (with a lot of false positives, but it works. I'm using still images with a lot of noise (trees, light/shade, etc). Playing with the cascade classifier settings found in plugins.conf helps reduce some of the false positives. Also I am working on an Nvidia Jetson TK1, primarily looking to add GPU usage for classification algorithms. I am at the point where GPU correctly detected by ZM/OpenCV, and now its just a matter of preparing the cv::gpu::Mat data structure required to load the ZM images into GPU for detection using OpenCV's CascadeClassifier_GPU - http://docs.opencv.org/2.4/modules/gpu/ ... sifier-gpu. Will post more when I have things running on GPU
Post Reply