Nuzhny 243 Жалоба Опубликовано December 21, 2010 Пробовал стандартные примеры из OpenCV? blobtracking, например. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 26, 2011 Задача: программе указывается любой объект в пространстве, после программа должна отслеживать его движение, объект может вращаться, при потери и возвращении объекта из видимости также находить объект. Предполагаю что нужно использовать стерео-зрение. Только начинаю разбираться в этой теме, и хотел бы услышать в каком направлении двигаться. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 26, 2011 Вот в этом (пост №98) : http://www.compvision.ru/forum/index.php?showtopic=15&st=80 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 26, 2011 Вот в этом (пост №98) : http://www.compvision.ru/forum/index.php?showtopic=15&st=80 Читаю, спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 Вот в этом (пост №98) : http://www.compvision.ru/forum/index.php?showtopic=15&st=80 Возможно использовать каскады Хаара для любого объекта? Я так и не нашел описание что вообще из себя представляю каскады( Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Pavia00 32 Жалоба Опубликовано December 27, 2011 Классическая схема распознавания. Берём изображение выделяем признаки. Затем берётся прямоугольник который накрывает некоторое под пространство. Сверяя значение координат признаков и их количество в этом подпространстве происходит классификация. Принадлежит ли этот набор признаков к заданному классу. То есть мы решаем является этот набор признаков нашим объектом. Идёт перебор координат прямоугольника. Так вот в каскаде используется не нейронная сеть, а двоичные деревья решений. Где каждый узел либо принимает объект к классу либо отвергает. Если отвергает, то остальные условия не проверяются. Переходим к следующий позиции. Это значительно ускоряет обработку по сравнению с НС. И качество распознавания не сильно страдает, можно сказать практически не страдает. Могу и ошибаться так как сам до конца не разбирался, но как-то так. Использовать можно для любого объекта. Вернее в большинстве случаев оно вам подойдёт. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 А о чем статья в Wiki compvision про обучение каскадов, алгоритм ясен, но в чем его использовать? И можно статью по использованию собственных каскадов для обнаружения объектов, а не лиц, или в opencv это одно и тоже? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 27, 2011 Здесь мои слайды к лекции: http://www.compvision.ru/forum/index.php?app=core&module=attach§ion=attach&attach_id=369 Здесь про Adaboost: http://www.compvision.ru/forum/index.php?showtopic=543 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 Примерный алгоритм таков: 1) сделать кадры с объектом слежения с разных ракурсов, 2) сделать на основе кадров файл каскада, 3) далее применять каскады cvHaarDetectObjects(); Возникает вопрос, так как объект в пространстве, его можно вращать. Но у книги с фронтальным представлением и изометрическим мало общих признаков, будет ли находить? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 27, 2011 Хаар не будет находить. Для этого дескрипторы используют см. opencv-шный пример find_obj.cpp, там как раз плоский объект ищут. Вот примерно оно: Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 Тут опять же только вид спереди, а если изометрический, то не найдет. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 27, 2011 Этот метод допускает повороты плоскости вокруг осей. Вопрос в устойчивости детектирования дескрипторов. А постановку задачи с картинками можно? Может Вас вполне ArToolkit устроит. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 Вот, например вот это. Объект и фон могут быть любыми.Archive.zip Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 27, 2011 Нужно знать что мы хотим детектировать. Чем больше мы знаем об объекте тем надежнее детектирование. Допустим, в кадре толпа людей, плюс к тому ездят машины и летает муха. Что здесь объект, а что фон? Вы сами справитесь (живыми мозгами) со своей постановкой задачи при таких условиях? А комп, он ведь тупой, что ему скажешь, то и делает Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
uchiro 0 Жалоба Опубликовано December 27, 2011 Нужно знать что мы хотим детектировать. Чем больше мы знаем об объекте тем надежнее детектирование. Допустим, человек идет в толпе плюс к тому ездят машины и летает муха. Что здесь объект, а что фон? Вы сами справитесь со своей постановкой задачи при таких условиях? Да, я не правильно разбил задачи на этапы. Все гораздо более конкретно. Есть машина, и БПЛА, нужно написать программную часть слежения за машиной. PS Все _Гораздо_ более конкретно чем я написал Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 27, 2011 Да, так понятнее Я, в таком случае, посмотрел бы вначале на: 1) CamShift - требуется собрать статистику цвета машины, можно выделить мышкой в кадре для инициализации. 2) оптический поток 3) фильтр кальмана или фильтр частиц (particle filter или ConDensation) Еще есть blobtrack_sample.cpp в примерах по opencv. Очень советую посмотреть, хотя бы для того, чтобы освоиться с этой областью. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Predatorxxx 5 Жалоба Опубликовано January 26, 2012 Уважаемые форумчане. Передо мной стоит следующая задача. - есть камера, пусть она стоит в комнате - то есть неподвижный фон - в комнате постоянно ходят люди, посередине фрейма существует невидимая граница - при переходе любого объекта сквозь эту границу слева - направо надо прибавлять +1 к одному счетчику и справа - налево +1 к другому счетчику. ну и просто вывести на экран сколько они насчитали. Для начала я открыл файл motempl.exe - и получил эти самые "факты движения" круги которые показывают типа "вот здесь" произошло движение и двигалось оно вон туда. Окей. Поставил счетчики и невидимую границу - и типа если круг находится слева от границы но расстояние между его центром меньше порога то значит он сейчас перейдет границу и плюсую к счетчику. 1. НО возникла проблема - что у одного человека программа показывает кучу движений - ноги отдельно, руки отдельно + рюкзак на спине отдельно. И счетчики которые я поставил показывали мне что мол через границу прошел не один человек а ТРИ ( его части типа). 2. и еще одна что счетчик каждый кадр плюсовал +1 к счетчику. а мне надо просто - прошел человек - плюсую единицу! В дополнение к этому в комнате ветер и иногда колышится растительность (дополнительные движения) - я так понимаю это убирается предварительной обработкой фона. Вот такая задача - почитал форум - и выявил что а)методы ЛК расчета оптического потока могут помочь мне, как это сделано например в проге lkdemo - типа выявляю движение шаблонами - и ставлю точку туда а потом рассчитываю Люкасом Канаде ... ? б) есть blobtrack.exe (который надо изучить, и он как то помогает ) - ну я вставил видео ниче не понял про что она? ... выявляет куда объект движется? в) движение разных частей ОДНОГО объекта можно объединить в одно движение ОДНОГО объекта контурным анализом... г) метод конденсации - тут уместен вообще? Помогите советом, с чего мне начать и куда двигатся... Вот из этих четырех пунктов мне что нибудь поможет? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 26, 2012 HOG забыли Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Predatorxxx 5 Жалоба Опубликовано January 26, 2012 1. HOG - дополнительная библиотека для OPENCV для детекта людей? 2. в итоге - с чего начинать с чего копать?))) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 26, 2012 1) HOG - это метод (Histogram of oriented gradients), может использоваться для детекта разных вещей. В opencv он натаскан на людей. 2) Начать лучше с книжки А.А. Лукьяница, А.Г. Шикин. "Цифровая обработка видеоизображений". В интернете есть. Там есть несколько глав, посвященных трекингу. Вот с трекингом сначала и нужно разобраться. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DoctorZelen 0 Жалоба Опубликовано January 27, 2012 кстати, работал я с HOG. Как оказалось вещь довольно глюкнутая, очень много помех и ложных срабатываний. В добавок пришлось пускать все вычисления через GPU. Может есть какие нибудь алгоритмы помимо HOG, реализованные в OpenCV ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
tipabot 0 Жалоба Опубликовано January 27, 2012 Для детекта движения почитай про codebook в opencv есть готовый пример. Это для статической камеры. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Predatorxxx 5 Жалоба Опубликовано February 6, 2012 Добрый день, уважаемые! Итак я прочитал книгу "А.А. Лукьяница, А.Г. Шишкин - Цифровая обработка видеоизображений" до 5-й главы. В решении моей задачи я выделяю (как в книге и было сказано) следующие три этапа - Выделение переднего плана - Сегментация движущихся объектов - Трекинг объектов Хочу сделать все по порядку, начну с выделения переднего плана. Как я прочитал есть 4 типа методов, я хочу реализовать метод временной разности , но как сказано в книге достаточно устойчиво получается выделять передний план , применив в дополнении к методу временной разности еще и вероятностный метод. Так вот вопрос - есть уже готовая реализация этих методов на OpenCV ? может шаблон ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано February 6, 2012 Да, есть: Adaptive background mixture. Там на каждый пиксель создаётся несколько Гауссианов (нормальных распределений) и определяется к какому из них принадлежит текущее значение пикселя. если ни к какому, то пиксель переднеплановый. Ну и довольно хитрая система обновления параметров распределений. Рвботает довольно хорошо, но не быстро. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Predatorxxx 5 Жалоба Опубликовано February 6, 2012 Погуглил - нашел статью на английском, там по всей видимости теория расказывается, а в openCV реализация встроенная я так понял, встроена Adaptive background mixture в структуру BackgroundSubtractorMOG, я все правильно понимаю? в сети открытого кода нет. Скачал opencv 2.3 (сам я пользовался 2.1 до сих пор) - в samples/c нет вроде программы. Nuzhny , где мне найти то Adaptive background mixture?)) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах