mixa7638 5 Жалоба Опубликовано July 22, 2013 день добрый. стоит задача сегментации изображений в оттенках серого и интересует мнение общественности. пусть имеется картинка, полученая методом аккумуляторной линии с оптического потока (18.png), маска движений (20.png), ну и бесхитросно полученый передний план (22.png). хотелось бы узнать количество людей, за данный проход ( реально там 10 человек прошло ) и услышать конструктивные предложения по методам их подсчета. может как то можно на этой картинке обучить неиронку, но не понятно какие данные ей подавать. формируется данная картинка следующим способом: поток людей проходит под зенитной камерой, расчитывается оптический поток на линии (counting line) и данная линия высотой в пиксель и шириной с линию подсчета закидывается в аккумулятор. маска формируется на основе движения (оптического потока) на линии. пока анализирую распределение оптического потока и получаю картинку примерно такую, как на последней картинке. получается что несколько человек слепляются в один кластер. можно анализировать, конечно, границы, но это, мне кажется, трудоёмко. собственно, если есть какие нибудь идею буду рад услышать.. С одиночными, двойными, тройными проходами проблем в принципе нет... самая большая проблема, что второй и третий человек, идущие параллельно похожи на четвертого широкого человека и трудно их различить. где один широкий человек, а где два параллельно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 22, 2013 Если вертикальная сегментация особых проблем не вызывает, то определить один большой человек прошел или два маленьких, можно построив гистограмму яркости горизонтального фрагмента, если в этом фрагменте пара людей, то в гистограмме будет провал в районе середины. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 22, 2013 как то осталось непонятно как это всё работает. насчёт разделения людей обсуждали вопрос в теме про трекинг http://www.compvision.ru/forum/index.php?showtopic=63&view=findpost&p=9523 + еще там multi object tracking + occlusion Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mixa7638 5 Жалоба Опубликовано July 23, 2013 а, случайно, никто с HOG ом не работал? возможно ли обучить классификатор, что бы скользящим окном проходить сверху вниз и смотреть ответ? у меня же получается HOG дескриптор, на котором можно попробовать обучить нейронную сеть. так не? и еще вопрос есть. для такой картинки гистограмма яркости будет однородной и без провалов как горизонтальная, так и вертикальная. есть ли способ по гистограме понять что здесь два обьекта? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано July 23, 2013 Вот тут программа для обучения HOG: http://www.compvision.ru/forum/index.php?showtopic=1222 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mixa7638 5 Жалоба Опубликовано July 26, 2013 Вот тут программа для обучения HOG: http://www.compvision.ru/forum/index.php?showtopic=1222 идея хороша, но не прокатило. не запускается на 64 битной семерке. может попозже запущу... кстати вопрос не в тему, но в openCV есть такая функция, которая могла бы сегментировать такие изображения? что бы получить непересекающиеся многоугольники, что бы потом по ним маски сделать. а то вручную много писать.... если что, для каждой линии знаю её координаты. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 26, 2013 идея хороша, но не прокатило. не запускается на 64 битной семерке. может попозже запущу... ага по идее легче всего взять линии и их пересечения с другими линиями и с краями изображения(тоже линиями), получатся отдельные многоугольники и их записать как контуры, а потом контуры залить разным цветом. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mixa7638 5 Жалоба Опубликовано July 26, 2013 ага по идее легче всего взять линии и их пересечения с другими линиями и с краями изображения(тоже линиями), получатся отдельные многоугольники и их записать как контуры, а потом контуры залить разным цветом. там вся проблема в том, что бы каждый многоугольник был минимальными... я пока пробегаю каждый пиксель изображения, и если он черного цвета, то делаю копию изображения, потом в этой точке делаю floodFill. из получившегося изображения вычитаю сделаную копию и получаю маску. звучит как костыль, но вроде быстро... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 26, 2013 ну так я говорил не через маску, а через контур. или это как то связано с тем как вы получаете сами линии? по пикселям можно по идее спускать вниз от линии столбцы пикселей пока не встретишь новую линию или стенку и записывать их координаты. про минимальность не понял, по идее вы получите многоугольник или маску области, а потом уже сможете получить реальную занимаемую подобласть области в пикселях маской или же описать вокруг пикселей convex hull. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах