Быстрый просмотр доступных решений для автоматического определения мяча

🚩 Цель

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

(я не технический специалист в своей команде, что означает, что точка зрения, изложенная в этом сообщении, не приведет вас к каким-либо алгоритмам или нейронной сети).

🚩W Почему тебе не все равно? и почему мяч?

Если вы занимаетесь спортом с искусственным интеллектом, это абсолютно актуально для вас , чтобы знать современные достижения в области обнаружения мячей, этот объект всегда главный центр внимания любого спорта. Если вы сможете обнаружить мяч (даже на высоких скоростях), вы сможете легче обнаруживать ключевые события игры, показатели и много другой полезной информации.

🚩 А как насчет игроков?

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

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

Введение: отслеживание и обнаружение движущихся объектов

Как мы заявляли ранее, обнаружение и отслеживания движущихся объектов являются ключевыми задачами для ИИ, чтобы преуспеть и преуспеть в этой нише. Спорт эквивалентен движению, когда люди и предметы движутся с разной скоростью и в разных направлениях.

Возможность отслеживать движущиеся объекты и анализировать их играет решающую роль . Для нас разработка и научить ИИ смотреть футбольный матч и обнаруживать элементы или события в матче звучит как легкая задача, но на самом деле это очень сложно ..

Вот несколько причин:

  • Камера постоянно панорамирует, масштабирует и иногда наклоняется, а иногда воспроизведение появляется под совершенно другим углом, и наш мозг НАСТОЛЬКО хорош в нейтрализации этого движения, что мы даже не замечаем его.
  • Количество объектов и людей, движущихся во всех направлениях с разной скоростью и иногда непредсказуемыми траекториями.
  • Фон смешивается с игроками и мячом, объектами и людьми почти идентичной внешности.
  • Ложные срабатывания, одинаковые объекты вне игры (Игроки в одинаковой экипировке на скамейках, спортивные мячи вне игры идентичны мячу «в игре»)

Но мы, люди, великолепны в этой задаче!
Мы, люди, эффективно игнорируем движение камеры, поэтому мы не путаемся, например, между фоном и игровым полем ...

Или заблудиться в быстром, а иногда и беспорядочном движении людей (игроков) и предметов (мяч, сетка и т. Д.) ИИ сложно соревноваться с человеком.

Давай начнем ! - Мой путь к обнаружению мяча

Моя цель состояла в том, чтобы опробовать датчики мяча, с которыми я столкнулся, в течение 5 часов после исследования в Google, чтобы сделать этот эксперимент очень простым и без постороннего взгляда на индустрию искусственного интеллекта.

Для этого я использую подход «подключи и работай», я не изменяю код обнаруженных детекторов и нейронных сетей, я просто загружаю и запускаю его с моим локальным примером с небольшими изменениями. .

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

Посмотрим, что случилось !!

Это видео, которое я буду использовать для анализа с помощью 3 вариантов детекторов мяча.

1-е место - PyImageSearch, детектор мячей OpenCV

¡СЛИШКОМ ХОРОШО, чтобы БЫТЬ ИСТИННЫМ! ¡Первый результат моего поиска!
📹 Работает на ЦП со скоростью 32 кадра в секунду 🤯
✅ Возможности в реальном времени.

Исходный код справочной ссылки:
https://www.pyimagesearch.com/2015/09/14/ball-tracking-with-opencv/

Эта статья PyImageSearch описывает очень наивный метод обнаружения и отслеживания теннисного мяча: просто найдите зеленую область на изображении, а затем найдите окружающий круг для этой области. Легкий!

Сообщенные результаты показывают, что мяч на самом деле очень хорошо отслеживался, даже если он был частично закрыт для обзора рукой. Он даже работает со скоростью 32 FPS, что является безумно высоким показателем и позволяет обнаруживать его в реальном времени.

Пока все хорошо, идеально соответствует моим потребностям, поэтому мне нужно было попробовать это в моем видео!

Это результат применения этого детектора.

Небольшое уточнение: мы изменили цветовой датчик с зеленого на белый, чтобы попытаться обнаружить футбольный мяч, поскольку он был установлен на зеленый.

Не работало вообще, путалось с другими белыми объектами на экране, и мяч никогда не обнаруживался и не отслеживался.

2-й DETECTRON2 (предварительно обученная нейронная сеть из Facebook)

📹 Работает на графическом процессоре (Nvidia GTX 1060Ti 6 ГБ ОЗУ) со скоростью 2 кадра в секунду,
Не в реальном времени

Исходный код справочной ссылки:
https://nol.cs.nctu.edu.tw:234/open-source/TrackNet/

Во втором варианте я попытаюсь реализовать нейронную сеть, предоставленную Facebook, уже предварительно обученную множеством объектов (включая спортивные мячи). Меня очень заинтриговал результат «из коробки». Кроме того, я хотел посмотреть, сможет ли он обнаруживать тела игроков.

Это был результат применения этого детектора:

Все проигрыватели были обнаружены идеально, что является преимуществом для Detectron2. Что касается мяча, он был обнаружен в нескольких кадрах, но я увидел его впервые!

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

Но эта предварительно обученная нейронная сеть имеет проблемы с быстро движущимися объектами, такими как мяч.

Это привело меня к последнему эксперименту со специальным трекером, специально решающим быстро движущиеся объекты на основе тепловых карт. Эта следующая разработка является многообещающей, потому что почти идеальное обнаружение в теннисе (который представляет собой меньший мяч и движется быстрее!)

3-й TrackNet

📹 Внутри документации укажите, что он мог работать со скоростью 22 кадра в секунду! Разрешение работы в реальном времени НО было не совсем правильным…
На моем графическом процессоре (Nvidia GTX 1060Ti 6 ГБ ОЗУ) он работал со скоростью 2 кадра в секунду ..
Не в реальном времени.

Исходный код ссылки:
https://nol.cs.nctu.edu.tw:234/open-source/TrackNet/

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

Результат применения этого детектора:

Я ошибался, результат был плохим ... Хотя обнаружение футбольного мяча улучшилось по сравнению с детектором PyImageSearch, на кадрах слишком много ложных срабатываний ... это означает, что TrackNet обнаруживает мяч даже там, где есть совсем не мяч ...

Кроме того, он работал со скоростью 2 кадра в секунду, а не 22 кадра в секунду, которые упоминались в документации, это блокирует возможность анализа и обнаружения в реальном времени.

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

Если у кого-то есть набор данных футбольных мячей (настоящих и / или синтетических), мы заинтересованы в сотрудничестве для обучения этой нейронной сети или разработки специального решения, напишите нам по адресу [email protected]

ВЫВОД ПО РЕЗУЛЬТАТАМ

В заключение, никакая нейронная сеть, работающая по принципу «включай и работай», не проведет вас полностью в AI Sports, в этой нише нет глобального решения (ЕЩЕ). Это дает невероятное преимущество для тех, кто рано вступает в эту сферу и разрабатывает глобальное решение. Это еще не все ..

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

Вот почему вам нужно будет связаться с командой для разработки этого типа ИИ.

Если вы заинтересованы в сотрудничестве или создании своего ИИ вместе с нами.

Обратитесь!

Мы - агентство программного обеспечения, специализирующееся на машинном обучении и, в частности, на компьютерном зрении, вы можете связаться с нами по адресу [email protected], наш веб-сайт - https://eidos.ai

Следите за нашей следующей публикацией на Medium в следующем месяце!