У меня есть набор данных с человеком, носящим HMD.Я хочу создать маску для HMD.Вот пример:
![enter image description here](https://i.stack.imgur.com/KhOrf.jpg)
Мне нужно создать маску для гарнитуры FOVE.Я пробовал модели семантической сегментации.Они способны создать силуэт человека в целом, но не HMD отдельно.Это имеет смысл, поскольку FOVE не является классом в их модели.Я не могу переучить модель на примерах FOVE, так как у меня нет данных маски для обучения.Поэтому я обратился к методам обработки изображений.Я попробовал подход кластеризации для сегментации и попробовал алгоритм MeanShift, алгоритм KMeans, пороговое значение изображений и алгоритм graphcut.
Вот проблемы, с которыми я столкнулся при каждом:
- Кластеризация среднего сдвига: Создает много классов (> 1000).Мне нужно иметь возможность извлекать класс FOVE без ручного вмешательства, так как мне нужно обрабатывать много данных (> 2000 изображений).Я сгладил свое входное изображение, которое уменьшило количество классов, но также создало отдельные классы в FOVE HMD, вызванные другим градиентом светимости.Кроме того, многие изображения имеют похожий фон, как в примере.Среднее смещение в этих случаях путается.
![MeanShift Output](https://i.stack.imgur.com/en0aC.jpg)
KMeans: Низкое качество продукции.Это запутано и неточно.Данный вывод для k = 10.
![KMeans Output](https://i.stack.imgur.com/Hfxi2.jpg)
Определение порога изображения: он может создать хороший контур Fove, но я не знаю, как извлечь координаты HMD, используя это.Выход с адаптивным пороговым значением.
![Adaptive Thresholding output](https://i.stack.imgur.com/aAWyu.png)
GrabCut: плохая производительность и требует ручного вмешательства.Редактировать: алгоритм GrabCut должен иметь в качестве входных данных ограничивающую рамку, которая находится очень близко к лицу.С 2000 изображений, которые нуждаются в этой предварительной обработке, я не могу сделать это вручную.С общей и большей ограничительной рамкой точность уменьшается.Я хотел бы попробовать какой-то метод, который не требует ручного ввода, если это возможно, сначала.
![GrabCut Output](https://i.stack.imgur.com/BD2nY.jpg)
Пожалуйста, предложите, что я могу сделать, чтобы создать маску для HMD.
РЕДАКТИРОВАТЬ: Вот что я использую сейчас,Самая неприятная часть была фоном, который в моем наборе данных иногда был лишь на несколько значений менее белым, чем FOVE, а иногда дико отличался.Я обучил семантической сети сегментации, чтобы обнаружить и извлечь человека из изображения.Для справки: , и , - некоторые из хороших работ, выполненных по этому вопросу.После этого я использовал алгоритм среднего смещения, чтобы получить кластеры, и выполнил настройку порога цвета на изображении.Это дало мне точность ~ 90%, а остальная часть изображений нуждалась в настройке (в основном, с помощью цветового порога).
![Mask from semantic segmentation](https://i.stack.imgur.com/kmH5Q.png)
![Final Mask being created](https://i.stack.imgur.com/8Ke7X.jpg)