Последние три недели я работал над обнаружением футбольных голов и улучшением детектора последовательности действий.

Мой подход к обнаружению футбольных голов был в основном таким:

  • Сегментируйте табло.
  • Следите за изменениями в табло для обнаружения голов.

Оказывается, область табло имеет довольно много краевого содержимого из-за наличия текстовых областей. Благодаря этому выходные данные фильтра Собеля/Шарра лучше отображают область табло, а также отсеивают ненужные детали. Итак, в основном, мне нужно было пропустить случайный кадр, если у него есть табло, через фильтр Собеля и получить контуры. Правильно? Вообще-то, нет.

Вот что произошло, когда я передал случайный кадр в...

Я обошел это, выполнив поиск субклипа, ~ 10 минут видео, для кадров с наименьшим краевым содержимым и использовал лучший из них для дальнейшей обработки. Ниже приведены некоторые кадры с низкоуровневым содержимым —

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

А вот и наша табличка!

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

Следующим шагом является отслеживание изменений в области только для оценки. Я снова использовал структурное сходство для получения различий между двумя табло. Вот как это выглядит при изменении счета -

Тогда это был просто вопрос повторения матча и сравнения области только для очков на предмет значительных изменений. Хотя выбор порога сходства, нарушение которого будет означать гол, — отдельная проблема, на основе четырех матчей от разных студий я выяснил, что 87,5% — это хорошая ставка.

И вот как вы забиваете голы в футболе!
Проверьте и внесите свой вклад в FabBits, если у вас есть время!