LINUX.ORG.RU

Трекинг объекта в 3D пространстве при неподвижной камере

 , , , ,


0

1

Привет всем!

Есть примерно пятиминутное видео (с производства), где прямоугольный параллелепипед (контейнер) перемещается по одной оси от дальней точки к камере и уходит за границу кадра. Он имеет более-менее однородный цвет, немного надписей и всякие выступы/выемки. Т.е. есть на что повесить точки для трекинга. Хоть ось перемещения одна, но она расположена под углом к камере, поэтому присутствуют изменяющиеся во времени перспективные искажения. Есть задача: нужно на видимую сторону наложить прямоугольное изображение (как если бы оно было напечатано на бумаге и наклеено). Очень желательно, чтобы на накладываемом изображении были все тени (освещение в помещении не равномерное, при движении исходный объект попадает из более освещённой области в менее освещённую). Конечная цель в том, чтобы проверить где и как лучше размещать метки, по которым можно было бы отслеживать объект. Т.е. чтобы не повторять цикл «наклеил, снял видео, посмотрел подходит ли, оторвал, наклеил ...», а сделать симуляцию этого в видеоредакторе.

Раньше я примерно такое делал в After Effects и там это было вполне быстро, просто и качественно. Теперь озадачился вопросом, как и в чём такое сделать на GNU/Linux. Погуглил.

Первое, что нашёл - KDEnlive. Хороший редактор, но с поставленной задачей не помог. В найденных туториалах рекомендовалось использовать Auto Mask с анализом и копирование получившихся данных в Transform. Во-первых, насколько я понял, перемещение тут отслеживается без определения перспективы. Во-вторых, он совершенно зависал при копировании данных трекинга. Не понятно...

Дальше я нашёл Davinci Resolve. Но, как быстро выяснилось, ему обязательно надо OpenCL на видеокарте. И хотя моя карточка его поддерживает, но она достаточно старая и с драйверами проблема.

И третий вариант, который мне попался - Blender. Знаю, что это весьма серьёзный продукт, однако дела с ним не имел. Найденный туториал озадачил первым пунктом «разобрать исходное видео на серию картинок .png». Что совсем неудобно, да и не эффективно на мой взгляд. Хотя, допускаю, что-то я не понял.

Какие ещё есть варианты? Спасибо!

★★★★

Ответ на: комментарий от anonymous

Kdenlive: Effects/Distort/Corners

Спасибо. У себя нашёл это в Alpha/Transform -> Corners. И по первому впечатлению показалось, что это могло бы помочь, перспективу можно поправить с помощью перетаскивания углов. Но есть две проблемы:
* С каждой итерацией перемещения углов ограничивающего четырёхугольника картинка внутри него начинает съезжать, т.е. между ней и рамкой образуется смещение, картинка может выходить за её пределы, и довольно сильно, до 50% от её размера.
* Когда я вставляю ключевые кадры, полученные из Auto Mask, то всё опять зависает. Просто грузит одно ядро больше 20 минут (дальше не ждал). И я понимаю, если бы оно грузило ядро когда идёт анализ в Auto Mask, там надо отслеживать ключевые точки, это ресурсозатратно. Но чего но делает когда я пытаюсь применить найденные точки?
Версия 20.08.2

ls-h ★★★★ ()

Blender

разобрать исходное видео на серию картинок .png

ничего там на картинки разбирать не надо. https://www.youtube.com/watch?v=5xPLjDDG_sI

в блендере есть возможность компенсировать оптику во время трекинга — наверняка у вас там широкий угол у камеры.

anonymous ()