CompreFace icon indicating copy to clipboard operation
CompreFace copied to clipboard

EFRS-1114: Google Coral Support for FaceNet - Updated (1.2.0)

Open bropat opened this issue 2 years ago • 36 comments

bropat avatar Nov 04 '23 18:11 bropat

CLA Assistant Lite bot:
Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


5 out of 6 committers have signed the CLA.
:white_check_mark: @ashutau
:white_check_mark: @VolodymyrBushko
:white_check_mark: @pospielov
:white_check_mark: @smchedlidze826
:white_check_mark: @aianko
:x: @Sazonava Hanna
Sazonava Hanna seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheckcla in this Pull Request

github-actions[bot] avatar Nov 04 '23 18:11 github-actions[bot]

Hello, is there any expected timeline for this PR to merge? Is any testing assistance needed? It looks like the missing contributor signing is the blocker.

Am I correct that this PR would enable Coral support in both the individual builds and the single image build?

rpetrina avatar Nov 25 '23 21:11 rpetrina

Anxiously awaiting release and like @rpetrina , happy to help 😊

osnabrugge avatar Dec 06 '23 02:12 osnabrugge

I'm prepared to use this in a professional environment asap :)

i1Fury avatar Dec 12 '23 18:12 i1Fury

I would also be happy to test it.

RobertLukan avatar Dec 16 '23 15:12 RobertLukan

@rpetrina @osnabrugge @i1Fury @RobertLukan Could you test those images?

Created docker builds (untested):

If you confirm that they work, I'm ready to merge this pull request to compreface repository. I'm not sure I'll be able to merge it to master and make an official release, as this code may potentially affect existing users. Still, I can add those images to the custom config folder, with all attribution to @bropat

pospielov avatar Dec 26 '23 17:12 pospielov

i did test them a while ago, but unfortunately couldn't figure out how to get them operational.

For anyone testing, be sure to pass the coral device through to the docker container.

i1Fury avatar Dec 26 '23 17:12 i1Fury

https://github.com/bropat/CompreFace/blob/EFRS-1114/custom-builds/FaceNet-tpu/docker-compose.yml There is a docker compose configuration file in bropat repository. I think the only thing you need to change is line 72, instead of: image: ${registry}compreface-core:${CORE_VERSION} it should be image: bropat/compreface-core:1.2.0-facenet-tpu

pospielov avatar Dec 26 '23 17:12 pospielov

I did try that as well, I may have done something wrong along the way, but i remember it not loading properly. (once i opened the web panel, it wouldn't load)

i1Fury avatar Dec 26 '23 17:12 i1Fury

@rpetrina @osnabrugge @i1Fury @RobertLukan Could you test those images?

Created docker builds (untested):

If you confirm that they work, I'm ready to merge this pull request to compreface repository. I'm not sure I'll be able to merge it to master and make an official release, as this code may potentially affect existing users. Still, I can add those images to the custom config folder, with all attribution to @bropat

I will do it in a few days, I am on holidays right now. I will keep you posted.

RobertLukan avatar Dec 27 '23 09:12 RobertLukan

I believe this was designed on a coral usb. As, I at first could not get this working on coral pcie version. Yes, I of course passed /dev/apex_0 through the container. I noticed there was no Apex user group within the container. I added that and added www-data to this group. But this did not work. At that point I went back to the basics and verified my coral device was working within the container by installing pycoral and running inference. Then I noticed there was a pytest.ini within the application itself. This succeeded

This led me back to permissions with the uswgi. Where I gave up and configured uwsgi to run as root. This was the trick and compreface started.

I have a small home lab using double take so I tested some with double take. I noticed you must run 1 process and 1 thread or those processes will timeout waiting for coral use. The sample .env file given by bropat had configured to run two processes which was not working for me. This has now been running for 4 days with no errors in my very small environment of 4 people and 10 cameras.

canadarob avatar Jan 01 '24 15:01 canadarob

I'm trying with USB coral and compreface won't start, the reason why is not clear. Here are the logs

2024-01-04 16:30:06,510 INFO supervisord started with pid 1
2024-01-04 16:30:07,513 INFO spawned: 'startup' with pid 7
2024-01-04 16:30:07,514 INFO spawned: 'compreface-core' with pid 8
2024-01-04 16:30:07,515 INFO success: startup entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-04 16:30:07,515 INFO success: compreface-core entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-04 16:30:07,516 INFO exited: startup (exit status 127; not expected)
2024-01-04 16:38:53,475 WARN received SIGTERM indicating exit request
2024-01-04 16:38:53,475 INFO waiting for compreface-core to die
2024-01-04 16:38:56,498 INFO stopped: compreface-core (exit status 0)
2024-01-04 16:48:39,686 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2024-01-04 16:48:39,686 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2024-01-04 16:48:39,688 INFO RPC interface 'supervisor' initialized
2024-01-04 16:48:39,688 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2024-01-04 16:48:39,688 INFO supervisord started with pid 1
2024-01-04 16:48:40,690 INFO spawned: 'startup' with pid 7
2024-01-04 16:48:40,692 INFO spawned: 'compreface-core' with pid 8
2024-01-04 16:48:40,692 INFO success: startup entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-04 16:48:40,692 INFO success: compreface-core entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-04 16:48:40,692 INFO exited: startup (exit status 127; not expected)
{"severity": "INFO", "message": "{'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True}", "request": null, "logger": "src.app", "module": "app", "traceback": null, "build_version": "dev"}
{"severity": "DEBUG", "message": "Creating new app for WSGI", "request": null, "logger": "src.app", "module": "app", "traceback": null, "build_version": "dev"}
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x55b8c9795380 pid: 8 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 8)
spawned uWSGI worker 1 (pid: 40, cores: 1)

