Coder Social home page Coder Social logo

exadel-inc / compreface Goto Github PK

View Code? Open in Web Editor NEW
3.9K 75.0 543.0 553.02 MB

Leading free and open-source face recognition system

Home Page: https://exadel.com/accelerator-showcase/compreface/

License: Apache License 2.0

Dockerfile 0.50% Java 42.68% Makefile 0.17% Python 10.68% Shell 0.23% JavaScript 1.25% TypeScript 32.25% HTML 6.60% SCSS 5.57% HCL 0.07%
face-recognition computer-vision face-detection facenet insightface docker docker-compose rest-api face-verification face-identification

compreface's People

Contributors

aliaksandr-pleski avatar anatolii-r avatar andreigaevsky avatar ashutau avatar azanorth avatar bestdvlpr avatar daffy- avatar dandryianau avatar elijas avatar endypanda avatar igorkzmn avatar isobolev avatar kemerava avatar mjakowiec avatar mmisachenka avatar noirkalmaro avatar olehkhomyk avatar omorgunova-pl avatar oriasyk avatar pbohdan avatar pnikalaichyk avatar pospielov avatar sbvalijon avatar sisha3342 avatar smchedlidze826 avatar sshimanski-exadel avatar stashess avatar tarasau avatar volodymyrbushko avatar z268 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

compreface's Issues

Login page not loading

Hi,

I was able to successfully download and run the docker-compose.yml file for compreface. However, I had to change the port from 8000 to 6000 since I have portainer running on the same environment and there was a port conflict. The compreface stack starts successfully. However, I cannot access http://local-ip:6000/login. It doesn't return a website. Is running on port 8000 a must?

Thanks

Make a CompreFace FaceNet custom build with MKL.

This is the only option we have right now to support CPU without AVX.
We need two versions: with and without GPU support.
Steps:

  1. Add new embedding calculator build with INTEL_OPTIMIZATION=true to:
    https://github.com/exadel-inc/CompreFace/blob/c44c92eaea31798f8e68c91acc36144d3b8ab411/embedding-calculator/Makefile
  2. Create new docker-compose files in the custom builds folder. Here is documentation on how to create a custom build:
    https://github.com/exadel-inc/CompreFace/blob/master/docs/Custom-builds.md#how-to-build-your-own-custom-build

0.5.0-arcface-r100-gpu using a lot of GPU memory

Describe the bug
Maybe this is typical, but when I run compreface 0.5.0-arcface-r100-gpu, it's using over 2GB of GPU memory. More specifically, I'm using https://github.com/jakowenko/double-take with compreface. I don't know if this is more of an issue with double-take or compreface. For what it's worth, double-take does not cause a significant rise in memory when used with deepstack.

To Reproduce
Steps to reproduce the behavior:

  1. docker-compose up -d
  2. start application using compreface
  3. run nvidia-smi on the host

Expected behavior
I'd hope that it would use a little less memory than it currently is.

Screenshots
When compreface is stopped
image
image

When compreface is running
image
image

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.2 LTS - Docker version 20.10.7
  • Browser: NA
  • Version: 0.5.0-arcface-r100-gpu

Additional context
compreface logs

[uWSGI] getting INI configuration from uwsgi.ini
*** Starting uWSGI 2.0.19 (64bit) on [Wed Jul 21 07:01:45 2021] ***
compiled with version: 7.5.0 on 08 May 2021 15:10:29
os: Linux-5.4.0-80-generic #90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021
nodename: 6fb5e06b2773
machine: x86_64
clock source: unix
detected number of CPU cores: 12
current working directory: /app/ml
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
setgid() to 33
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.7.10 (default, May  3 2021, 02:48:31)  [GCC 7.5.0]
Python main interpreter initialized at 0x5561c9188dc0
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 ***
{"severity": "INFO", "message": "{'BUILD_VERSION': 'dev', 'CALCULATION_PLUGIN': 'insightface.Calculator@arcface-r100-msfdrop75', 'EXTRA_PLUGINS': ['insightface.LandmarksDetector', 'insightface.GenderDetector', 'insightface.AgeDetector'], 'FACE_DETECTION_PLUGIN': 'insightface.FaceDetector@retinaface_r50_v1', 'GPU_IDX': 0, 'IMG_LENGTH_LIMIT': 640, 'INTEL_OPTIMIZATION': False, 'IS_DEV_ENV': False, 'LOGGING_LEVEL_NAME': 'DEBUG', 'ML_PORT': 3000}", "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 1 seconds on interpreter 0x5561c9188dc0 pid: 1 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 1)
spawned uWSGI worker 1 (pid: 29, cores: 1)
[07:02:24] src/nnvm/legacy_json_util.cc:209: Loading symbol saved by previous version v1.3.0. Attempting to upgrade...
[07:02:24] src/nnvm/legacy_json_util.cc:217: Symbol successfully upgraded!
[07:02:24] src/engine/engine.cc:55: MXNet start using engine: ThreadedEnginePerDevice
��
[32, 16, 8] {'32': {'SCALES': (32, 16), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}, '16': {'SCALES': (8, 4), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}, '8': {'SCALES': (2, 1), 'BASE_SIZE': 16, 'RATIOS': (1.0,), 'ALLOWED_BORDER': 9999}}
use_landmarks True
{"severity": "DEBUG", "message": "Found: BoundingBoxDTO(x_min=213, y_min=191, x_max=351, y_max=389, probability=0.9987448453903198, _np_landmarks=array([[272.14957, 270.67865],\n       [333.11127, 271.83698],\n       [315.5005 , 318.38934],\n       [275.87915, 349.39502],\n       [319.8204 , 350.583  ]], dtype=float32))", "request": {"method": "POST", "path": "/find_faces", "filename": "lenna.jpg", "api_key": "", "remote_addr": "172.18.0.18"}, "logger": "src.services.facescan.plugins.insightface.insightface", "module": "insightface", "traceback": null, "build_version": "dev"}
[07:02:27] src/nnvm/legacy_json_util.cc:204: Warning: loading symbol saved by MXNet version 20000 with lower version of MXNet v10501. May cause undefined behavior. Please update MXNet if you encounter any issue
{"severity": "INFO", "message": "200 OK", "request": {"method": "POST", "path": "/find_faces", "filename": "lenna.jpg", "api_key": "", "remote_addr": "172.18.0.18"}, "logger": "src.services.flask_.log_response", "module": "log_response", "traceback": null, "build_version": "dev"}
{"severity": "INFO", "message": "200 OK", "request": {"method": "GET", "path": "/status", "filename": "", "api_key": "", "remote_addr": "172.18.0.18"}, "logger": "src.services.flask_.log_response", "module": "log_response", "traceback": null, "build_version": "dev"}

Incorrect title for "Applications" section when a user doesn't have any application

Describe the bug
When a user doesn't have any applications, he sees the "Create Application" title instead of "Applications"

To Reproduce
Steps to reproduce the behavior:

  1. Install and run CompreFace
  2. Navigate to http://localhost:8000/login
  3. Click "Sign up"
  4. Fill out the required fields -> Sign up
  5. Login with just created account
  6. Open the "Demo" application
  7. Click "delete" icon on the top right corner
  8. Confirm, you will be redirected to the main page
  9. Check the title for the application section

Actual result:
The title is "Create Application"
image

Expected behavior
The title should be "Applications"
image

no such image: compreface-api:: invalid reference format

I am new with docker but I'm following the Getting started guide from the README of this repo. Downloaded 0.4.1 release, unzipped docker-compose.yml and executed the command:

$docker-compose up -d

WARNING: The postgres_password variable is not set. Defaulting to a blank string.
WARNING: The registry variable is not set. Defaulting to a blank string.
WARNING: The ADMIN_VERSION variable is not set. Defaulting to a blank string.
WARNING: The postgres_domain variable is not set. Defaulting to a blank string.
WARNING: The postgres_port variable is not set. Defaulting to a blank string.
WARNING: The enable_email_server variable is not set. Defaulting to a blank string.
WARNING: The email_host variable is not set. Defaulting to a blank string.
WARNING: The email_username variable is not set. Defaulting to a blank string.
WARNING: The email_from variable is not set. Defaulting to a blank string.
WARNING: The email_password variable is not set. Defaulting to a blank string.
WARNING: The compreface_admin_java_options variable is not set. Defaulting to a blank string.
WARNING: The API_VERSION variable is not set. Defaulting to a blank string.
WARNING: The compreface_api_java_options variable is not set. Defaulting to a blank string.
WARNING: The save_images_to_db variable is not set. Defaulting to a blank string.
WARNING: The FE_VERSION variable is not set. Defaulting to a blank string.
WARNING: The CORE_VERSION variable is not set. Defaulting to a blank string.
Creating network "compreface_default" with the default driver
ERROR: no such image: compreface-api:: invalid reference format

Ubuntu 16.04LTS, docker-compose version 1.23.2.

Accuracy is almost null for korean people's images

Hello, thank you for your awesome work.
CompreFace works really well when I tried working with the images of people from Western countries, Middle East and India.
But when try people from South Korea, recognition accuracy is zero. It tags wrong people with 100% similarity score.
What could be the issue?

Specific Image + Invalid API Key = API Hanging

Thank you for this amazing project. I've encountered a weird issue and I'm not sure what is causing it.

Describe the bug
Using the provided image along with an invalid API key causes the /api/v1/recognition/recognize endpoint to hang.

To Reproduce

  1. Download this image: lenna.png
  2. Pass image to/api/v1/recognition/recognize with an invalid API key

Expected behavior
The expected output should be this.

{
    "message": "Service API key should be UUID",
    "code": 26
}

Additional context

  • Version: v0.5.1

Using another image with an incorrect API key produces the expected behavior. I can't figure out why this specific image makes the API hang, even if I save it as a jpg it still hangs.

Add tooltips to the buttons on the CompreFace page

Preconditions:

  1. User has an active account in the CompreFace
  2. User has access to any application within CompreFace

Steps:

  1. Log in to the CompreFace
  2. In the APPLICATIONS section create a new application or use as existing one
  3. Open some application
  4. In the Services section create a new service or use as existing one
  5. Click the "Test" button on any service
  6. Uploaded the some picture to the CompreFace
  7. There are three buttons to the left of the picture, place the mouse cursor on any of these buttons

Expected result:
Button tooltip appears. From left to right button tooltips have to are: "Upload new image", "Clear results", "Show landmarks".

image

GPU maintainance

I can't use my CPU for the application.
Will the GPU be maintained in the application?

Add Validation on empty subject when saving a subject example

Describe the bug
There is a possibility to save a Subject Example with empty subject name

To Reproduce
Preconditions:

  1. User has an active account and application
  2. The app has a recognition service

Steps:

  1. Save a Subject Example with an empty subject name using this rest API request:
    https://github.com/exadel-inc/CompreFace/blob/master/docs/Rest-API-description.md

Actual result: the example is successfully saved with an empty name

Expected behavior
Validation should apply. The error should be displayed
Error message:
"Subject name is empty"

Screenshots
image

Many false positives with a set of ~50 faces

Describe the bug
I have trained about 50 different faces with at least 4-5 images per face. When using the web interface to identify a person from an untrained image, I see high "similarity" numbers (> 98%) that are falsely identified as the wrong person.

I noticed this page - is there a setting I can change to get better results and less false positives?

Thanks in advance!

Expected behavior
A much lower similarity number for these false positives.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Input is not in focus when you create new Application

Describe the bug
After opening the New Application window, the Application Name field isn't active and does not allow you to enter characters without first clicking the mouse.

To Reproduce
Preconditions:

  1. User has an active account as OWNER in the CompreFace
    Steps:
  2. Log in to the application as OWNER
  3. In the APPLICATIONS section click the Create New button

Actual result:
The App Name field isn't active in the Create Application window opens

Expected behavior
The App Name field is active and allows you to type the characters

Screenshots
image

Add query parameter to "List of All Saved Examples of the Subject" endpoint

https://github.com/exadel-inc/CompreFace/blob/master/docs/Rest-API-description.md#list-of-all-saved-examples-of-the-subject

Right now this endpoint returns all subject examples. We need to add the query parameter "subject" to return examples of this subject.

e.g. we have such subject examples:

[
    {
      "image_id": 1,
      "subject": "John"
    },{
      "image_id": 2,
      "subject": "John"
    },{
      "image_id": 3,
      "subject": "Jane"
    }
]

With this request:
http://localhost:8000/api/v1/recognition/faces?subject=John
It should return such response:

{
  "faces": [ 
    { "image_id": 1, "subject": "John" },
    { "image_id": 2, "subject": "John" }
  ],
  "page_number": 0,
  "page_size": 10,
  "total_pages": 1,
  "total_elements": 2
}

Google Coral support

ML part to Google Coral accelerator
If the Google Coral USB accelerator (Google Edge TPU) could be used for CompreFace it would offload the ML part.
It could possibly run also on ARM as there are Docker Images (for ARM too) to support the Google Edge TPU.

I got it running for another project (https://github.com/matiasdelellis/facerecognition) as a simple solution to provide a version with modularization (matiasdelellis/facerecognition#210) in mind to make it run on eg. RaspberryPi 4.

I think this project could be used in the way I did with my simple docker container. The Nextcloud facerecognition app could use CompreFace as a engine for the ML part and with ML accelerators (like Google Coral or others) it would offer enough ML power to be usable on "home Nextcloud Clouds" in your closet 😉.

Error during synchronization between servers: Unexpected end of file from server executing GET http://compreface-core:3000/status

Describe the bug
Getting this error message when logging in for the first time and trying to add a service to a new application in the UI

To Reproduce
Steps to reproduce the behavior:

  1. Go to localhost:8000
  2. Log in
  3. Create a new application
  4. Click on it and wait for service synchronisation (I assume, because it has never gone further than this)
  5. Error message appears

Expected behavior
I would expect that a list of services would appear - e.g. face recognition, face detection, etc

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Chrome
  • Version 92.0.4515.159 (Official Build) (64-bit)

Additional context
the compreface-core docker image doesnt seem to be listening on port 3000. docker compose pulls and extracts all containers with no errors.
this is the SubCenter-ArcFace-r100-gpu custom-build

502 Bad Gateway error occurs when pushing any button on the CompreFace app page on Mac.

Describe the bug
I followed the readme to get started to step 5 on Mac, but I got a 502 Bad Gateway error.

To Reproduce
Steps to reproduce the behavior:

  1. Install Docker and Docker Compose
  2. Download the archive from our latest release: https://github.com/exadel-inc/CompreFace/releases
  3. Unzip the archive
  4. Open the terminal in this folder and run this command: docker-compose up -d
  5. Open the service in your browser: http://localhost:8000/login
  6. Push any button and update the page, then I got a 502 Bad Gateway error.

Expected behavior
The next page will be displayed, successfully.

Screenshots
スクリーンショット 2021-09-28 12 17 24

Desktop (please complete the following information):

  • OS:macOS Catalina 10.15.7
  • Browser :chrome 93.0.4577.82
  • Version:0.6.0

Additional context
None

Using Recognition Service with more than 20k images registered

Hi,
I tested the application and it works really amazing.
Thank you so much for the build and documentation.
But when I upload images in excess of 1k and test the recognition services on it, the API container fails.

After that I looked into custom builds and tried mobile net/face net/insight face, all of them with no GPU support but after uploading 3k images, the container again failed during a call to recognition service for just 1 patient.
My current laptop configuration is -
CPU - iIntel Core i3-1115G4 with 4.1 Ghz clock speed (Dual Core ) ,
OS - Win 10 64 bit,
RAM - 8GB DDR4 2666 Mhz
Hard Disk - 1TB HDD
Graphic Card - Intel UHD Graphics 630 1666 MB

The current laptop doesn't have nvidia graphics so no additional GPU support.
This will act as a standalone system which should be capable of using the face recognition algorithm upto a scale of 20k images. I cannot host this on cloud, need this to be on-premise

Can you please suggest a custom build and if such a build is not possible, what kind of system configurations will be needed to scale up to that level ?

Update :- I will try running the docker container in a kubernetes cluster and see if that can help me in solving the scaling issue.

Thank you.

Docker compose error

Describe the bug
When I try to build everything by using the docker compose the following error occures.

To Reproduce
'''docker compose up
[+] Building 31.9s (15/15) FINISHED
=> [compreface-postgres-db internal] load build definition from Dockerfile 0.4s
=> => transferring dockerfile: 55B 0.0s
=> [compreface-admin internal] load build definition from Dockerfile 0.8s
=> => transferring dockerfile: 71B 0.0s
=> [compreface-fe internal] load build definition from Dockerfile 1.2s
=> => transferring dockerfile: 68B 0.0s
=> [compreface-core internal] load build definition from Dockerfile 2.6s
=> => transferring dockerfile: 70B 0.0s
=> [compreface-api internal] load build definition from Dockerfile 3.0s
=> => transferring dockerfile: 69B 0.0s
=> [compreface-postgres-db internal] load .dockerignore 1.3s
=> => transferring context: 2B 0.0s
=> [compreface-admin internal] load .dockerignore 1.6s
=> => transferring context: 2B 0.0s
=> [compreface-fe internal] load .dockerignore 2.2s
=> => transferring context: 2B 0.0s
=> [compreface-core internal] load .dockerignore 2.7s
=> => transferring context: 2B 0.0s
=> [compreface-api internal] load .dockerignore 3.1s
=> => transferring context: 2B 0.0s
=> ERROR [compreface-postgres-db internal] load metadata for docker.io/library/postgres:11.5 30.1s
=> CANCELED [compreface-admin internal] load metadata for docker.io/exadel/compreface-admin:0.5.0 29.6s
=> CANCELED [compreface-fe internal] load metadata for docker.io/exadel/compreface-fe:0.5.0 29.0s
=> CANCELED [compreface-core internal] load metadata for docker.io/exadel/compreface-core:0.5.0 28.6s
=> CANCELED [compreface-api internal] load metadata for docker.io/exadel/compreface-api:0.5.0 28.1s

[compreface-postgres-db internal] load metadata for docker.io/library/postgres:11.5:


failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head https://registry-1.docker.io/v2/library/postgres/manifests/11.5: proxyconnect tcp: dial tcp 192.168.65.1:3128: i/o timeout'''

Cannot Start Postgres DB Container on windows server 2019

Describe the bug
Hi,

I recently setup a VM and i am trying to start the application on it using the build in Docker settings. So far everything is going good, but I am now facing an issue where the Postgres DB Container is not starting. I have attached the Compose Logs here too. If you can help me with this then it would be great.

logs.txt

To Reproduce
Steps to reproduce the behavior:

  1. Setup Docker on Windows Server 2019
  2. Download Compreface 0.6.x
  3. Go to the folder
  4. Run docker-compose up -d.
  5. After that , run docker-compose logs

Expected behavior

  • Shall Be able to get to Login Screen and create a user.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows Server 2019
  • Browser : Google Chrome
  • Version Compfreface 0.6.x

Additional context
Error

It Says in the Logs that the connection attempt Failed. Maybe That might help. It does look like the Postgre DB didnt start.

好像无法连接

compreface-core | detected number of CPU cores: 2
compreface-core | current working directory: /app/ml
compreface-core | detected binary path: /usr/local/bin/uwsgi
compreface-core | setgid() to 33
compreface-core | setuid() to 33
compreface-core | your memory page size is 4096 bytes
compreface-core | detected max file descriptor number: 1048576
compreface-core | lock engine: pthread robust mutexes
compreface-core | thunder lock: disabled (you can enable it with --thunder-lock)
compreface-core | uwsgi socket 0 bound to TCP address 0.0.0.0:3000 fd 3
compreface-core | Python version: 3.7.4 (default, Sep 12 2019, 15:40:15) [GCC 8.3.0]
compreface-core | Python main interpreter initialized at 0x555b5317b010
compreface-core | python threads support enabled
compreface-core | your server socket listen backlog is limited to 100 connections
compreface-core | your mercy for graceful operations on workers is 60 seconds
compreface-core | mapped 145840 bytes (142 KB) for 1 cores
compreface-core | *** Operational MODE: single process ***
compreface-api | Error: Could not find or load main class "-Xmx4g"
compreface-api | Caused by: java.lang.ClassNotFoundException: "-Xmx4g"
compreface-api exited with code 1
compreface-admin | Error: Could not find or load main class "-Xmx4g"
compreface-admin | Caused by: java.lang.ClassNotFoundException: "-Xmx4g"
compreface-admin exited with code 1
compreface-ui | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
compreface-ui | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
compreface-ui | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
compreface-ui | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
compreface-ui | 10-listen-on-ipv6-by-default.sh: /etc/nginx/conf.d/default.conf is not a file or does not exist, exiting
compreface-ui | /docker-entrypoint.sh: Configuration complete; ready for start up
compreface-ui | 2021/01/08 07:37:49 [emerg] 1#1: host not found in upstream "compreface-admin:8080" in /etc/nginx/conf.d/nginx.conf:2
compreface-ui | nginx: [emerg] host not found in upstream "compreface-admin:8080" in /etc/nginx/conf.d/nginx.conf:2
compreface-ui exited with code 1
compreface-core | WSGI app 0 (mountpoint='') ready in 4 seconds on interpreter 0x555b5317b010 pid: 1 (default app)
compreface-core | *** uWSGI is running in multiple interpreter mode ***
compreface-core | spawned uWSGI master process (pid: 1)
compreface-core | spawned uWSGI worker 1 (pid: 15, cores: 1)

Input is not in focus when you create new Service

Describe the bug
The Name field in the Create Service window isn't active and does not allow you to enter characters without first clicking the mouse

To Reproduce
Preconditions:

  1. User has an active account in the CompreFace
  2. User has access to any application within CompreFace

Steps:

  1. Log in to the application
  2. In the APPLICATIONS section create a new application or use as existing one
  3. Open some application
  4. In the Services section click the Create New button

Actual result:
The Name field isn't active in the Create Service window opens

Expected behavior
The Name field is active and allows you type the characters without first clicking the mouse in this field

Screenshots
image

Incorrect text for error message when entered old password is less than 8 chars

Describe the bug
Incorrect error during changing password

To Reproduce
Go to http://localhost:8000/login
Log in to the application
Click on account icon -> Changes password
Enter an incorrect password with less than 8 chars into the "Old password" field
Enter a valid password (e.g., qwerty123) into "New password" and "Confirm password" fields
Click "Change"

Actual result:
Error message is "Validation for field oldPassword failed: User's old password is incorrect"
image

Expected behavior
Error message should be "User's password is incorrect"
image

UI - No route to host

Describe the bug
I'm getting an error when trying to login.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'http://compreface-ip:8000'

Expected behavior
Get the login page

Screenshots
https://ibb.co/9Z8WKS1

Desktop (please complete the following information):

  • OS: Windows
  • Browser Chrome
  • Version 90

Additional context
Error logs:
[error] 23#23: *5 connect() failed (113: No route to host) while connecting to upstream, client: **laptop-ip**, server: ui, request: "GET /admin/user/me HTTP/1.1", upstream: "http://172.22.0.5:8080/user/me", host: "**compreface-ip**:8000", referrer: "http://**compreface-ip**:8000/"

Error 502 bad gateway

Hi, I'm trying to get this running on my machine running homeassistant
But I keep getting this error

image

How do I fix this?
On another related post, this user mentioned that he increased the memory & swap on his mac.

Machine: hp thin client t530
OS: Debian
Ram: 4gb

Non stop Java errors from API and error 400 from UI

I run Compareface on Docker in windows
And have non stop errors from API

compreface-api2          | 2021-09-25 22:57:42.690 ERROR 7 --- [nio-8080-exec-3] c.e.f.c.h.ResponseExceptionHandler       : Defined exception occurred

compreface-api2          | 

compreface-api2          | com.exadel.frs.commonservice.sdk.faces.exception.NoFacesFoundException: No face is found in the given image

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findWithCalculator(FacesRestApiClient.java:89)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findFacesWithCalculator(FacesRestApiClient.java:57)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$FastClassBySpringCGLIB$$517e8caf.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$EnhancerBySpringCGLIB$$51c8fda3.findFacesWithCalculator(<generated>)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:49)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:26)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController.recognize(RecognizeController.java:75)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$FastClassBySpringCGLIB$$52b4c4f5.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$EnhancerBySpringCGLIB$$a11dee99.recognize(<generated>)

