Skip to main content

A comprehensive OCR and computer vision model library with support for SVTRV2, YOLO, EfficientNet, PPLCNet, and more.

Project description

MemoLib

A comprehensive OCR and computer vision model library built on PyTorch, providing a unified interface for text recognition, object detection, image segmentation, and image classification.

Features

  • Text Recognition - SVTRV2 model with GTC (Generative Text Context) pipeline, SMTR decoder, and RCTC loss
  • Object Detection - YOLO family (v5, v8, v11, v26) with detection and segmentation variants
  • Image Segmentation - DINO + UperNet semantic segmentation
  • Image Classification - EfficientNet, PPLCNet, YOLO classification
  • Unified Interface - Consistent API across all models: LoadWeight, Predict, BatchPredict, Train, Export
  • Model Export - Export to ONNX, OpenVINO, or TensorRT formats

Installation

pip install memolib

Optional dependencies

# For YOLO models
pip install memolib[yolo]

# For PPLCNet models
pip install memolib[pplcnet]

# For development
pip install memolib[dev]

Quick Start

Text Recognition with SVTRV2

from MemoLib import SVTRV2, TrainingConfig

# Load a pre-trained recognition model
model = SVTRV2()
model.LoadWeight("path/to/weights.pth")

# Single prediction
result = model.Predict(image)

# Batch prediction
results = model.BatchPredict([img1, img2, img3])

Object Detection with YOLO

from MemoLib import Yolo, TrainingConfig
from MemoLib.Model.BaseModel import eYoloDetectionModel

# Load a YOLO detection model
model = Yolo()
model.LoadWeight(eYoloDetectionModel.YoloV8n)

# Single prediction
result = model.Predict(image)

Semantic Segmentation with DINO UperNet

from MemoLib.Model.DinoUperNet import DinoUperNet, TrainingConfig

model = DinoUperNet()
model.LoadWeight("path/to/weights.pth")
result = model.Predict(image)

Model Export

from MemoLib.Model.BaseModel import eModelExportType

# Export to ONNX
model.Export("model.onnx", eModelExportType.ONNX)

# Export to OpenVINO
model.Export("model.xml", eModelExportType.OpenVINO)

# Export to TensorRT
model.Export("model.engine", eModelExportType.TensorRT)

Project Structure

MemoLib/
├── Model/
│   ├── BaseModel/       # Base interfaces and model type enums
│   │   ├── IModel.py    # Abstract model interface
│   │   └── eModelBase.py # Model type enumerations
│   ├── STVRV2/          # SVTRV2 OCR recognition model
│   ├── YOLO/            # YOLO detection & classification
│   ├── DinoUperNet/     # DINO + UperNet segmentation
│   ├── Efficientnet/    # EfficientNet classification
│   └── PPLCNet/         # PPLCNet classification

Available Model Types

Category Models
Recognition SVTRV2 (GTC/SMTR/RCTC)
Detection YOLOv5, YOLOv8, YOLO11, YOLO26, RF-DETR
Segmentation YOLO Segment, DINO UperNet
Classification EfficientNet (B0-B7, V2), PPLCNet, YOLO Class, RF-DETR Class
Anomaly Detection DInomaly, INFormerly

Requirements

  • Python 3.9+
  • PyTorch >= 1.10.0
  • torchvision >= 0.11.0
  • numpy >= 1.21.0
  • opencv-python >= 4.5.0

License

MIT License

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memolib-1.0.7.tar.gz (66.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memolib-1.0.7-py3-none-any.whl (77.9 kB view details)

Uploaded Python 3

File details

Details for the file memolib-1.0.7.tar.gz.

File metadata

  • Download URL: memolib-1.0.7.tar.gz
  • Upload date:
  • Size: 66.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for memolib-1.0.7.tar.gz
Algorithm Hash digest
SHA256 86177b551068e1948ba0ef509642a74110ce9b6c2be47c7fdd5058144858c347
MD5 8ab9f8fa9264e7eeb16501b486f28a49
BLAKE2b-256 33a70b4f55fbbc455a7075f080d56bb614c2d619f28de488042b3ba11710d7c8

See more details on using hashes here.

File details

Details for the file memolib-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: memolib-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 77.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for memolib-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d2b4f5b30c32db0959078e33405cd1cc0062eb4a1a220940e81ac9103f1adb6c
MD5 a9f388cc05c4440e3a62ba420a06c229
BLAKE2b-256 579bd08e6a0d028afb204690edbd9dbe385d12b5cfbf7e1b951ac06a2c43844f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page