Pull to refresh
98
27.1
Ермолаев Игорь @ErmIg

Пользователь

Send message
В качестве корреляционной функции использовалась сумма абсолютных разностей точек изображений. Максимальное смещение — где-то четверть от высоты изображения.
Добавил пример с сопровождением объектов. Не понимаю, почему вы мне не верите — алгоритм реализован уже пять лет назад. И 4 года как минимум присутствует в готовых продуктах.
Работает честно — во время тряски движущиеся объекты сопровождаются детектором движения. В данном примере тоже все честно — я сам лично штатив с камерой тряс :).
Наверное мы не совсем точно описали. Но детектирование происходит не только на входе и выходе, а на всем протяжении зоны. В частности на рисунках 3 и 4 видны эти промежуточные области в виде синих квадратиков. Входи и выход задаются оператором при калибровке, а остальные зоны размечаются автоматически.
Что значит ложное срабатывание? Алгоритм детектирует наличие движущегося поезда в кадре, а не просто поезда.
Алгоритм определяет движущийся объект и проводит его классификацию (человек или машина) — в данном случае это два идущих рядом человека. 1 — это не количество, а номер объекта.
В OpenCV, на сколько я могу судить по исходным кодам, переменный шаг реализован уже лет пять назад. В чем новизна данного подхода?
Свое время писал стабилизатор правда для стационарных камер. Нахождения смещения основывалось на простой корреляции методом последовательного приближения на разных масштабах. После нахождения смещения, его значение уточнялось с субпиксельной точностью. Оптимизировал нахождение корреляции и выполнение смещения под SSE2. Общее время работы алгоритма было менее 1 мс для мегапиксельного изображения.
P.S. Проверил. Пока автовекторизация в большинстве перечисленных случаев не работает. Возможно в будущем это изменится.
Реализовывал медианный фильтр по алгоритму из последней вашей ссылки. Да он позволяет обрабатывать изображения с одинаковой скоростью не зависимо от размера окна. Но эта постоянная скорость все же очень низкая (около секунды для HD разрешения, на сколько я помню). В области где я работаю (видеоаналитика), такая скорость неприемлема. Да и не требуются для нас медианные фильтры большого радиуса. максимум 5x5.
Спасибо за такой развернутый комментарий. Честно говоря, я не знал что уже GCC дорос до автовекторизации подобных выражений. Буду экспереметировать и курить доки.

Тем не менее, пример, который я привел — скорее исключение, чем правило. Обычно в алгоритме обработки изображения присутствует необходимость паковки и распаковки векторов, обработка краевых значений, маскирования и другие преобразования, которые не очень способствуют автовекторизации. Будет ли она работать в таком случае?
Здесь не тот случай. Так как размер массива достаточно мал и фиксирован, то любой обобщенный алгоритм будет проигрывать специализированному, так как содержит много ненужных проверок. Кроме в вашем варианте полно условных переходов, которые убьют производительность.
Если вы посмотрите внимательно, то увидите, что я и так применяю для нахождения среднего элемента частичную сортировку.
Тогда уж OpenVX, когда его до ума доведут.
Проблему перекачки данных они попытались решить при помощи графов — довольно элегантное решение.
Я думаю, что реализация на IPP будет даже быстрее, если конечно найдется именно та функция, что вам нужна. К сожалению за IPP нужно денежку платить.
У каждого, кто пытался работать с BGR-24 на SSE2, наверное получились свои собственные уникальные костыли :)
Я уже ранее немного ознакомился со стандартом. Пока, по моему сугубо личному мнению, перспективы OpenVX в ближайшей время довольно туманные — пол года до его выхода и еще не известно сколько до поддержки в различных устройствах (вспоминаем как со скрипом продвигалась поддержка OpenCL). Тем не менее в отдаленной перспективе вполне возможно его широкое распространение, так что вы делаете безусловно весьма полезное дело. За что вам большое спасибо!
Я больше по целым числам специализируюсь. Но MMX я уже не застал. Лет пять колупал SSE2, последний год — AVX2. Возможно, что скоро руки дойдут до NEON.
Наверное в некотором роде действительно, так оно и есть — я действительно написал очевидные для специалиста вещи. Но я себя сознательно ограничивал, так как хотел описать проблему в общих чертах, что бы она была понятна не специалистам. Возможно, что я был не прав.
Безусловно, у моего алгоритма есть недостатки (к кропу он не устойчив). Однако большинство случаев хватает и его. В частности очень эффективно ищет похожую картинку (картинку с другим разрешением или степенью сжатия).

P.S. К стати почему вы не ищете картинки по блогам и социальным сетям?

Information

Rating
217-th
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity