Title: Cattle Weight Estimation from Smartphone Images

Problem statement
Accurately estimating cattle body weight in the field is difficult and often skipped by service providers. In this competition, your goal is to build a computer vision model that predicts a cow’s body weight (in kilograms) from a single smartphone image captured in field conditions. The dataset contains multiple viewpoints (side and rear) and was collected across different batches/devices, creating realistic domain shifts that your solutions must handle.

You will receive images and, for many of them, optional pixel-wise segmentation masks that delineate the cow from the background. Your task is to predict the weight for each test image. The challenge encourages robust preprocessing (e.g., using masks), feature engineering, and strong regression models that generalize across viewpoints and batches.

Data description
- Images: color JPEGs of cattle from side and rear views captured in Bangladeshi field conditions. Images have been anonymized and renamed to prevent label leakage.
- Optional masks: for many images, a corresponding semantic segmentation mask is available that segments cattle and other classes. When present, masks are named to align with their paired images.

Final files provided to participants
- train.csv: training labels with two columns: filename,weight_kg. The filename refers to an image in train_images/.
- test.csv: test image manifest with one column: filename. The filename refers to an image in test_images/.
- sample_submission.csv: a valid submission template with columns filename,weight_kg and one row per test image.
- train_images/: directory containing all training images referenced by train.csv.
- test_images/: directory containing all test images referenced by test.csv.
- train_masks/ and test_masks/: directories containing segmentation masks aligned to train_images/ and test_images/ when available. Not all images have masks; use when present. A mask for image X.jpg will be named X_mask.png.

Important notes
- There are multiple views (side and rear) and multiple images per animal. The split ensures that images of the same animal never appear in both train and test (identity-level split).
- Filenames are randomized and do not contain labels or metadata. Use the CSV files for supervision.
- Images and masks are aligned by filename: a mask (when present) will be named <filename>_mask.png corresponding to <filename> in images.

Task
- Input: an image from train_images/ or test_images/.
- Output: a single continuous value, weight_kg, the animal’s weight in kilograms.

Evaluation metric
- Mean Absolute Error (MAE) in kilograms: MAE = mean(|y_pred − y_true|).
- Predictions must be finite real numbers. For robustness, predictions are clipped to an anatomical range before scoring.

Submission format
- A CSV with the following columns and header row: filename,weight_kg
- filename: must match exactly the filenames in test.csv.
- weight_kg: a numeric value (float) representing the weight in kilograms.

Rules and constraints
- Do not attempt to infer labels from filenames; they have been randomized and do not contain ground-truth information.
- External data is allowed if publicly available and equally accessible; document your sources.
- Any masks provided can be used freely as auxiliary input or for pre/post-processing.

Files to submit and how they are scored
- Submit a single CSV named submission.csv with columns filename,weight_kg.
- Your score is the MAE between your predictions and ground-truth weight_kg across the test set.

Good luck, and have fun building robust, field-ready models for livestock measurement!