Сейчас GrabCut и используется в качестве основного алгоритма сегментации после сетки. Но даже grabcut не спасает от "артефактов" ресайза. Дополнительно использую детектор кожи. Так же использую порог, который срабатывает в окрестности 5 пикселей от границы изображения; и если повезет с полностью светлым фоном, будет захвачена граница изображения, которую сеть из-за ресайза не захватила.
Разброс снимков большой. Могут быть изображения с высоким контрастом на белом фоне, так и зашумленные лишними предметами. Соответственно на каждый метод найдутся свои плюсы и недостатки.
Детектор кожи к примеру любит активироваться на напольное покрытие или бежевые стены, что не очень радует.
При использовании порога - отличный результат будет получен на фото 00094, но на 00338 получим кашу в нижней части изображения, да и тень еще скорее всего захватим; в итоге получиться "переуточнение" границ, что тоже не хорошо.
Matting Посмотрю, интересно.
Результат сегментации моей программой без применения OpenCV, нейронных сетей и различных библиотек в векторном формате *.svg. Время обработки менее 1 сек на на AMD 1800+. Результат без подбора коэффициентов получили результаты 2 фотографий. Сегменты можно просмотреть с помощью CoralDraw предварительно разгруппировав объект. Результаты:
P.S. Результат такой не красивый, т.к. введены ограничения на площадь сегмента и мелкие сегменты просто отбрасываются, чтобы не получился слишком большой svg файл.
Алгоритм сегментации по принципу скользящего окна и вычисление контраста
в OpenCV
Опубликовано · Изменено пользователем 2expres
добавил постскриптум · Report reply
Результат сегментации моей программой без применения OpenCV, нейронных сетей и различных библиотек в векторном формате *.svg. Время обработки менее 1 сек на на AMD 1800+. Результат без подбора коэффициентов получили результаты 2 фотографий. Сегменты можно просмотреть с помощью CoralDraw предварительно разгруппировав объект. Результаты:
00094.svg
00338.svg
P.S. Результат такой не красивый, т.к. введены ограничения на площадь сегмента и мелкие сегменты просто отбрасываются, чтобы не получился слишком большой svg файл.