sbt-idp/cope2n-ai-fi/modules/sdsvtr
2023-12-12 15:14:54 +07:00
..
._bit Add submodule 2023-12-12 15:14:54 +07:00
sdsvtr Add submodule 2023-12-12 15:14:54 +07:00
.gitignore Add submodule 2023-12-12 15:14:54 +07:00
LICENSE Add submodule 2023-12-12 15:14:54 +07:00
README.md Add submodule 2023-12-12 15:14:54 +07:00
requirements.txt Add submodule 2023-12-12 15:14:54 +07:00
setup.py Add submodule 2023-12-12 15:14:54 +07:00
test.py Add submodule 2023-12-12 15:14:54 +07:00

Introduction

This repo serve as source code storage for the Standalone SATRN Text Recognizer packages.
Installing this package requires 3 additional packages: PyTorch, MMCV, and colorama.

Installation

conda create -n sdsvtr-env python=3.8
conda activate sdsvtr-env
conda install pytorch torchvision pytorch-cuda=11.6 -c pytorch -c nvidia
pip install -U openmim
mim install mmcv-full
pip install colorama
git clone https://github.com/moewiee/sdsvtr.git
cd sdsvtr
pip install -v -e .

Basic Usage

from sdsvtr import StandaloneSATRNRunner
runner = StandaloneSATRNRunner(version='satrn-lite-general-pretrain-20230106', return_confident=False, device='cpu')

The version parameter accepts version names declared in sdsvtr.factory.online_model_factory or a local path such as $DIR\model.pth. To check for available versions in the hub, run:

import sdsvtr
print(sdsvtr.__hub_available_versions__)

Naturally, a StandaloneSATRNRunner instance assumes the input to be one of the following: an instance of np.ndarray, an instance of str, a list of np.ndarray, or a list of str, for examples:

import numpy as np
from sdsvtr import StandaloneSATRNRunner
runner = StandaloneSATRNRunner(version='satrn-lite-general-pretrain-20230106', return_confident=False, device='cpu')

dummy_list = [np.ndarray((32,128,3)) for _ in range(100)]
result = runner(dummy_list)

To run with a specific batchsize, try:

import numpy as np
from sdsvtr import StandaloneSATRNRunner
runner = StandaloneSATRNRunner(version='satrn-lite-general-pretrain-20230106', return_confident=False, device='cuda:0')

dummy_list = [np.ndarray(1,3,32,128) for _ in range(100)]
bs = min(32, len(imageFiles)) # batchsize = 32

all_results = []
while len(dummy_list) > 0:
    dummy_batch = dummy_list[:bs]
    dummy_list = dummy_list[bs:]
    all_results += runner(dummy_batch)

Version Changelog

  • [0.0.1]
    Initial version with specified features.

  • [0.0.2]
    Update online model hub.

  • [0.0.3]
    Update API now able to inference with 4 types of inputs: list/instance of np.ndarray/str
    Update API interface with return_confident parameter.
    Update wget check and sha256 check for model hub retrieval.

  • [0.0.4]
    Update decoder module with EarlyStopping mechanism to possibly improve inference speed on short sequences.
    Update API interface with optional argument max_seq_len_overwrite to overwrite checkpoint's max_seq_len config.

  • [0.0.5]
    Allow inference on a specific device