Я пытаюсь написать программу с C++ и OpenCV, которая вычисляет оставшееся время (кадры) до столкновения с объектом. В качестве примера видео у меня есть камера, движущаяся к доске.
Мой подход к этому следующий:
- обнаруживать функции для отслеживания (пробовали goodFeaturesToTrack() или устанавливали точки «вручную»)
- рассчитать оптический поток через calcOpticalFlowPyrLK()
- вычислить фундаментальную матрицу предыдущих и текущих найденных признаков с помощью findFundamentalMat()
- проверить правильность фундаментальной матрицы
- рассчитать эпиполярные линии и эпиполь - фокус разложения на видео
Наконец, я планировал использовать метод времени до контакта для расчета оставшихся кадров до столкновения.
До сих пор моей самой большой проблемой было найти правильную фундаментальную матрицу и, следовательно, эпиполь. Вычисленная матрица кажется неверной, как и эпиполярные линии. Будет ли мой запланированный подход правильным? У кого-нибудь есть рабочий пример получения FoE из видео или какое-либо пошаговое руководство о том, что мне нужно делать?
Буду очень рад любой помощи!
Спасибо!