Header: AVL.h
Namespace: avl
Module: DL_OCR

Loads a deep learning model and prepares its execution on a specific target device.


void avl::AvsFilter_DL_ReadCharacters_Deploy
	const atl::Optional<avl::ReadCharactersModelDirectory>& inModelDirectory,
	const avl::OcrPretrainedModel::Type inPretrainedModelType,
	const atl::Optional<avl::DeviceKind::Type>& inDeviceType,
	const int inDeviceIndex,
	const atl::Optional<avl::OcrDeployHint>& inExecutionHint,
	avl::ReadCharactersModelId& outModelId


Name Type Range Default Description
Input value inModelDirectory const Optional<ReadCharactersModelDirectory>& NIL A Read Characters model stored in a specific disk directory. If not set, model is chosen on the basis of inPretrainedModelType.
Input value inPretrainedModelType const OcrPretrainedModel::Type Scalable Type of a pretrained model (distributed with Deep Learning add-on) to deploy. Ignored if inModelDirectory is set.
Input value inDeviceType const Optional<DeviceKind::Type>& NIL A type of a device selected for deploying and executing the model. If not set, device depending on version (CPU/GPU) of installed Deep Learning add-on is selected. If not set, device depending on version (CPU/GPU) of installed Deep Learning add-on is selected.
Input value inDeviceIndex const int 0 - 0 An index of a device selected for deploying and executing the model.
Input value inExecutionHint const Optional<OcrDeployHint>& NIL Prepares the model for an execution with provided settings in advance
Output value outModelId ReadCharactersModelId& Identifier of the deployed model


  • In most cases, this filter should be placed in the INITIALIZE section.
  • Executing this filter may take several seconds.
  • This filter should be connected to AvsFilter_DL_ReadCharacters through the ModelId ports.
  • By default, the model distributed with Deep Learning add-on will be deployed. If you have a model trained for a specific case, you can set inModelDirectory to it. Please note, that inModelDirectory have to point to existing directory, containing subdirectory named "models", which, in turn, contains file named "model" .
  • If inExecutionHint is set to NIL, first execution of AvsFilter_DL_ReadCharacters will likely take much more time than following ones. To avoid this, fill inExecutionHint with expected parameters of following calls to AvsFilter_DL_ReadCharacters. A size of an analysed area may be obtained from the diagnostic output of AvsFilter_DL_ReadCharacters. If you still experience huge performance hit on some calls to AvsFilter_DL_ReadCharacters, add another AvsFilter_DL_ReadCharacters_Deploy with inExecutionHint filled with parameters from a problematic call to AvsFilter_DL_ReadCharacters.


  • Passing NIL as inTargetDevice (which is default), is identical to passing DeviceKind::CUDA on GPU version of Deep Learning add-on and DeviceKind::CPU on CPU version on Deep Learning add-on.
  • GPU version of Deep Learning add-on supports DeviceKind::CUDA and DeviceKind::CPU as inTargetDevice value.
  • CPU version of Deep Learning add-on supports only DeviceKind::CPU as inTargetDevice value.

See Also