Skip to main content

MemoLib

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

Model Status

Category Model Status
Detection YOLOv5, YOLOv8, YOLO11, YOLO26 Stable
Detection RF-DETR Stable
Segmentation YOLO Segment (v8, 11, 26) Stable
Segmentation DINO UperNet Stable
Classification PPLCNet (x0.25 – x1.0) Stable
Classification YOLO Classification (v8, 11, 26) Stable
Classification EfficientNet (B0–B7, V2S/M/L/XL) Stable
Recognition SVTR2 Stable
Anomaly Detection Dinomaly2 ⚠ Not fully tested
Anomaly Detection INP Former 🔧 Ongoing

Unified Interface

All models share a consistent API:

model.LoadWeight(path)        # Load pretrained or custom weights
model.Train(callbacks)        # Start training
model.Predict(image)          # Single inference
model.BatchPredict(images)    # Batch inference
model.Export(path, format)    # Export to ONNX / OpenVINO / TensorRT
model.StopTraining()          # Stop training gracefully

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

Object Detection — YOLO

from MemoLib.Model.YOLO import Yolo
from MemoLib.Model.BaseModel.eDetectionModel import eYoloDetectionModel

model = Yolo()
model.cfg.Architecture = eYoloDetectionModel.Yolo11n
model.cfg.DatasetPath  = "path/to/dataset"
model.Train(callbacks=lambda level, msg: print(f"[{level}] {msg}"))

Classification — PPLCNet

from MemoLib.Model.PPLCNet import PPLCNet
from MemoLib.Model.BaseModel.eClassificationModel import ePPLCNetModel

model = PPLCNet()
model.cfg.Architecture = ePPLCNetModel.PPLCNetx50
model.cfg.DatasetPath  = "path/to/dataset"
model.Train()

Model Export

from MemoLib.Model.BaseModel.eModelBase import eModelExportType

model.Export("weights/best.pt", eModelExportType.ONNX)
model.Export("weights/best.pt", eModelExportType.OpenVINO)
model.Export("weights/best.pt", eModelExportType.TensorRT)

Project Structure

MemoLib/
└── Model/
    ├── BaseModel/       # Abstract interface (IModel), enums, export types
    ├── YOLO/            # YOLO detection, segmentation, classification
    ├── RFDETR/          # RF-DETR detection    
    ├── DinoUperNet/     # DINO + UperNet semantic segmentation  
    ├── Efficientnet/    # EfficientNet classification 
    ├── PPLCNet/         # PPLCNet lightweight classification
    ├── SVTRV2/          # SVTR2 text recognition  
    └── Anomaly/         # Dinomaly2, INP Former  

Dataset Format

Classification — YOLO / EfficientNet / PPLCNet

ImageFolder structure (same as torchvision ImageFolder):

dataset/
├── train/
│   ├── cat/
│   │   ├── img001.jpg
│   │   └── img002.jpg
│   └── dog/
│       ├── img003.jpg
│       └── img004.jpg
└── val/
    ├── cat/
    └── dog/

Detection — YOLO (detect / segment)

YOLO label format. data.yaml is auto-generated if missing.

dataset/
├── train/
│   ├── images/
│   │   ├── img001.jpg
│   └── labels/
│       ├── img001.txt        # <class> <x_c> <y_c> <w> <h>  (normalized 0-1)
├── val/
│   ├── images/
│   └── labels/
└── data.yaml

data.yaml:

path: /path/to/dataset
nc: 2
names: [cat, dog]
train: train/images
val:   val/images

For segmentation, the label format uses polygon points:

# <class> <x1> <y1> <x2> <y2> ... <xn> <yn>  (normalized 0-1)
0 0.1 0.2 0.3 0.4 0.5 0.6

Detection — RF-DETR

Supports two formats. Auto-detected from directory structure.

COCO format (recommended — exported directly from Roboflow/CVAT):

dataset/
├── train/
│   ├── img001.jpg
│   └── _annotations.coco.json
└── val/
    ├── img002.jpg
    └── _annotations.coco.json

YOLO format (same structure as YOLO detection above):

