Image

Создание инструмента улучшения фона с помощью обнаружения объектов, сегментации и синтетических теней

01121d94ce08e5b7e2734dc50bb98204

Недавно я решила продать часть своих старых вещей в интернете — обувь, мебель, всякие безделушки — и быстро поняла, как неловко выглядит моя квартира на фотографиях. Представьте себе мусорные баки в углу, разбросанные носки и случайные пучки волос на полу. Это определенно не та эстетика фотографий, которая кричит «Купи это сейчас!»

Вместо того, чтобы заняться уборкой (у кого есть на это время?), я подумал: «Должно быть решение на основе ИИ!» — и полез в кроличью нору. Благодаря ChatGPT я обнаружил rembg для удаления фонов, но это привело меня к клонированию репозитория и установке непонятных пакетов. Затем я захотел автоматически генерировать подписи для своих изображений, поэтому переключился на еще одну модель. Каждый шаг требовал другой библиотеки, другой настройки и кучи обучающих программ.

Как разработчик-консультант в LandingAI , компании, ориентированной на визуальный ИИ, я хочу выделить VisionAgent . Он обещает унифицированный интерфейс для таких задач, как обнаружение объектов, сегментация, субтитры и многое другое, не требуя от вас обучения или полного понимания внутренних компонентов каждой отдельной модели. Вместо того, чтобы верить мне на слово, следуйте этому руководству и узнайте, как единая, целостная платформа может преобразовать ваш рабочий процесс.

Всего за четыре часа я создал удобное приложение, которое удалило грязные фоны с моих фотографий, осветлило и увеличило резкость моих продуктов, предложило более привлекательные фоны (больше никаких носков на полу!) и сгенерировало яркие, достойные eBay подписи . В этой записи блога я покажу вам, как именно я это сделал — и как вы тоже можете это сделать.

💡 Полный исходный код доступен в репозитории, ссылка на который приведена в конце этой статьи. Вы можете клонировать его и запустить локально.

1. Задача: превратить некрасивые фотографии в идеальные объявления

Если вы когда-либо пытались продать что-то онлайн — обувь, мебель или что-то еще — вы знаете, насколько важна чистая, привлекательная фотография. Но добиться этого может быть непросто:

  • Беспорядок : Ненужные предметы или предметы домашнего обихода в кадре.
  • Плохое освещение : тускло освещенные помещения, которые не идут на пользу вашему продукту.
  • Нет времени : Я бы лучше отложил все на потом, чем занялся уборкой и подготовкой хорошо освещенного места.
f8c2bb8a2d743b53ef117fd62dab22e7

Что, если бы одним щелчком мыши вы могли аккуратно извлечь свой продукт из любого загруженного фона , поместить на чистый или стильный новый фон и придать ему четкий , хорошо освещенный вид?

2. Введите VisionAgent

VisionAgent — это генеративный конструктор приложений Visual AI . Он следует «агентной» структуре для обработки сложных визуальных задач, требующих рассуждений. Он модулирует выбор инструментов, чтобы выбрать лучший визуальный инструмент для задачи, и использует встроенные шаблоны проектирования для решения особенно сложных визуальных задач.

9c7ed0e690c66d1750320f42f71b443f

Звучит сложно? Не волнуйтесь! Думайте об этом как об агенте ИИ , который оптимизирует создание приложений , предоставляя доступ к современным моделям зрения в едином интерфейсе, а также готовые к использованию фрагменты кода для встраивания в ваше приложение.

В нашем текущем приложении мы специально использовали VisionAgent для решения таких задач, как:

  • Обнаружение объектов
  • Экземплярная или семантическая сегментация
  • Подпись к изображению
  • Обработка и улучшение изображений

…в простых в использовании функциях, таких как:

detections = florence2_object_detection ( «обнаружить один крупный объект» , image_data )
segmented_image = florence2_sam2_instance_segmentation ( «Сегментировать основной объект» , image_data )
caption = qwen2_vl_images_vqa ( «Опишите этот продукт…» , [ image_data ])
улучшенное_изображение = автоматическое_улучшение_изображения_простое ( данные_изображения )
резкое_изображение = нерезкая_маска ( улучшенное_изображение )

Больше не нужно рыться в нескольких репозиториях, загружать контрольные точки модели или возиться с кодом Torch/TensorFlow. VisionAgent абстрагирует всю эту сложность под одной крышей.

3. Мой путь создания этого приложения с VisionAgent

Мой путь к созданию этого приложения не был прямым. Сначала я спросил VisionAgent:

«Определить один основной объект на сцене и избежать беспорядка на заднем плане. Сегментировать объект переднего плана и удалить фон. Добавить функцию, которая заменяет удаленную область фона изображением, выбранным из папки, где мы сохранили фоновые изображения, и, наконец, написать еще одну функцию, которая улучшает новое составное изображение, создавая синтетическую тень?»

debe9d885bf6d57fb98a858130ac30d7
b5e01bca45a5bfdea9587430507cafac

VisionAgent предоставил мне решение с использованием flux_image_inpainting для генерации совершенно новых фонов на основе текстовых подсказок:

def segment_and_replace_background ( image_path : str ,
background_prompt : Необязательно [ str ] = None ) -> np.ndarray :
«»»
Выделите основной объект (например, человека с баскетбольным мячом) из данного изображения,
затемните фон, примените улучшения яркости/контрастности и при необходимости замените фон с помощью зарисовки.
«»»
# 1. Загрузите изображение
# 2. Сегментируйте объект с помощью florence2_sam2_instance_segmentation
# 3. Объединяем маски, затемняем фон
# 4. Если указан background_prompt, вызовите flux_image_inpainting для заполнения фона
# …
вернуть финальное_изображение

Я даже протестировал этот подход с образцом изображения баскетбольного мяча, убедившись, что он может менять фоны. Однако модель реализации flux_image_inpainting с открытым исходным кодом, размещенная VisionAgent, не давала последовательно реалистичных или хорошо подобранных результатов; она нуждалась в серьезной тонкой настройке. Поэтому я перешел к стратегии курируемых фонов + LLM :

  1. Вручную подберите красивые фоновые изображения (например, гостиная, чистая белая студия).
  2. Используйте Claude/Gemini/OpenAI для оценки каждого фона на основе подробного описания продукта.
  3. Совместите объект переднего плана с новым фоном , получив профессионально выглядящий эффект синтетической тени.
  4. Предоставьте пользователю 3 лучших фона для окончательного выбора.

Это дало мне более последовательную композицию. Плюс, мне не нужна была генеративная модель, чтобы «галлюцинировать» новую сцену; у меня был прямой контроль над библиотекой фонов и тем, как они могли бы соответствовать моему продукту.

Наконец, я просто сшил каждый компонент (обнаружение, сегментацию, улучшение и выбор фона на основе LLM) в моем приложении Streamlit . Результатом стал быстрый, надежный усилитель фотографий продукта, который теперь составляет основу моих новых листингов eBay. Это мой полный путь — надеюсь, он поможет вам создавать и адаптировать собственные решения Visual AI!

4. Высокоуровневый поток

Мне нужен был веб-интерфейс, чтобы мои друзья тоже могли им пользоваться. Streamlit был идеален. Я закончил следующими основными шагами:

  1. Загрузите (или выберите из образца) изображение товара.
  2. Определите основной продукт с помощью большой модели технического зрения (Florence2).
  3. Создайте несколько подписей — одну подробную (для Клода/Джемини, чтобы использовать ее для выбора трех лучших фонов) и одну маркетинговую (для вашего листинга на eBay).
  4. Сегментируйте только продукт, используя модель «Сегментировать все» (SAM2).
  5. Очистите и улучшите извлеченный передний план (яркость, контрастность и т. д.).
  6. Выберите новый фон, предоставив возможность обладателю степени магистра права оценить каталог изображений и выбрать наиболее подходящие (прощайте, грязная квартира!).
  7. Разместите свой продукт на лучших фонах.
  8. Представьте результаты: пользователь выбирает понравившийся ему фон, отображается окончательный маркетинговый слоган — готово.
7e27070ed90882cf13a92c0a34e689c0

За четыре часа я заставил все это функционировать. Большая часть времени ушла на оперативную разработку (рассказать Клоду, как выбирать фоны) и настройку управления состоянием Streamlit для выбора пользователем. Если бы не эти мелочи, я, вероятно, мог бы закончить за два часа!

5. Создание основных функций

Ниже приведены некоторые ключевые фрагменты кода из файлов app.py и vision_tools.py . Мы опустили некоторые детали с помощью для краткости. Проверьте полный репозиторий для полного кода. Файл app.py имеет конфигурацию streamlit и базовую настройку, а vision_tools.py содержит все функции утилиты компьютерного зрения, включая обнаружение объектов, сегментацию, удаление фона, улучшение и композицию с тенями.

5.1 Обнаружение объектов и субтитры

Неряшливое фото со случайными предметами может сбить с толку типичный инструмент для удаления фона. Вот почему мы сначала явно определяем основной объект, который нас интересует (предмет, который мы хотим продать), и генерируем подписи для выбора фона и маркетинга.

41f967724994c98091a7db699b259778

vision_tools.py:

def detect_objects ( путь_к_изображению ):
# 1. Загрузите изображение
изображение = загрузка_изображения ( путь_к_изображению )

# 2. Определите основной объект
detections = florence2_object_detection ( «обнаружить один крупный объект на сцене» , изображение )

# 3. Аннотируйте ограничивающие рамки
image_with_boxes = overlay_bounding_boxes ( изображение , обнаружения )

# 4. Создайте два описания (подробное + маркетинговый стиль)
claude_prompt = «Опишите этот продукт подробно…»
claude_caption = qwen2_vl_images_vqa ( claude_prompt , [ изображение ])

ad_prompt = «Создайте краткое объявление о продукте…»
ad_caption = qwen2_vl_images_vqa ( ad_prompt , [ изображение ])

# 5. Сохраните аннотированное изображение.
output_path = «output_image_with_boxes.jpg»
сохранить_изображение ( изображение_с_боксами , выходной_путь )

возвращаться {
«output_image_path» : выходной_путь ,
«claude_caption» : claude_caption ,
«ad_caption» : рекламный_подпись
}

florence2_object_detection и qwen2_vl_images_vqa VisionAgent выполняют здесь тяжелую работу ИИ. В нескольких строках вы получаете ограничивающие рамки и две специализированные подписи — одну подробную и одну маркетинговую.

5.2 Расширенная сегментация (SAM2)

Как только мы узнаем, какой объект является нашим основным продуктом, мы проводим более тонкую сегментацию экземпляра , чтобы точно удалить фон. Мы полагаемся на «Модель сегментации всего» (SAM2) из Florence2:

def segment_and_save_objects ( image_path , prompt ):
# Загрузить изображение
изображение = загрузка_изображения ( путь_к_изображению )
segmentation_results = florence2_sam2_instance_segmentation ( подсказка , изображение )

# Фильтрация мелких объектов или объектов по краям
# Объединить допустимые маски в изображение с альфа-каналом

сегментированное_имя_файла = {os.path.splitext(image_path)[0]} _segmented.png»
сохранить_изображение ( финальное_изображение , сегментированное_имя_файла )

вернуть сегментированное_имя_файла

С SAM2 края вашего продукта будут выглядеть аккуратно — никаких остатков пола или мусорного бака в углу.

9b498fd737cdb6a9d939046ce15cb3ce
f6ee79b1593f3d6d2522fad073061203

5.3 Автоматическое улучшение

Я понял, что мои тускло освещенные снимки нуждаются в небольшом освещении. Поэтому мы добавили:

def unsharp_mask ( изображение , сигма = 1,0 , интенсивность = 1,5 ):
размыто = cv2.GaussianBlur ( изображение , ( 0 , 0 ), сигма )
резкость = cv2.addWeighted ( изображение , 1.0 + сила , размытость , -сила , 0 )
возвращение заточенным

def auto_enhance_image_simple ( img_bgr : np.ndarray ) -> np.ndarray :
# Применяет настройки яркости/контраста и легкую нерезкую маску
# …
вернуть final_img

Передний план более четкий, яркий и привлекает внимание потенциального покупателя.

dddeebda95321eb207b2f71e18e865d6

5.4 Выбор и применение нового фона

Вот секретный соус , который заменил мои грязные полы в квартире на стильный, свободный от беспорядка фон. Мы даем LLM подсказку оценить каталог изображений , а затем выбираем лучшие совпадения:

класс BackgroundSelector :
def select_best_background_claude_v2 ( self , item , image_directory ):
# Мы предлагаем LLM оценить каждый фон по шкале от 1 до 20
# Затем возвращаем 3 лучших фона

возврат [ верхний_фон_1 , верхний_фон_2 , верхний_фон_3 ]

В app.py этап компоновки выглядит примерно так:

для idx , bg_path в перечислении ( st.session_state.top_bg_paths ):
пытаться :
# Композит с синтетической тенью
composite_path = f»composite_option_{idx+1}.png»
создать_композитный_с_тенью (
bg_path ,
«sh_output.png» , # Улучшенный передний план
выходной_путь = составной_путь ,
shadow_offset =( 30 , 30 ), # или настройте по своему усмотрению
shadow_blur = 25 , # больше => мягче тень
shadow_opacity = 120 # 0-255 (0 = полностью прозрачный, 255 = полностью непрозрачный)
)
preview_images.append ( composite_path )

Теперь вы можете увидеть свой продукт в сияющем окружении — больше никаких носков в углу.

788521ff9b7f3a604a08d306658ad855

Секрет этого финального лака заключается в совмещении изображений с синтетической тенью:

def создать_композит_с_тенью (
bg_path : str ,
fg_path : str ,
выходной_путь : str ,
смещение_тени =( 15 , 15 ),
размытие_тени = 20 ,
непрозрачность_тени = 120
):
«»»
1. Удалите фон с изображения переднего плана, если он еще не RGBA.
2. Создайте тень от альфа-маски.
3. Вставьте тень на фон, затем вставьте передний план сверху.
4. Сохраните финальную композицию в `output_path`.
«»»

# Загрузить передний план, удалить BG
fg_img_raw = Изображение.открыть ( fg_path ) .конвертировать ( «RGBA» )
fg_img_clean = удалить ( fg_img_raw )
fg_w , fg_h = fg_img_clean.size

# Создать новую композитную базу того же размера, что и BG
композитный = Изображение.новый ( «RGBA» , ( bg_w , bg_h ), ( 0 , 0 , 0 , 0 ))

# Вставить фон
композит.вставить ( bg , ( 0 , 0 ))

# Построить тень
альфа = fg_img_clean.split ()[ 3 ]
тень = Изображение.новое ( «RGBA» ,( fg_w , fg_h ) , цвет =( 0,0,0,0 ))
black_img = Image.new ( «RGBA» , ( fg_w , fg_h ), color =( 0 , 0 , 0 , shadow_opacity ))
тень.вставить ( black_img , маска = альфа )

тень = тень.фильтр ( ImageFilter.GaussianBlur ( shadow_blur ))

shadow_x = offset_x + shadow_offset [ 0 ]
shadow_y = offset_y + shadow_offset [ 1 ]

композитный.альфа_композитный ( тень , ( тень_x , тень_y ))
композитный.альфа_композитный ( fg_img_clean , ( смещение_x , смещение_y ))

composite.convert ( «RGB» ). save ( output_path , format = «PNG» ; quality = 95 )
возврат выходного_пути

6. Streamlit-фронтенд

Файл app.py — это стандартный скрипт Streamlit , который связывает эти шаги вместе. Вы найдете такую логику:

если start_action и не st.session_state.processing :
# 1. Обнаружение объектов и подписей
результаты = detect_objects ( image_path )

# 2. Сегментируйте основной продукт
result_sam = segment_and_save_objects ( image_path , «…» )

# 3. Улучшить продукт
sharpened_image_path = auto_enhance_image_simple ( )

# 4. Используйте LLM для выбора лучших фонов и их компоновки
background_selector = Селектор_Фона ()
st.session_state.top_bg_paths = background_selector.select_best_background_claude_v2 ( caption , BG_DIR )

# 5. Покажите пользователю готовые изображения и дайте ему возможность выбрать

  • Загрузчик файлов или образцов изображений
  • Кнопка « Начать действие », которая запускает конвейер (обнаружение → сегментация → улучшение → предложение фона → композиция).
  • Предварительный просмотр изображений , чтобы вы могли выбрать наиболее понравившийся вам фон.
  • Финальная подпись в стиле « Купить сейчас! » от магистра права.

Всего за несколько кликов вы:

  • Четкие, профессионально выглядящие снимки продукции .
  • Готовый к использованию маркетинговый текст для вашего листинга.
cfee31e6b720fbb20a5094f68c265895

7. Почему VisionAgent?

Поначалу я метался между rembg , различными репозиториями Hugging Face для сегментации, случайными скриптами субтитров и т. д. VisionAgent изменил правила игры:

  1. Единый унифицированный API : нет необходимости отслеживать несколько конечных точек модели или репозиториев.
  2. Высококачественные модели : Florence 2 и Qwen2-VL обеспечивают первоклассное обнаружение, маски и подписи.
  3. Простота использования : несколько вызовов функций превратят неряшливые фотографии в безупречные композиции.
  4. Готовность к производству : вы можете выйти за рамки прототипов — используйте эффективный вывод модели VisionAgent для надежного онлайн-сервиса. А если вам нужна дополнительная настройка или вы хотите доработать модели, вы можете работать напрямую с командой и платформой LandingAI.
cec475a243f438a7d050306769ca50a2

8. Реальное влияние (и что дальше)

Вооружившись почти мгновенным способом создания снимков, достойных eBay, я разместил свои товары с лучшими визуальными эффектами — и, конечно же, они начали продаваться быстрее . Разница в показателях кликабельности и интересе покупателей становится ощутимой, если вы хорошо представляете свой продукт.

Этот подход не ограничивается пыльными квартирами. С небольшими изменениями вы можете:

  • Мода : Сфотографируйте футболку на кровати, снимите ее и положите на модель или на чистый, фотогеничный фон.
  • Недвижимость : виртуальная постановка комнат, удаление старой мебели и установка новых декораций.
  • Маркетинг в социальных сетях : автоматическое создание рекламных изображений с цветовым фоном вашего бренда.

Вы поняли — как только вы сможете легко объединить обнаружение, сегментацию и генерацию текста , предела не будет.

9. Идеи для дальнейшего улучшения

Если вы хотите сделать это приложение еще более эффективным , вот несколько идей:

  • Пакетная обработка : пользователи могут загружать несколько изображений одновременно и ставить их в очередь на удаление фона и улучшение.
  • Интерактивное редактирование объектов : пользователь может исправить или стереть незначительные ошибки сегментации с помощью интерфейса «кисть».
  • Настройка подписи : предоставьте несколько маркетинговых стилей — «необычный», «формальный», «роскошный» и т. д. — и позвольте пользователю выбирать.
  • Автоматическая обрезка и позиционирование : автоматическое центрирование или обрезка продукта для обеспечения единообразной композиции на всех изображениях.

10. Подведение итогов

От захламленной квартиры до отполированного автомата для выставления товаров на eBay — этот путь показывает, как VisionAgent с минимальными усилиями открывает новый уровень визуального ИИ:

  • Все в одном : такие инструменты, как обнаружение, сегментация, создание субтитров и анализ изображений, объединены в одном решении.
  • Production Ready : Вы можете выйти за рамки прототипов — используйте API VisionAgent и пользовательские функции обучения модели для создания надежных, экономичных онлайн-сервисов. Если вам нужна большая гибкость или пользовательское обучение модели, свяжитесь со мной.

Попробуйте! Всего через несколько часов у вас будет собственное приложение на основе искусственного интеллекта для «замены фона и улучшения продукта» — не требуется никаких продвинутых знаний в области искусственного интеллекта, не требуется никакого опыта в обработке изображений или компьютерном зрении. Полный код находится в нашем репозитории и может быть клонирован локально для немедленного запуска. Вооружившись этими инструментами, у вас больше не будет оправданий для тусклых, непривлекательных фотографий продукта. Теперь идите и продавайте свое снаряжение — и пусть эти непарные носки останутся скрытым секретом времен «до»!

Счастливого строительства ! И помните, если вам нужна более глубокая интеграция или у вас есть особые требования, сообщество VisionAgent Discord и команда LandingAI всегда готовы помочь.

Источник: landing.ai

❌ Нет тегов для этой статьи
Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых