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

В данной задаче мы предлагаем вам автоматизировать работу участка в сортопрокатном цехе ОЭМК.

Для учета, после изготовления литых заготовок на них, методом горячего клеймения, набивают 9 цифр. 5 цифр это номер плавки, 6 цифра - номер машины литья заготовок, а последние 3 цифры - конкретно номер заготовки (102- значит вторая заготовка с 1 ручья машины литья). По различным причинам, клеймо может быть "исправлено". Может быть переназначен номер плавки, исправлена цифра. В таких случаях, новый номер на заготовку рисуют краской.

Далее по рольгангу заготовка идет на участок распределения с установленной камерой. Задача оператора, посмотрев на клеймо свериться, что номер плавки, что он сажает в печи и номер плавки фактически поданный на рольганг - совпадают. Если совпали- выбрать номер конкретной заготовки. На все это у оператора есть 40 секунд. Сжатые временные рамки, человеческий фактор - это повышает число неправильно выбранных заготовок. Для автоматизации выбора заготовки и снижения рисков ошибки, мы предлагаем вам разработать автоматическую систему распознавания клейм на заготовках

Данные

Для решения данной задачи мы предлагаем вам 2 набора данных: изображения с размеченными клеймами и изображения с размеченными номерами, нарисованными красками.

                                                 Пример разметки изображений с клеймо.

                                             Пример разметки изображений с клеймо.

                                                 Пример разметки изображений с нарисованным номером.

                                             Пример разметки изображений с нарисованным номером.

Данные предоставлены в формате COCO.

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

Разметка продолжается

Метрики

Формат посылки смотрите в файле sampleSubmission.csv. Ответом для каждого изображения является строка, составленная из текстов предсказанных номеров, и отсортированных по х-координате левого верхнего угла обрамляющего прямоугольника.

Для определения качества моделей используется расстояние Левенштейна между строками, содержащими тексты истинных и предсказанных номеров.

from Levenshtein import distance as levenshtein_distance

true_y = ['123456789', '123456789', '123456789']
pred = ['223456789', '123456698', '123456789']

result = np.array(
	[levenshtein_distance(x, y) for x, y, in zip(true_y, pred_1)]
).mean()
1.33...