1

Я ищу для захвата видео на iPhone и для начала захвата, как только быстрое движение идентифицируется и останавливается при медленном движении или обнаружении движения.Анализ видеоизображения - обнаружение быстрого движения/игнорирование медленного движения

Вот случай использования для иллюстрации:

  1. Если кто-то держит камеру iPhone и нет никакого фона движения, но его руки не устойчивы и перемещения влево/вправо/вверх/вниз медленно, это движение следует считать медленным.
  2. Если кто-то быстро запустится в поле зрения камеры, это будет считаться быстрым движением для записи.
  3. Если кто-то медленно входит в поле зрения камеры, это будет считаться медленным и его не следует подбирать.

Я рассматривал OpenCV и думал, что это может быть излишним, используя их алгоритмы обнаружения движения и оптического потока. Я думаю о легком методе, напрямую обращаясь к пикселю изображения, возможно, изучая изменения уровней яркости/яркости.

Мне нужно обработать 30-40% области видеорамки для движения (например, верхнюю половину экрана) и, возможно, забрать каждый другой пиксель для обработки. Причиной для легкого алгоритма является то, что он должен быть очень быстрым < 4ms, поскольку он будет обрабатывать входящие кадры видео-буфера с высокой частотой кадров.

Оцените любые мысли в альтернативных процедурах обработки изображений и быстрого обнаружения движения, напрямую исследуя пиксели изображения.

+0

Я вижу три способа: 1. плотный оптический поток 2. очень хорошая сегментация объектов и смысловое понимание в сочетании с некоторым сочетанием признаков. ОБА будет слишком медленным, а 2. будет невозможно разработать. Удача. Третий способ - это некоторые общие мотивы на стабилизацию в сочетании с разреженным сочетанием функций. Не уверен, что это может быть достаточно быстрым и достаточно прочным. – Micka

+2

В общем, у вас могут возникнуть проблемы с отличным далеким движением от почти замедленного движения. – Micka

ответ

0
  1. плотной оптический поток, как calcOpticalFlowFarneback

  2. использованием истории движения

    2.1 updateMotionHistory (silh, MHI, метка времени, MHI_DURATION);

    2,2 calcMotionGradient (MHI, маска, ориентируют, MAX_TIME_DELTA, MIN_TIME_DELTA ...

    2.3 segmentMotion (MHI, segmask, регионы, отметка времени, MAX_TIME_DELTA);

    2,4 calcGlobalOrientation (orient_roi, mask_roi, mhi_roi, ...