У меня есть видео с кадрами, как показано на моем предыдущем изображении в этом вопросе.
Как мы обнаруживаем точки на изображении с определенным цветом на этих точках
Я обнаружил эти маркеры и пронумеровал их, как показано на рисунке ниже:
Моя проблема заключается в следующем. После того, как я обнаружил маркеры в одном кадре, мне нужно обнаружить их в другом кадре и выяснить, насколько маркер переместился из своего предыдущего местоположения. Однако при повторном использовании моего кода во втором кадре я иногда в некоторых кадрах получаю различную нумерацию среди маркеров, и, следовательно, я не могу отслеживать маркеры от одного изображения к другому. Кроме того, обнаружение маркеров в каждом изображении становится трудоемкой задачей и занимает много времени для видео, которое имеет около 200 кадров.
Как я могу отследить эти маркеры на изображениях, чтобы узнать, насколько конкретный маркер переместился между кадрами, или просто как нумеровать эти маркеры так, чтобы нумерация никогда не менялась, а именно, маркер с номером 60 остается маркером 60 от кадра 1 до кадра 200.
Как побочный вопрос, есть ли способ реально сократить время обработки, чтобы мне не приходилось распознавать лицо и глаза в каждом кадре (см. Изображение, приведенное по ссылке в моем предыдущем вопросе, это проясняет ситуацию ).
Моя проблема заключается в следующем. После того, как я обнаружил маркеры в одном кадре, я
нужно обнаружить их в другом кадре и узнать, сколько стоит маркер
переехал из своего предыдущего местоположения. Однако при использовании моего кода снова
на втором кадре у меня иногда в некоторых кадрах получается другое
нумерация среди маркеров и, следовательно, я не могу отслеживать маркеры из
одно изображение другому. Также обнаружение маркеров в каждом изображении становится
громоздкая задача и занимает много времени для видео, которое имеет около
200 кадров.Как я могу отслеживать эти маркеры на изображениях, чтобы знать, сколько
конкретный маркер переместился между кадрами или просто как нумеровать
эти маркеры такие, что нумерация никогда не меняется, а именно маркер
под номером 60 остается маркер № 60 от кадра 1 до кадра 200.
Может быть, рассмотреть вопрос об использовании техники оптического потока — http://robotics.stanford.edu/~dstavens/cs223b/ ?
В качестве альтернативы попытайтесь разделить облако точек на более мелкие части, чем обнаруживать контуры. Вы можете разделить это, используя линии или используя эту простую идею (не проверено или проанализировано):
Как побочный вопрос, есть ли способ на самом деле уменьшить время обработки, так что мне не нужно распознавать лицо и глаза в
каждый кадр
Есть несколько простых способов сократить время обработки:
n
чем в номере кадра n+1
не выполнять поиск по всему кадру — разверните прямоугольник, в котором вы нашли лицо n
кадр и поиск только в этом расширенном прямоугольнике. Насколько вы должны его расширить? Это зависит от того, насколько быстро пользователь может двигать головой;) 50% — большая терпимость, но также и медленная. Лучший вариант — найти это значение самостоятельно.Других решений пока нет …