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.
Real detections from the validation set using the nano @ 640p variant:
Clean foreground pallet
Clean pallet detection
Single foreground pallet detected at 0.86 confidence. Nano-640 is the edge workhorse — fast, clean, high-confidence on unambiguous shots.
Heavy motion blur
Motion blur pallet detection
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.
Cluttered multi-pallet scene
Multi-pallet detection
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.
Model Variants
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.
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 320p and 960p nano variants are marked TBD — training is in progress.
Model Description
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:
Detect foreground pallets that are fully within the frame
Distinguish pallets from visually similar structures (ceiling rafters, doors, rack uprights)
Handle pallets stacked 2-high as separate detections per level
Work reliably with motion-blurred images from moving cameras
Intended Use
Warehouse automation: Real-time pallet counting and position tracking
Forklift guidance: Detecting pallets in the robot/forklift field of view
Inventory management: Automated pallet inventory from security or mounted cameras
3D warehouse mapping: Input to multi-view reconstruction pipelines for spatial pallet localization
Out of Scope
Empty pallet (wooden skid only) detection without products
Pallet type classification (EUR, GMA, block, stringer)
Damaged pallet assessment
Outdoor or non-warehouse environments
Training Details
Architecture
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.
Dataset
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.
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.
No standard benchmark exists for warehouse pallet detection (unlike COCO or KITTI for general/driving OD). Each study uses its own private dataset, making direct comparison difficult.
The NVIDIA SDG model is the most production-ready alternative, trained on ~25K synthetic images via Omniverse, targeting pallet side-face centers/corners. It detects wood, metal, and plastic pallets but focuses on pallet pocket localization for forklift docking rather than full pallet unit detection.
The synthetic-data model (0.995 mAP) was evaluated on simple single-pallet scenes, not cluttered warehouses.
This model is the first dedicated pallet detection model published to Hugging Face Hub — no fine-tuned pallet model previously existed in the HF ecosystem.
This model is specifically optimized for foreground pallet detection in real operational environments.
Performance by Scenario
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
Usage
Quick Start
python
1from ultralytics import YOLO
23# Pick a repo in the form: EFFGRP/yolov11{size}-warehouse-pallets-{resolution}4# size: "n" = nano (fastest, edge) "s" = small (best accuracy)5# resolution: 320, 640, 960, or 1280 for nano; 640 or 1280 for small6# See "Choosing a Variant" below for recommended combinations.7model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")89# Run inference on an image10results = model.predict("warehouse_photo.jpg", conf=0.25)1112# Process results13for result in results:14for box in result.boxes:15 cls_id =int(box.cls[0])16 confidence =float(box.conf[0])17 x1, y1, x2, y2 = box.xyxy[0].tolist()18print(f"Pallet detected: conf={confidence:.2f}, bbox=({x1:.0f},{y1:.0f},{x2:.0f},{y2:.0f})")
Choosing a Variant
python
1from ultralytics import YOLO
23# Ultra-edge (ESP32-S3, Coral Edge TPU, RPi Zero, hobby boards)4model = YOLO("EFFGRP/yolov11n-warehouse-pallets-320")56# Edge deployment (Jetson Nano, RPi 4, mobile) — nano at 640p7model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")89# General warehouse camera system — small at 640p as the best balanced tradeoff10model = YOLO("EFFGRP/yolov11s-warehouse-pallets-640")1112# Production middle-ground (Jetson Orin Nano, 1080p cameras) — nano at 960p13model = YOLO("EFFGRP/yolov11n-warehouse-pallets-960")1415# Edge with high-res cameras — nano at 1280p16model = YOLO("EFFGRP/yolov11n-warehouse-pallets-1280")1718# High-res camera with small/distant pallets — small at 1280p (best accuracy)19model = YOLO("EFFGRP/yolov11s-warehouse-pallets-1280")
Batch Processing
python
1from ultralytics import YOLO
2from pathlib import Path
34# Small @ 1280p for highest-accuracy offline batch processing5model = YOLO("EFFGRP/yolov11s-warehouse-pallets-1280")67# Process a directory of images8image_dir = Path("warehouse_photos/")9results = model.predict(10 source=str(image_dir),11 conf=0.25,12 save=True,# Save annotated images13 save_txt=True,# Save YOLO-format labels14 project="output/",15 name="pallet_detections"16)
Export to ONNX for Edge Deployment
python
1from ultralytics import YOLO
23# Export nano @ 640p for edge deployment (swap the repo + imgsz for other variants)4model = YOLO("EFFGRP/yolov11n-warehouse-pallets-640")5model.export(format="onnx", imgsz=640, simplify=True)6# Produces a .onnx file alongside the .pt for deployment on edge devices
Integration with Warehouse Systems
This model is designed to work as part of a larger warehouse automation pipeline. Example integration with a Redis message queue:
Where {size} is one of: n (nano), s (small). {resolution} is 320, 640, 960, or 1280 for nano; 640 or 1280 for small.
Limitations
Single class: Only detects "pallet" (complete unit). Does not distinguish pallet types, contents, or conditions.
Foreground bias: Trained primarily on foreground pallets. Background or distant pallets may be missed.
Domain specific: Trained on a single warehouse environment. Performance may degrade in visually different warehouses (outdoor yards, cold storage, etc.). Fine-tuning on your own data is recommended.
Partial occlusion: Pallets significantly occluded by other pallets (not people or forklifts) are intentionally excluded from training labels.
Dataset size: Performance improves with more training data. Fine-tuning on your own warehouse data is recommended.
Ethical Considerations
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.
Citation
If you use this model in your research, please cite:
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:
NVIDIA SDG Pallet Model (GitHub) — trained on ~25K synthetic images via Omniverse, focuses on pallet side-face and pocket localization for autonomous forklift docking. Production-ready but targets a different task (pocket detection vs. full pallet unit detection).
Roboflow Universe (pallets) — community datasets with 1,755+ images and some pre-trained models, but fragmented across projects with inconsistent annotation guidelines.
Academic models — published in papers but weights/code not publicly shared on model hubs.
This model fills the gap as a ready-to-use, real-world-trained pallet unit detector for the Hugging Face ecosystem.