Я пытаюсь найти эффективный способ приемлемой сложности для
- обнаружить объект в изображении, чтобы я мог его изолировать из его окружения
- сегмент, который указывает на его части и маркирует их, чтобы затем я мог их получить по желанию.
Прошло 3 недели с тех пор, как я вошел в мир обработки изображений, и я читал о стольких алгоритмах (просеивание, змеи, больше змей, связанные с Фурье и т.д.) и эвристики, которые я не знаю, с чего начать и какой из них "лучший" для того, чего я пытаюсь достичь. Имея в виду, что набор данных изображения в процентах довольно большой, я даже не знаю, должен ли я использовать какой-либо алгоритм, реализованный в OpenCV, или если я должен реализовать один свой собственный.
Обобщить:
- Какую методологию следует сосредоточить? Почему?
- Должен ли я использовать OpenCV для такого рода вещей или есть ли другая "лучшая" альтернатива?
Спасибо заранее.
EDIT - дополнительная информация о наборах данных
Каждый набор данных состоит из 80 тыс. изображений продуктов, имеющих один и тот же
- концепция, например. футболки, часы, обувь
- размер
- ориентация (90% из них)
- фон (95% из них)
Все изображения в каждом наборе данных выглядят почти идентичными, независимо от самого продукта. Чтобы сделать вещи более понятными, рассмотрим только "набор данных часов":
Все изображения в наборе выглядят примерно так:
(опять же, отдельно от самих часов). Я хочу извлечь ремешок и циферблат. Дело в том, что существует множество разных стилей часов и, следовательно, форм. Из того, что я читал до сих пор, я думаю, мне нужен алгоритм шаблона, который позволяет сгибать и растягивать, чтобы соответствовать спичкам и наборам разных стилей.
Вместо создания трех различных шаблонов (верхняя часть ремешка, нижняя часть ремешка, циферблат) было бы разумно создать только один и сегментировать его на 3 части. Таким образом, я был бы уверен, что каждая часть была обнаружена относительно друг друга, как предполагалось, например, циферблат не будет обнаружен ниже нижней части ремешка.
Из всех алгоритмов/методологий, с которыми я столкнулся, модель активной формы выглядит наиболее перспективной. К сожалению, мне не удалось найти реализацию спуска, и я недостаточно уверен, что это лучший подход, чтобы идти вперед и писать сам.
Если кто-нибудь может указать, что я должен действительно искать (алгоритм/эвристика/library/и т.д.), я был бы более чем благодарен. Если вы снова думаете, что мое описание было немного расплывчатым, не стесняйтесь просить более подробный.