Я ищу немного советов … У меня есть одно изображение паспортного фото. То, что я хотел бы сделать, это отделить человека от фона. Затем я проанализирую цвет фона, рисунок и т. Д.
Я провел некоторые исследования в сегментации, и большая часть того, что я нахожу, использует несколько кадров. К сожалению, у меня только один кадр, и я не могу позволить себе снимать фон без человека.
Я также посмотрел на GrabCut, но я не хочу, чтобы пользователь вручную выбирал фоновые / передние части изображения. Возможно, есть автоматическая версия этого?
Я думал об использовании обнаружения контура / края (canny?)? …
Заранее спасибо!
Изменить: Образец набора изображений можно найти здесь: http://imgur.com/a/PKTDc#0
Поэтому я последовал совету Фройо и до сих пор получил следующий результат: http://imgur.com/Mvwwu9f.png
Некоторые края обрезаются из-за прямоугольника обнаружения лица, поэтому мне нужно увеличить размер прямоугольника при обнаружении лица.
Вы можете использовать GrabCut, и вам не понадобится вводить вручную. Вы должны определить лицо с помощью каскадов Хаара и передать ограничивающую рамку в GrabCut. Я думаю, что это будет работать.
У меня есть некоторый опыт в сегментации переднего и заднего плана, но у меня также была карта диспаратности, так что это было немного проще. Я использовал суперпиксели и кластеризовал их, чтобы выделить отдельный передний план и фон.
SLIC и SLICO — это современные алгоритмы сегментации суперпикселей. Вот некоторые из работ, выполненных в этой области.
https://cvhci.anthropomatik.kit.edu/~baeuml/downloads/Schick2012.pdf
http://www.cs.huji.ac.il/~daphna/papers/Rosenfeld_ICCV2011.pdf
Вы также можете попробовать карты значимости. Они используются для извлечения заметных объектов из изображения и, в вашем случае, переднего плана, который вы ищете.