dataset/
├── train/
│   ├── images/
│   └── labels/
├── val/
│   ├── images/
│   └── labels/
└── data.yaml

Semantic Segmentation — DinoUperNet

Mask images must be single-channel PNG where each pixel value = class index.

dataset/
├── train/
│   ├── images/
│   │   ├── img001.jpg
│   └── masks/
│       ├── img001.png        # pixel value = class index (0, 1, 2, ...)
├── val/
│   ├── images/
│   └── masks/

ReduceZeroLabel: if True, pixel value 0 is treated as background/unlabeled (ignored in loss), and class indices shift by -1. Use this for datasets like ADE20K where class 0 = unlabeled.


Requirements

  • Python 3.9+
  • PyTorch 2.x (CUDA 12.x recommended)
  • See requirements.txt for full dependency list

License

MIT License

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.7.1.tar.gz (905.7 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.7.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for memolib-1.7.1.tar.gz
Algorithm Hash digest
SHA256 ab7ed38e55d3b42a7eed4d1a3a90be65a5c1abdc51ebc3937c7fa18a8512034b
MD5 22a54e75e5950ac1a7514c82c102a28b
BLAKE2b-256 d33f011ab64f9ebc05008e303cd55a6dbadd460243c79981cf06a09ee5d0919a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for memolib-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c0c7bbc950172198c54a36dd8d2d18d3c59e38f936cd6f9d0eef695b2b8e5256
MD5 3b0d578eab137fe7f57023e0e9232fcd
BLAKE2b-256 94012dbb1113d42b35314ea32d5f0f3ee121c09db455e2e2640dd9bb22cb588d

See more details on using hashes here.

Release history Release notifications | RSS feed

1.10.4

2 files

1.10.3

2 files

1.10.2

2 files

1.10.1

2 files

1.10.0

2 files

1.9.19

2 files

1.9.18

2 files

1.9.17

2 files

1.9.16

2 files

1.9.15

2 files

1.9.14

2 files

1.9.13

2 files

1.9.12

2 files

1.9.11

2 files

1.9.10

2 files

1.9.9

2 files

1.9.8

2 files

1.9.7

2 files

1.9.6

2 files

1.9.5

2 files

1.9.4

2 files

1.9.3

2 files

1.9.2

2 files

1.9.1

2 files

1.9.0

2 files

1.8.9

2 files

1.8.8

2 files

1.8.7

2 files

1.8.6

2 files

1.8.5

2 files

1.8.4

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.9

2 files

1.7.8

2 files

1.7.7

2 files

1.7.6

2 files

1.7.5

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

This release

1.7.1 This release

2 files

1.7.0

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.30

2 files

1.3.29

2 files

1.3.28

2 files

1.3.27

2 files

1.3.26

2 files

1.3.25

2 files

1.3.24

2 files

1.3.23

2 files

1.3.22

2 files

1.3.21

2 files

1.3.20

2 files

1.3.19

2 files

1.3.18

2 files

1.3.17

2 files

1.3.16

2 files

1.3.15

2 files

1.3.14

2 files

1.3.13

2 files

1.3.12

2 files

1.3.11

2 files

1.3.10

2 files

1.3.9

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.17

2 files

1.2.16

2 files

1.2.15

2 files

1.2.14

2 files

1.2.13

2 files

1.2.12

2 files

1.2.11

2 files

1.2.10

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.23

2 files

1.1.22

2 files

1.1.21

2 files

1.1.20

2 files

1.1.19

2 files

1.1.18

2 files

1.1.17

2 files

1.1.16

2 files

1.1.15

2 files

1.1.14

2 files

1.1.13

2 files

1.1.12

2 files

1.1.11

2 files

1.1.10

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.19

2 files

1.0.18

2 files

1.0.17

2 files

1.0.16

2 files

1.0.15

2 files

1.0.14

2 files

1.0.13

2 files

1.0.12

2 files

1.0.11

2 files

1.0.10

1 file

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.1.7.9

2 files

0.1.7.8

2 files

0.1.7.7

2 files

0.1.7.6

2 files

0.1.7.5

2 files

0.1.7.4

2 files

0.1.7.3

2 files

0.1.7.2

2 files

0.1.7

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page