Для каждой новой позиции камеры (или для каждого нового кадра) вы можете заново вычислять коэффициент компенсации, используя данные карты глубины и, корректно компенсировать эффекты перспективы, если конечно сцена не изменилась слишком существенно, так что нужно делать переобучение модели глубины под новый масштаб сцены. Такой пересчёт коэффициента компенсации перспективы позволяет работать с динамичными сценами, где камера не остаётся фиксированной — это вполне нормальная практика.
Привет @Hiuss21! Реализация решения подобной задачи в общем-то возможна на смартфоне. Варианты реализации зависят он постановки самой задачи. Например, нужен ли реалтам, или возможна отложенная обработка. Под копотом у Depth Anything V2 довольно тяжёлая архитектура (DPT architecture with a DINOv2 backbone), требующая хорошей производительности. Однако, уже есть адаптированные версии данной архитектуры специально на мобильные устройства (https://huggingface.co/apple/coreml-depth-anything-v2-small): - small-original (параметров: 24.8M / размер: 99.2MB) - DepthAnythingV2SmallF32(параметров: 24.8M / размер: 99.2MB) - DepthAnythingV2SmallF16 (параметров: 24.8M / размер: 49.8MB)
Адаптированные версии, например на iPhone показывают весьма приемлемые производительности: iPhone 12 Pro Max - время обработки кадра = 31.10 мс.
Также, всегда возможен гибридный вариант работы. Т.е. тяжёлые вычисления можно делать на удалённом сервере и возвращать результаты на мобильное устройство.
Хороший вопрос, охватывающий комплексное решение. Конечно же хорошо и правильно структурированное хранение полученных данных, для дальнейшего анализа, например с помощью ML, и построения на его основе ещё более верхнеуровневых решений это следующий шаг данной задачи. Моё участие в данном проекте было достаточно локальным и направлено на проработку конретной задачи. Если вкратце — найти подходящий удобный «движок» для решения. Поэтому в своей публикации я делюсь своим опытом именно в этом вопросе.
Здравствуйте! Да, действительно, есть ещё целый ряд библиотек для решения задач линейного программирования, в частности, дополнительно к библиотеке docplex я построил решение задачи на основе библиотек scipy, cvxopt и pulp. Как Вы уже правильно отметили, у scipy и других библиотек имеются ограничения на количество уравнений, входящих в решение, что не позволяет масштабировать задачу на значительно большее число участников рынка. Также, по моему мнению, в библиотеке docplex задание целевой функции и ограничений решения более лаконичное и удобное, чем в других библиотеках.
Для каждой новой позиции камеры (или для каждого нового кадра) вы можете заново вычислять коэффициент компенсации, используя данные карты глубины и, корректно компенсировать эффекты перспективы, если конечно сцена не изменилась слишком существенно, так что нужно делать переобучение модели глубины под новый масштаб сцены. Такой пересчёт коэффициента компенсации перспективы позволяет работать с динамичными сценами, где камера не остаётся фиксированной — это вполне нормальная практика.
Привет @Hiuss21!
Реализация решения подобной задачи в общем-то возможна на смартфоне.
Варианты реализации зависят он постановки самой задачи. Например, нужен ли реалтам, или возможна отложенная обработка.
Под копотом у Depth Anything V2 довольно тяжёлая архитектура (DPT architecture with a DINOv2 backbone), требующая хорошей производительности.
Однако, уже есть адаптированные версии данной архитектуры специально на мобильные устройства (https://huggingface.co/apple/coreml-depth-anything-v2-small):
- small-original (параметров: 24.8M / размер: 99.2MB)
- DepthAnythingV2SmallF32 (параметров: 24.8M / размер: 99.2MB)
- DepthAnythingV2SmallF16 (параметров: 24.8M / размер: 49.8MB)
Адаптированные версии, например на iPhone показывают весьма приемлемые производительности: iPhone 12 Pro Max - время обработки кадра = 31.10 мс.
Также, всегда возможен гибридный вариант работы. Т.е. тяжёлые вычисления можно делать на удалённом сервере и возвращать результаты на мобильное устройство.