Добро пожаловать в проектную документацию по сегментации объектов и смещению позиций. Этот репозиторий содержит код для сегментации объекта на заданном изображении на основе текстовой подсказки и последующего перемещения объекта в новую позицию в той же сцене. Он использует передовые генеративные модели искусственного интеллекта для удобного выполнения этой задачи.
Этот проект включает в себя две ключевые задачи, направленные на постпроизводственное редактирование изображений продуктов, особенно для целей электронной коммерции.
Задача 1: Сегментирует объект на изображении по текстовой подсказке (например, «полка») и выделяет его красной маской.
Задача 2. Перемещает объект внутри сцены, сдвигая его в направлениях x и y, как указано пользователем.
Например, у вас может быть изображение, содержащее «полку». Вы можете запустить сегментацию, чтобы выделить все полки на изображении. Затем вы можете переместить указанную полку внутри сцены, используя смещения пикселей.
Сегментация объектов на основе текста: идентифицирует объекты с помощью подсказок класса, таких как «полка», и выделяет их.
Сдвиг позиции: перемещает объект на значения пикселей в направлениях x (горизонтально) и y (вертикально).
Предварительно созданные модели. Использует существующие модели, такие как SAM (Segment Anything Model) и Stable Diffusion Inpainting, для манипулирования объектами без необходимости переобучения.
Чтобы настроить проект локально, выполните следующие действия:
Клонируем репозиторий:
git clone https://github.com/your-repo/object-segmentation-shift.git
cd object-segmentation-shift
Создайте и активируйте виртуальную среду:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
Установите зависимости:
pip install -r requirements.txt
Чтобы сегментировать объект на изображении на основе подсказки класса:
python run.py --image ./example.jpg --class shelf --output ./generated.png
Эта команда возьмет example.jpg
, сегментирует все экземпляры объекта, указанного в приглашении класса (например, «полка»), и выведет изображение с красными масками на этих объектах.
Чтобы сместить сегментированный объект на изображении:
python run.py --image ./example.jpg --class shelf --x 80 --y 0
Это переместит идентифицированную полку на 80 пикселей вправо и на 0 пикселей по вертикали.
Вот результаты применения алгоритма к образцам изображений:
Входное изображение | Сегментация (Задание 1) | Смещенный объект (Задание 2) |
---|---|---|
Данные | рез1 | рез2 |
Задача 1: Объект выделен красным.
До сегментации
После сегментации
Задача 2: Объект смещается в соответствии с заданными пользователем значениями x и y.
Границы сложных объектов. В случаях, когда объекты имеют сложные границы или частично скрыты, сегментация может быть не идеальной.
Смещение артефактов. При перемещении объектов со сложным фоном обеспечение естественной регенерации фона создает проблемы.
Модели точной настройки: экспериментирование с методами точной настройки для повышения точности сегментации.
Бесшовная зарисовка фона: использование передовых методов зарисовки для реконструкции фона после перемещения объекта.
Если вы хотите внести свой вклад в этот проект, выполните следующие действия:
Этот проект лицензируется по лицензии MIT. Подробности смотрите в файле ЛИЦЕНЗИИ.