View Source Evision.Zoo.TextRecognition.CRNN (Evision v0.1.28)

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition.

'FP16' or 'INT8' stands for 'model quantized into FP16' or 'model quantized into int8'.

  • CRNN_EN and it variants can detect digits (0-9) and letters (return lowercase letters a-z).
  • CRNN_CH and it variants can detect digits (0-9), upper/lower-case letters (a-z and A-Z), and some special characters.
  • CRNN_CN and it variants can detect digits (0-9), upper/lower-case letters (a-z and A-Z), some Chinese characters and some special characters.

Link to this section Summary

Functions

Default configuration.

Docs in smart cell.

Initialize model.

Get default input size

Model URL and filename of predefined model.

Postprocessing the results.

Preprocessing the input image.

Customizable parameters from smart cell.

Smart cell tasks.

Get default target vertices

Generate quoted code from smart cell attrs.

Link to this section Functions

@spec default_config() :: map()

Default configuration.

@spec docs() :: String.t()

Docs in smart cell.

Link to this function

get_charset(model_type, opts \\ [])

View Source
@spec get_charset(:ch | :cn | :en, Keyword.t()) :: [binary()]

Get charset

Link to this function

infer(self, image, rotation_box, opts \\ [])

View Source

Inference.

Positional arguments
  • self: Evision.DNN.Net.t().

    An initialized CRNN model.

  • image: Evision.Mat.maybe_mat_in().

    Input image.

  • rotation_box: Evision.Mat.maybe_mat_in().

    Rotation box.

Keyword arguments
  • charset: [binary] | :en | :ch | :cn

    Required. The corresponding charset for the model.

  • to_gray: boolean.

    Required. The input image need to be converted to grayscale if the model is :en*.

    Please set to true if the model is :en*.

Link to this function

init(model_path, opts \\ [])

View Source
@spec init(
  binary()
  | :en
  | :en_fp16
  | :en_int8
  | :ch
  | :ch_fp16
  | :ch_int8
  | :cn
  | :cn_int8,
  nil | Keyword.t()
) :: {:error, String.t()} | Evision.DNN.Net.t()

Initialize model.

Positional arguments
  • model: String.t() | :en | :en_fp16 | :en_int8 | :ch | :ch_fp16 | :ch_int8 | :cn | :cn_int8.

    • When model is a string, it will be treat as the path to a weight file and init/2 will load the model from it.

    • When model is one the allowed atoms, init/2 will download and load the predefined model.

Keyword arguments
  • cache_dir: String.t().

    Path to the cache directory.

    Optional. Defaults to :filename.basedir(:user_cache, "", ...)

  • backend: integer().

    Specify the backend.

    Optional. Defaults to Evision.Constant.cv_DNN_BACKEND_OPENCV().

  • target: integer().

    Specify the target.

    Optional. Defaults to Evision.Constant.cv_DNN_TARGET_CPU().

@spec input_size() :: {100, 32}

Get default input size

@spec model_info(
  :ch
  | :ch_fp16
  | :ch_int8
  | :cn
  | :cn_int8
  | :en
  | :en_fp16
  | :en_int8
) ::
  {String.t(), String.t()}

Model URL and filename of predefined model.

Link to this function

postprocess(outputBlob, charset)

View Source
@spec postprocess(Evision.Mat.t(), :ch | :cn | :en | [String.t()]) :: String.t()

Postprocessing the results.

infer/4 will call this function automatically.

Positional arguments
  • image: Evision.Mat.maybe_mat_in().

    Input image.

Link to this function

preprocess(image, rotation_box, to_gray)

View Source

Preprocessing the input image.

infer/4 will call this function automatically.

Positional arguments
  • image: Evision.Mat.maybe_mat_in().

    Input image.

@spec smartcell_params() :: Evision.Zoo.smartcell_params()

Customizable parameters from smart cell.

@spec smartcell_tasks() :: Evision.Zoo.smartcell_tasks()

Smart cell tasks.

A list of variants of the current model.

@spec target_vertices() :: Nx.Tensor.t()

Get default target vertices

@spec to_quoted(map()) :: list()

Generate quoted code from smart cell attrs.

Link to this function

visualize(image, texts, detections, confidences, opts \\ [])

View Source

Visualize the result.

Positional arguments
  • image: Evision.Mat.maybe_mat_in().

    Original image.

  • results: Evision.Mat.maybe_mat_in().

    Results given by infer/2.

Keyword arguments
  • box_color: {blue=integer(), green=integer(), red=integer()}.

    Values should be in [0, 255]. Defaults to {0, 255, 0}.

    Specify the color of the bounding box.

  • text_color: {blue=integer(), green=integer(), red=integer()}.

    Values should be in [0, 255]. Defaults to {0, 0, 255}.

    Specify the color of the text (confidence value).