Комментарии 30
В случае с этикетками, задача проще, т.к. склеивать нужно всегда слева направо, и стык всегда вертиакальный (и не бывает мест, где сходятся три фрагмента в одной точке). По сравнению с обычными панорамами есть только одна сложность — двоение на тексте, но, как это уже упоминалось, решается оптическим потоком.
Спасибо! Для неподвижного объекта действенно получается очень хорошо. Для панорамных фото, ситуация усложняется тем, что вода колеблется, трава и листья — тоже. Бывает вообще посторонний объект появляется. Поэтому там склейку проводят по разным контурам, и линию склейки приходится делать более узкой (из-за чего она становится более заметной).
И еще один вопрос созрел, вы получаете этикетку из видео ряда? Или серии фотографий? Тут вопрос наверное пользовательского удобства, покрутить на видео пользователю проще, а вот разбивать видео потом на фреймы, выкидывая лишнее и не иметь гарантий резких кадров для склейки — сложнее. Или же вы просите сделать серию фотографий?
Что касается фотографий из разных ракурсов, то мне кажется, что оптический поток склеит довольно неплохо, другое дело, что полученная фотография может выглядеть довольно странно (хотя и без стыков).
Для таких задач лучше использовать другие методики, которые по кадрам восстанавливают 3D habr.com/ru/post/516116/#comment_21985568
спасибо.
да, артефакты были у NeRF, а в NeRF-W как раз провели огромную работу по подавлению этих артефактов. Тем более, что артефакты как раз обычно возникают, когда есть вариабельность (пальцы на этикетке), а в вашем случае пальцев нет. Потенциально возможны артефакты на фоне, т.к. фон остается одинаковым, тогда как бутылка вращается, но мне кажется, что т.к. фон вас все равно не интересует, это не будет проблемой.
Насчет бОльшего количества фоток — похоже, что нет, не нужно, если, опять же, у вас нет заслонений ключевых элементов. В примерах с реконструкцией машин, кораблей и т.д. использовались очень маленькие выборки фотографий, чтобы это стоило попробовать.
с помощью машинного обучения
Но причём тут машинное обучение? И RANSAK и OpticalFlow — достаточно классические алгоритмы (Ок, OF можно сделать через нейронки, но тут это не рассмотренно). Плюс набор эмпирик чтобы всё попристойне выглядело.
По заголовку я надеялся будет какой-нибудь очередной подход без RANSAK, типо этого.
Что касается машинного обучения — это более широкая область, она не обязательно включает в себя нейронные сети.
Но машинное обучение предполагает, что функция отображения пространства признаков в пространство решений подбирается компьютером на основе предъявленных образцов (наборов признаков или пар из наборов признаков и решений), в данной статье, кажется, этого нет. Разве что в шаге фильтрации пар соответствующих точек, где по сути делается кластеризация.
Возможно, имелось в виду машинное зрение? Либо, возможно, что-то упустил, тогда извините.
В целом же статья понравилась, задача интересная, не тривиальная и в меру сложная, хорошо показан набор методов и шаги решения. Спасибо. Постараюсь добраться до предыдущих статей цикла, которые раньше не видел.
Но всё же и RANSAK — это чисто логический алгоритм перебора гипотез и поиска оптимальной, а OpticalFlow, где нет нейронок — либо алгоритмы дифференциального анализа, либо опять же, какая-то логика, либо матан.
В матчинге вы сами говорите что KNN, который сложно назвать ML.
Так что в базовом пайплайне ни SVM ни Boost'инговых алгоритмов не вижу.
Но я только к заголовку придираюсь, всё остальное — ок:)
А можно вопрос немного не по теме: если есть фотографии человека с младенчества до подросткового возраста — как-то можно автоматически обработать в гифку, чтобы показать изменения лица во времени?
После генерации всех кадров, их можно склеить в гифку каким-нибудь imagemagick.
Спасибо! А не знаете, может быть есть какие-то уже готовы подобные скрипты и решения?
Как только определять точные координаты контрольных точек?
Попробовал поискать — есть готовая библиотека для Python github.com/ageitgey/face_recognition.
Возьмите StyleGAN2, используйте проектор, чтобы получить координаты лица в latent space, затем используйте интерполяцию между полученными координатами.
https://colab.research.google.com/drive/1ShgW6wohEFQtqs_znMna3dzrcVoABKIH#scrollTo=rYdsgv4i6YPl вот тут пример работы проектора.
Склеиваем несколько фотографий в одну длинную с помощью компьютерного зрения