Code Monkey home page Code Monkey logo

Comments (17)

pliablepixels avatar pliablepixels commented on May 29, 2024 6

It looks like the API output changed in OpenCV 4.5.4
See opencv/opencv#20923

In previous versions, the dimensions were returned as an array of array but now its just an array. I'm not sure if this compatibility issue will be fixed, or if this is the new format, but for now, see temporary fix at https://forums.zoneminder.com/viewtopic.php?f=43&t=31129&p=123755&hilit=scalar#p123755

from mlapi.

juan11perez avatar juan11perez commented on May 29, 2024

thank you very much for your prompt reply. That workaround indeed removes the error.
should i close this? or would you like to keep it open?

from mlapi.

pliablepixels avatar pliablepixels commented on May 29, 2024

Let's keep it open till I fix it correctly

from mlapi.

pliablepixels avatar pliablepixels commented on May 29, 2024

Could you replace your yolo.py with this one and test? https://github.com/pliablepixels/pyzm/blob/5dfd2b7bfe57024dabc125c53c10b2c9f8e1a82b/pyzm/ml/yolo.py

I am not running 4.5.4 at the moment

from mlapi.

juan11perez avatar juan11perez commented on May 29, 2024

@pliablepixels tested your new yolo.py. Works fine, no errors, object recognition as expected.
i turned TPU off to ensure yolo processing and it works fine.

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

Good job on finding which exact version!

from mlapi.

thekazak avatar thekazak commented on May 29, 2024

Same error "IndexError: invalid index to scalar variable"
with latest opencv/opencv-contrib 4.6.0-dev, compiled from source


