powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Панорамирование - оптимизация загрузки
25 сообщений из 43, страница 1 из 2
Панорамирование - оптимизация загрузки
    #38866251
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джентльмены, возник небольшой вопрос.
Имеется условно прямоугольная сетка кадров, снятых с перекрытием, далее они попарно совмещаются. Для совмещения кадры нужно загрузить. Кадров может быть до нескольких тысяч, в памяти их всех разместить невозможно, поэтому приходится делать вытесняющий кэш заданного объема. Необходимо составить алгоритм обхода пар так, чтобы минимизировать количество загрузок.
Наверняка есть похожие стандартные задачи, но я о них ничего не знаю.
Подскажите, куда копать.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866267
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

А две строки/столбца в сетке возможно в памяти разместить?
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866282
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,
Сейчас так и делается, но при большом числе кадров уже не получается.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866291
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, можно сократить расход до одной строки/столбца плюс 1-2 кадра на перехлест.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866505
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

не уверен, но м.б. фрактальная нумерация кадров как точек плоскости поможет?
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866536
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftДумаю, можно сократить расход до одной строки/столбца плюс 1-2 кадра на перехлест.Если и так будет слишком много, то резать исходную сетку на полосы перпендикулярно направлению "сканирования". Ширину полос выбирать исходя из доступной памяти.
Правда, пограничные изображения придется грузить дважды. Поэтому полосы желательно не делать слишком узкими.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866585
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХУ просто построчно обходить меняя направление обхода.
Т.е. в таком порядке
1 2 3 4
8 7 6 5
9 ...


Тут если кэша хватит на одну строку, то повторного считывания в кэш не потребуется. В худшем случае надо будет пересчитать крайние элементы последней законченной строки.

Если проблема в потери времени на загрузку в кэш, то задача легко распараллеливается: строить план на 5-10 шагов вперед и пока считается текущий кадр скачивать необходимые для следующего рассчета.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866591
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТут если кэша хватит на одну строку, то повторного считывания в кэш не потребуется.Увы, нужно на две. При обработке 8-ого кадра, 1-ый все еще нужен.
А вот если не менять направление, то нужно хранить одну строку плюс 2 кадра.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866608
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftПри обработке 8-ого кадра, 1-ый все еще нужен.
А вот если не менять направление, то нужно хранить одну строку плюс 2 кадра.
Согласен, так меньше кэша надо.
Но если в кэш влезет меньше одной + 2 кадра, то без смены направления надо будет повторно считывать каждый кадр, а при смене направлений - только часть.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38866748
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, можно для всех картинок сделать MipMapping

И решив данную задачу для маленьких фотоснимков (64x64) pix к примеру перенести ту-же конфигурацию
нахлёстов и накладок к большим картинкам.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38867835
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ просто построчно обходить меняя направление обхода.
Т.е. в таком порядке
1 2 3 4
8 7 6 5
9 ...

Тут если кэша хватит на одну строку, то повторного считывания в кэш не потребуется. В худшем случае надо будет пересчитать крайние элементы последней законченной строки.

Сейчас делается именно так - обход построчно по меандру. На больших размерах предыдущую строчку приходится перегружать.
Число лишних загрузок получается порядка (Y-1)*P, где P - (0..X-1) в зависимости от размера кэша.
Я думал, возможно существуют алгоритмы с меньшей накладкой.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38867865
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисЯ думал, возможно существуют алгоритмы с меньшей накладкой.
Еще вопрос по одработке:
допустим есть картинки:
1 2 3
4 5 6
7 8 9

для обработки 5-й какие нужны? 2 4 6 8 ? или 2 4 ?
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38867894
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕще вопрос по одработке: Сейчас пока 8-связный алгоритм (все соседи, в т.ч. диагональные).
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38867939
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисЯ думал, возможно существуют алгоритмы с меньшей накладкой.Пару более выгодных вариантов я уже предложил.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868016
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСоколинский БорисЯ думал, возможно существуют алгоритмы с меньшей накладкой.Пару более выгодных вариантов я уже предложил. Я прочитал, спасибо. Идея с полосками, наверное, лучше всего.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868082
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно Кривую Гильберта попробовать. Или Z-order.