and here is the docker command

docker run
  -d
  --name='CompreFace'
  --net='bridge'
  --privileged=true
  -e TZ="America/Denver"
  -e 'EXTERNAL_DB'='true'
  -e 'POSTGRES_URL'='jdbc:postgresql://192.168.50.106:5432/compreface'
  -e 'POSTGRES_USER'='***'
  -e 'POSTGRES_PASSWORD'='***'
  -e 'UWSGI_PROCESSES'='1'
  -e 'UWSGI_THREADS'='1'
  -p '4200:80/tcp'
  -v '/mnt/user/appdata/compreface':'/var/lib/postgresql/data':'rw'
  --device='/dev/bus/usb'
  'bropat/compreface:1.2.0-facenet-tpu'

NickM-27 avatar Jan 04 '24 23:01 NickM-27

Do I need to have a 2nd USB Coral device if I'm already using my Coral for Frigate?

jacobwtyler avatar Jan 09 '24 21:01 jacobwtyler

yes, a coral can not be shared by multiple processes

NickM-27 avatar Jan 09 '24 21:01 NickM-27

The USB TPU Coral is not recognize on my configuration

  • Intel N100
  • on Proxmox VM
  • No other usage of the TPU Coral (frigate was stopped)

with the change to the default install docker-compose file (on public site),

compreface-core:
    restart: unless-stopped
    image: bropat/compreface:1.2.0-facenet-tpu
    privileged: true 
    container_name: "compreface-core"
    devices:
      - /dev/bus/usb:/dev/bus/usb # passes the USB Coral 
    environment:   
      - TZ=Europe/Paris
      - ML_PORT=3000
      - IMG_LENGTH_LIMIT=${max_detect_size}
      - UWSGI_PROCESSES=${uwsgi_processes:-2}
      - UWSGI_THREADS=${uwsgi_threads:-1} 

and the TPU coral is not recognize, if the read well the logs

setgid() to 33
set additional group 46 (plugdev)
setuid() to 33
your memory page size is 4096 bytes
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 0.0.0.0:3000 fd 3
Python version: 3.8.18 (default, Oct 11 2023, 23:57:43)  [GCC 10.2.1 20210110]
2024-01-11 23:21:13,507 INFO exited: startup (exit status 127; not expected)
Python main interpreter initialized at 0x55e0498156f0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 218712 bytes (213 KB) for 2 cores
*** Operational MODE: preforking ***
Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver traceback=Traceback (most recent call last):
 File "/usr/local/lib/python3.8/site-packages/tensorflow/python/distribute/cluster_resolver/tpu_cluster_resolver.py", line 32, in <module>
   from cloud_tpu_client import client  # pylint: disable=g-import-not-at-top
ModuleNotFoundError: No module named 'cloud_tpu_client'
Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver traceback=Traceback (most recent call last):
 File "/usr/local/lib/python3.8/site-packages/tensorflow/python/distribute/cluster_resolver/tpu_cluster_resolver.py", line 32, in <module>
   from cloud_tpu_client import client  # pylint: disable=g-import-not-at-top