08/11/22 20:42:06 zmesdetect_m1[4359] INF ZMLog.py:292 [Setting up signal handler for logs]
08/11/22 20:42:06 zmesdetect_m1[4359] INF ZMLog.py:301 [Switching global logger to ZMLog]
08/11/22 20:42:06 zmesdetect_m1[4359] INF zm_detect.py:284 [---------| app:6.1.28, pyzm:0.3.56, ES:6.1.28
, OpenCV:4.6.0-dev|------------]
08/11/22 20:42:06 zmesdetect_m1[4359] INF utils.py:405 [Reading config from: /etc/zm/objectconfig.ini]
08/11/22 20:42:06 zmesdetect_m1[4359] INF utils.py:410 [Reading secrets from: /etc/zm/secrets.ini]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ZM_PORTAL]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ZM_USER]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ZM_PASSWORD]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ZM_API_PORTAL]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ML_USER]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !ML_PASSWORD]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:382 [Secret token found in config: !PLATEREC_ALPR_KEY]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG1 utils.py:445 [allowing self-signed certs to work...]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:455 [Now checking for monitor overrides]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG3 utils.py:473 [[monitor-1] overrides key:wait with value:5]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:174 [import_zm_zones: match_reason=True and reason=Motion]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG2 utils.py:177 [Getting ZM zones using https://zm.webtocloud.net:44313/zm/api/zones/forMonitor/1.json?username=xxx&password=yyy&user=xxx&pass=yyy]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG1 utils.py:225 [dropping public_entrance as zones in alarm cause is Motion]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG1 utils.py:225 [dropping private_entrance as zones in alarm cause is Motion]
08/11/22 20:42:06 zmesdetect_m1[4359] DBG3 utils.py:522 [Finally, doing parameter substitution]
08/11/22 20:42:06 zmesdetect_m1[4359] INF zm_detect.py:309 [Importing local classes for Object/Face]
08/11/22 20:42:07 zmesdetect_m1[4359] INF zm_detect.py:334 [Connecting with ZM APIs]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG2 api.py:72 [API SSL certificate check has been disbled]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG1 api.py:181 [using username/password for login]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG2 api.py:210 [Using new token API]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG1 api.py:217 [Access token expires on:2022-08-11 22:42:07.248078 [7200s]]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG1 api.py:221 [Refresh token expires on:2022-08-12 20:42:07.248280 [86400s]]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG2 zm_detect.py:342 [using ml_sequence]
08/11/22 20:42:07 zmesdetect_m1[4359] DBG2 zm_detect.py:354 [using stream_sequence]
08/11/22 20:42:07 zmesdetect_m1[4359] INF zm_detect.py:418 [Sleeping for 5 seconds before inferencing]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:160 [Resetting models, will be loaded on next run]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 detect_sequence.py:637 [Using manual locking as we are only using one model]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 Media.py:51 [Media get SSL certificate check has been disbled]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 Media.py:99 [Using URL 50156 for stream]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 Media.py:114 [We will only process frames: ['snapshot', 'alarm']]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 Media.py:137 [No need to start streams, we are picking images from https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50156]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 Media.py:271 [Reading https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50156&fid=snapshot]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 api.py:144 [No need to relogin as access token still has 119.91638281666665 minutes remaining]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 api.py:272 [make_request called with url=https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50156&fid=snapshot payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.
eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjYwMjM5NzI3LCJleHAiOjE2NjAyNDY5MjcsInVzZXIiOiJhZG1pbiIsInR5cGUiOiJhY2Nlc3MifQ.GIt_mrSQB-pa1GVThyV5rG_KESJ3ROjM5Tm6PhlYIWQ'}]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:654 [perf: Starting for frame:snapshot]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:664 [Sequence of detection types to execute: ['object']]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:669 [============ Frame: snapshot Running object detection type in sequence ==================]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:174 [Skipping TPU object detection as it is disabled]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:178 [Loading sequence: YoloV4 GPU/CPU]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:179 [Initializing model type:object with options:{'name': 'YoloV4 GPU/CPU', 'enabled': 'yes', 'object_config': '/var/lib/zmeventnotification/models/yolov4/yolov4.cfg', 'object_weights': '/var/lib/zmeventnotification/models/yolov4/yolov4.weights', 'object_labels': '/var/lib/zmeventnotification/models/yolov4/coco.names', 'object_min_confidence': 0.3, 'object_framework': 'opencv', 'object_processor': 'gpu', 'gpu_max_processes': 1, 'gpu_max_lock_wait': 100, 'cpu_max_processes': 3, 'cpu_max_lock_wait': 100, 'max_detection_size': '90%', 'disable_locks': 'no'}]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:38 [portalock: max:1, name:pyzm_uid33_gpu_lock, timeout:100]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:50 [Waiting for pyzm_uid33_gpu_lock portalock...]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:52 [Got pyzm_uid33_gpu_lock portalock]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 detect_sequence.py:689 [object has a same_model_sequence strategy of first]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:701 [--------- Frame:snapshot Running variation: #1 -------------]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:136 [detect extracted image dimensions as: 800wx1422h]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:47 [pyzm_uid33_gpu_lock portalock already acquired]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 yolo.py:85 [|--------- Loading "YoloV4 GPU/CPU" model from disk -------------|]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 yolo.py:100 [perf: processor:gpu Yolo initialization (loading /var/lib/zmeventnotification/models/yolov4/yolov4.weights model from disk) took: 69.05 ms]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:115 [Setting CUDA backend for OpenCV]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 yolo.py:116 [If you did not set your CUDA_ARCH_BIN correctly during OpenCV compilation, you will get errors during detection related to invalid device/make_policy]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 yolo.py:160 [|---------- YOLO (input image: 800w1422h, model resize dimensions: 416w416h) ----------|]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:68 [Released pyzm_uid33_gpu_lock portalock]
08/11/22 20:42:12 zmesdetect_m1[4359] ERR detect_sequence.py:713 [Error running model: invalid index to scalar variable.]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:714 [Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/detect_sequence.py", line 710, in detect_stream
_b,_l,_c,_m = m.detect(image=frame)
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/object.py", line 65, in detect
b,l,c,_model_names = self.model.detect(image)
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 168, in detect
ln = self.get_output_layers()
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 129, in get_output_layers
output_layers = [
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 130, in
layer_names[i[0] - 1] for i in self.net.getUnconnectedOutLayers()
IndexError: invalid index to scalar variable.
]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:770 [We did not find any object matches in frame: snapshot]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 Media.py:271 [Reading https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50156&fid=alarm]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 api.py:144 [No need to relogin as access token still has 119.91260125000001 minutes remaining]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 api.py:272 [make_request called with url=https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50156&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjYwMjM5NzI3LCJleHAiOjE2NjAyNDY5MjcsInVzZXIiOiJhZG1pbiIsInR5cGUiOiJhY2Nlc3MifQ.GIt_mrSQB-pa1GVThyV5rG_KESJ3ROjM5Tm6PhlYIWQ'}]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:654 [perf: Starting for frame:alarm]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:664 [Sequence of detection types to execute: ['object']]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:669 [============ Frame: alarm Running object detection type in sequence ==================]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG3 detect_sequence.py:689 [object has a same_model_sequence strategy of first]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:701 [--------- Frame:alarm Running variation: #1 -------------]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:136 [detect extracted image dimensions as: 800wx1422h]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:50 [Waiting for pyzm_uid33_gpu_lock portalock...]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:52 [Got pyzm_uid33_gpu_lock portalock]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 yolo.py:160 [|---------- YOLO (input image: 800w1422h, model resize dimensions: 416w416h) ----------|]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:68 [Released pyzm_uid33_gpu_lock portalock]
08/11/22 20:42:12 zmesdetect_m1[4359] ERR detect_sequence.py:713 [Error running model: invalid index to scalar variable.]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:714 [Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/detect_sequence.py", line 710, in detect_stream
_b,_l,_c,_m = m.detect(image=frame)
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/object.py", line 65, in detect
b,l,c,_model_names = self.model.detect(image)
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 168, in detect
ln = self.get_output_layers()
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 129, in get_output_layers
output_layers = [
File "/usr/local/lib/python3.9/dist-packages/pyzm/ml/yolo.py", line 130, in
layer_names[i[0] - 1] for i in self.net.getUnconnectedOutLayers()
IndexError: invalid index to scalar variable.
]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 detect_sequence.py:770 [We did not find any object matches in frame: alarm]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG2 yolo.py:64 [pyzm_uid33_gpu_lock portalock already released]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 detect_sequence.py:827 [perf: TOTAL detection sequence (with image loads) took: 306.11 ms to process 50156]
08/11/22 20:42:12 zmesdetect_m1[4359] DBG1 zm_detect.py:557 [Closing logs]

from mlapi.

thekazak avatar thekazak commented on May 29, 2024

The error shows up with opencv/contrib 4.6.0-dev only
There is no problem with opencv/contrib 4.5.5

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

I'll post a link to the fix and how to apply it here shortly

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

See this issue thread and apply the same fix

ZoneMinder/zmeventnotification#416

from mlapi.

thekazak avatar thekazak commented on May 29, 2024

After applying fix in ZoneMinder/zmeventnotification#416 now error "IndexError: invalid index to scalar variable" disapeared with opencv-contrib 4.6.0

But I experience now object_detect does not match anything. Not sure what it came from, but I tried delete /var/lib/zmeventnotification and install ES again by install.sh . It used to match/detect person pretty well before updated opencv 4.6.0

Is there anything alse to be reset ?


08/12/22 20:04:46 zmesdetect_m1[33801] INF ZMLog.py:292 [Setting up signal handler for logs]
08/12/22 20:04:46 zmesdetect_m1[33801] INF ZMLog.py:301 [Switching global logger to ZMLog]
08/12/22 20:04:46 zmesdetect_m1[33801] INF zm_detect.py:284 [---------| app:6.1.28, pyzm:0.3.56, ES:6.1.28
, OpenCV:4.6.0-dev|------------]
08/12/22 20:04:46 zmesdetect_m1[33801] INF utils.py:405 [Reading config from: /etc/zm/objectconfig.ini]
08/12/22 20:04:46 zmesdetect_m1[33801] INF utils.py:410 [Reading secrets from: /etc/zm/secrets.ini]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ZM_PORTAL]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ZM_USER]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ZM_PASSWORD]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ZM_API_PORTAL]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ML_USER]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !ML_PASSWORD]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:382 [Secret token found in config: !PLATEREC_ALPR_KEY]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG1 utils.py:445 [allowing self-signed certs to work...]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG2 utils.py:455 [Now checking for monitor overrides]
08/12/22 20:04:46 zmesdetect_m1[33801] DBG3 utils.py:522 [Finally, doing parameter substitution]
08/12/22 20:04:46 zmesdetect_m1[33801] INF zm_detect.py:309 [Importing local classes for Object/Face]
08/12/22 20:04:47 zmesdetect_m1[33801] INF zm_detect.py:334 [Connecting with ZM APIs]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 api.py:72 [API SSL certificate check has been disbled]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 api.py:181 [using username/password for login]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 api.py:210 [Using new token API]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 api.py:217 [Access token expires on:2022-08-12 22:04:47.369973 [7200s]]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 api.py:221 [Refresh token expires on:2022-08-13 20:04:47.370239 [86400s]]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 zm_detect.py:342 [using ml_sequence]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 zm_detect.py:354 [using stream_sequence]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 detect_sequence.py:160 [Resetting models, will be loaded on next run]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 detect_sequence.py:634 [Using automatic locking as we are switching between models]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 Media.py:51 [Media get SSL certificate check has been disbled]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 Media.py:99 [Using URL 50365 for stream]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 Media.py:114 [We will only process frames: ['snapshot', 'alarm']]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 Media.py:137 [No need to start streams, we are picking images from https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50365]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 Media.py:271 [Reading https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50365&fid=snapshot]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 api.py:144 [No need to relogin as access token still has 119.99991481666666 minutes remaining]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 api.py:272 [make_request called with url=https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50365&fid=snapshot payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjYwMzIzODg3LCJleHAiOjE2NjAzMzEwODcsInVzZXIiOiJhZG1pbiIsInR5cGUiOiJhY2Nlc3MifQ.gKNSwpiE3Ei6-kSiz1L8mxUvx_GjRt24k8VB3JXw8O4'}]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 detect_sequence.py:654 [perf: Starting for frame:snapshot]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 detect_sequence.py:664 [Sequence of detection types to execute: ['object', 'face']]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 detect_sequence.py:669 [============ Frame: snapshot Running object detection type in sequence ==================]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 detect_sequence.py:174 [Skipping TPU object detection as it is disabled]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 detect_sequence.py:178 [Loading sequence: YoloV4 GPU/CPU]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 detect_sequence.py:179 [Initializing model type:object with options:{'name': 'YoloV4 GPU/CPU', 'enabled': 'yes', 'object_config': '/var/lib/zmeventnotification/models/yolov4/yolov4.cfg', 'object_weights': '/var/lib/zmeventnotification/models/yolov4/yolov4.weights', 'object_labels': '/var/lib/zmeventnotification/models/yolov4/coco.names', 'object_min_confidence': 0.3, 'object_framework': 'opencv', 'object_processor': 'gpu', 'gpu_max_processes': 1, 'gpu_max_lock_wait': 100, 'cpu_max_processes': 3, 'cpu_max_lock_wait': 100, 'max_detection_size': '90%', 'disable_locks': 'no'}]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 yolo.py:54 [portalock: max:1, name:pyzm_uid33_gpu_lock, timeout:100]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 detect_sequence.py:689 [object has a same_model_sequence strategy of first]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 detect_sequence.py:701 [--------- Frame:snapshot Running variation: #1 -------------]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 yolo.py:152 [detect extracted image dimensions as: 800wx1422h]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 yolo.py:68 [Waiting for pyzm_uid33_gpu_lock portalock...]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 yolo.py:70 [Got pyzm_uid33_gpu_lock portalock]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 yolo.py:102 [|--------- Loading "YoloV4 GPU/CPU" model from disk -------------|]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 yolo.py:113 [You are using OpenCV >= 4.5.4, making sure we fix getUnconnectedOutLayers() API]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 yolo.py:115 [perf: processor:gpu Yolo initialization (loading /var/lib/zmeventnotification/models/yolov4/yolov4.weights model from disk) took: 251.88 ms]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG2 yolo.py:130 [Setting CUDA backend for OpenCV]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG3 yolo.py:131 [If you did not set your CUDA_ARCH_BIN correctly during OpenCV compilation, you will get errors during detection related to invalid device/make_policy]
08/12/22 20:04:47 zmesdetect_m1[33801] DBG1 yolo.py:175 [|---------- YOLO (input image: 800w1422h, model resize dimensions: 416w416h) ----------|]
08/12/22 20:04:48 zmesdetect_m1[33801] DBG2 yolo.py:86 [Released pyzm_uid33_gpu_lock portalock]
08/12/22 20:04:48 zmesdetect_m1[33801] DBG1 yolo.py:199 [perf: processor:gpu Yolo detection took: 1274.97 ms]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 yolo.py:233 [perf: processor:gpu Yolo NMS filtering took: 0.78 ms]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 object.py:66 [core model detection over, got 0 objects. Now filtering]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 object.py:70 [Max object size found to be: 90%]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 object.py:78 [Converted 90% to 1023840.0]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 object.py:103 [Returning filtered list of 0 objects.]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:711 [This model iteration inside object found: labels: [],conf:[]]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:424 [Max object size found to be: 90%]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:432 [Converted 90% to 1023840.0]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:448 [No polygons, adding full image polygon: {'name': 'full_image', 'value': [(0, 0), (1080, 0), (1080, 1920), (0, 1920)], 'pattern': None}]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG3 detect_sequence.py:228 [resized polygons x=0.7407407407407407/y=0.740625: [{'name': 'full_image', 'value': [(0, 0), (800, 0), (800, 1422), (0, 1422)], 'pattern': None}]]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:770 [We did not find any object matches in frame: snapshot]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG1 detect_sequence.py:669 [============ Frame: snapshot Running face detection type in sequence ==================]
08/12/22 20:04:49 zmesdetect_m1[33801] DBG2 detect_sequence.py:190 [Skipping TPU face detection as it is disabled]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_dlib.py:42 [perf: processor:cpu Face Recognition library load time took: 0.00 ms ]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_dlib.py:50 [Initializing face recognition with model:cnn upsample:1, jitters:0]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG2 face_dlib.py:73 [portalock: max:3, name:pyzm_uid33_cpu_lock, timeout:100]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_dlib.py:97 [trained file not found, reading from images and doing training...]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_dlib.py:100 [If you are using a GPU and run out of memory, do the training using zm_train_faces.py. In this case, other models like yolo may already take up a lot of GPU memory]
08/12/22 20:04:50 zmesdetect_m1[33801] ERR face_train_dlib.py:135 [No known faces found to train, encoding file not created]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_train_dlib.py:152 [perf: Face Recognition training took: 9.64 ms]
08/12/22 20:04:50 zmesdetect_m1[33801] ERR face_dlib.py:110 [Error loading KNN model: [Errno 2] No such file or directory: '/var/lib/zmeventnotification/known_faces/faces.dat']
08/12/22 20:04:50 zmesdetect_m1[33801] DBG3 detect_sequence.py:689 [face has a same_model_sequence strategy of union]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 detect_sequence.py:701 [--------- Frame:snapshot Running variation: #1 -------------]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG1 face_dlib.py:164 [|---------- Dlib Face recognition (input image: 800w1422h) ----------|]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG3 face_dlib.py:174 [Face options={'name': 'DLIB based face recognition', 'enabled': 'yes', 'save_unknown_faces': 'yes', 'save_unknown_faces_leeway_pixels': 100, 'face_detection_framework': 'dlib', 'known_images_path': '/var/lib/zmeventnotification/known_faces', 'unknown_images_path': '/var/lib/zmeventnotification/unknown_faces', 'face_model': 'cnn', 'face_train_model': 'cnn', 'face_recog_dist_threshold': '0.6', 'face_num_jitters': '1', 'face_upsample_times': '1', 'gpu_max_processes': 1, 'gpu_max_lock_wait': 100, 'cpu_max_processes': 3, 'cpu_max_lock_wait': 100, 'max_size': 800, 'disable_locks': 'no'}]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG2 face_dlib.py:123 [Waiting for pyzm_uid33_cpu_lock portalock...]
08/12/22 20:04:50 zmesdetect_m1[33801] DBG2 face_dlib.py:125 [Got pyzm_uid33_cpu_lock lock...]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 face_dlib.py:206 [perf: processor:cpu Finding faces took 19282.68 ms]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 face_dlib.py:141 [Released pyzm_uid33_cpu_lock portalock]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 face_dlib.py:218 [perf: processor:cpu Computing face recognition distances took 0.97 ms]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 detect_sequence.py:711 [This model iteration inside face found: labels: [],conf:[]]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 detect_sequence.py:424 [Max object size found to be: 90%]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 detect_sequence.py:432 [Converted 90% to 1023840.0]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 detect_sequence.py:770 [We did not find any face matches in frame: snapshot]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG3 Media.py:271 [Reading https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50365&fid=alarm]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG3 api.py:144 [No need to relogin as access token still has 119.62694315 minutes remaining]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG3 api.py:272 [make_request called with url=https://zm.webtocloud.net:44313/zm/index.php?view=image&eid=50365&fid=alarm payload={} type=get query={'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjYwMzIzODg3LCJleHAiOjE2NjAzMzEwODcsInVzZXIiOiJhZG1pbiIsInR5cGUiOiJhY2Nlc3MifQ.gKNSwpiE3Ei6-kSiz1L8mxUvx_GjRt24k8VB3JXw8O4'}]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 detect_sequence.py:654 [perf: Starting for frame:alarm]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 detect_sequence.py:664 [Sequence of detection types to execute: ['object', 'face']]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 detect_sequence.py:669 [============ Frame: alarm Running object detection type in sequence ==================]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG3 detect_sequence.py:689 [object has a same_model_sequence strategy of first]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 detect_sequence.py:701 [--------- Frame:alarm Running variation: #1 -------------]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 yolo.py:152 [detect extracted image dimensions as: 800wx1422h]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 yolo.py:68 [Waiting for pyzm_uid33_gpu_lock portalock...]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG2 yolo.py:70 [Got pyzm_uid33_gpu_lock portalock]
08/12/22 20:05:09 zmesdetect_m1[33801] DBG1 yolo.py:175 [|---------- YOLO (input image: 800w
1422h, model resize dimensions: 416w416h) ----------|]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 yolo.py:86 [Released pyzm_uid33_gpu_lock portalock]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG1 yolo.py:199 [perf: processor:gpu Yolo detection took: 2145.69 ms]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 yolo.py:233 [perf: processor:gpu Yolo NMS filtering took: 1.05 ms]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 object.py:66 [core model detection over, got 0 objects. Now filtering]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 object.py:70 [Max object size found to be: 90%]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 object.py:78 [Converted 90% to 1023840.0]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 object.py:103 [Returning filtered list of 0 objects.]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 detect_sequence.py:711 [This model iteration inside object found: labels: [],conf:[]]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 detect_sequence.py:424 [Max object size found to be: 90%]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 detect_sequence.py:432 [Converted 90% to 1023840.0]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 detect_sequence.py:770 [We did not find any object matches in frame: alarm]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG1 detect_sequence.py:669 [============ Frame: alarm Running face detection type in sequence ==================]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG3 detect_sequence.py:689 [face has a same_model_sequence strategy of union]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG1 detect_sequence.py:701 [--------- Frame:alarm Running variation: #1 -------------]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG1 face_dlib.py:164 [|---------- Dlib Face recognition (input image: 800w
1422h) ----------|]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG3 face_dlib.py:174 [Face options={'name': 'DLIB based face recognition', 'enabled': 'yes', 'save_unknown_faces': 'yes', 'save_unknown_faces_leeway_pixels': 100, 'face_detection_framework': 'dlib', 'known_images_path': '/var/lib/zmeventnotification/known_faces', 'unknown_images_path': '/var/lib/zmeventnotification/unknown_faces', 'face_model': 'cnn', 'face_train_model': 'cnn', 'face_recog_dist_threshold': '0.6', 'face_num_jitters': '1', 'face_upsample_times': '1', 'gpu_max_processes': 1, 'gpu_max_lock_wait': 100, 'cpu_max_processes': 3, 'cpu_max_lock_wait': 100, 'max_size': 800, 'disable_locks': 'no'}]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 face_dlib.py:123 [Waiting for pyzm_uid33_cpu_lock portalock...]
08/12/22 20:05:12 zmesdetect_m1[33801] DBG2 face_dlib.py:125 [Got pyzm_uid33_cpu_lock lock...]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG1 face_dlib.py:206 [perf: processor:cpu Finding faces took 8613.39 ms]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG1 face_dlib.py:141 [Released pyzm_uid33_cpu_lock portalock]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG1 face_dlib.py:218 [perf: processor:cpu Computing face recognition distances took 0.28 ms]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG2 detect_sequence.py:711 [This model iteration inside face found: labels: [],conf:[]]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG2 detect_sequence.py:424 [Max object size found to be: 90%]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG2 detect_sequence.py:432 [Converted 90% to 1023840.0]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG2 detect_sequence.py:770 [We did not find any face matches in frame: alarm]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG1 detect_sequence.py:827 [perf: TOTAL detection sequence (with image loads) took: 33440.35 ms to process 50365]
08/12/22 20:05:20 zmesdetect_m1[33801] DBG1 zm_detect.py:557 [Closing logs]

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

The only thing changed in the fix is how the opencv version is processed so there really shouldn't be any issues.

Are you testing with an event that had previously detected objects?

from mlapi.

thekazak avatar thekazak commented on May 29, 2024

I will test more thorougly
Just wanted to know do I need to reset/cleanup anything else in addition to /var/lib/zmeventnotification and python3 bindings zmes_hook_helpers and pyzm , in my case located in /usr/local/lib/python3.9/dist-packages ?

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

No, replacing yolo.py will not affect anything else and you will not need to change anything else. It's a rolling hot fix that shouldn't do anything but take care of the index error you were seeing before.

from mlapi.

thekazak avatar thekazak commented on May 29, 2024

Seems issue with detected objects is somehow connected with ZM only.
Fixed yolo.py is working just fine with opencv-contrib 4.6.0

from mlapi.

Helipil0t avatar Helipil0t commented on May 29, 2024

So the fixed yolo.py is no longer working with ZoneMinder 1.36.32. OpenCV 4.6.0-dev Python 3.10.6.
I had to remove a few lines from the code to get things working. I posted more details here:
https://forums.zoneminder.com/viewtopic.php?t=32223

from mlapi.

baudneo avatar baudneo commented on May 29, 2024

By the fixed yolo.py do you mean the one I uploaded or do you mean the the one using/not using the indices based on opencv version?

from mlapi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.