FAQ

Errors about environment variables

An environment variable is a variable that is defined in the terminal and used by the executable afterwards. In the context of Deepomatic CLI there is one environment variables used:

  • DEEPOMATIC_API_KEY is used to interact with trained models and to send images or JSON to Deepomatic Studio.

If you get the following error, please check that your DEEPOMATIC_API_KEY is set and is the one from the right organization.

deepomatic.api.exceptions.ClientError: Bad status code 401 with body b'{"detail":"No such profile user."}'

Find how to get the API Key value here: Setup your Deepomatic API Key

Error 11001: getaddrinfo failed

You get this error because Deepomatic CLI cannot reach the Deepomatic endpoints. Most of the times this is the consequence of a Proxy that has not been setup.

Setup a proxy

The easiest way to do it is to simply pass the proxy parameters as an environment variable. You will need:

  • proxyserver: the proxy server address.

  • proxyport: the proxy server port.

  • user: your proxy user login identifier.

  • password: your proxy authentication password.

Linux/MacOS
Windows
Linux/MacOS
export https_proxy="http://user:password@proxyserver:proxyport"
Windows
$Env:https_proxy="http://user:password@proxyserver:proxyport"

The Deepomatic CLI uses only secured https connection. As such, you just need to setup the https_proxy environment variable.

If you're running inferences on your local infrastructure you might want to take a look at how to Configure Docker to use a proxy server.

What is the difference between input_fps and skip_frames?

If your camera has an original frame rate of 30fps, and you want to run inferences at 3 fps, the options input_fps and skip_frames can both enable you to do it, with input_fps=3 or skip_frames=2 .

input_fps uses the fps of the input automatically detected to force a new fps. It is simple to use, but requires that the original fps detected is correct. In most cases, it will work fine, but sometimes the FPS automatically detected in the video isn't reliable as it is encoded in the file header.

For example, in .avi videos, duplicate frames are represented by an instruction to repeat the previous frames and are skipped by the library OpenCV, which only reads frames with real data.

Another case in which input_fps may not be the best option, is when the original fps is not a multiple of the input_fps . In this case, we recommend to use skip_frames

skip_frames allows you to skip a fixed number of frames and analyze only 1 frame every N frames. It is independent of the original fps detected, and requires you to calculate the value desired.

skip_frames = original_fps / input_fps -1