Задача A. Обнаружение повреждённых изображений. Rhonda.

Автор:Rhonda Software   Ограничение времени:1 сек
Максимальный балл:10000   Ограничение памяти:512 Мб

Условие

Автоматическое обнаружение дефектов изображений является важной частью настройки заводской линии для производства камер.

Целью данной задачи является автоматическое обнаружение повреждённых изображений, требуется для каждого изображения тестовой выборки сказать, является ли изображение повреждённым или нет, тип дефекта определять не нужно.

Повреждения могут быть 4-х различных видов (для ясности смотрите обучающую выборке):

  1. Утерян один или несколько столбцов изображения исходного изображения (таких тестов 25% от общего числа повреждённых изображений)
  2. Утеряна одна или несколько строк исходного изображения (таких тестов 25% от общего числа повреждённых изображений)
  3. Утеряна произвольная область изображения (таких тестов 25% от общего числа повреждённых изображений)
  4. На изображении присутствуют различные шумы
При этом при первых 3-х видах повреждения изображения, повреждённая область содержит или пиксели одного цвета или произвольный шум. Повреждений каждого вида 25% от общего числа повреждённых изображений.

Обучающую выборку и исходные данные тестовой выборки можно скачать ЗДЕСЬ или взять данные на физическом носители у жюри.

Вы можете использовать шаблон решения, доступный ЗДЕСЬ.

Формат входных данных

Обучающая выборка содержит следующие данные:

  1. name – имя изображения
  2. is_corrupted – (0, 1) является ли изображение повреждённым или нет
  3. Изображения размером 300 * 300

Метрика качества

Accuracy = (TP + TN)(TP + TN + FP + FN). Где: TP - количество верно классифицированных картинок с повреждениями TN - количество верно классифицированных картинок без повреждений FP + FN - количество ложно классифицированных объектов

Расчет выполняется как:


def accuracy(predicts, true_values):
  return sum([pred == true for pred, true in zip(predicts, true_values)]) / len(true_values)

Формат выходных данных

Для отправки решения нужно:

  1. Создать файл в формате CSV, содержащий столбцы name,is_corrupted
  2. Данный файл не должен содержать не существующих имён.
  3. Ответы должны идти в том порядке в котором файлы упомянуты в test.csv
  4. Значение столбца is_corrupted должно быть или 0 или 1.

Примеры тестов

Стандартный вход Стандартный выход
1
пример нескольких первых строк из файла решения
name,is_corrupted
1.jpg,1
2.jpg,0
3.jpg,0

0.100s 0.007s 13