Competition: Hardhat + Vest + Person Multi-Object Detection

Problem statement
Detect and localize the following safety-related objects in construction-site images:
- helmet
- vest
- head
- person

Each image may contain multiple objects from any of the four classes. Your task is to predict, for every test image, a set of bounding boxes with a class label and confidence score for each box.

Public data layout
- images/train/  (training images)
- images/test/   (test images)
- train.csv      (one row per object in training set; columns: image_id,class_id,cx,cy,w,h)
- test.csv       (list of test image filenames; columns: image_id)
- sample_submission.csv  (submission template with example predictions)
- description.txt (this file)

Format details
- Images are JPGs. Coordinates are YOLO-normalized: cx, cy, w, h are in [0, 1] relative to image width and height.
- class_id mapping: 0 helmet, 1 vest, 2 head, 3 person.

Submission format
Submit a CSV with two columns:
- image_id: the test image filename (e.g., 000123.jpg)
- PredictionString: a space-separated list of predictions in the form
  class_id confidence cx cy w h class_id confidence cx cy w h ...

Where cx, cy, w, h are normalized to [0, 1] and confidence is in (0, 1]. If you have no predictions for an image, leave PredictionString empty.

Evaluation metric
Leaderboard ranking is based on COCO-style mean Average Precision (mAP) across IoU thresholds 0.50:0.95 (step 0.05) averaged over the 4 classes. For each class and IoU threshold, predictions are sorted by confidence and matched to ground-truth boxes greedily at IoU ≥ threshold (each ground-truth box can match at most one prediction). Precision–recall curves use 101-point interpolation.

Important notes
- All test image IDs in test.csv must appear exactly once in your submission. Extra or missing IDs lead to an invalid submission.
- Coordinates in both ground truth and predictions are normalized; do not submit absolute pixels.
- Malformed rows (e.g., wrong token count or invalid numbers) lead to an invalid submission.
