Discord

Checklist NTO AI 2025 Final Stage, engineering tour (team) · 4.3 task

Amur Tiger Re-identification

Russian title: Реидентификация амурских тигров

Train an embedding model that re-identifies individual Amur tigers in camera-trap crops and rank all test photos by similarity to each query.

  • Vision
  • Image re-identification (metric learning)
  • Russian original · English translation

The task

Zoologists identify Amur tigers, a Red Book species, by the stripe pattern on their skin, which differs between the left and right sides. Teams of two must train a computer-vision model that produces an embedding for a camera-trap crop of a tiger, so that photos of the same individual are close and photos of different individuals are far apart.

The data contain hard cases (partly visible animals, bodies split by obstacles, night and blurred shots). The split into training and test sets is about 70% / 30% by individual. For every test image the team submits the list of all test images sorted from most to least similar.

Abridged and translated by SOTA from the official Russian materials. The official statement has the exact rules, and it wins wherever this summary differs.

In English

This task was published in Russian. SOTA translated its 5 files into English on 16 September 2026. Only the words changed in the notebooks: markdown, code comments, messages and printed output. The code, file names and paths are the original's, so a translated notebook runs with the original data.

Read the task statement in English 1596 words

Amur Tiger Re-identification

English translation by SOTA – AI Community of the Russian original. Organisers who would like this translation removed can email [email protected].

Source: the 2024/25 task collection of the National Technology Olympiad (NTO), "Artificial Intelligence" profile, Final Stage, engineering tour, pp. 144–148, with the final-stage part of the scoring criteria from p. 149: original PDF.

4.3. Engineering tour

4.3.1. General information

The task of the final stage is devoted to the re-identification of wild animals (identifying specific individuals) from camera-trap photos.

Some species have individual features (coat colouring). Scientists create catalogues of the individuals of an identifiable animal species and identify each specific individual from photos, which makes monitoring of the species more efficient.

Artificial intelligence technologies help to process data for re-identification faster and more easily. This saves zoologists' time, allowing them to focus more on saving animals and on scientific research.

Participants in the final stage must solve the task of re-identifying Amur tigers from camera-trap photos using computer vision and metric learning. The embeddings for photos of the same individual must be as close to one another as possible and as different as possible from the embeddings of other individuals.

4.3.2. Task background

The Amur tiger is listed in the Red Book of the Russian Federation. Population monitoring helps to collect data on the number of tigers, their distribution and the state of their habitat. This is the basis for developing effective measures to protect and restore the population.

Camera traps make it possible to track the behaviour of tigers, their migration routes, their habitat preferences and their interactions with other species. These data help to study ecosystem relationships and to influence the conservation of the whole species on a broader level.

Zoologists identify individual tigers by the individual pattern on the animal's skin in the photo, and the pattern is different on each side. Re-identification and monitoring of each individual animal make it possible to track the tiger population more effectively.

You need to train a computer vision model that produces a digital representation (an embedding) for a crop containing an image of a tiger from a camera trap.

4.3.3. Team requirements and participant competences

Number of participants in a team: 2 people.

Competences that team members must have:

  • Data analyst: searching for open data and its exploratory analysis.
  • Data Scientist: training the model.
4.3.4. Equipment and software

Table 4.3.1

Item Description
Laptops: RAM — 16 GB, SSD storage — 256 GB, processor — Intel Core i3. For access to the Cloud and internet resources
Cloud account (GPU parameters: V100 32Gb) Training models
4.3.5. Task description
Data

The dataset is a set of images in the form of an image archive (train, test) and a file train.csv. It contains difficult examples: photos in which only part of the animal is in the frame or its body is split by an obstacle, as well as night-time and blurred shots. The data were labelled by data-labelling specialists together with zoologists.

The data are split into a training set and a test set in a ratio of approximately 70% and 30% by individual.

The file train.csv contains the following columns:

  • file_name — file name;
  • label — name of the individual;
  • sequence — number of the photo series to which this photo belongs;
  • side — side of the individual in the photo (left/right).

Materials for the solution:

Baseline

The example solution given for the task of re-identifying animals in an image is based on the open metric learning library (resnet50 architecture).

The baseline takes you all the way from installing the libraries and training the model to obtaining a file with predictions and the training logs.

Link to the baseline: https://disk.yandex.ru/d/t6YCFGkgodFOCA/baseline.zip.

Solution format

The competition involves submitting a file with the model's predictions to the platform for the metric to be computed.

The file itself is a csv document with two columns:

  • image_name;
  • recommendation.

The rows are pairs of an image file name and the corresponding sorted list of all photos from the test set (from the most similar image to the less similar ones).

The use of open (available online) datasets that permit free non-commercial use is allowed.

Manual data labelling is prohibited.

All participants must submit reproducible solutions for checking.

4.3.6. Scoring system

Participants submit a csv file with predictions with two columns: image_name (query image) and recommendation*.

The rows are pairs of an image file name and the corresponding sorted list of all photos from the test set (from the most similar image to the less similar ones).

