Мне хотелось бы узнать на сколько реально сделать вот такую вещь с помощью OpenCV
При разрешение например 1024х768 и 25-30 fps. Это возможно сделать без тормозов и лагов с помощью OpenCV. И как с технологической точки зрения вы оцените такой проект по трудозатратам? И приблизительное время разработки, если есть знания C#, C++...
C уважением, Андрей
Начну по порядку:
Извлечение из картинки местоположения людей
На видео люди (тёмные силуэты) бегают на фоне однородно окрашенного светлого поля. Это сразу наталкивает на мысль, что достаточно запомнить изображение фона (без людей), а затем вычесть его из изображения, в котором люди присутствуют, что бы получить их силуэты (пятна). Этот способ хорош тем, что он позволяет найти фигуру человека, даже если он замер и не двигается. Но у этого метода есть серьёзный недостаток - фон обязательно должен быть однородным и люди тоже должны быть одеты во что-то однородно окрашенное. Если фоновое изображения будет содержать какие либо текстуры, и/или люди будут одеты во что-то пёстрое то этот метод работать не будет (а ещё освещение может меняться в течения дня и то же ухудшить условия).
Нашел следующее видео автора ролика, и я, похоже, был прав. Это алгоритм из семейства “Foreground extraction”:
Прослеживание
Проследить траекторию движения силуэта человека не сложно до тех пор, пока один человек не зайдёт за другого человека (частичное или полное перекрытие силуэтов). И вот когда их силуэты разойдутся, то, как определить кот из них кто? Похоже в данном случае, только с помощью моделирования траектории движения силуэтов. Если известна траектория движения каждого силуэта до момента "перекрытия", то можно просчитать "мнимую" траекторию движения после перекрытия и постараться сличить траектории силуэтов с "мнимыми" траекториями, когда они разойдутся. Соответственно если два товарища после дружеских "обнимашек" вдруг решат разойтись в разные стороны (а не продолжить движения каждый в свою сторону), то такой метод просто перепутает их друг с другом.
В общем, как и у любого другого метода, у метода продемонстрированного в ролике имеются ограничения, и это не всегда будет работать так замечательно, как продемонстрировано на видео.
>> И как с технологической точки зрения вы оцените такой проект по трудозатратам?
Сложно сказать, зависит от условий, в которых должен работать алгоритм (исходная картинка с людьми - контраст, текстуры, освещение, угол съёмки).
>> И приблизительное время разработки, если есть знания C#, C++...
Нужно иметь достаточно солидный опыт работы с алгоритмами видеообработки, что бы решить эту задачу (а не только знания C#, C++).
Цитата:
А возможно например сделать так:
Каждые 30 минут запрашивать новый фон, если в течение 2-5 секунд не меняется фон значит это новая картинка для сравнения и если объект остается в объективе камеры больше 3 минут в одном положение, то считать его фоном и сделать новый фон.
Ещё раз напомню, что всё зависит от начальных условий работы алгоритма.
Вас то, наверное, интересует автоматическая система видеонаблюдения с прослеживанием людей гуляющих по улице. А тогда как можно в таких условиях получить изображение фона? Попросить всех разойтись ненадолго?
Да и вообще, с фоном не всё так просто. Даже если в кадре ничего не происходит, то изображение все равно от кадра к кадру изменяется (шум камеры, изменение освещённости).
Цитата:
Получается человека например в зеленой одежде в лесу будет невозможно распознать?
А вам при таких условиях, чисто зрительно, легко ли будет найти человека?
Соответственно для компьютера это практически невозможно, ну если конечно компьютер не через тепловизионную камеру изображение просматривает (другие условия).
========================================================================================================== Ну а теперь небольшое лирическое отступление Посмотрел тут ещё видео о прослеживании людей, понравилось вот это, с “термоядерным синтезом” на спине
Похоже, у товарища в трусах источник быстрых нейтронов, совсем о здоровье не заботится
Я же тут предыдущему товарищу пытался объяснить, что всё зависит от исходных условий использования алгоритма (исходная картинка с людьми - контраст, текстуры, освещение, угол съёмки).
Допустим, программа найдёт в текущем кадре десять двигающихся объектов и передаст их координаты твоему фотику, и что ты делать будешь? Наверное, будешь «мгновенно» перемещать фотоаппаратом и фотографировать их всех по очереди? Если тебе сервер видеонаблюдения нужен, так он уже есть готовый, вот один из вариантов: «DVR Server plugin for RoboRealm».
Детекторы, которые в ролике выше продемонстрированы, я как раз для новой версии готовил, вот новый вариант документации.
Заголовок сообщения: Re: Прослеживание людей в кадре – вопросы и ответы
Добавлено: 27 авг 2011, 16:38
отсылающий читать курс
Зарегистрирован: 06 ноя 2005, 04:18 Сообщения: 14195 Откуда: Москва
EDV писал(а):
Допустим, программа найдёт в текущем кадре десять двигающихся объектов и передаст их координаты твоему фотику, и что ты делать будешь? Наверное, будешь «мгновенно» перемещать фотоаппаратом и фотографировать их всех по очереди?
Да по очереди в случайном порядке, а если будут выводится и площади (или "вес" ) рамок то ранжирую очередь по размерам.
Вы можете мне посоветовать ПО с детектором движения или людей или лиц и выводом координат в COM ?
ПО которое раздается на известном сайте с турелью стрелялкой я запустить не смог ни на ПК ни на ноуте. У меня оно просто не запускается. Не просит каких либо библ или установок.
Заголовок сообщения: Re: Прослеживание людей в кадре – вопросы и ответы
Добавлено: 27 авг 2011, 20:30
отсылающий читать курс
Зарегистрирован: 06 ноя 2005, 04:18 Сообщения: 14195 Откуда: Москва
Огромное спасибо. Попробую разобраться.
А есть что-то без необходимости тренировки? Как я людей заставлю тренироваться? Они же мимо идут. Достаточно детектор движущихся объектов, не обязательно лица.
Слушай, ну тебе же важно отработать сам принцип – наведение турели, захват цели, снимок. А для этого можно поэкспериментировать в начале с захватом изображения лица или другого заранее известного объекта.
Тут у меня уже товарищ Ben интересовался схожей задачей:
Цитата:
Is it possible to have the missile launcher track an object, and when centered on the object fire a shot?
Если с английским языком туго, то можешь у меня в этой теме спрашивать, я разъясню. Если с деньгами сложность за лицензионную копию RoboRealm, то пиши в личку, и участвуй в программе бета-тестинга модуля «AVM Navigator», к примеру как Scorpio с проектом Vanessa.
Заголовок сообщения: Re: Прослеживание людей в кадре – вопросы и ответы
Добавлено: 28 авг 2011, 00:16
отсылающий читать курс
Зарегистрирован: 06 ноя 2005, 04:18 Сообщения: 14195 Откуда: Москва
Я в этом деле нуб, пытаюсь разобраться. Англ. отлично.
Если у вас будет вариант с выводом координат центров рамок распознавания БЕЗ ТРЕНИРОВКИ в COM то поделитесь пожалуйста тут или опубликуйте у себя на страничке. ИМХО это популярная и востребованная тема. Желательно чтобы был архив всего для инсталляции.
Добавка: а вот это видео с лицом - это прямо готовое ПО для самонаведения ракеты оператор наводчик обучает на мишень и запускает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения