DOI: 10.5281/zenodo.17404087
title: Melops: A wild fish image dataset for individual re-identification and phenotyping

description: Melops: A wild fish image dataset for individual re-identification and phenotyping. 

The Melops dataset was collected and prepared to support computer-vision research on individual re-identification (ReID) and phenotyping of wild fish. It contains standardized photographs of the corkwing wrasse (Symphodus melops), collected during a 7-year capture–mark–recapture program in Norway (2018–2024). The dataset includes 24 578 images (and cropped versions) of 9 861 individuals.

Each fish was tagged with a unique passive integrated transponder (PIT) tag, enabling ground-truth identity across multiple recaptures. Images were taken from both left and right sides under standardized conditions (Melops_full_image). For deep-learning applications, we provide cropped images of the head (Melops_head), body (Melops_body), and headless body (Melops_headless).

The dataset enables research on:



Individual re-identification across time (days to years between recaptures)

Temporal robustness of ReID models under natural appearance change (growth, seasonality, injuries, parasites)

Benchmarking human vs. machine performance (FishFace135 triplet test included)

Quantitative color analysis (color variation between seasons, time, individuals, and areas)


Data managers: 

Tonje Knutsen Sørdalen - Institute of Marine Research, Norway -  tonjesordalen@gmail.com

Kim Tallaksen Halvorsen - Institute of Marine Research, Norway - kim.halvorsen@hi.no

If using this dataset for research, please cite: Sørdalen TK, Malde K, Sauvaitre C, Skiftesvik AB, Beyan C, Larsen T, Halvorsen KT (2025). A wild fish image dataset for re-identification and phenotyping. Zenodo. https://doi.org/10.5281/zenodo.17099925

 

Folders and files overview

Melops_head.zip — cropped head images

Melops_body.zip — cropped body images

Melops_headless.zip — cropped headless body images

Melops_full_image.zip -uncropped images, including the white balance correction card

Melops_metadata.txt - metadata table for all images and sightings (see Table 1)

Melops_graphical_abstract.pdf – poster/graphical abstract summarizing the dataset

readme.pdf – this file.

Image annotation.zip - CVAT annotation datasets for bounding boxes and keypoints



Annotations.xml -  annotations in datumaro format

BBox_keypoint_backup.zip – CVAT project backup

YOLO-bbox-results - output files from the yolo-run for detecting head and body

MNE_results.csv – Mean Normalized Errors from the YOLO keypoints detection


 Image manipulation and management.zip:



colour_extraction_correction.csv — output table with per-image color metrics (mean L*, a*, b* values) and white-balance correction accuracy (mean color error before and after correction).

keypoint_head.csv — x–y coordinates of head-region keypoints used for defining the polygonal region of interest (ROI) for color extraction.

keypoint_white_card.csv — x–y coordinates of the white-balance reference card.

Melops_bbox_coords.txt — bounding box coordinates for the detected fish body and head.

python_script_colour_correction_extraction.py — Python script performing color correction and extraction in the CIELAB space using polygonal ROIs and a white-balance reference (based on the attached keypoint coordinates).

Melops_cropper.R – R script for cropping images based on x-y coordinates using the Magick package.


Fish_faces_export.zip:



png - 135 assembled triplets of head images

Manifest:



manifest.csv, manifest_time.csv — metadata for FishFace135 benchmark triplets

answer_key.csv — correct answers for FishFace135 benchmark

responses_template.csv — template for scoring responses



Human_benchmark_results.xlsx – the answers from 8 humans on the FishFace135 challenge (wrasse experts, Msc or PhD: TL; KH; CS; AB; TKS; computer vision experts (PhDs): AOT; KM; V)

FishFace135_Google_sheet_code.txt — Apps Script to rebuild the triplet test in Google Forms

Melops_fish_face_sampler.R – R script for identifying images suitable for triplets and generating them.


 

 

 

Table 1. Metadata Column Description (Melops_metadata.txt)






Column name



Description





filename_year



Unique image identifier (combines file name and year).





date



Capture date in "dd.mm.yyyy" format.





year



Capture year.





dayseq



Day sequence (running day number from 11.05.2018 = 1 to 30.08.2024 = 2305).





ID



Unique individual ID: PIT tag number (5–6 digits) or untagged followed by a number (1-15) for untagged fish.





tagged



Indicator if the fish is PIT-tagged (0/1)





suspected_tagloss



Indicator if the fish shows evidence of PIT-tag loss (0/1)





length



Total length in millimeters.





sex



f = female, m = male, s = sneaker male





validated_sex



Indicator if sex was validated (1 = validated, 0 = not validated).





sightings



Total number of sightings for a given individual (most sightings consist of two photos: left and right).





sightingnumb



Sequential number of each sighting for a given individual.





spawning



Absence (0) or presence (index 1-2) of gamete release when stripped





cryptocotyle



Cryptocotyle lingua infection index (0–3).





scaleloss



Index of scale loss, often a result of fights with conspecifics (0–3).





zombie



“Zombie” index (0–3), an unknown skin disease.





area



Sampling area – Sampling area (three islands within a marine protected area (MPA) in Austevoll: B = Bleikjo, L = Lambøya, S = Saltskjærholmen), plus two additional sites with fewer samples (AustNord, a separate MPA in Austevoll and Flodevigen, an MPA in Arendal, Southern Norway).





trapID



Identifier for trap or sampling device (e.g. 145_1).





lat



Latitude of sampling location.





lon



Longitude of sampling location.





side



Side of fish shown in image (left or right)





head_w/head_h



Width and height (pixels) of the head bounding box. Can be used to set quality thresholds





blurry



Indicator if the image is blurry (1 = blurry, 0 = clear).