The similarity of images is measured with any vector proximity measure (of the participants' choice).

The number of rows equals the number of images in the test set.

To compute the metric, all images from the same series as the query image, including the query image itself, are removed from the recommendation list.

Next, only one (the first) occurrence of each individual in the recommendation list is taken into account.

To assess the quality of the re-identification model, the metric used is CMC weighted over the individuals of the test dataset:

cmcw=1Nj=1Ni=04w[i]sign(find(j)==i),cmc_w = \frac{1}{N}\sum_{j=1}^{N}\sum_{i=0}^{4} w[i] * sign(find(j) == i),

where

w=[1,0.9,0.8,0.7,0.6]w = [1, 0.9, 0.8, 0.7, 0.6];

sign()sign(*) is the indicator function (1 if true, 0 otherwise);

find(j)find(j) is the position of the first occurrence of individual jj, excluding the same individual from the same series as query photo jj.

  • 1 — the correct individual in first place;
  • 0.9 — the correct individual in second place;
  • 0.8 — the correct individual in third place;
  • 0.7 — the correct individual in fourth place;
  • 0.6 — the correct individual in fifth place;
  • 0 — the correct individual in sixth place or further down.

This value was computed on the ODS platform: https://ods.ai/competitions/nto24-25-final.

4.3.7. Solution of the task

The link below leads to the solution of the winning team, feel the asi, which achieved the best result (private score: 0.9742990654): https://disk.yandex.ru/d/t6YCFGkgodFOCA/solution1.zip.

Structure of the solution archive:

  • README.md — description of how to run the algorithms;
  • inferense.ipynb — code for producing the submission file;
  • requirements.txt — list of all libraries needed to run training and inference;
  • train.ipynb — file for training the model;
  • train_without_val.ipynb — file for training the model without validation;
  • models — folder with the model weights after training;
  • top1_solution.csv — the submission file.

The solution is based on the OML (open-metric-learning) library. Python version 3.10.12.

Libraries used:

  1. conda create -n nto python=3.10
  2. pip install -r requirements.txt

Datasets used:

  • the dataset provided by the organisers;
  • optionally, ATRW.

Preparing the dataset for training:

  • use the environment with requirements.txt;
  • run the Dataset create block in the file train.ipynb.

For training each model you can set the backbone name, image_size and whether ATRW is included in the training set; the names of our models give the version of efficientnet, which is the backbone, for example b0, b1, etc.

The number in the model name denotes image_size, and ___ at the end means that the model was trained with the code train_without_val.ipynb.

Training the Re-ID model:

  • use the environment with requirements.txt;
  • run the Model block in the file train.ipynb.

Producing the file to submit to the platform:

  • use the environment with requirements.txt;
  • run inferense.ipynb.
4.3.8. Preparation materials
  1. Kevin Musgrave — PyTorch Metric Learning [Online resource]. — Available at: https://kevinmusgrave.github.io/pytorch-metric-learning/.
  2. TorchRec — A PyTorch Domain Library for Recommendation Systems [Online resource] // PyTorch Blog. — Available at: https://pytorch.org/blog/introducing-torchrec/.
  3. Zhou K. Deep Person Re-identification: MODEL ZOO [Online resource]. — Available at: https://kaiyangzhou.github.io/deep-person-reid/MODEL_ZOO.
  4. Open Metric Learning — OML-Team GitHub Repository [Online resource]. — Available at: https://github.com/OML-Team/open-metric-learning.

From Section 5, "Criteria for determining winners and prize-winners": Final stage

Individual subject tour
  • mathematics — maximum possible score for all problems — 100 points;
  • informatics — maximum possible score for all problems — 100 points.
Team engineering tour

Teams in the final stage received from 0 to 100.00 points for the team engineering tour: the team that scored the most points among the teams became the winning team.

All team results were normalised by the formula:

100×xMAX,\frac{100 \times x}{MAX},

where xx is the number of points scored by the team,

MAXMAX is the maximum number of points possible for the engineering tour.

In the final stage of the olympiad, a participant's individual score is made up of two parts, each with its own weight: points for the individual solution of problems in subject 1 (mathematics) with weight K1=0.15K_1 = 0.15, in subject 2 (informatics) with weight K2=0.15K_2 = 0.15, and points for the team solution of the engineering tour tasks with weight K3=0.7K_3 = 0.7.

Translated by SOTA. The Russian original is the official version and wins wherever the two differ. The statement is section 4.3 (pp. 144–148) of the 2024/25 task collection, followed by the final-stage scoring rules from p. 149. The README and the three baseline notebooks come from baseline.zip; the winning team's solution (solution1.zip, 699 MB) was not translated. The saved output of the training notebook comes from an earlier run with a different loss and ends in an AssertionError. If you organise this olympiad and would like the translation removed, email [email protected] and we will take it down.

At a glance

You get
train.zip and test.zip (images), train.csv (file_name, label = individual, sequence = photo series, side = left/right), baseline.zip (Open Metric Learning, ResNet-50).
You submit
CSV with columns image_name (query) and recommendation (all test images sorted by decreasing similarity); one row per test image.
Scoring
Weighted CMC: for each query, photos from the same series (including the query) are removed and only the first occurrence of each individual is kept; the query scores w[i] if the correct individual first appears at rank i+1, with w = [1, 0.9, 0.8, 0.7, 0.6] (0 from rank 6 on); cmc_w is the mean over queries. Computed on the ODS platform; team scores are normalised to 100·x/MAX.
Rules
  • Open datasets with licences allowing free non-commercial use are permitted; manual labelling is prohibited.
  • Solutions must be reproducible.
  • Equipment: laptops (16 GB RAM, 256 GB SSD, Intel Core i3) and a cloud account with an NVIDIA V100 32 GB GPU.
  • Team of 2.
Format
Final stage, team engineering tour; weighted 0.7 in the individual final score (mathematics and informatics subject tours 0.15 each).

Details

Year
2025, In person
Round
Final Stage, engineering tour (team) · 4.3 task
Language
Russian; English translation by SOTA
License
Not stated by the source