Skip to main content

remotecv is an OpenCV worker for facial and feature recognition

Project description

Coverage Status

RemoteCV

RemoteCV is a queued mechanism to run OpenCV computations and store them for later usage.

Currently, Thumbor uses remotecv to outsource facial or feature detection, but nothing stops you from integrating it into your product.

RemoteCV supports both PyRes and Celery for queueing back-end.

Install

pip install remotecv

Run local

Clone the repository:

git clone https://github.com/thumbor/remotecv.git

Create a virtualenv:

cd remotecv
mkvirtualenv remotecv

Install dependencies:

make setup

Run:

make run

After installing the project, you can execute

remotecv

If you want a healthcheck handler, you must pass an argument in remotecv execution. You can also specify the http server port, the default http server port is 8080.

remotecv --with-healthcheck --server-port=8888

Tests

make unit

RemoveCV parameters

Usage: remotecv [OPTIONS]

  Runs RemoteCV

Options:
  Worker Backend:
    -b, --backend [pyres|celery]  Worker backend  [env var: BACKEND]
  Pyres Connection Arguments:
    --host TEXT                   Redis host  [env var: REDIS_HOST]
    --port INTEGER                Redis port  [env var: REDIS_PORT]
    --database INTEGER            Redis database  [env var: REDIS_DATABASE]
    --password TEXT               Redis password  [env var: REDIS_PASSWORD]
    --redis-mode [single_node|sentinel]
                                  Redis mode  [env var: REDIS_MODE]
    --sentinel-instances TEXT     Redis Sentinel instances e.g.
                                  'localhost:26376,localhost:26377'  [env var:
                                  REDIS_SENTINEL_INSTANCES]
    --sentinel-password TEXT      Redis Sentinel password  [env var:
                                  REDIS_SENTINEL_PASSWORD]
    --master-instance TEXT        Redis Sentinel master instance  [env var:
                                  REDIS_MASTER_INSTANCE]
    --master-password TEXT        Redis Sentinel master password  [env var:
                                  REDIS_MASTER_PASSWORD]
    --master-database INTEGER     Redis Sentinel master database  [env var:
                                  REDIS_MASTER_DATABASE]
    --socket-timeout FLOAT        Redis Sentinel socket timeout  [env var:
                                  REDIS_SENTINEL_SOCKET_TIMEOUT]
  Celery/SQS Connection Arguments:
    --region TEXT                 AWS SQS Region  [env var: AWS_REGION]
    --key-id TEXT                 AWS access key id  [env var:
                                  AWS_ACCESS_KEY_ID]
    --key-secret TEXT             AWS access key secret  [env var:
                                  AWS_SECRET_ACCESS_KEY]
    --polling-interval INTEGER    AWS polling interval  [env var:
                                  SQS_POLLING_INTERVAL]
    --celery-commands TEXT        SQS command  [env var: CELERY_COMMANDS]
  Other arguments:
    --server-port INTEGER         HTTP server port  [env var:
                                  HTTP_SERVER_PORT]
    --with-healthcheck            Start a healthcheck http endpoint  [env var:
                                  WITH_HEALTHCHECK]
    -l, --level [debug|info|warning|error|critical]
                                  Logging level  [env var: LOG_LEVEL]
    -o, --loader TEXT             Image loader  [env var: IMAGE_LOADER]
    -s, --store TEXT              Detector result store  [env var:
                                  DETECTOR_STORAGE]
    -t, --timeout INTEGER         Timeout in seconds for image detection  [env
                                  var: DETECTOR_TIMEOUT]
    --sentry-url TEXT             Sentry URL  [env var: SENTRY_URL]
    --metrics TEXT                Metrics client, should be the full name of a
                                  python module  [env var: METRICS_CLIENT]
  Memcached store arguments:
    --memcached-hosts TEXT        Comma separated list of memcached hosts
                                  [env var: MEMCACHED_HOSTS]
  --help                          Show this message and exit.

RemoteCV can also be configured via environment variables

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remotecv-5.0.0.tar.gz (944.3 kB view details)

Uploaded Source

Built Distribution

remotecv-5.0.0-py3-none-any.whl (964.6 kB view details)

Uploaded Python 3

File details

Details for the file remotecv-5.0.0.tar.gz.

File metadata

  • Download URL: remotecv-5.0.0.tar.gz
  • Upload date:
  • Size: 944.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for remotecv-5.0.0.tar.gz
Algorithm Hash digest
SHA256 8f64779cb483fbc3237179d90f596dc3f0ac47e888bd0c871292e94c066ea60e
MD5 24a438bb9009fd9e0eef560eb2421b62
BLAKE2b-256 d80eb6557340aa243b171ed0a9bd0f10e5460cd18759ee3d4c94ca684011c6a0

See more details on using hashes here.

File details

Details for the file remotecv-5.0.0-py3-none-any.whl.

File metadata

  • Download URL: remotecv-5.0.0-py3-none-any.whl
  • Upload date:
  • Size: 964.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for remotecv-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 911b4f70e3ec6dee2c8eb21146c2a27be79c15cac693ce80c384726f90ee2804
MD5 86a22e34e2471b025228b939e2c59522
BLAKE2b-256 54f0a164d0e18e00662cf38fb7fcdf86db81377a2cdeccb7ff4e9aaa231dd45f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page