ModuleNotFoundError: No module named 'cloud_tpu_client'
build_version=dev
{'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app traceback=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app traceback=null build_version=dev
Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app traceback=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app traceback=null build_version=dev
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x55e0498156f0 pid: 8 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 8)
spawned uWSGI worker 1 (pid: 12, cores: 1)
spawned uWSGI worker 2 (pid: 13, cores: 1)
Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} logger=embedding-calculator module=app Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.15"} logger=embedding-calculator module=app traceback=Traceback (most recent call last):
 File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 161, in load_delegate
   delegate = Delegate(library, options)
 File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 120, in __init__
   raise ValueError(capture.message)
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
   response = self.full_dispatch_request()
 File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1945, in full_dispatch_request
   self.try_trigger_before_first_request_functions()
 File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
   func()
 File "/app/ml/./src/_endpoints.py", line 52, in init_model
   detector(
 File "/app/ml/./src/services/facescan/plugins/mixins.py", line 46, in __call__
   faces = self._fetch_faces(img, det_prob_threshold)
 File "/app/ml/./src/services/facescan/plugins/mixins.py", line 53, in _fetch_faces
   boxes = self.find_faces(img, det_prob_threshold)
 File "/app/ml/./src/services/facescan/plugins/facenet/coralmtcnn/coralmtcnn.py", line 77, in find_faces
   fdn = self._face_detection_net
 File "/usr/local/lib/python3.8/site-packages/cached_property.py", line 36, in __get__
   value = obj.__dict__[self.func.__name__] = self.func(obj)
 File "/app/ml/./src/services/facescan/plugins/facenet/coralmtcnn/coralmtcnn.py", line 61, in _face_detection_net
   return MTCNN(
 File "/usr/local/lib/python3.8/site-packages/mtcnn_tflite/MTCNN.py", line 83, in __init__
   self.builder = ModelBuilder()
 File "/usr/local/lib/python3.8/site-packages/mtcnn_tflite/ModelBuilder.py", line 43, in __init__
   delegate_list = tf.lite.experimental.load_delegate('libedgetpu.so.1')
 File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 163, in load_delegate
   raise ValueError('Failed to load delegate from {}\n{}'.format(
ValueError: Failed to load delegate from libedgetpu.so.1

The error ValueError: Failed to load delegate from libedgetpu.so.1 run in loop

The USB TPU Coral seem to be well mount in docker container

root@e9e83a810a73:~# ls -al /dev/bus/usb/
total 0
drwxr-xr-x 3 root root 60 Jan 11 23:31 .
drwxr-xr-x 3 root root 60 Jan 11 23:31 ..
drwxr-xr-x 2 root root 80 Jan 11 23:31 002

jmorille avatar Jan 11 '24 22:01 jmorille

@jmorille you need to change the default env values so there is only 1 process and only 1 thread

NickM-27 avatar Jan 11 '24 22:01 NickM-27

Of course, No concurent access on TPU Coral

So I change the env variable

uwsgi_processes=1
uwsgi_threads=1

And now only one worker is started,

spawned uWSGI master process (pid: 8)
spawned uWSGI worker 1 (pid: 12, cores: 1)

but same error

/usr/lib/python3/dist-packages/supervisor/options.py:474: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  self.warnings.warn(
2024-01-11 23:52:57,405 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
2024-01-11 23:52:57,405 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2024-01-11 23:52:57,407 INFO RPC interface 'supervisor' initialized
2024-01-11 23:52:57,407 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2024-01-11 23:52:57,408 INFO supervisord started with pid 1
supervisor: couldn't exec /startup.sh: ENOENT
supervisor: child process was not spawned
[uWSGI] getting INI configuration from uwsgi.ini
*** Starting uWSGI 2.0.19 (64bit) on [Thu Jan 11 23:52:58 2024] ***
compiled with version: 10.2.1 20210110 on 16 October 2023 06:27:05
os: Linux-6.5.11-7-pve #1 SMP PREEMPT_DYNAMIC PMX 6.5.11-7 (2023-12-05T09:44Z)
nodename: 14f9c486f268
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 4
current working directory: /app/ml
detected binary path: /usr/local/bin/uwsgi
setgid() to 33
set additional group 46 (plugdev)
setuid() to 33
your memory page size is 4096 bytes
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address 0.0.0.0:3000 fd 3
Python version: 3.8.18 (default, Oct 11 2023, 23:57:43)  [GCC 10.2.1 20210110]
2024-01-11 23:52:58,409 INFO spawned: 'startup' with pid 7
2024-01-11 23:52:58,411 INFO spawned: 'compreface-core' with pid 8
2024-01-11 23:52:58,413 INFO success: startup entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-11 23:52:58,413 INFO success: compreface-core entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2024-01-11 23:52:58,418 INFO exited: startup (exit status 127; not expected)
Python main interpreter initialized at 0x555feac8f6f0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145808 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver traceback=Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/tensorflow/python/distribute/cluster_resolver/tpu_cluster_resolver.py", line 32, in <module>
    from cloud_tpu_client import client  # pylint: disable=g-import-not-at-top
ModuleNotFoundError: No module named 'cloud_tpu_client'
 Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | Falling back to TensorFlow client; we recommended you install the Cloud TPU client directly with pip install cloud-tpu-client. | severity=DEBUG request=null logger=tensorflow module=tpu_cluster_resolver traceback=Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/tensorflow/python/distribute/cluster_resolver/tpu_cluster_resolver.py", line 32, in <module>
    from cloud_tpu_client import client  # pylint: disable=g-import-not-at-top
ModuleNotFoundError: No module named 'cloud_tpu_client'
 build_version=dev
{'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app traceback=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | {'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'facenet.coralmtcnn.Calculator', 'EXTRA_PLUGINS': ['facenet.LandmarksDetector', 'agegender.GenderDetector', 'agegender.AgeDetector', 'facenet.facemask.MaskDetector', 'facenet.PoseEstimator'], 'FACE_DETECTION_PLUGIN': 'facenet.coralmtcnn.FaceDetector', 'GPU_IDX': -1, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000, 'RUN_MODE': True} | severity=INFO request=null logger=src.app module=app traceback=null build_version=dev
Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app traceback=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG Creating new app for WSGI | Creating new app for WSGI | severity=DEBUG request=null logger=src.app module=app traceback=null build_version=dev
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x555feac8f6f0 pid: 8 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 8)
spawned uWSGI worker 1 (pid: 12, cores: 1)
Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator module=app Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator module=app traceback=Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 161, in load_delegate
    delegate = Delegate(library, options)
  File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 120, in __init__
    raise ValueError(capture.message)
ValueError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/app/ml/./src/_endpoints.py", line 52, in init_model
    detector(
  File "/app/ml/./src/services/facescan/plugins/mixins.py", line 46, in __call__
    faces = self._fetch_faces(img, det_prob_threshold)
  File "/app/ml/./src/services/facescan/plugins/mixins.py", line 53, in _fetch_faces
    boxes = self.find_faces(img, det_prob_threshold)
  File "/app/ml/./src/services/facescan/plugins/facenet/coralmtcnn/coralmtcnn.py", line 77, in find_faces
    fdn = self._face_detection_net
  File "/usr/local/lib/python3.8/site-packages/cached_property.py", line 36, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/app/ml/./src/services/facescan/plugins/facenet/coralmtcnn/coralmtcnn.py", line 61, in _face_detection_net
    return MTCNN(
  File "/usr/local/lib/python3.8/site-packages/mtcnn_tflite/MTCNN.py", line 83, in __init__
    self.builder = ModelBuilder()
  File "/usr/local/lib/python3.8/site-packages/mtcnn_tflite/ModelBuilder.py", line 43, in __init__
    delegate_list = tf.lite.experimental.load_delegate('libedgetpu.so.1')
  File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 163, in load_delegate
    raise ValueError('Failed to load delegate from {}\n{}'.format(
ValueError: Failed to load delegate from libedgetpu.so.1

 Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator module=app Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} Exception on /status [GET] | Exception on /status [GET] | severity=ERROR Exception on /status [GET] | Exception on /status [GET] | severity=ERROR request={"method":"GET","path":"/status","filename":"","api_key":"","remote_addr":"172.20.0.14"} logger=embedding-calculator module=app traceback=Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 161, in load_delegate
    delegate = Delegate(library, options)
  File "/usr/local/lib/python3.8/site-packages/tensorflow/lite/python/interpreter.py", line 120, in __init__
    raise ValueError(capture.message)
ValueError

Same loop error ValueError: Failed to load delegate from libedgetpu.so.1

jmorille avatar Jan 11 '24 23:01 jmorille

From my previous experience "Failed to load delegate from libedgetpu.so.1" is a very general error. Often this came down to permissions issues accessing the driver. You could try to run the UWSGI as root(modify uwsgi.ini within the container) to rule out permission issues. Then continue troubleshooting from there.

canadarob avatar Jan 12 '24 15:01 canadarob

I had the same issue as mentioned by @jmorille with libedgetpu.so.1. I fixed it by giving root permission inside of uwsgi.ini. I am not sure if this is a correct fix or just a workaround ? For now it looks like that everything is working. I can see following debug messages:

severity=DEBUG request={"method":"POST","path":"/find_faces","filename":"1705248380.281473-yfohwf-latest-dee00a10-f2d2-4816-a8bb-949975122223.jpg","api_key":"","remote_addr":"172.23.0.4"} logger=src.services.facescan.plugins.facenet.coralmtcnn.coralmtcnn module=coralmtcnn traceback=null build_version=dev

I need to figure out how to monitor the performance of Coral TPU. I am using M.2 module.

RobertLukan avatar Jan 14 '24 16:01 RobertLukan

I had the same issue as mentioned by @jmorille with libedgetpu.so.1. I fixed it by giving root permission inside of uwsgi.ini. I am not sure if this is a correct fix or just a workaround ? For now it looks like that everything is working. I can see following debug messages:

severity=DEBUG request={"method":"POST","path":"/find_faces","filename":"1705248380.281473-yfohwf-latest-dee00a10-f2d2-4816-a8bb-949975122223.jpg","api_key":"","remote_addr":"172.23.0.4"} logger=src.services.facescan.plugins.facenet.coralmtcnn.coralmtcnn module=coralmtcnn traceback=null build_version=dev

I need to figure out how to monitor the performance of Coral TPU. I am using M.2 module.

It's definitely a workaround. Something you wouldn't see in production.

It's hard to get metrics from the coral. But you can infer its working by its temperature.

canadarob avatar Jan 14 '24 16:01 canadarob

I confirm also that the fix, change user www-data to root in file uwsgi.ini work and fix the startup problem

  • I also try to change the permission on the mount of USB TPU Coral, even in 777 but that is not not working.

I will buy another TPU to have a better configuration for testing.

jmorille avatar Jan 14 '24 21:01 jmorille

I see that edge tpu have 3 mode clock from reduced clock, standard and maximum. Which mode support in this image ?

lamkhatinh avatar Jan 30 '24 10:01 lamkhatinh

I see that edge tpu have 3 mode clock from reduced clock, standard and maximum. Which mode support in this image ?

The driver that was used was the standard driver. This only matters for the USB coral's. If you have PCI or M2 based coral it will run at the max clock.

canadarob avatar Jan 30 '24 14:01 canadarob

Could you please share me how I can use max clock driver ?

lamkhatinh avatar Jan 31 '24 02:01 lamkhatinh

Could you please share me how I can use max clock driver ?

https://coral.ai/docs/accelerator/get-started/#runtime-on-linux the section: "Install with maximum operating frequency (optional)"

Run that within the compreface container

canadarob avatar Jan 31 '24 15:01 canadarob

Really thanks, I got it!

eav-solution avatar Feb 01 '24 15:02 eav-solution

I run Frigate successfully in an unprivileged Docker container mapping a single Coral as a device. I just received a second Coral, hoping to use it with CompreFace in a different Docker container. However, any time I plug in the second Coral, Frigate fails to restart. I have tried various solutions, including mapping the individual device, but I can't get past plugging in the second Coral. I have multiple USB controllers. Power is not an issue. If anybody has a working setup, can you post your docker-compose files and the relevant portions of config files for frigate and compreface-core?

tbclark3 avatar Feb 08 '24 20:02 tbclark3

@pospielov fwiw I can confirm that it does work with the above fixes (yml source change, uwsgi root, and single process/thread.) At least with a single USB coral as that is all I have to test with.

wavecom-it avatar Mar 18 '24 18:03 wavecom-it

Also tested with the same workarounds but I can't witness any improvements on performance, at least remotely with sollicitations from double-take. I'm basically getting the same response speed than Mobilenet on CPU (n100, AVX2). Are you having the same? Is there any mean to benchmark ?

arpel avatar Apr 19 '24 21:04 arpel