compreface-api2          |  at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)

compreface-api2          |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

compreface-api2          |  at java.base/java.lang.reflect.Method.invoke(Unknown Source)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at com.exadel.frs.core.trainservice.filter.SecurityValidationFilter.doFilter(SecurityValidationFilter.java:127)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

compreface-api2          |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

compreface-api2          |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

compreface-api2          |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

compreface-api2          |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

compreface-api2          |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

compreface-api2          |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

compreface-api2          |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

compreface-api2          |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

compreface-api2          |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

compreface-api2          |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

compreface-api2          |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

compreface-api2          |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

compreface-api2          |  at java.base/java.lang.Thread.run(Unknown Source)

compreface-api2          | 

compreface-api2          | 2021-09-25 22:57:42.819 ERROR 7 --- [nio-8080-exec-4] c.e.f.c.h.ResponseExceptionHandler       : Defined exception occurred

compreface-api2          | 

compreface-api2          | com.exadel.frs.commonservice.sdk.faces.exception.NoFacesFoundException: No face is found in the given image

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findWithCalculator(FacesRestApiClient.java:89)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findFacesWithCalculator(FacesRestApiClient.java:57)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$FastClassBySpringCGLIB$$517e8caf.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$EnhancerBySpringCGLIB$$51c8fda3.findFacesWithCalculator(<generated>)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:49)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:26)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController.recognize(RecognizeController.java:75)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$FastClassBySpringCGLIB$$52b4c4f5.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$EnhancerBySpringCGLIB$$a11dee99.recognize(<generated>)

