Перейти к содержимому
Compvision.ru
mixa7638

сегментация grayScale изображения

Recommended Posts

день добрый. стоит задача сегментации изображений в оттенках серого и интересует мнение общественности. пусть имеется картинка, полученая методом аккумуляторной линии с оптического потока (18.png), маска движений (20.png), ну и бесхитросно полученый передний план (22.png). хотелось бы узнать количество людей, за данный проход ( реально там 10 человек прошло ) и услышать конструктивные предложения по методам их подсчета. может как то можно на этой картинке обучить неиронку, но не понятно какие данные ей подавать.

формируется данная картинка следующим способом: поток людей проходит под зенитной камерой, расчитывается оптический поток на линии (counting line) и данная линия высотой в пиксель и шириной с линию подсчета закидывается в аккумулятор. маска формируется на основе движения (оптического потока) на линии. пока анализирую распределение оптического потока и получаю картинку примерно такую, как на последней картинке. получается что несколько человек слепляются в один кластер. можно анализировать, конечно, границы, но это, мне кажется, трудоёмко. собственно, если есть какие нибудь идею буду рад услышать..

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

post-5512-0-91981300-1374483234_thumb.pn

post-5512-0-79086000-1374483243_thumb.pn

post-5512-0-25474600-1374483255_thumb.pn

post-5512-0-85748300-1374484504_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

как то осталось непонятно как это всё работает.

насчёт разделения людей обсуждали вопрос в теме про трекинг

http://www.compvision.ru/forum/index.php?showtopic=63&view=findpost&p=9523

+ еще там multi object tracking

+ occlusion

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а, случайно, никто с HOG ом не работал? возможно ли обучить классификатор, что бы скользящим окном проходить сверху вниз и смотреть ответ? у меня же получается HOG дескриптор, на котором можно попробовать обучить нейронную сеть. так не?

и еще вопрос есть. для такой картинки гистограмма яркости будет однородной и без провалов как горизонтальная, так и вертикальная. есть ли способ по гистограме понять что здесь два обьекта?

post-5512-0-50783100-1374565226_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот тут программа для обучения HOG: http://www.compvision.ru/forum/index.php?showtopic=1222

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот тут программа для обучения HOG: http://www.compvision.ru/forum/index.php?showtopic=1222

идея хороша, но не прокатило. не запускается на 64 битной семерке. может попозже запущу...

кстати вопрос не в тему, но в openCV есть такая функция, которая могла бы сегментировать такие изображения? что бы получить непересекающиеся многоугольники, что бы потом по ним маски сделать. а то вручную много писать....

если что, для каждой линии знаю её координаты.

post-5512-0-87847800-1374826542_thumb.pn

post-5512-0-77707000-1374826551_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
идея хороша, но не прокатило. не запускается на 64 битной семерке. может попозже запущу...

ага

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ага

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну так я говорил не через маску, а через контур.

или это как то связано с тем как вы получаете сами линии?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×