
Подсчет объектов с помощью визуального ИИ имеет широкий спектр применения в многочисленных областях. В розничной торговле автоматизированные системы аудита полок подсчитывают продукты для поддержания оптимального уровня запасов. В производстве подсчет компонентов на сборочных линиях обеспечивает контроль качества и выявляет аномалии производства. Медицинские исследователи используют подсчет клеток на микроскопических изображениях для диагностики заболеваний и разработки лекарств. В сфере безопасности подсчет людей в многолюдных помещениях помогает контролировать уровень заполняемости и обеспечивает соблюдение правил безопасности.
Традиционно подсчет объектов с помощью компьютерного зрения был сложным процессом, требующим значительных знаний. Разработчики обычно собирают и маркируют обширные наборы данных, выбирают и обучают модели машинного обучения (часто CNN) и реализуют логику постобработки. Этот подход включает предварительную обработку данных, проектирование архитектуры модели, проверку и кодирование развертывания. Многоэтапный рабочий процесс делает внедрение такого решения трудоемким и ресурсоемким для многих организаций.
VisionAgent, генеративный конструктор приложений Visual AI от LandingAI, делает такие задачи, как подсчет объектов для обычных объектов, довольно простыми, используя современные модели языка зрения (модели SOTA VLM) и объединяя их с агентской структурой для генерации пользовательского кода для вашего варианта использования. Этот инновационный подход запускает ваш проект за считанные минуты по сравнению с бенчмаркингом различных моделей для вашего варианта использования и инвестированием значительного времени и ресурсов в адаптацию новых моделей для вашей экосистемы.
Давайте рассмотрим практическое применение: управление запасами банок с газировкой. Представьте, что вам поручено создать систему для мониторинга запасов банок с газировкой на складе. Цель состоит в том, чтобы автоматизировать расчет процента запасов на основе максимальной вместимости в 35 банок и определить, необходимо ли пополнение запасов.
Быстрый VisionAgent с четкими требованиями к проекту
При подходе к этому варианту использования визуального ИИ крайне важно сформулировать четкие, подробные инструкции — так же, как вы бы это сделали для младшего инженера-программиста. Для нашей системы инвентаризации банок с газировкой мы хотим, чтобы модель ИИ идентифицировала и подсчитывала банки, вычисляла процент инвентаря на основе нашей полной емкости в 60 банок и предоставляла статус, указывающий, в порядке ли инвентарь или его необходимо пополнить.
Такой уровень специфичности помогает VisionAgent генерировать более точный и полезный код, гарантируя, что вывод будет точно соответствовать нашим потребностям.

Начнем с более простого, но точного примера создания прототипа с помощью VisionAgent для случая использования банки с газировкой:
«Напишите программу, которая подсчитывает банки с газировкой на изображении. Программа должна выводить количество, рисовать ограничивающие рамки вокруг каждой обнаруженной банки и отображать оценку достоверности для каждого прогноза. Используйте порог 0,2»
Подытожим эти шаги в следующем видео:
Прототип решения
После того, как мы запросили VisionAgent, он генерирует код, который соответствует нашему варианту использования. Этот сгенерированный код служит отправной точкой, которую мы можем запустить, оценить и итеративно улучшить. На этом этапе прототипирования мы можем экспериментировать с различными формулировками в нашем запросе, корректировать специфику наших инструкций или настраивать требования к выходным данным.
Цель состоит в том, чтобы быстро итерировать, пока VisionAgent не сгенерирует код, который точно обнаруживает и подсчитывает банки с газировкой, вычисляет уровни запасов и предоставляет нужный нам статус. Этот процесс прототипирования не только помогает нам усовершенствовать наше решение, но и позволяет нам понять возможности и ограничения VisionAgent для нашего конкретного варианта использования.

Если посмотреть на результат для нашего варианта использования, VisionAgent может идентифицировать все банки с газировкой, но считает одну из них дважды (вы можете заметить это на скриншоте?). Поскольку это неверное предсказание имеет самый низкий показатель достоверности, я обновлю порог достоверности до 0,5.
Кроме того, программа выводит порог уверенности вместе с количеством, что нам не нужно. Мы можем отредактировать код в VisionAgent, чтобы он соответствовал требованиям, или даже попросить VisionAgent удалить оценку уверенности. VisionAgent запоминает ваши обновления для будущих разговоров.
Подытожим эти шаги в следующем видео:
Проверка, итерация и развертывание
Как только наш исходный код будет готов, мы можем протестировать код с другими изображениями, чтобы проверить, работает ли код последовательно для нашего варианта использования. Мы можем загрузить изображения непосредственно в VisionAgent и протестировать код. Эти изображения будут сохранены для будущего использования.
Подытожим эти шаги в следующем видео:
Vision Agent также позволяет вам создать приложение Streamlit, чтобы поделиться своим прототипом с вашей командой для дальнейшей проверки.
Подытожим эти шаги в следующем видео:
После проверки кода на наличие банок с газировкой мы теперь предлагаем агенту ввести оставшуюся часть требования: «Кроме того, рассчитайте процент запасов, исходя из максимальной вместимости в 35 банок. Если запасы ниже 50%, программа должна вывести статус «Требуется пополнение». Если запасы выше 50%, она должна вывести статус «Исправно».
После того, как все требования выполнены, мы можем скопировать или загрузить этот совместно разработанный код с VisionAgent для вывода, вызвав функцию count_soda_cans в желаемой среде.
Команда VisionAgent также активно разрабатывает конечную точку веб-развертывания для упрощения процесса развертывания.
Подробнее о CountGD..
Наши внутренние тесты показали, что модель подсчета Multi-Modal Counting Model, на которой работает VisionAgent, CountGD¹, стабильно выдает результаты с погрешностью менее 5%. Такой уровень точности сохраняется даже в сложных сценариях, включающих более 100 объектов интереса на одном изображении.
CountGD также может работать с перекрывающимися объектами, которые часто встречаются в реальных сценариях использования. Однако, будучи независимым от цвета, CountGD сталкивается с ограничениями в распознавании цветов и демонстрирует пониженную точность в сценариях, включающих обнаружение нескольких классов. Чтобы смягчить ограничение по нескольким классам, функцию можно выполнить дважды или предварительно обработать изображение для разделения классов, что повышает точность.
Заключение
За считанные минуты мы быстро прошли через прототипирование, итерацию и развертывание кода для варианта использования подсчета объектов, который можно было легко сформулировать в тексте. Ранее создание подобного решения включало бы использование модели обнаружения объектов в сочетании с обширной постобработкой, требующей значительных усилий по маркировке, обучению и интеграции. В ситуациях, когда требуется более высокая точность, чем та, которую могут обеспечить текущие модели, мы можем использовать разработанный код для маркировки с нулевого выстрела в качестве основы для обучения более сложных моделей глубокого обучения.
С новыми выпусками Multi-Modal Models многие такие задачи Visual AI, которые ранее были громоздкими, теперь можно легко итерировать. В соответствии с нашей миссией по упрощению разработки компьютерного зрения, мы демократизируем передовые технологии Visual AI и Generative AI, упрощая разработку решений Visual AI. Получите ранний доступ к VisionAgent сегодня по адресу va.landing.ai/agent.
¹Ники Амини-Наиэни, Тенгда Хан и Эндрю Зиссерман. CountGD: Мультимодальный подсчет в открытом мире. В Advances in Neural Information Processing Systems, 2024.
Код для CountGD доступен здесь: https://github.com/niki-amini-naieni/CountGD/tree/main
Источник: landing.ai



