compreface-api2          |  at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)

compreface-api2          |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

compreface-api2          |  at java.base/java.lang.reflect.Method.invoke(Unknown Source)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at com.exadel.frs.core.trainservice.filter.SecurityValidationFilter.doFilter(SecurityValidationFilter.java:127)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

compreface-api2          |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

compreface-api2          |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

compreface-api2          |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

compreface-api2          |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

compreface-api2          |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

compreface-api2          |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

compreface-api2          |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

compreface-api2          |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

compreface-api2          |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

compreface-api2          |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

compreface-api2          |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

compreface-api2          |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

compreface-api2          |  at java.base/java.lang.Thread.run(Unknown Source)

compreface-api2          | 

compreface-api2          | 2021-09-25 22:57:42.950 ERROR 7 --- [nio-8080-exec-5] c.e.f.c.h.ResponseExceptionHandler       : Defined exception occurred

compreface-api2          | 

compreface-api2          | com.exadel.frs.commonservice.sdk.faces.exception.NoFacesFoundException: No face is found in the given image

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findWithCalculator(FacesRestApiClient.java:89)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findFacesWithCalculator(FacesRestApiClient.java:57)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$FastClassBySpringCGLIB$$517e8caf.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$EnhancerBySpringCGLIB$$51c8fda3.findFacesWithCalculator(<generated>)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:49)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:26)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController.recognize(RecognizeController.java:75)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$FastClassBySpringCGLIB$$52b4c4f5.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$EnhancerBySpringCGLIB$$a11dee99.recognize(<generated>)

