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

Детекторы объектов окружающей среды

Recommended Posts

Здравствуйте. Мне надо определять наличие воды, неба и травы на изображении. Как это можно реализовать? Мб есть готовые каскады?

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


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

http://www.farabet.net/research.html#parsing

google->semantic segmentation

p.s. зачем всё спрашивать в теме про детектор голов?

Я подумал, что "и т.д. и т.п." включает все сразу (:

А никаких похожих проектов на opencv c открытым исходным кодом нет?

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


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

врядли, ну вот еще что то

http://computerblindness.blogspot.com/2010/06/object-detection-vs-semantic.html

автор вроде русский можете ему написать.

тему надо перенести.

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


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

Слишком мало информации по семантической сегментации в интернете. А текстурная в данном случае не подойдет?

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


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

Есть еще такой ресурс, близкий по теме: http://www.cs.cornell.edu/~asaxena/reconstruction3d/

Здесь для построения трехмерной сцены используется распознавание, травы, неба, и т.д.

Есть датасеты по которым строились классификаторы.

  • Like 1

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


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

Ну, по сегментации городских сцен на дорогу, здания, небо можно поискать МГУшные статьи (Александр Вежневец, вроде писал). Там AdaBoost использовали, результаты, судя по его докладу на конференции, были очень даже неплохими. Так что: можно с ними связаться либо натренировать свои каскады.

  • Like 1

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


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

Слишком мало информации по семантической сегментации в интернете. А текстурная в данном случае не подойдет?

думаю подойдет, но размечивать области и обучать все равно надо.

проблема так же может быть в том, что трава может иметь не 1 вид текстуры.

а так то вообще можно даже по цвету, только небо от воды думаю будет сложно отличить и т.д.

алгоритм в общем виде выглядит как размечаем области, выделяем из них какие либо признаки, тренируем классификатор.

  • Like 1

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


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

думаю подойдет, но размечивать области и обучать все равно надо.

проблема так же может быть в том, что трава может иметь не 1 вид текстуры.

а так то вообще можно даже по цвету, только небо от воды думаю будет сложно отличить и т.д.

алгоритм в общем виде выглядит как размечаем области, выделяем из них какие либо признаки, тренируем классификатор.

В общем случае воду можно отличить от неба тем, что обычно небо на фото сверху

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


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

думаю подойдет, но размечивать области и обучать все равно надо.

проблема так же может быть в том, что трава может иметь не 1 вид текстуры.

а так то вообще можно даже по цвету, только небо от воды думаю будет сложно отличить и т.д.

алгоритм в общем виде выглядит как размечаем области, выделяем из них какие либо признаки, тренируем классификатор.

опять же, если искать по цвету, то нужны RGB-интервалы для неба, травы и воды.

А они не определены однозначно. Или есть другие модели распознавания по цвету?

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


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

ну вы выделяете область-например небо на обучающей картинке, считаете гистограмму rgb записываете в коллекцию "небо", получаете N гистограмм для каждого класса(трава,небо, т.д.).

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

только не знаю насколько это будет быстро, если сравнивать тупо то получится N(гистограмм)*K(классов) сравнений. можно взять вместо гистограмм среднее значении rgb будет еще проще.

  • Like 1

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


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

можно взять вместо гистограмм среднее значении rgb будет еще проще.

строить гистограмму яркости?

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


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

строить гистограмму яркости?

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

кстати по сегментации можете обратить внимание на суперпиксели тут недавно было на форуме.

  • Like 1

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


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

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

кстати по сегментации можете обратить внимание на суперпиксели тут недавно было на форуме.

Сейчас попробую сделать следующее: для обучения программы для неба считывать гистограмму яркости и средние значения rgb для верхних 20% изображения, для воды - 30% по середине, а для травы 30% снизу.

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


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

думаю будут проблемы, если цвета смещены(не помню как это точно называется)

пример

SDK.png?attachauth=ANoY7cpxp1sG9L-duXmfl

  • Like 1

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


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

легче вырезать кусок из неба, травы, воды.

При выборке из 3000 изображений (2000 с небом и 1000 без) это будет довольно проблематично.

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


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

так впринципе и не надо 3к гистограмм, а всего несколько примеров гистограмм для каждого класса.

ну или как вы предложили делать.

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

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

и да можно использовать не rgb, а hsv например.

  • Like 1

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


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

Думаю что это может быт полезно посмотреть:

http://vh.icg.tugraz.at/index.php?content=topics/unsupervisedseg.php

На сайте есть исходники на матлабе (не такие-уж и большие), плюс автор по просьбе может выслать сишный вариант.

  • Like 2

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


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

А я тут подумал. Раз уж я отсортировал 3000 картинок, не легче ли каскады Хаара замутить?

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


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

не очень понятно что вы хотите замутить,т.к. хаар вроде бы объекты ищет.

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


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

Мне думается каскады Хаара не будут здесь хорошо работать.

Они работают с серыми тонами, а Вы сами по серой фотке всегда легко определите где небо а где земля :)

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

А у неба или земли среднее изображение одинаковые (серый фон).

Так что можете попробовать, конечно, но думаю достаточной точности не добьетесь. Лучше уж текстурная сегментация (фильтрами Габора например).

Я пробовал, траву в лесу сегментирует вполне сносно.

Правая кнопка - помечаем кусочек одного класса, левая кнопка - помечаем кусочек другого класса, r - обучаем и сегментируем.

Можно отделить обучение и сегментацию. Обучиьт SVM, сохранить её в файл, а затем когда надо сегментировать считать её и применить к картинке.

GaborSegmentation.zip

  • Like 2

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


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

http://www.duskyrobin.com/tpu/2005-01-00013.pdf

вот еще статья про габора.

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

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


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

Тут вроде такие соображения (в моем понимании):

1) Масштабы удваивать ,засекаем гармоники (вейвлеты и Фурье из той-же оперы). Тут все вполне конечно, т.к. минимум 2 пикселя, а максимум размер картинки.

2) Ориентации, тут у всех по-разному, но у большинства не более 8 разных углов.

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


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

посмотрел код ,там еще 4 параметра у самого фильтра габора, почему и по ним не пройтись циклом?

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×