跳转至

Experiments

This directory explains how experiments are organized and why each dataset uses a different task setup.

Dataset To Experiment Mapping

The three datasets are not interchangeable because their labels answer different questions.

Dataset Label type Correct experiment type Why
PVEL-AD Bounding boxes for 12 EL defect classes Object detection The label says where each defect is and which class it belongs to.
PV-Multi-Defect Bounding boxes for visible panel defects Object detection The label also provides defect locations, so it can use the same YOLO pipeline.
ELPV One defect probability per cell image Classification, regression, or anomaly detection There are no boxes, so a detector cannot learn defect locations from this dataset.

Current Detection Experiments

The current implemented experiment track is object detection with Ultralytics YOLO. It is used for datasets that have bounding boxes.

The YOLO experiment matrix has four full-training combinations:

Dataset YOLO11 script YOLOv8 script
PVEL-AD ./experiments/detection/yolo_train/train_yolo11_pvel_ad.sh ./experiments/detection/yolo_train/train_yolov8_pvel_ad.sh
PV-Multi-Defect ./experiments/detection/yolo_train/train_yolo11_pv_multi_defect.sh ./experiments/detection/yolo_train/train_yolov8_pv_multi_defect.sh

PVEL-AD is the main EL defect detection experiment because it has 12 long-tail defect classes. PV-Multi-Defect is the second detection experiment because it also has bounding boxes, but its images and defect classes describe visible panel-level defects.

ELPV Experiment Track

ELPV should not be forced into the YOLO detector because it has image-level probability labels instead of boxes. The correct experiments for ELPV are:

  • Classification: predict normal, suspicious, or defective from the full cell image.
  • Regression: predict the defect probability value directly.
  • Anomaly detection: learn normal cell texture and score images or regions that deviate from normal.

That track should use a mature library or standard PyTorch image-classification pipeline rather than a custom detector.

Smoke Checks

Smoke checks belong under tests/smoke/. They are short checks for data paths and command wiring, not full experiments:

./tests/smoke/test_yolo_detection_pipeline.sh