compreface-api2          |  at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)

compreface-api2          |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

compreface-api2          |  at java.base/java.lang.reflect.Method.invoke(Unknown Source)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at com.exadel.frs.core.trainservice.filter.SecurityValidationFilter.doFilter(SecurityValidationFilter.java:127)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

compreface-api2          |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

compreface-api2          |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

compreface-api2          |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

compreface-api2          |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

compreface-api2          |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

compreface-api2          |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

compreface-api2          |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

compreface-api2          |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

compreface-api2          |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

compreface-api2          |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

compreface-api2          |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

compreface-api2          |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

compreface-api2          |  at java.base/java.lang.Thread.run(Unknown Source)

compreface-api2          | 

compreface-api2          | 2021-09-25 22:57:43.082 ERROR 7 --- [nio-8080-exec-6] c.e.f.c.h.ResponseExceptionHandler       : Defined exception occurred

compreface-api2          | 

compreface-api2          | com.exadel.frs.commonservice.sdk.faces.exception.NoFacesFoundException: No face is found in the given image

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findWithCalculator(FacesRestApiClient.java:89)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient.findFacesWithCalculator(FacesRestApiClient.java:57)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$FastClassBySpringCGLIB$$517e8caf.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)

compreface-api2          |  at com.exadel.frs.commonservice.sdk.faces.service.FacesRestApiClient$$EnhancerBySpringCGLIB$$51c8fda3.findFacesWithCalculator(<generated>)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:49)

