Skip to content

Releases: luxonis/blobconverter

Release v1.3.0 - OpenVINO 2021.4.2 update

23 May 22:28
829b370
Compare
Choose a tag to compare

Updated OpenVINO 2021.4.0 to 2021.4.2.

Release v1.2.8 - Custom show progress function

13 Dec 15:25
Compare
Choose a tag to compare

In this PR, we added the ability to setup a custom show progress function.

To use it, you can call

    blobconverter.set_defaults(progress_func=progressFunc)

where progressFunc should accept two arguments: current bytes downloaded and total bytes to download.

Example function (from DepthAI SDK):

def progressFunc(curr, max):
    done = int(50 * curr / max)
    sys.stdout.write("\r[{}{}] ".format('=' * done, ' ' * (50-done)) )
    sys.stdout.flush()

Full Changelog: v1.2.7...v1.2.8

Release v1.2.7 - urllib3 import fix

19 Nov 11:15
Compare
Choose a tag to compare

In this release, we have fixed an issue reported by our users while using Google Colab. There, after importing the blobconverter package, the following error occurred

---> 10 from urllib3.util.ssl_ import (
     11     ssl, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_COMPRESSION,
     12     PROTOCOL_TLS, DEFAULT_CIPHERS,

ImportError: cannot import name 'PROTOCOL_TLS' from 'urllib3.util.ssl_' (/usr/local/lib/python3.7/dist-packages/urllib3/util/ssl_.py)

The issue was caused by the latest versions of the boto3 library, and with this version, we downgraded it to a stable and working one.

To fix the issue without blobconverter update, please run the following code

python -m pip install boto3==1.17.39

Release v1.2.6 - blob verification

26 Oct 19:43
Compare
Choose a tag to compare

In this release, we added a sanity check for cached blobs that verifies if they were downloaded correctly before usage.

Now, if the blob stored in the cache directory is invalid, our tool will display the following message and download a new blob from the API

Cached blob is invalid, will download a new one from API.

Release v1.2.5 - add dry option

25 Oct 11:43
Compare
Choose a tag to compare

This release brings a dry argument to blobconverter - it allows you to get compilation commands which you can use for manual compilation. This can come in handy with large models or offline usage.

You can use this function in two ways:

blobconverter.from_zoo(..., dry=True)  # dry argument is available for any compilation method

or

$ python3 -m blobconverter [...] --dry

These will return compilation commands, similar to the ones below:

[
'/app/venvs/venv2021_4/bin/python /app/model_compiler/openvino_2021.4/downloader.py --precisions FP16 --output_dir /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487 --cache_dir /tmp/modeldownloader/2021_4 --num_attempts 5 --name mobilenet-ssd --model_root /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487', 
'/app/venvs/venv2021_4/bin/python /app/model_compiler/openvino_2021.4/converter.py --precisions FP16 --output_dir /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487 --download_dir /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487 --name mobilenet-ssd --model_root /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487', 
'/opt/intel/openvino/deployment_tools/inference_engine/lib/intel64/myriad_compile -m /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487/mobilenet-ssd/FP16/mobilenet-ssd.xml -o /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487/mobilenet-ssd/FP16/mobilenet-ssd.blob -c /tmp/blobconverter/c712744c08e24f459ab8562f2fc07487/myriad_compile_config.txt -ip U8'
]

Release v1.2.4 - no_cache update

15 Oct 18:15
Compare
Choose a tag to compare

With this small release, the no_cache argument is passed to the API and disables API-side cache fetch too

Release v1.2.3 - Backup available!

13 Oct 13:57
b4db72e
Compare
Choose a tag to compare

With this release, we've added a backup for most used models from Intel Model Zoo (to prevent downtime issues and their impact if they happen again)

If a model from model zoo is requested and it's conversion fails, we will try to find a precompiled model in our backup server and return it, instead of throwing an error.

For this release, not to bloat the server too much initially, we have backed up:

  • All available Intel Model Zoo models with default shave parameter (4)
  • The following models were compiled with all available shave parameters (1-16): "mobilenet-ssd", "efficientnet-b0", "vehicle-license-plate-detection-barrier-0106", "vehicle-detection-adas-0002", "license-plate-recognition-barrier-0007" "vehicle-attributes-recognition-barrier-0039", "face-detection-retail-0004", "landmarks-regression-retail-0009"

Feel free to make this list longer, adding models you find the most useful to this list

Release v1.2.2 - HTTPS communication

11 Oct 10:33
Compare
Choose a tag to compare

With this release, blobconverter got some changes in the underlying infrastructure:

  • It got separated into a dedicated VPS (different underlying IP)
  • New pair of SSL certificates are now in use (from LetsEncrypt)
  • We changed the underlying webserver, moving the responsibility of handling the traffic directly into a container, not through nginx (which caused troubles with proxy_pass mechanism)

HTTPS communication is now enforced and blobconverter will not accept unsecured connections, and this release changes the default URL to point to https:// instead of http://

For the previous versions of blobconverter to work, please type the following code before you call any conversion methods

import blobconverter

blobconverter.set_defaults(url="https://blobconverter.luxonis.com")

Release 1.2.0

04 Oct 08:07
3410fa6
Compare
Choose a tag to compare

URL-based parameters and depthai-model-zoo integration!

In release 1.2.0 we introduced two new ways to obtain your .blob file - from our model zoo and by using URLs as file pointers

Examples:

  • Download megadepth from our zoo
    import blobconverter
    
    blob_path = blobconverter.from_zoo(name="megadepth", zoo_type="depthai")
  • Download using URL parameters
    import blobconverter
    
    blob_path = blobconverter.from_openvino(
        xml="https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.4/models_bin/3/age-gender-recognition-retail-0013/FP16/age-gender-recognition-retail-0013.xml",
        xml_size=31526,
        xml_sha256="54d62ce4a3c3d7f1559a22ee9524bac41101103a8dceaabec537181995eda655",
        bin="https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.4/models_bin/3/age-gender-recognition-retail-0013/FP16/age-gender-recognition-retail-0013.bin",
        bin_size=4276038,
        bin_sha256="3586df5340e9fcd73ba0e2d802631bd9e027179490635c03b273d33d582e2b58"
    )

Other minor changes:

  • Changed blobconverter base image from Ubuntu 18 to Ubuntu 20
  • Updated Python from 3.7 to 3.8 in all OpenVINO versions using TensorFlow 2.x (so for >= 2020.4). Legacy versions that use TensorFlow 1.x still have to use 3.7 due to no TF available for 3.8
  • Error message from API will be printed in CLI even if it cannot be json-decoded (bug with "model not found" message not being displayed)

Release 1.1.1

21 Sep 12:20
Compare
Choose a tag to compare

With this release:

  • ONNX model conversion is supported both via CLI and web interface
  • Updated README.md usage listing