Я хочу использовать свой телефон в качестве системы видеонаблюдения, чтобы контролировать комнату в моем доме и отображать предупреждение, когда что-то движется.
На данный момент мне удалось захватить картинку каждую минуту и загрузить ее через PHP-скрипт на мой сервер. Теперь я хотел бы сравнить текущее изображение и изображение 1 минуту назад и определить, входил ли кто-либо в комнату. В общем, мне нужно сравнить разницу пикселей на картинке (но также с учетом того, что облако может просто сказать привет и изменить яркость в течение одной минуты)
Кто-нибудь знает, как добиться этого или какой-то документ для чтения?
Ответы:
Мне кажется, что вы ищете метод фонового вычитания. С шумными изображениями и изменением условий освещения это может быть нетривиальным. Современным уровнем техники для этого является матричное представление низкого ранга, но для этого требуется не два, а много (~ дюжина) изображений. Далее следует некоторая сложная математика: каждое изображение рассматривается как вектор пикселей, векторы объединяются в матрицу, и эта матрица разлагается на матрицу низкого ранга и остаток. Низкоранговые столбцы матрицы являются фоном, а остатки - движущимися объектами. Есть некоторые реализации с открытым исходным кодом, но только для факторизации, а не для полного конвейера изображений IIRC
Вот статья и код для матричной факторизации http://www.ece.rice.edu/~aew2/sparcs.html
Вот обзор из блога CS и ссылка на другой код:
https://sites.google.com/site/igorcarron2/matrixfactorizations
http://nuit-blanche.blogspot.com/search/label/MF
Обзор некоторых других методов: http://www.vis.uni-stuttgart.de/uploads/tx_vispublications/Brutzer2011-2.pdf
источник
Помните: есть тени (не только яркость).
Мне не очень нравится идея Джеймса Вебстера, поскольку она в основном заключается в уменьшении разрешения в каждом измерении и сравнении уменьшенных изображений (также мне не нравятся пороги - они произвольные, их нужно тестировать и настраивать) пока вы не получите хорошее значение, и на следующий день эти значения могут быть устаревшими из-за другой погоды или некоторых других воздействий окружающей среды)
Но, если честно, у меня тоже нет действительно хорошего решения. Моя первая идея состояла в том, чтобы преобразовать каждое изображение в эталонное изображение пустой комнаты и запустить обнаружение краев на различном изображении. Но это также обнаружит тени. Но я думаю, вы не можете различать тени и другие объекты ... по крайней мере, я не знаю как. Но, возможно, вы можете сравнить результат после обнаружения края между 2 кадрами, поскольку тени в основном движутся медленно (все еще будут проблемы, когда машины проезжают или когда движется облако)
источник
Техника «матричной факторизации» НЕ поможет вам сделать свою работу! Работа, на которую ссылается @ mirror2image, посвящена вычитанию фона, но НЕ основана на «матричной факторизации».
Использование бегового видео для обнаружения движущихся объектов (будь то люди или транспортные средства) является активной областью исследований.
В качестве основного принципа система оценивает типичный статический фон путем выборки по нескольким изображениям и учитывает разницу энергии между входящим изображением и фоном. Если энергия значительна, пиксель классифицируется как передний план. Такой набор переднего плана говорит вам, есть ли запись объекта в системе.
Лучшая ссылка на вашу исследовательскую работу (а также относительно более простую, если вы действительно хотите ее реализовать) будет такова: система W4 найдет ее здесь и увидит статью Пикарди здесь как более подробный обзор других методов в системе.
Есть много проблем, которые относятся к этой проблеме:
Наличие шума создает проблемы большой неопределенности. Подход здесь состоит в том, чтобы применить эффективную временную фильтрацию и учесть дисперсию шума, чтобы сделать его невосприимчивым к порогу.
Присутствие тени не создает двусмысленности ни того, чтобы быть на переднем плане, ни. Есть статьи, которые моделируют различие цвета и интенсивности, чтобы различить тень и реальный передний план.
Фон может быть сложным, как машут деревья или море и т. Д.
Фон может иметь медленное или внезапное изменение освещения, когда ранее «выученный» фон затем адаптируется к новому.
Один из наиболее часто упоминаемых ориентировочных работ называется « Стенной цветок». Алгоритм показывает наилучший способ объединения различных таких сценариев для обеспечения надежного обнаружения движущихся объектов.
источник
Я не знаю точного решения, но вы должны сделать какой-то хэш изображения; меньший набор данных, извлеченный из изображения, который сопоставим лучше, чем все изображение.
Я думаю, цветная гистограмма - хороший выбор для этого.
Если вы разделите свое изображение на области и создадите отдельные гистограммы для этих областей, вы сможете определить положение / путь нарушителя.
источник
Взятие разницы в два раза, т. Е. Разности различий, может помочь ... поэтому, если в некоторых регионах двойная производная пикселей превышает пороговое значение, то вы можете назвать это как кто-то вошел в комнату. Изменение яркости даст приблизительно постоянный градиент по всему изображению, но использование гессианской или двойной производной даст хороший признак движения или серьезных изменений в комнате.
источник