compreface-api2          |  at com.exadel.frs.core.trainservice.service.FaceRecognizeProcessServiceImpl.processImage(FaceRecognizeProcessServiceImpl.java:26)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController.recognize(RecognizeController.java:75)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$FastClassBySpringCGLIB$$52b4c4f5.invoke(<generated>)

compreface-api2          |  at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:119)

compreface-api2          |  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)

compreface-api2          |  at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)

compreface-api2          |  at com.exadel.frs.core.trainservice.controller.RecognizeController$$EnhancerBySpringCGLIB$$a11dee99.recognize(<generated>)

compreface-api2          |  at jdk.internal.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)

compreface-api2          |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

compreface-api2          |  at java.base/java.lang.reflect.Method.invoke(Unknown Source)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

compreface-api2          |  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)

compreface-api2          |  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

compreface-api2          |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)

compreface-api2          |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

compreface-api2          |  at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at com.exadel.frs.core.trainservice.filter.SecurityValidationFilter.doFilter(SecurityValidationFilter.java:127)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

compreface-api2          |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

compreface-api2          |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

compreface-api2          |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

compreface-api2          |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

compreface-api2          |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

compreface-api2          |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

compreface-api2          |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

compreface-api2          |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

compreface-api2          |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

compreface-api2          |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)

compreface-api2          |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

compreface-api2          |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

compreface-api2          |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

compreface-api2          |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

compreface-api2          |  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

compreface-api2          |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

compreface-api2          |  at java.base/java.lang.Thread.run(Unknown Source)

compreface-api2          | 

In addition, I have non stop 400 from UI