Последний используется в пространственных DBMS где есть задача
консолидировать секторы или блоки гео-базы данных рядышком
при условии что мы запрашиваем bounding volume который накрывает
собой несколько блоков.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868091
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожно Кривую Гильберта попробовать.Имхо, это будет еще хуже текущего положения дел.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868097
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис, если я правильно понял, что Вы хотите, оптимальным, пожалуй, будет вариант на рисунке. Но мне кажется, основная алгоритмическая сложность не в порядке обхода, а в формировании результата...
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868104
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,
miksoft, насколько я понял, именно такой вариант предложил.
С результатами - отдельная история, не для этой темы.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868108
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftmaytonМожно Кривую Гильберта попробовать.Имхо, это будет еще хуже текущего положения дел.
Этот вопрос не такой простой как кажется. Я вот из топика не понимаю
каким образом Борис делает выравнивание границ и проверки на то
что мозаика складывается верно. Если я это пойму - то посоветую
order или файловый формат при котором взаимодействие с источниками
будет минимально. В некотором вырожденном варианте можно вообще
решать задачу "поточно" без привлечения кешей и буферов. Но
я должен понять как Борис делает сшивание фоток.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868115
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmiksoft, насколько я понял, именно такой вариант предложил.Нет, не такой.
В вертикальной ориентации это будет так:
1234567891011121314151617181920.....
Правда, ошибся с подсчетом занимаемой памяти. Нужны будет не одна строка + 2 кадра, а 2 строки + 2 кадра. Например, в момент обработки кадра №13 будут храниться кадры с 7 по 19.
Но все кадры будут загружаться ровно по одному разу.

Если сетка широкая и ее нужно резать на полосы, то так:
1234510110210310410567891010610710810911011121314151111121131141151617181920116117118119120..........
Повторно будут загружаться кадры, граничащие с полосой разреза. Для минимизации их количества нужно максимально увеличивать ширину полос насколько позволяет память.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868117
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmiksoft, насколько я понял, именно такой вариант предложил.
Возможно, я не понял или неудачно нарисовал.

Основная идея - не пытаться обработать всю строку или весь столбец, а брать такой размер "до перехода", чтобы влезть в кеш, а незатронутые (белые ниже) обрабатывать аналогичным образом потом. Тогда оверхед получится довольно незначительным, порядка 1/N блоков, где N - размер кеша.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868142
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭтот вопрос не такой простой как кажется. Я вот из топика не понимаю каким образом Борис делает выравнивание границ и проверки на то что мозаика складывается верно. Если я это пойму - то посоветую order или файловый формат при котором взаимодействие с источниками будет минимально. В некотором вырожденном варианте можно вообще решать задачу "поточно" без привлечения кешей и буферов. Но я должен понять как Борис делает сшивание фоток. Мне казалось, это к теме не относится, но могу рассказать, большого секрета тут нет.
1. "Грубая" сетка кадров получается при создании карты просто по координатам "сканера" (запись кадров идет в "нахлест"). По этой сетке вычисляются перекрывающиеся пары и для каждой пары - предполагаемая область перекрытия.
2. Делается совмещение всех выбранных пар, процедура выдернута из OpenCV. Собственно здесь возникает задача оптимизации порядка совмещения.
3. В результате получается система линейных уравнений, большая, разреженная и переопределенная. Решается методом наименьших квадратов, есть достаточно эффективный и качественный алгоритм.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868145
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНет, не такой. Тут разница только в порядке обхода строк/столбцов - не по меандру, а от меньшего к большему. Принципиальной разницы не вижу.
...
Рейтинг: 0 / 0
Панорамирование - оптимизация загрузки
    #38868155
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисmiksoftНет, не такой. Тут разница только в порядке обхода строк/столбцов - не по меандру, а от меньшего к большему. Принципиальной разницы не вижу.Мда, порисовал клеточки, действительно.
Прошу прощения, что сбил с толку.

Но зато у меня алгоритм учета загрузок/выкидываний проще получается - обычный FIFO.
...
Рейтинг: 0 / 0
25 сообщений из 43, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Панорамирование - оптимизация загрузки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]