[Python, Обработка изображений, Машинное обучение] Распознавание волейбольного мяча на видео с дрона
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В прошлом году я развлекался треккингом волейбольного мяча, используя удаление фона OpenCV с анализом траекторий и даже сделал сервис, который на основе этой информации вырезает скучные моменты из игры.Основным фидбеком было - что за каменный век использовать олдскульные технологии, обучаешь нейросеть и погнали. Я пробовал, но не взлетело - очень часто мяч настолько размыт, что его даже человеческим глазом не отличить от случайной кляксы, и даже простой бинарный классификатор не дает стабильных результатов, чего уже говорить о детекторах и прочих YOLO.В общем, я это дело подзабросил, но вот весной завел себе дрон и конечно же первым делом приспособил его для волейбольных съемок. Если поднять его на нужную высоту (12-15 метров), в кадр влезает вся площадка, что дает прямо неограниченные возможности для анализа.
Камера дрона держится на гимбале, который гасит колебания аппарата и на выходе получается стабильная картинка. На эту картинку я и направил свой алгоритм распознавания, но ...все оказалось не так то просто.
Шум и никакого мячаСтационарнось картинки с дрона на самом деле обманчива - тряска аппарата не проходит бесследно и хотя гимбал отлично делает свою работу, результат способен обмануть человека, но не бездушную машину - тряска вызывает небольшие колебания в цвете пикселей, и этих колебаний достаточно чтобы сбить с толку алгоритмы распознавания фона.
Для сравнения - похожая подача при старом подходе выглядит вот так:
Делать нечего, придется искать другие подходы. У нас есть OpenCV, так что далеко идти все равно не придется. Вместо фона выделяем границы помощью фильтра Канни - и у нас есть черно-белый скетч для дальнейшего разбора.
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
gray = cv.GaussianBlur(gray, (5, 5),0)
mask = cv.Canny(gray, 50, 100)
Если натравить на него детектор контуров - все прекрасно работает, мяч удается зацепить. Дальше подключается детектор траекторий и процесс идет как и в основном алгоритме.
mask = backSub.apply(frame)
mask = cv.dilate(mask, None)
mask = cv.GaussianBlur(mask, (15, 15),0)
ret,mask = cv.threshold(mask,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
И опять же для сравнения - тот же фрагмент с неподвижной камеры с границами:
Как видно, палка имеет два конца - на трясущемся дроне Канни-фильтр дает лучшие результаты, а на статичной камере - генерит лишний фон, на котором теряется мяч.Но что будет, если эти два подхода совместить? Для видео с дрона Канни сначала оставит только нужные фигуры, а затем, можно удалить фон.Получается картинка не без шума, но его можно уже фильтровать, и мяч уже видно.
Результат - гораздо лучше, шума меньше (но есть еще) и траектория мяча распознается достаточно четко.
Прошлые статьи на эту же темуРаспознавание мяча в волейболе с OpenCV и TensorflowПосле первого опыта распознавания спортивных движений у меня зачесались руки сделать что-нибудь еще ...habr.comВолейбол глазами компьютераВ прошлой статье я рассказал о своих подходах по распознаванию волейбольного мяча в игре. Задача сам...habr.comАрхитектура облачного волейбольного сервисаНе так давно я писал про волейбольный сервис, теперь пришло время описать его с технической точки зр...habr.com
===========
Источник:
habr.com
===========
Похожие новости:
- [Python, Функциональное программирование] Не практичный python — пишем декоратор в одну строку
- [Python, Машинное обучение] Mushrooms (Machine Learning)
- [Python, Программирование, Математика, Машинное обучение] Оптимизация при помощи линейного поиска на Python (перевод)
- [Python, Программирование, Визуализация данных, Машинное обучение] 5 разных библиотек Python, которые сэкономят ваше время (перевод)
- [Open source, Разработка мобильных приложений, Машинное обучение, Искусственный интеллект, Урбанизм] Создано приложение, которое оценивает сейсмобезопасность зданий с помощью ИИ
- [Машинное обучение, Научно-популярное] Чего хотят конференции: воспроизводимость экспериментов в data science
- [Python] Сортируем файлы с помощью Python
- [Алгоритмы, Машинное обучение, Научно-популярное, Искусственный интеллект] DeepMind: обучения с подкреплением достаточно для достижения «настоящего» ИИ
- [Python, Алгоритмы, Обработка изображений, Машинное обучение] Распознаем номера автомобилей. Разработка multihead-модели в Catalyst
- [Машинное обучение, Производство и разработка электроники, Научно-популярное, Искусственный интеллект] ИИ проектирует микросхемы быстрее и лучше людей
Теги для поиска: #_python, #_obrabotka_izobrazhenij (Обработка изображений), #_mashinnoe_obuchenie (Машинное обучение), #_python, #_opencv, #_volejbol (волейбол), #_treking (трекинг), #_raspoznavanie_obrazov (распознавание образов), #_python, #_obrabotka_izobrazhenij (
Обработка изображений
), #_mashinnoe_obuchenie (
Машинное обучение
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:23
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В прошлом году я развлекался треккингом волейбольного мяча, используя удаление фона OpenCV с анализом траекторий и даже сделал сервис, который на основе этой информации вырезает скучные моменты из игры.Основным фидбеком было - что за каменный век использовать олдскульные технологии, обучаешь нейросеть и погнали. Я пробовал, но не взлетело - очень часто мяч настолько размыт, что его даже человеческим глазом не отличить от случайной кляксы, и даже простой бинарный классификатор не дает стабильных результатов, чего уже говорить о детекторах и прочих YOLO.В общем, я это дело подзабросил, но вот весной завел себе дрон и конечно же первым делом приспособил его для волейбольных съемок. Если поднять его на нужную высоту (12-15 метров), в кадр влезает вся площадка, что дает прямо неограниченные возможности для анализа. Камера дрона держится на гимбале, который гасит колебания аппарата и на выходе получается стабильная картинка. На эту картинку я и направил свой алгоритм распознавания, но ...все оказалось не так то просто. Шум и никакого мячаСтационарнось картинки с дрона на самом деле обманчива - тряска аппарата не проходит бесследно и хотя гимбал отлично делает свою работу, результат способен обмануть человека, но не бездушную машину - тряска вызывает небольшие колебания в цвете пикселей, и этих колебаний достаточно чтобы сбить с толку алгоритмы распознавания фона. Для сравнения - похожая подача при старом подходе выглядит вот так: Делать нечего, придется искать другие подходы. У нас есть OpenCV, так что далеко идти все равно не придется. Вместо фона выделяем границы помощью фильтра Канни - и у нас есть черно-белый скетч для дальнейшего разбора. gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
gray = cv.GaussianBlur(gray, (5, 5),0) mask = cv.Canny(gray, 50, 100) mask = backSub.apply(frame)
mask = cv.dilate(mask, None) mask = cv.GaussianBlur(mask, (15, 15),0) ret,mask = cv.threshold(mask,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU) И опять же для сравнения - тот же фрагмент с неподвижной камеры с границами: Как видно, палка имеет два конца - на трясущемся дроне Канни-фильтр дает лучшие результаты, а на статичной камере - генерит лишний фон, на котором теряется мяч.Но что будет, если эти два подхода совместить? Для видео с дрона Канни сначала оставит только нужные фигуры, а затем, можно удалить фон.Получается картинка не без шума, но его можно уже фильтровать, и мяч уже видно. Результат - гораздо лучше, шума меньше (но есть еще) и траектория мяча распознается достаточно четко. Прошлые статьи на эту же темуРаспознавание мяча в волейболе с OpenCV и TensorflowПосле первого опыта распознавания спортивных движений у меня зачесались руки сделать что-нибудь еще ...habr.comВолейбол глазами компьютераВ прошлой статье я рассказал о своих подходах по распознаванию волейбольного мяча в игре. Задача сам...habr.comАрхитектура облачного волейбольного сервисаНе так давно я писал про волейбольный сервис, теперь пришло время описать его с технической точки зр...habr.com =========== Источник: habr.com =========== Похожие новости:
Обработка изображений ), #_mashinnoe_obuchenie ( Машинное обучение ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:23
Часовой пояс: UTC + 5