1```
72.27.0.1 - - [25/Sep/2021:22:52:41 +0000] "GET /admin/user/roles HTTP/1.1" 200 133 "http://192.168.1.223:8000/application?app=00000000-0000-0000-0000-000000000001" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"

172.27.0.1 - - [25/Sep/2021:22:52:41 +0000] "GET /admin/app/00000000-0000-0000-0000-000000000001/roles HTTP/1.1" 200 133 "http://192.168.1.223:8000/application?app=00000000-0000-0000-0000-000000000001" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"

172.27.0.1 - - [25/Sep/2021:22:52:41 +0000] "GET /admin/app/00000000-0000-0000-0000-000000000001/models HTTP/1.1" 200 92 "http://192.168.1.223:8000/application?app=00000000-0000-0000-0000-000000000001" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"

172.27.0.1 - - [25/Sep/2021:22:52:41 +0000] "GET /api/v1/consistence/status HTTP/1.1" 200 102 "http://192.168.1.223:8000/application?app=00000000-0000-0000-0000-000000000001" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"

172.27.0.1 - - [25/Sep/2021:22:52:52 +0000] "POST /admin/app/00000000-0000-0000-0000-000000000001/model HTTP/1.1" 201 139 "http://192.168.1.223:8000/application?app=00000000-0000-0000-0000-000000000001" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"

172.27.0.1 - - [25/Sep/2021:22:53:00 +0000] "GET / HTTP/1.1" 200 8702 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:00 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 404 125 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:02 +0000] "GET / HTTP/1.1" 200 8702 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:02 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 404 125 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:09 +0000] "GET / HTTP/1.1" 200 8702 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:09 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 404 125 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:10 +0000] "GET / HTTP/1.1" 200 8702 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:10 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 404 125 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:44 +0000] "GET / HTTP/1.1" 200 8702 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:53:52 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 200 193 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:54:06 +0000] "POST /api/v1/recognition/faces?subject=aviran HTTP/1.1" 201 92 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:54:40 +0000] "POST /api/v1/recognition/faces?subject=aviran HTTP/1.1" 201 92 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:01 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:06 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:07 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:08 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:08 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:10 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:10 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:10 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:10 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:55:11 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:42 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:43 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:57:47 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 200 258 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:22:58:02 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 200 257 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:05:58 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:05:58 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:05:58 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:06:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:06:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:06:03 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

172.27.0.1 - - [25/Sep/2021:23:06:06 +0000] "POST /api/v1/recognition/recognize?face_plugins=undefined&det_prob_threshold=0.8 HTTP/1.1" 400 81 "-" "axios/0.21.4"

Bug

Describe the bug
Error, synchronization between servers

Hey i downloaded the compreface project on my laptop, i am running on an ubuntu 20.04 focal, when i create a service or the demo service i get that error. error synchronization between servers

Screenshot from 2021-07-31 20-43-24

Memory consumption when POSTing multiple face files to recognition service

Describe the bug
Requesting identities for each face in directory of multiple faces (> 500 jpgs with max size 100 kB) consumes RAM/Swap (16 GB/2GB) until container crashes. I've tried this with the python SDK, pycurl and curl with the same results.

To Reproduce
Steps to reproduce the behavior:

  1. activate conda environment
  2. docker-compose up -d
  3. run bash script with curl looping through image directory

Expected behavior
return API request response for each image
clear cache/memory

Screenshots
image
image

Desktop (please complete the following information):

  • CompreFace version 0.6.0
  • OS: Ubuntu 20.04
  • Browser Firefox
  • Docker version 20.10.8
  • docker-compose version 1.29.2

Additional context
Add any other context about the problem here.

I can't change the password

I downloaded the application, signed up, but forgot my password.
Now I don't know how to change the password!

compreface-core exits with code 132 during startup

Describe the bug
Running on ubuntu 18.04 with docker following docker compose container exits with error code 132

To Reproduce
Steps to reproduce the behavior:
Followed 0.4.1 release instructions

Expected behavior
It should start

Desktop (please complete the following information):

  • OS: 18.04 Ubuntu
  • Browser: chrome
  • Version: 0.4.1

Additional context

[uWSGI] getting INI configuration from uwsgi.ini
*** Starting uWSGI 2.0.18 (64bit) on [Thu Feb 25 15:48:21 2021] ***
compiled with version: 8.3.0 on 20 January 2021 11:36:38
os: Linux-4.15.0-135-generic #139-Ubuntu SMP Mon Jan 18 17:38:24 UTC 2021
nodename: 425a88b1bf62
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
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.7.4 (default, Sep 12 2019, 15:40:15)  [GCC 8.3.0]
Python main interpreter initialized at 0x562db793dff0
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 145840 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
[uWSGI] getting INI configuration from uwsgi.ini
*** Starting uWSGI 2.0.18 (64bit) on [Thu Feb 25 16:08:44 2021] ***
compiled with version: 8.3.0 on 20 January 2021 11:36:38
os: Linux-4.15.0-135-generic #139-Ubuntu SMP Mon Jan 18 17:38:24 UTC 2021
nodename: 425a88b1bf62
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
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.7.4 (default, Sep 12 2019, 15:40:15)  [GCC 8.3.0]
Python main interpreter initialized at 0x55d851ac7ff0
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 145840 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***

How to restart clean?

I created a test user and now I want to start clean, but the older user is not deleted after "docker-compose down" or after removing the container. How can I start clean?

face recognition percent

Describe the bug
I uploaded about 1000 faces for recognition, after which I get the following recognition results for all of them they are always great, but the percentages are negligible, the same photos are used for testing as in the database

Expected behavior
example recognition
curl -X POST "http://localhost:8000/api/v1/recognize" -H "Content-Type: multipart/form-data" -H "x-api-key: a1ed2873-c353-40ff-8e30-c24b0c499c04" -F [email protected] -F prediction_count=1
example to add face
curl -X POST "http://localhost:8000/api/v1/faces/?subject=lavrenkov&retrain=force" -H "Content-Type: multipart/form-data" -H "x-api-key: a1ed2873-c353-40ff-8e30-c24b0c499c04" -F [email protected]

Log docker
compreface-ui | 172.18.0.1 - - [16/Sep/2020:13:57:15 +0000] "DELETE /api/v1/faces/?subject=lavrenkov&retrain=force HTTP/1.1" 400 70 "-" "curl/7.72.0"
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:21.687+00:00","@Version":"1","message":"Model a1ed2873-c353-40ff-8e30-c24b0c499c04 unlocked, models locked : 0","logger_name":"com.exadel.frs.core.trainservice.component.FaceClassifierLockManager","thread_name":"http-nio-8080-exec-1","level":"DEBUG","level_value":10000}
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:21.688+00:00","@Version":"1","message":"Model a1ed2873-c353-40ff-8e30-c24b0c499c04 locked, models locked : 1","logger_name":"com.exadel.frs.core.trainservice.component.FaceClassifierLockManager","thread_name":"http-nio-8080-exec-1","level":"DEBUG","level_value":10000}
compreface-ui | 172.18.0.1 - - [16/Sep/2020:13:57:22 +0000] "DELETE /api/v1/faces/?subject=lavrenkov&retrain=force HTTP/1.1" 200 99 "-" "curl/7.72.0"
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:23.031+00:00","@Version":"1","message":"L-BFGS: initial function value: 6458.66950","logger_name":"smile.math.BFGS","thread_name":"a1ed2873-c353-40ff-8e30-c24b0c499c04","level":"INFO","level_value":20000}
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:23.997+00:00","@Version":"1","message":"L-BFGS converges on gradient after 1 iterations: 5626.84107","logger_name":"smile.math.BFGS","thread_name":"a1ed2873-c353-40ff-8e30-c24b0c499c04","level":"INFO","level_value":20000}
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:24.267+00:00","@Version":"1","message":"Model a1ed2873-c353-40ff-8e30-c24b0c499c04 unlocked, models locked : 0","logger_name":"com.exadel.frs.core.trainservice.component.FaceClassifierLockManager","thread_name":"a1ed2873-c353-40ff-8e30-c24b0c499c04","level":"DEBUG","level_value":10000}
compreface-api | {"application":"FRS-ML","@timestamp":"2020-09-16T13:57:24.268+00:00","@Version":"1","message":"Model a1ed2873-c353-40ff-8e30-c24b0c499c04 unlocked, models locked : 0","logger_name":"com.exadel.frs.core.trainservice.component.FaceClassifierLockManager","thread_name":"a1ed2873-c353-40ff-8e30-c24b0c499c04","level":"DEBUG","level_value":10000}

compreface-ui | 172.18.0.1 - - [16/Sep/2020:13:58:02 +0000] "POST /api/v1/recognize HTTP/1.1" 200 292 "-" "curl/7.72.0"
compreface-ui | 172.18.0.1 - - [16/Sep/2020:14:00:33 +0000] "POST /api/v1/recognize HTTP/1.1" 200 290 "-" "curl/7.72.0"

Additional context
results recognition:

"result" : [ {
"box" : {
"probability" : 0.99777,
"x_max" : 471,
"y_max" : 462,
"x_min" : 278,
"y_min" : 216
},
"faces" : [ {
"similarity" : 0.00202,
"face_name" : "0d41f5e020f793f7f64392912ec6792819981201"
} ]
} ]

{
"result" : [ {
"box" : {
"probability" : 0.99988,
"x_max" : 223,
"y_max" : 260,
"x_min" : 60,
"y_min" : 59
},
"faces" : [ {
"similarity" : 0.00251,
"face_name" : "0e08144e69c99d86beb78bbdb7a142cf19730925"
} ]
} ]

No error if you set incorrect image id in verify endpoint

Describe the bug
If a user sends a request with an incorrect image id, he expects to get an error. Instead, he receives success but with zero similarity

To Reproduce

  1. Create recognition service
  2. Save one image
  3. Send a request to verify endpoint, use incorrect image id
    Actual result:
    subject": "", "similarity": 0.0,

Expected behavior
Expected result: "Image id is incorrect" error

Screenshots
image

Admin login bug

I can login as user but the system does not recognize admin email/password

To Reproduce on Debian Linux error

  1. Fresh install of Docker 20.10.8 and Dockers-compose 1.29.2
  2. Fresh install of CompreFace version 0.5.1
  3. Menu does not have demo option anymore
  4. Create login admin( 1rst time for admin )
  5. Create login user
  6. Login atempt from admin - error - "E-mail or Password is incorrect"
  7. Login atempt from user - no error (but no option to create app)

Desktop

  • OS: Kali Linux Debian 64 bit 2021.1 amd64
  • Browser FireFox 78.7esr 64bit

Docs Win 10 Docker-Desktop with GPU support

Is your feature request related to a problem? Please describe.
I searched everywhere but couldn't really find it. I know that using docker-desktop on a win 10 machine is supported. But is it possible to use GPU instead of CPU with docker-desktop?
I saw a couple of compose files with GPU in the dev folder but it is not clear.
If so, can you please add to the documentation?

Describe the solution you'd like
If it is not possible currently, could you add it?

Describe alternatives you've considered
Addition of GPU support for docker-desktop windows machines

standard_init_linux.go:211: exec user process caused "exec format error"

Describe the bug
I get the error message for all containers except compreface-postgres-db:
standard_init_linux.go:211: exec user process caused "exec format error".

To Reproduce
Steps to reproduce the behavior:

  1. Install as described in the instructions
  2. Execute docker-compose up -d

Expected behavior
Successfull run of CompreFace

Desktop (please complete the following information):

  • Ubuntu 18.04.5 LTS
  • Nvidia nano developer kit

Add to .env file "max_detect_size" option

To improve performance on huge images, we resize it before face detection. The downside of this is that small faces could be not recognized.

Some users complain that we do not catch too small faces in their 1080p camera.

We need to make resizing a configurable variable, so users choose if we need to resize at all, or what resize to apply

Here is where we init the variable in Python:

IMG_LENGTH_LIMIT = int(get_env('IMG_LENGTH_LIMIT', '640'))

So basically all we need is to add the "IMG_LENGTH_LIMIT" environment variable to docker-compose and then add it to .env file

Can we enable user/pass only login?

I notice that the application requires the user to signup with F. Name, L. Name, email etc. If this is a selfhosted application, is it possible to just create a local username and password for login? Why does it require the additional details?

Jetson gpu cuda support

As its a build that support gpu and cuda have any tried to use a nvidia jetson nano that got about 120 cuda cores?

Possible used CompareFace docker on Raspberry PI ?

The linux version
Linux raspberrypi 5.10.60-v8+ #1449 SMP PREEMPT Wed Aug 25 15:01:33 BST 2021 aarch64 GNU/Linux

pi@raspberrypi:~ $ sudo docker-compose up
Starting compreface-postgres-db ... done
Starting compreface-core        ... done
Starting compreface-api         ... done
Starting compreface-admin       ... done
Starting compreface-ui          ... done
Attaching to compreface-postgres-db, compreface-core, compreface-api, compreface-admin, compreface-ui
compreface-api            | standard_init_linux.go:228: exec user process caused: exec format error
compreface-core           | standard_init_linux.go:228: exec user process caused: exec format error
compreface-admin          | standard_init_linux.go:228: exec user process caused: exec format error
compreface-api exited with code 1
compreface-postgres-db    | 2021-10-01 01:09:45.036 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
compreface-postgres-db    | 2021-10-01 01:09:45.037 UTC [1] LOG:  listening on IPv6 address "::", port 5432
compreface-postgres-db    | 2021-10-01 01:09:45.103 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
compreface-postgres-db    | 2021-10-01 01:09:45.297 UTC [25] LOG:  database system was shut down at 2021-10-01 00:50:59 UTC
compreface-core exited with code 1
compreface-ui             | standard_init_linux.go:228: exec user process caused: exec format error
compreface-postgres-db    | 2021-10-01 01:09:45.600 UTC [1] LOG:  database system is ready to accept connections
compreface-admin exited with code 1
compreface-ui exited with code 1
^CGracefully stopping... (press Ctrl+C again to force)
Stopping compreface-postgres-db ...
^C^CERROR: Aborting.

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.