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.5.tar.gz (66.4 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.5-py3-none-any.whl (77.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: memolib-1.0.5.tar.gz
  • Upload date:
  • Size: 66.4 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.5.tar.gz
Algorithm Hash digest
SHA256 f13920f4565bef7ac43c172ea8aaaa63b07c77db4a87f2079d30ef1f26ec7746
MD5 d2b362f9c339c5dbd9877b61f91e9019
BLAKE2b-256 16dba1785bddef421a7c1bdf615db3213221da0393f193d8d5d8f553f2c3d77b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: memolib-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 77.7 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 89a97d50f6171d39dd09b854ffd46e9a7a875a081b8a5fe361c10734540dfaa5
MD5 1ba3eaaac396fe87b0bbfc070530e26b
BLAKE2b-256 882c7753c3b41722e157f349ec667680c85a48f3dc963e24ad1482d6818b514e

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