Распознование объектов (подсчет кол-ва, отделение объектов)

Тема в разделе "WASM.BEGINNERS", создана пользователем zdacom, 30 апр 2011.

  1. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Вообщем назрел такой вопрос: есть определенное изображение и на нем изображены некие объекты на фоне (фон слегка неоднороден), необходимо удалить фон, вырезать объекты (т.е. как бы сделать рамку для вырезки этих объектов из основной картинки или вырезать в прямом смысле, для последующей обработки).

    Кто-нибудь подкинет идеи?
     
  2. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    Алгоритмы начиная от простейшего геометрического сопоставления, заканчивая алго виолойджонса и нейронными сетями. Как вариант OpenCV, но придётся сделать обучающую выборку... тема стара как мир .. ) . Опиши хоть изображения, форму и пр.
     
  3. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Фотография на сером фоне. Изображены бусинки, бисер.

    Геометрическое сопоставление не подходит. Нейронные сети было бы неплохо. Собрался писать с нуля. Вообще речь идет не о совсем распозновании, а просто об отделении объектов из фона. Я так полагаю по тонам. Т.е. из более менее однородного фона выбрать все изображения для дальнейшего их распознования. (т.е. определять по тонам я так понимаю, или я не прав?)

    Видимо нужно найти границы объекта по перепадам. Т.е. удалить фон и помотреть где на такой фон.

    Если тема стара как мир. Может уже есть что-то с срц и небольшое?
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    zdacom
    Пока я добрый. Выкладывай картинку алгоритм опишу словесно.
     
  5. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
  6. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    zdacom
    Фон не монотонный, а местами не однородный. Так как есть бусинки прозрачные, то их тона очень близки с фоном.
    Думаю надо двигаться в сторону автоматической сегментации.
     
  7. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Что тут думать, всё что граничит с фоном не является фоном, а значит обьект. Поверхность описать попиксельно, задав условие отличия цвета поверхности от фона. Элементарно же.
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ручками да - можно. Точнее ГЛАЗКАМИ. А вот на автомате твоя метода не элементарна.
     
  9. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Посмотри в сторону проективного преобразования.
    Вот типа такого ...
     
  10. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    [​IMG]
    Вот для примера скрин.
    1 - это некоторая небольшая, по сравнению с обьектами область фона, близкая к круглой форме.
    Условие отличия фона от обьекта может быть сумма яркости всех пиксель области 1. Тогда например область два будет иметь большую яркость. Таким образом можно убрать основной не равномерный фон.
    3 - показано выделение границы обьекта с фоном. Если расстояние между максимумами выпуклостей меньше какойто опред виличины, например половине описывающей окружности, то можно обьединить вершины выпуклости. Таким образом будет выделен обьект целиком. Также при описании поверхности будут резкие изменения цвета, это позволяет выделить обьекты из их группы(там в верху скрина).
     
  11. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    недавно делал так (требовалась скорость) - переводил картинку в цвет-насыщенность-яркость и дальше по каждой оси проверял значение и особенно производную на максимумы. те, если больше определенного значения - граница объекта. в более сложном случае стоит пропустить через фнч чтобы выделить области ожидаемого и больше размеров.

    ЗЫ както зачастили в последнее время вопросы по распознаванию. 3 или 4 ветки одновременно. к чему бы это?
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
    zdacom
    Считаем, что в верхнем левом углу картинки бусинок и бисера нет, то есть что это фон, так как он неоднороден, то допустим, что фон соответствует квадрату 16х16 пикселей. Берем цвет каждой точки этого квадрата 16х16 и вычитаем этот цвет попиксельно из картинки, таким образом избавляемся от части фона. Если в результате вычитания результат ненулевой, то восстанавливаем цвет и переходим к следующей точке фона, предварительно можно сравнить точки в области фона на совпадение цветов и этим хотя бы немного облегчить себе работу.
     
  13. vover

    vover Владимир

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    202
    У меня получилось так: Фильтр Гауса на 4 пикселя, подбирается по (минимальный размер элемента фора)+1, и простейший алгоритм выделения границ - наложение яркости, 8 картинок со сдвигом по 8 сторонам на 1-3 пикселя.
    http://img808.imageshack.us/i/35794637.jpg/
    Получили ботовую маску мест для потенциального геометрического распознания.
    Есть ли возможность снять изображение без бликов и под лампами разного цвета ?
     
  14. zdacom

    zdacom New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2008
    Сообщения:
    18
    Вообщем решил применить автосегментирование, кластеризация методом k-средних. Пока что в матлабе чтобы проэмулировать все. Работает отлично! Изображения будут без бликов, надеюсь. Будет расстояние между бусинками, поэтому маску наложу объекты можно будет легко отделить и дальше распознать.