Описание задачи

Один из этапов технологического процесса добычи металла — перемалывание руды специальными мельницами. Если в мельницу попадают неперемалываемые материалы — например, зубья ковша экскаватора, разрабатывавшего руду, — мельница может выйти из строя. Зубья могут отпадать от ковша в процессе работы незаметно для машиниста экскаватора. Если автоматически отслеживать потерю зубьев и подавать на мельницы, это позволит снизить риски ущерба.

Данные

Без названия.jpeg

Для анализа даны кадры из видео со стрелы экскаватора, на которых виден ковш с зубьями. На каждом кадре выделены зубья ковша и сам ковш, разметка сохранена в COCO формате.

‼️ Для некоторых кадров разметка может быть не полной или же неточной. ‼️

Описание файлов

Для просмотра разметки и экспорта в другие форматы удобно использовать FIFTYONE

Untitled

import fiftyone as fo

name = "dataset_name"
dataset_dir = '/dataset/dir/'
dataset_type = fo.types.COCODetectionDataset
dataset = fo.Dataset.from_dir(
	dataset_dir=dataset_dir,
	dataset_type=dataset_type,
	name=name,
)
session = fo.launch_app(dataset)

Для того чтобы объединить разметку для задачи детекции и задачи классификации возможно использовать предложенный код

import pandas as pd
import pathlib
#Получение dataset смотри выше

labels=pd.read_csv('/path/to/train/cls_labels.csv')
labels=dict(zip(labels.file_path.values, labels.label.values))

for sample in dataset:
    label = labels[pathlib.Path(sample.filepath).name]
    sample['cls_label'] = label
    sample.save()

session = fo.launch_app(dataset)

Снимок экрана 2022-01-26 в 11.48.09.png

Метрики

Решение будут оцениваться по метрике F1 по 3 классам: