← Back to all products
$39
Computer Vision Toolkit
Image classification, object detection, and segmentation pipelines with data augmentation and evaluation frameworks.
MarkdownYAMLPython
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 41 files
computer-vision-toolkit/
├── LICENSE
├── README.md
├── configs/
│ ├── augmentation_config.yaml
│ └── training_config.yaml
├── free-sample.zip
├── guide/
│ ├── 01-evaluation-guide.md
│ └── 02-training-guide.md
├── guides/
│ ├── evaluation-guide.md
│ └── training-guide.md
├── index.html
├── requirements.txt
├── src/
│ └── cv_toolkit/
│ ├── __init__.py
│ ├── __pycache__/
│ │ ├── __init__.cpython-312.pyc
│ │ ├── augmentation.cpython-312.pyc
│ │ ├── classification.cpython-312.pyc
│ │ ├── datasets.cpython-312.pyc
│ │ ├── detection.cpython-312.pyc
│ │ ├── evaluation.cpython-312.pyc
│ │ ├── inference.cpython-312.pyc
│ │ ├── segmentation.cpython-312.pyc
│ │ └── training.cpython-312.pyc
│ ├── augmentation.py
│ ├── classification.py
│ ├── datasets.py
│ ├── detection.py
│ ├── evaluation.py
│ ├── inference.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── __pycache__/
│ │ │ ├── __init__.cpython-312.pyc
│ │ │ ├── backbones.cpython-312.pyc
│ │ │ └── heads.cpython-312.pyc
│ │ ├── backbones.py
│ │ └── heads.py
│ ├── segmentation.py
│ └── training.py
└── tests/
├── __pycache__/
│ ├── test_augmentation.cpython-312.pyc
│ ├── test_detection.cpython-312.pyc
│ └── test_evaluation.cpython-312.pyc
├── test_augmentation.py
├── test_detection.py
└── test_evaluation.py
📖 Documentation Preview README excerpt
Computer Vision Toolkit
End-to-end computer vision framework for image classification, object detection, and semantic segmentation — with real mAP/IoU math, PyTorch training loops, data augmentation, and model export.
Train, evaluate, and deploy CV models using a single coherent codebase. Every evaluation metric is implemented with real math (no black-box library calls), every training loop supports mixed precision and gradient accumulation, and the augmentation pipeline composes transforms the way you'd compose functions.
What You Get
- Image classification — build classification pipelines with pre-trained ResNet/EfficientNet/ViT backbones, custom heads, and label management
- Object detection — anchor-based detection with configurable anchor scales, multi-scale feature maps, and NMS post-processing
- Semantic segmentation — UNet and FPN decoder architectures on any backbone, with per-pixel loss computation and boundary refinement
- Data augmentation library — composable transforms (flip, rotate, crop, color jitter, blur, grayscale) with
Compose,OneOf, and per-transform probability control - Dataset loaders —
ImageFolderDatasetfor classification,DetectionDatasetfor COCO/VOC/YOLO-format annotations, with lazy loading and caching - Training loops — full PyTorch training with mixed precision (AMP), gradient accumulation, cosine/step/plateau LR scheduling, warmup, and automatic checkpointing
- Evaluation framework — real implementations of IoU, mAP@0.5, mAP@[.5:.95] (COCO-style), precision-recall curves, confusion matrices, and segmentation mIoU — all using stdlib math
- Inference engine — batch inference, confidence thresholding, NMS, and ONNX export
- Model architectures — backbone library (ResNet, EfficientNet, MobileNet, ViT) and task-specific heads (classification, detection, segmentation)
File Tree
computer-vision-toolkit/
├── README.md
├── LICENSE
├── requirements.txt
├── src/
│ └── cv_toolkit/
│ ├── __init__.py # Package exports
│ ├── classification.py # Classification pipeline and models
│ ├── detection.py # Object detection with anchor configs
│ ├── segmentation.py # Semantic/instance segmentation
│ ├── augmentation.py # Composable augmentation transforms
│ ├── datasets.py # Dataset loaders (ImageFolder, COCO, VOC)
│ ├── training.py # Training loop with AMP and scheduling
│ ├── evaluation.py # mAP, IoU, classification metrics (real math)
│ ├── inference.py # Batch inference and model export
│ └── models/
│ ├── __init__.py # Model registry
│ ├── backbones.py # ResNet, EfficientNet, MobileNet, ViT
│ └── heads.py # Classification, detection, segmentation heads
├── configs/
│ ├── training_config.yaml # Training hyperparameter presets
│ └── augmentation_config.yaml # Augmentation pipeline configurations
├── tests/
│ ├── test_evaluation.py # mAP, IoU, classification metric tests
│ ├── test_augmentation.py # Augmentation pipeline tests
│ └── test_detection.py # Detection model and anchor tests
└── guides/
├── training-guide.md # Training workflow walkthrough
└── evaluation-guide.md # Metrics explained with decision guidance
Quick Start
1. Install Dependencies
pip install -r requirements.txt
*... continues with setup instructions, usage examples, and more.*
📄 Code Sample .py preview
src/cv_toolkit/augmentation.py
"""
Data Augmentation — Computer Vision Toolkit
==============================================
Composable image augmentation pipeline with both PIL-based transforms
(stdlib-compatible) and OpenCV/albumentations backends.
The PIL backend works without any extra dependencies beyond Pillow.
The albumentations backend provides GPU-accelerated, bounding-box-aware
augmentations for detection and segmentation tasks.
By Datanest Digital — support@datanest.dev
"""
from __future__ import annotations
import logging
import math
import random
from dataclasses import dataclass, field
from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, Union
logger = logging.getLogger(__name__)
try:
from PIL import Image, ImageEnhance, ImageFilter, ImageOps
HAS_PIL = True
except ImportError:
HAS_PIL = False
# ---------------------------------------------------------------------------
# Transform base and composition
# ---------------------------------------------------------------------------
class Transform:
"""Base class for image transforms.
Subclasses implement __call__ with the actual transformation.
Each transform has a probability of being applied.
"""
def __init__(self, p: float = 1.0) -> None:
self.p = p
def __call__(self, image: "Image.Image") -> "Image.Image":
if random.random() < self.p:
return self.apply(image)
return image
# ... 363 more lines ...