Downloads · 30 days
22
12% of all-time downloads
EFFGRP/yolov11n-warehouse-pallets-320
yolov11n-warehouse-pallets-320 is a object detection model from EFFGRP. Use it when you need objects located in an image. It is set up for ultralytics. The card lists the license as apache-2.0.
A family of fine-tuned YOLOv11 models for real-time detection of pallets (wooden skid + stacked products) in warehouse environments. Available in 2 YOLOv11 sizes — nano (2.6M params, edge-ready) and small (9.4M params…
Downloads · 30 days
22
12% of all-time downloads
All-time downloads
187
Public
Repo size
7 MB
Likes
0
Public
Click a slice to open those files.
.pt5.4 MB · 77%
From the Hugging Face model README
A family of fine-tuned YOLOv11 models for real-time detection of pallets (wooden skid + stacked products) in warehouse environments. Available in 2 YOLOv11 sizes — nano (2.6M params, edge-ready) and small (9.4M params, best accuracy). Optimized for foreground pallet identification in operational warehouse settings with forklifts, racks, and dynamic lighting.
→ Interactive demo on Hugging Face Spaces — upload a warehouse image and run detection with any variant in the browser.
Real detections from the validation set using the nano @ 640p variant:

Single foreground pallet detected at 0.86 confidence. Nano-640 is the edge workhorse — fast, clean, high-confidence on unambiguous shots.

Same camera in motion — pallet detected at 0.58 confidence despite the entire frame being smeared. Lower confidence than a clean shot, as expected, but the detection holds.

16 of ~20 ground-truth pallets detected with confidence ranging 0.30–0.83 in a cluttered aisle. Real deployments should expect this kind of variable-confidence output in dense scenes; post-filter by your target threshold.
The nano variant is published at four resolutions covering everything from microcontroller-class edge hardware to high-resolution production cameras. The small variant is published at 640p and 1280p, the two resolutions where additional capacity materially helps accuracy.
| Model | Params | Size (MB) | Resolution | [email protected] | [email protected]:0.95 | Precision | Recall | GPU (ms) | CPU (ms) | Best For |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv11n-320 | 2.6M | ~5 | 320 | 0.658 | 0.543 | 0.648 | 0.602 | TBD | TBD | Ultra-edge: ESP32-S3, Coral Edge TPU, RPi Zero, hobby/embedded |
| Model | Params | Size (MB) | Resolution | [email protected] | [email protected]:0.95 | Precision | Recall | GPU (ms) | CPU (ms) | Best For |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv11n-640 | 2.6M | ~5 | 640 | 0.674 | 0.571 | 0.658 | 0.614 | ~5 | ~25 | Edge / real-time on low-power devices |
| YOLOv11s-640 | 9.4M | ~19 | 640 | 0.592 | 0.485 | 0.599 | 0.574 | ~7 | ~45 | Balanced speed/accuracy |
| Model | Params | Size (MB) | Resolution | [email protected] | [email protected]:0.95 | Precision | Recall | GPU (ms) | CPU (ms) | Best For |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv11n-960 | 2.6M | ~5 | 960 | TBD | TBD | TBD | TBD | TBD | TBD | Jetson Orin Nano, 1080p cameras downsampled — better small-object recall than 640 without 1280 latency |
| Model | Params | Size (MB) | Resolution | [email protected] | [email protected]:0.95 | Precision | Recall | GPU (ms) | CPU (ms) | Best For |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv11n-1280 | 2.6M | ~5 | 1280 | 0.666 | 0.565 | 0.645 | 0.610 | ~18 | ~95 | Edge with high-res cameras |
| YOLOv11s-1280 | 9.4M | ~19 | 1280 | 0.680 | 0.580 | 0.646 | 0.628 | ~25 | ~170 | Balanced, small pallet detection |
All variants share the same training data, augmentation pipeline, and hyperparameters. Medium, large, and extra-large variants were tested but showed no accuracy improvement over small with the current dataset, so only nano and small are published. Metrics for the 960p nano variant are marked TBD — training is in progress.
This model detects complete pallet units (wooden skid base + all products stacked on top) in warehouse imagery. It was trained on real-world warehouse photos captured during normal operations, making it robust to common warehouse conditions: motion blur, variable lighting, partial occlusions by forklifts and personnel, and cluttered backgrounds.
Unlike generic object detection models, this model is specifically trained to:
| Variant | Base Model | Parameters | Input Resolutions | Classes | Framework |
|---|---|---|---|---|---|
| Nano | yolo11n.pt | ~2.6M | 320, 640, 960, 1280 | 1 (pallet) | Ultralytics 8.x |
| Small | yolo11s.pt | ~9.4M | 640, 1280 | 1 (pallet) | Ultralytics 8.x |
The nano variant is trained at four resolutions (320, 640, 960, 1280) and the small variant at two (640, 1280), yielding 6 models total. All variants share the same architecture per size; only the training input resolution differs. Higher resolutions improve detection of small/distant pallets at the cost of slower inference.
| Split | Ratio | Description |
|---|---|---|
| Train | 80% | Labeled warehouse images |
| Validation | 15% | Held out for epoch-level evaluation |
| Test | 5% | Held out for final evaluation |
Training uses the full available dataset (no image cap). Exact counts depend on the number of labeled images at training time.
Labeling Pipeline: Images were auto-labeled using Qwen3.5-9B (natively multimodal vision-language model) with structured prompts to identify pallet bounding boxes, followed by human review of preview images. Negative examples (images with no pallets) are included as hard negatives.
Label Format: YOLO format (class_id, x_center, y_center, width, height) normalized 0-1.
| Hyperparameter | Value (640p) | Value (1280p) |
|---|---|---|
| Epochs | 100 (early stopping, patience=20) | 100 (early stopping, patience=20) |
| Batch Size | 16 | 4 (auto-scaled) |
| Image Size | 640 | 1280 |
| Optimizer | SGD (Ultralytics default) | SGD (Ultralytics default) |
| Learning Rate | Auto-scaled | Auto-scaled |
| Augmentation | HSV jitter, horizontal flip, mosaic, scale | Same |
| Device | NVIDIA GPU (CUDA) | NVIDIA GPU (CUDA) |
Data Augmentation Details:
hsv_h=0.015, hsv_s=0.7, hsv_v=0.4
degrees=10.0, translate=0.1, scale=0.5
fliplr=0.5, mosaic=1.0
| Variant | [email protected] | [email protected]:0.95 | Precision | Recall | GPU (ms) | CPU (ms) |
|---|---|---|---|---|---|---|
| Nano (n) | 0.674 | 0.571 | 0.658 | 0.614 | ~5 | ~25 |
| Small (s) | 0.592 | 0.485 | 0.599 | 0.574 | ~7 | ~45 |
There is no established standard benchmark for warehouse pallet detection. The table below compares against results reported in published literature on similar (but not identical) datasets, to provide context for this model's performance.
| Model | Dataset | Images | [email protected] | Precision | Recall | Source |
|---|---|---|---|---|---|---|
| This model (YOLOv11n) | EDITools Warehouse | Full dataset | 0.572 | 0.600 | 0.563 | This work |
| This model (YOLOv11s) | EDITools Warehouse | Full dataset | 0.592 | 0.599 | 0.574 | This work |
| NVIDIA SDG Pallet | Omniverse synthetic | ~25,000 | - | - | - | NVIDIA SDG Pallet Model |
| YOLOv8 (synthetic) | Unity synthetic | Synthetic | 0.995 | - | - | Pallet Detection From Synthetic Data (2025) |
| YOLOv8 (synthetic boost) | Synthetic + real | Custom | +69% stacked | - | - | Improving Pallet Detection Using Synthetic Data (2024) |
| YOLOv8 | Custom warehouse | Custom | 0.950 | - | - | Semi-Autonomous Forklift (2025) |
| YOLOv11 | Custom warehouse | Custom | - | 0.93+ | - | Semi-Autonomous Forklift (2025) |
| AM-Mask R-CNN | Complex warehouse | Custom | - | - | - | Enhanced Pallet Detection (2025) |
| Faster R-CNN | Industrial warehouse | 1,344 | 0.89 | - | - | IEEE Comparison (2020) |
| SSD | Industrial warehouse | 1,344 | 0.85 | - | - | IEEE Comparison (2020) |
| YOLOv4 | Industrial warehouse | 1,344 | 0.82 | - | - | IEEE Comparison (2020) |
| YOLOv5 + ArUco | Custom + fiducial | Custom | - | 0.995 | - | Pallet Detection with YOLO + Fiducial (2023) |
| YOLOv8 + CBAM | Warehouse tracking | Custom | - | - | - | CBAM Pallet Tracking (2025) |
| YOLOX | Industrial | Custom | - | - | - | Digital Camera Pallet Detection |
Notes on comparison:
| Scenario | Qualitative Performance |
|---|---|
| Single pallet, clear view | Excellent |
| Multiple pallets in row | Good - detects individual units |
| Pallet on forklift forks | Good - detects if mostly visible |
| Pallets on racks (background) | Limited - trained for foreground detection |
| Motion blur | Good - trained on real warehouse video frames |
| Low/mixed lighting | Good - augmented with HSV jitter |
from ultralytics import YOLO
# Pick a repo in the form: EFFGRP/yolov11{size}-warehouse-pallets-{resolution}
# size: "n" = nano (fastest, edge) "s" = small (best accuracy)
# resolution: 320, 640, 960, or 1280 for nano; 640 or 1280 for small
# See "Choosing a Variant" below for recommended combinations.
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")
# Run inference on an image
results = model.predict("warehouse_photo.jpg", conf=0.25)
# Process results
for result in results:
for box in result.boxes:
cls_id = int(box.cls[0])
confidence = float(box.conf[0])
x1, y1, x2, y2 = box.xyxy[0].tolist()
print(f"Pallet detected: conf={confidence:.2f}, bbox=({x1:.0f},{y1:.0f},{x2:.0f},{y2:.0f})")
from ultralytics import YOLO
# Ultra-edge (ESP32-S3, Coral Edge TPU, RPi Zero, hobby boards)
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-320")
# Edge deployment (Jetson Nano, RPi 4, mobile) — nano at 640p
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")
# General warehouse camera system — small at 640p as the best balanced tradeoff
model = YOLO("EFFGRP/yolov11s-warehouse-pallets-640")
# Production middle-ground (Jetson Orin Nano, 1080p cameras) — nano at 960p
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-960")
# Edge with high-res cameras — nano at 1280p
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-1280")
# High-res camera with small/distant pallets — small at 1280p (best accuracy)
model = YOLO("EFFGRP/yolov11s-warehouse-pallets-1280")
from ultralytics import YOLO
from pathlib import Path
# Small @ 1280p for highest-accuracy offline batch processing
model = YOLO("EFFGRP/yolov11s-warehouse-pallets-1280")
# Process a directory of images
image_dir = Path("warehouse_photos/")
results = model.predict(
source=str(image_dir),
conf=0.25,
save=True, # Save annotated images
save_txt=True, # Save YOLO-format labels
project="output/",
name="pallet_detections"
)
from ultralytics import YOLO
# Export nano @ 640p for edge deployment (swap the repo + imgsz for other variants)
model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")
model.export(format="onnx", imgsz=640, simplify=True)
# Produces a .onnx file alongside the .pt for deployment on edge devices
This model is designed to work as part of a larger warehouse automation pipeline. Example integration with a Redis message queue:
import json
import redis
from ultralytics import YOLO
model = YOLO("EFFGRP/yolov11s-warehouse-pallets-1280")
r = redis.Redis()
def process_frame(image_path):
results = model.predict(image_path, conf=0.25, verbose=False)
detections = []
for box in results[0].boxes:
detections.append({
"confidence": float(box.conf[0]),
"bbox": box.xyxy[0].tolist(),
"center": box.xywh[0][:2].tolist(),
})
r.lpush("pallet_detections", json.dumps({
"image": str(image_path),
"count": len(detections),
"detections": detections,
}))
Each variant repository contains:
| File | Description |
|---|---|
whole_pallet_{size}_{resolution}.pt | PyTorch model weights |
README.md | This model card |
benchmark_results.json | Structured benchmark comparison data |
Where {size} is one of: n (nano), s (small). {resolution} is 320, 640, 960, or 1280 for nano; 640 or 1280 for small.
This model is intended for warehouse automation and logistics optimization. It does not process personal biometric data. However, warehouse images may incidentally contain workers - this model does not detect or track people, but users should ensure compliance with workplace surveillance regulations when deploying camera systems.
If you use this model in your research, please cite:
@misc{effgrp-warehouse-pallets-2026,
title={YOLOv11 Warehouse Pallet Detector},
author={EFFGRP},
year={2026},
publisher={Hugging Face},
url={https://huggingface.co/EFFGRP/yolov11s-warehouse-pallets-1280}
}
As of March 2026, no dedicated pallet detection model exists on Hugging Face. The HF Hub has ~21 models tagged "logistics" but none are pallet-specific. The closest alternatives are:
This model fills the gap as a ready-to-use, real-world-trained pallet unit detector for the Hugging Face ecosystem.