Releases: luxonis/blobconverter
Release v1.3.0 - OpenVINO 2021.4.2 update
Updated OpenVINO 2021.4.0 to 2021.4.2.
Release v1.2.8 - Custom show progress function
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
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
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
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
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!
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
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
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
With this release:
- ONNX model conversion is supported both via CLI and web interface
- Updated README.md usage listing