4. Trained Models

The system uses two detection models based on YOLOv8 or similar architecture:

4.1. Empty Space Detection (void.pt)

Model dedicated to identifying empty spaces.

Characteristics:

  • Precise detection of locations without products.

  • Differentiation between intentional empty space and stockout.

  • Takes into account price tags and separators.

4.1.1. Architecture Comparison

We evaluated several approaches for empty space detection:

  1. YOLOv8 with original Marjan dataset 200 images

  2. YOLOv8 with data augmentation 600 images

  3. Transfer Learning from YOLOv8 model with augmented dataset with a 2300 image dataset via Kaggle

  4. YOLOv8 with data augmentation with a dataset via Roboflow of 3000 images

  5. YOLOv11

  6. DETR (transformer approach)

4.1.1.1. YOLOv8 - Original Dataset

YOLOv8 Performance - Original Dataset

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.743

0.359

0.832

0.635

Applied Augmentations: None

YOLOv8 confusion matrix for empty space detection

YOLOv8 confusion matrix for empty space detection

YOLOv8 precision-recall curve for empty space detection

YOLOv8 training curves for empty space detection

4.1.1.2. YOLOv8 - Augmented Dataset

YOLOv8 Performance - Augmented Dataset

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.723

0.366

0.695

0.695

Applied Augmentations: - 50% probability of horizontal flip - Random cropping (0-16%) - Rotation (-14° to +14°) - Brightness adjustment (±25%) - Gaussian blur (0-0.7 pixels)

YOLOv8 confusion matrix for empty space detection

YOLOv8 confusion matrix for empty space detection

YOLOv8 precision-recall curve for empty space detection

YOLOv8 training curves for empty space detection

4.1.1.3. YOLOv8 - Transfer Learning

Using Kaggle dataset .. list-table:: Transfer Learning Performance

widths:

25 20 20 20 15

header-rows:

1

    • Metric

    • mAP50

    • mAP50-95

    • Precision

    • Recall

    • Global

    • 0.62

    • 0.301

    • 0.644

    • 0.551

Analysis: Transfer learning did not yield good results, probably due to overfitting on the source dataset.

YOLOv8 confusion matrix for empty space detection

YOLOv8 confusion matrix for empty space detection

YOLOv8 precision-recall curve for empty space detection

YOLOv8 training curves for empty space detection

4.1.1.4. YOLOv8 - Augmented Dataset

Performance - Augmentation

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.708

0.376

0.712

0.665

YOLOv8 confusion matrix for empty space detection

YOLOv8 confusion matrix for empty space detection

YOLOv8 precision-recall curve for empty space detection

YOLOv8 training curves for empty space detection

4.1.1.5. YOLOv8 - New Dataset + Marjan Dataset

Performance - Augmentation

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.9544

0.66

0.932

0.91

YOLOv8 confusion matrix for empty space detection

YOLOv8 confusion matrix for empty space detection

YOLOv8 precision-recall curve for empty space detection

YOLOv8 training curves for empty space detection

4.1.1.6. YOLOv11

YOLOv11 Performance - Original Dataset

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.73

0.374

0.736

0.679

Applied Augmentations: None

YOLOv11 confusion matrix for empty space detection

YOLOv11 confusion matrix for empty space detection

YOLOv11 precision-recall curve for empty space detection

YOLOv11 training curves for empty space detection

4.1.1.7. YOLOv11

YOLOv11 Performance - Original Dataset

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.918

0.561

0.871

0.865

Applied Augmentations: New Dataset + Marjan

YOLOv11 confusion matrix for empty space detection

YOLOv11 confusion matrix for empty space detection

YOLOv11 precision-recall curve for empty space detection

YOLOv11 training curves for empty space detection

4.1.1.8. DETR - Transformer Approach

DETR precision-recall curve for empty space detection

DETR training curves for empty space detection

Comparative Analysis:

Conclusion: YOLOv8 offers the best compromise with 95.4% mAP50

4.1.2. Error Analysis

Main causes of errors:

  • Occlusion – Partially hidden products (23% of errors)

  • Reflections – On metallic packaging (17%)

  • Visual similarity – Between products of the same brand (15%)

  • Small size – Products smaller than 50px (12%)

4.2. Individual Product Detection (sku.pt)

Model specialized in detecting individual products (SKU - Stock Keeping Unit).

Characteristics:

  • Fine identification of precise product references.

  • Ability to distinguish variants of the same product (size, flavor, format).

  • Useful for automatic restocking tasks or planogram verification.

  • High precision for detailed classification tasks in complex environments.

4.2.1. 10k Images Dataset

Shelf Detection Performance

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.916

0.586

0.905

0.845

YOLOv8 confusion matrix for object detection

YOLOv8 confusion matrix for object detection

YOLOv8 normalized confusion matrix for object detection

YOLOv8 normalized confusion matrix for object detection

YOLOv8 precision-recall curve for object detection

YOLOv8 training curves for object detection.

4.2.2. Transfer Learning: Moroccan Products Dataset 350 Images

Shelf Detection Performance

Metric

mAP50

mAP50-95

Precision

Recall

Global

0.951

0.794

0.91

0.924

YOLOv8 confusion matrix for object detection

YOLOv8 confusion matrix for object detection

YOLOv8 normalized confusion matrix for object detection

YOLOv8 normalized confusion matrix for object detection

YOLOv8 precision-recall curve for object detection

YOLOv8 training curves for object detection.

4.3. Technical Appendices

4.3.1. Hardware Configuration

Training Environment

GPU

8x NVIDIA A100 80GB

CPU

2x Intel Xeon Gold 6342

RAM

1TB DDR4

Storage

20TB NVMe RAID

OS

Ubuntu 22.04 LTS

4.3.2. Datasets

Dataset Statistics

Dataset

Images

Classes

Voids

+8,000

1

Product for SKU

+10,000

1

4.3.3. Glossary

  • mAP50: Mean Average Precision at IoU=50%

  • mAP50-95: Average mAP over IoU from 50% to 95%

  • IoU: Intersection over Union

  • TP/FP/FN: True/False Positives, False Negatives