Прими участие в заключительном хакатоне этого года от Академии ИИ! Ты сможешь попасть в сообщество самых сильных специалистов по ИИ среди школьников, а еще выиграть реальные деньги уже в школе!
Нажимая кнопку «Отправить решение», вы соглашаетесь с Правилами участия в соревновании.
Вместе с хакатоном стартует образовательный марафон, который поможет подготовиться к хакатону и увеличит шансы на победу. Переходи по ссылке на канал!
Образовательный марафон подойдет даже новичкам и поможет лучше подготовиться к хакатону.
Мониторинг популяции диких животных — важная задача для мирового сообщества исследователей дикой природы. Её решение помогает узнать, какие виды животных находятся под угрозой исчезновения, как они себя ведут в разные периоды жизни, где обитают и многое другое.
Для мониторинга животных используют различные инструменты, в том числе и фотоловушки — специальные камеры, устанавливаемые в лесу и реагирующие на движение в кадре.
Каждый год с этих камер приходят сотни тысяч фотографий, на которых нужно найти и классифицировать животных. Это сложная и кропотливая работа, так как число видов может достигать нескольких сотен, включая сложно различимые виды.
Качество снимков с фотоловушек значительно отличается от профессиональных фото. Исследователям необходимо обрабатывать фото, полученные в разное время суток и время года, содержащие часть животного или группу животных, перекрывающих друг друга.
В рамках хакатона мы предлагаем вам помочь учёным автоматизировать рутинную работу по обработке данных с фотоловушек, обучив для этого модели машинного обучения.
Для первичной фильтрации сырых данных и дальнейшей обработки (аналитики и изучения каждой отдельной особи) вам потребуется разработать модель которая позволит сегментировать каждую отдельную особь класса “animal" на фотографиях.
Использование сегментации в процессе обработки фотографий с фотоловушек помогает:
Для оценки качества работы модели сегментации используется метрика mAP 0.5-0.95 - подсчет средней точности (AP - Average Precision) при различных значениях порога IoU (Intersection over Union) от 0.5 до 0.95 с шагом 0.05 (минимальное IoU для рассмотрения положительного совпадения).
Вычисляется среднее значение AP по всем порогам IoU:
$$\text{mAP}_{c} = \frac{1}{N} \sum_{i=1}^{N} \text{AP}_{c, \tau_i} $$
где N = 10 — количество значений порога IoU (от 0.5 до 0.95 с шагом 0.05).
Значение метрики варьируется от 0 (в худшем случае) до 1, если все ограничивающие прямоугольники точно совпадают с истинными и правильно предсказаны классы для них.
Подсчет метрики производится автоматически на платформе при отправке решения.
Датасет представляет собой набор изображений и файлы train_annotations.json, val_annotations.json с соответствием каждого изображения и координатами полигонов для каждого животного на изображении.
Обратите внимание, что в датасете присутствуют сложные примеры: фото, когда в кадр попала небольшая часть животного, много животных перекрывающих друг друга, а так же ночные и смазанные снимки. Данные были размечены специалистами по разметке данных совместно с учеными зоологами.
Обучающая выбора разбита на тренировочную и валидационную 70% / 30%.
Данные разделены на тренировочную и тестовую выборки в соотношении примерно 70% / 30%.
Тестовая часть разбита на публичную и приватную в соотношении примерно 40% / 60%.
Файлы train_annotations.json, val_annotations.json представлен в COCO формате.
Корневая структура json файлов:
categories
содержит список категорий, к которым могут принадлежать аннотации (все аннотации принадлежат к категории animal)images
содержит информацию о изображениях, которые аннотируются(id, width, height,file_name
)annotations
cодержит аннотации для изображений, включая информацию о сегментации и ограничивающие прямоугольники.Пример файла train_annotations.json для изображения IMG_1.JPG
:
{
"categories": [
{
"id": 1,
"name": "Animal",
"supercategory": ""
}
],
"images": [
{
"id": 0,
"width": 3648,
"height": 2736,
"file_name": "IMG_1.JPG",
"license": 0,
"flickr_url": "",
"coco_url": "",
"date_captured": 0
},
{}
],
"annotations": [
{
"id": 1,
"image_id": 0,
"category_id": 1,
"segmentation": [
[
1004.0,
2133.0,
1038.0,
2045.0,
1086.0,
1978.0,
1130.0,
1910.0,
1179.0,
1850.0,
…
1094.0,
2145.0
]
],
"area": 391337.0,
"bbox": [
1004.0,
1719.0,
1382.0,
537.0
],
"iscrowd": 0,
"attributes": {
"occluded": false
}
},
{}
]
}
Приведенный пример решения задачи инстанс сегментации животных на изображении базируется на библиотеке detectron2(архитектура Mask R-CNN) с использованием аннотаций в формате COCO.
Во время обучения Mask R-CNN оптимизирует несколько задач одновременно:
Бейзлайн позволяет пройти путь от установки библиотек и обучения модели до получения файла с предсказаниями и посмотреть визуально результаты работы алгоритма.
Соревнование подразумевает отправку файла с предсказаниями модели на платформу для расчета метрики. Сам файл представляет собой json документ в COCO формате.
Корневая структура содержит следующие ключи:
• image_id
• category_id
• bbox
• score
• segmentation
Пример файла с предсказаниями:
{
"image_name": “img_1.JPG”,
"category_id": 1,
"bbox": [
1003.3180541992188,
1726.681884765625,
1215.438720703125,
495.12744140625
],
"score": 0.938715934753418,
"segmentation": {
"size": [
2736,
3648
],
"counts": "Qnad2l0Ud2j0_O=C<F9H6J6J6K4L4K6K4M3M2N1O1O101N1O1O100O2N1O1O1O1O2N1O1O100O2N1O1O100O2N1O1O1O100O2N1O1O1O1O2N1O1O100O101N1O100O100O1O100O1O100O1O100O1O1O100O1O1O1O1O1O1O1O1O100O1O1O1O1O1O1O1O1O1O1O1O1O1O100..."
}
}
где:
category_id
- идентификатор категории, к которой принадлежит объект на изображении. В данном примере значение равно 1.
image_id
- уникальный идентификатор изображения, к которому относится аннотация. В данном примере значение равно 0
.bbox
- ограничивающий прямоугольник (bounding box) для объекта на изображении,
[x, y, width, height]
, x,y
: Координаты верхнего левого угла, width
: Ширина ограничивающего прямоугольника, height
: Высота ограничивающего прямоугольника. score
- уверенность модели в том, что объект на изображении соответствует указанной категории. Значение варьируется от 0
до 1
, где 1
означает максимальную уверенность. В данном примере значение равно 0.938715934753418
. segmentation
содержит информацию о сегментации объекта на изображении,
size
Массив чисел (Array of Integers) Размеры изображения в формате [height, width]
. В данном примере значение равно [2736, 3648],
counts
Закодированные данные сегментации в формате RLE (Run-Length Encoding). Это строка, которая представляет собой сжатое представление маски сегментации, где каждый элемент указывает на количество последовательных пикселей одного цвета и их значение.Использование сторонних датасетов
Допускается использование открытых (доступных в сети) датасетов с лицензией, позволяющей свободное некоммерческое использование.
Для того чтобы мы могли воспроизвести ваше решение, необходимо предоставить все использованные открытые датасеты в том формате, в котором они были применены для обучения.
Внимание.
Приватный обмен идеями (private sharing), решениями и кодом между участниками — запрещен. В случае обнаружения этого факта, все причастные решения аннулируются.
Ручная разметка данных запрещена.
Все участники, занявшие призовые места должны прислать воспроизводимые решения.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.