Неуправляемая сегментация изображения

10

Я пытаюсь реализовать алгоритм, где дано изображение с несколькими объектами на плоской таблице, желательным является вывод масок сегментации для каждого объекта. В отличие от CNN, целью здесь является обнаружение объектов в незнакомой среде. Каковы лучшие подходы к этой проблеме? Кроме того, есть ли примеры реализации, доступные онлайн?

Изменить: Извините, вопрос, возможно, был немного вводит в заблуждение. Под «незнакомой средой» я подразумевал, что объекты могут быть неизвестны алгоритму. Алгоритм не должен понимать, что это за объект, а должен только обнаруживать объект. Как мне подойти к этой проблеме?

MuhsinFatih
источник
«в отличие от CNN» не имеет смысла; CNN - это тип модели, а не тип задачи с целью. Сегментация изображений без присмотра может быть выполнена с использованием CNN
Nathan

Ответы:

4

Быстрый ответ

Mean Shift LSH, который является обновлением в известного алгоритма Mean Shift в хорошо известен своей способностью к сегментации изображенияO(n)O(n2)

Некоторые объяснения

Если вы хотите действительно неконтролируемый подход к сегментации изображений, используйте алгоритмы кластеризации . Дело в том, что существует множество алгоритмов с разной временной сложностью и специфичностью . Возьмите самый известный, -Means, он в очень быстрый, но вы должны указать, сколько кластеров вы хотите, а это не то, что вы намереваетесь, исследуя неизвестное изображение без какой-либо информации о количестве фигур. подарки в нем. Более того, даже если вы предполагаете, что знаете, сколько фигур присутствует, мы можем предположить, что фигуры являются случайными, что является еще одной точкой, в которой средние терпят неудачу, потому что это дизайн, чтобы найти эллиптические кластеры, а НЕO ( n ) KKO(n)K случайные формы.

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

Конечно , вы заменить параметр -средних на другие средние параметры сдвига , который может быть сложно точно выверенных , но не существует инструмент , который позволит вам сделать магию , если вы не занимаетесь , чтобы сделать магию.КKK

Советы по кластеризации сегментации изображений

Преобразуйте свое цветовое пространство из RGB в LUV, что лучше для евклидова расстояния.

K -средство против средней сложности сдвига LSH по времени

  • Среднее смещение:O(α.n)
  • K-средства:O(β.n)
  • α>β

Mean Shift LSH медленнее, но лучше соответствует вашим потребностям. Он остается линейным и также масштабируется с помощью упомянутой реализации.

PS: Моя аватарка представляет собой приложение Mean Shift LSH, если оно поможет понять, как оно работает.

KyBe
источник
3

Возможно, вам понадобится взглянуть на эту работу, представленную и принятую для CVPR 2018: Обучение сегментировать каждую вещь

В этой работе они пытаются сегментировать все, даже объекты, неизвестные сети. Используется маска R-CNN в сочетании с подсетью обучения передаче, они дают очень хорошие результаты при сегментировании практически всего.

Ленуар
источник
2

Современное состояние (SOTA) для сегментации изображений - это маска Facebook RCNN .

Хотя он обычно обучается на наборе данных, таком как COCO или Pascal, который содержит реальные объекты, вы можете перенастроить его на выбранный вами набор данных, реальный или нет.

Facebook предоставляет реализацию ( Detectron ) под лицензией Apache2. Попробуйте!

Артур Дуийяр
источник
На самом деле я думаю, что задал вопрос в заблуждение, мой плохой. Я только что опубликовал изменения, вы можете посмотреть их снова?
MuhsinFatih
2

На самом деле, ваша задача контролируется. Segnetможет быть хорошей архитектурой для вашей цели, к какой из ее реализаций можно обратиться здесь . SegNet учится предсказывать метки классов по пикселям на основе контролируемого обучения. Поэтому нам требуется набор данных входных изображений с соответствующими метками истинности земли. Отмечайте изображения должны быть один канал, с каждым пикселем меченого со своим классом ... .

Кроме того, взгляните на полностью сверточные сети, которые хорошо подходят для вашей задачи.


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

СМИ
источник
На самом деле я думаю, что задал вопрос в заблуждение, мой плохой. Я только что опубликовал изменения, вы можете посмотреть их снова?
MuhsinFatih
@MuhsinFatih отредактировано.
СМИ
Конечно, было бы проще и добиться лучшей производительности, если бы это было контролируемой задачей, но возможна и сегментация изображения без контроля.
Натан
@ Натан, я предложил свое мнение в то время. Определенно, это возможно.
Медиа
1

Это может быть то, что вы ищете. Поскольку вы просите сегментацию изображения, а не semantic / instanceсегментацию, я предполагаю, что вам не требуется маркировка для каждого сегмента изображения.

Вызывается метод, scene-cutкоторый сегментирует изображение в независимые от класса области без присмотра. Это работает очень хорошо в случае загроможденной внутренней среды.

Ссылка на документ: arxiv

Код: код

кв манохар
источник