Я работаю над приложением дополненной реальности для iPhone, которое включает в себя очень интенсивно использующий процессор алгоритм распознавания объектов (нажатие на процессор на 100% может пройти через 5 кадров в секунду), а также для экономии заряда батареи и сделать все это менее «неустойчивым». Я пытаюсь придумать способ запустить этот распознаватель объектов, когда пользователь фактически перемещает камеру.Быстрый, очень легкий алгоритм обнаружения движения камеры?
Моя первая мысль состояла в том, чтобы просто использовать акселерометры/гироскопы для iPhone, но при тестировании я обнаружил, что очень часто люди двигают iPhone с достаточно устойчивым отношением и скоростью, чтобы не было никакого способа сказать, что это было все еще в движении.
Таким образом, оставив возможность анализа фактического видеопотока и обнаружения движения в этом. Я получил OpenCV и попытался запустить свой пирамидальный алгоритм оптического потока Lucas-Kanade, который работает хорошо, но, похоже, почти так же интенсивен, как и у моего распознавателя объектов, я могу получить его до приемлемой частоты кадров, если я понижу уровни глубины/image/track меньше очков, но тогда точность страдает, и она начинает пропускать некоторые большие движения и срабатывать на маленьких дрожащих вручную.
Итак, мой вопрос в том, есть ли другой алгоритм оптического потока, который быстрее, чем Lucas-Kanade, если я просто хочу определить общую величину движения камеры? Мне не нужно отслеживать отдельные объекты, мне даже не нужно знать, в каком направлении движется камера, все, что мне действительно нужно, это способ подачи чего-то двух кадров видео и расскажите мне, насколько они далеко друг от друга.
Отъезд [Выравнивание видоискателя] (http://www-graphics.stanford.edu/papers/viewfinderalignment/). – 2010-12-09 13:42:32