Привет, меня зовут Игорь Бархатов, я руководитель практики компьютерного зрения в Т1. В этой статье разберу, как алгоритмы компьютерного зрения находят объекты на изображении, и покажу это на практическом примере подсчета яблок с помощью YOLO-E v11.
Поговорим о трех базовых задачах компьютерного зрения — классификации, детекции и сегментации, сравним двухэтапный и одноэтапный подходы к обнаружению объектов, а затем разберем устройство YOLO-E v11 и пример запуска модели на Python.
Что такое компьютерное зрение
Компьютерное зрение позволяет алгоритмам анализировать изображения и видео и извлекать из них полезную информацию. В отличие от обычной обработки изображения, где заранее задаются фиксированные правила, нейросеть ищет закономерности в визуальных данных и на их основе определяет объекты, признаки или события.
Упрощенно процесс выглядит так:
На практике результатом может быть подпись к изображению, координаты найденного объекта, пиксельная маска или событие в информационной системе. Например, модель может определить, что на фотографии есть яблоки, найти каждое из них и посчитать их количество.
В зависимости от задачи — классификации, детекции или сегментации — компьютерное зрение использует разные способы анализа изображения. Рассмотрим, чем они отличаются друг от друга.
Классификация изображений
Классификация отвечает на вопрос: что изображено на картинке? Модель получает изображение и относит его к одному или нескольким классам. Например, она может определить, что на снимке есть яблоко, автомобиль или человек.
При этом классификация сама по себе не показывает, где находится объект и сколько экземпляров одного класса присутствует. Если на изображении пять яблок, модель может вернуть класс apple, но необязательно различит все пять объектов.
Детекция объектов
Детекция решает более сложную задачу: определяет, какие объекты находятся на изображении и где именно они расположены. Для каждого найденного объекта модель обычно возвращает:
класс объекта;
координаты ограничивающей рамки — bounding box;
степень уверенности предсказания.
На изображении с яблоками детектор построит отдельную рамку вокруг каждого экземпляра. Затем количество рамок класса apple можно использовать для подсчета объектов. Именно такой подход применяется в практическом примере этой статьи.
Сегментация
Сегментация также определяет положение объекта, но делает это точнее. Вместо прямоугольной рамки модель выделяет объект по пикселям и формирует его маску.
Разницу между задачами можно описать так:
классификация отвечает на вопрос: «Что на изображении?»;
детекция — «Что и где находится?»;
сегментация — «Какие пиксели принадлежат объекту?».
Сегментация дает наиболее точное представление о форме и границах объекта, но требует больше вычислительных ресурсов и не всегда необходима на практике. Во многих прикладных задачах важно прежде всего понять, какие объекты находятся в кадре и где именно они расположены. Наша задача — подсчет яблок, поэтому далее рассмотрим именно детекцию объектов.
Как работает детекция объектов
Любая модель детекции проходит несколько этапов. Если описать процесс упрощенно, то изображение поступает на вход нейросети, затем алгоритм:
извлекает признаки — контуры, текстуры, формы и их сочетания;
находит потенциальные объекты;
определяет классы найденных объектов;
рассчитывает координаты bounding box;
отбрасывает слабые или дублирующиеся результаты;
возвращает финальный список объектов.
Модель может одновременно анализировать несколько объектов, в том числе одного класса. Для каждого результата нейросеть указывает, что именно найдено, где находится объект и насколько она уверена в предсказании.
При этом двухэтапные и одноэтапные модели выполняют эти операции по-разному. Первые сначала определяют области изображения, в которых могут находиться объекты, а затем классифицируют их; вторые делают все предсказания за один проход.
1. Двухэтапные модели: R-CNN и Faster R-CNN
Традиционные модели семейства R-CNN используют двухэтапный подход. Сначала они формируют возможные области изображения, в которых могут находиться объекты. Затем на отдельном этапе классифицируют содержимое этих областей и уточняют координаты.
Такая схема позволяет разделить поиск и классификацию объектов. При этом дополнительные этапы требуют больше вычислений и времени. Для некоторых задач это оправдано, особенно если приоритетом является качество анализа. Но в системах реального времени задержка становится критичным параметром.
Faster R-CNN оптимизирует этот процесс по сравнению с ранними версиями R-CNN, однако общая логика остается двухэтапной: сначала найти регионы интереса, затем классифицировать их.
2. Одноэтапный подход YOLO
YOLO расшифровывается как You Only Look Once — «смотришь только один раз». Название отражает принцип работы: изображение проходит через нейросеть, после чего модель сразу предсказывает классы и координаты объектов.
Преимущества:
высокая скорость инференса;
возможность анализа видеопотока с небольшой задержкой.
Одноэтапный детектор особенно удобен там, где результат нужно получать быстро: в промышленной видеоаналитике, ритейле, транспорте и других системах, работающих с потоком изображений.
Фактическая скорость зависит от версии модели, разрешения изображения, оборудования, формата весов и настроек инференса. Поэтому показатель FPS нельзя переносить из одного эксперимента в другой без учета условий тестирования.
Одноэтапный подход сокращает путь от изображения до результата, поэтому модели YOLO подходят для задач, где важны скорость и оперативная обработка данных. Теперь разберем, как устроена модель YOLO-E v11 и какие задачи она помогает решать.
Что такое YOLO-E v11
YOLO-E v11 — версия одноэтапного детектора объектов, ориентированная на сочетание скорости, точности и эффективности вычислений. Согласно официальной документации, эта модель для детекции и сегментации объектов с открытым словарем, которая поддерживает текстовые, визуальные и внутренние подсказки. Это позволяет задавать объекты, которые нужно искать, без обязательного изменения всей логики приложения.
В таблице – сравнение YOLO-E v11 с другими моделями.
Нужно учитывать, что сравнивать модели корректно только при одинаковом датасете, разрешении и методике измерения. FPS показывает скорость обработки, но ничего не говорит о точности сам по себе. mAP@0.5 оценивает качество совпадения предсказанных рамок с эталонной разметкой при заданном пороге IoU.
Ключевые особенности модели
В архитектуре детектора можно выделить несколько функциональных частей: backbone, neck и detection head. Разберем каждую из них:
- Backbone
Backbone — базовая часть нейросети, которая извлекает признаки из изображения. На ранних этапах модель выделяет контуры, границы и простые текстуры, а на последующих — формы, части объектов и более сложные визуальные паттерны.
Если в используемой конфигурации действительно применяется EfficientNet-B6, его можно рассматривать как компонент, отвечающий за извлечение признаков. Однако архитектуру нужно проверять именно для конкретного варианта YOLO-E v11: разные размеры и сборки модели могут использовать разные компоненты.
- Neck
Neck объединяет признаки, полученные на разных уровнях backbone. Это нужно для обнаружения объектов разного масштаба: крупных объектов на переднем плане и небольших элементов в глубине изображения.
Если в архитектуре используется BiFPN, его роль заключается в двунаправленном объединении признаков разных разрешений. Такая схема помогает передавать в detection head и детали изображения, и более широкий контекст сцены.
- Detection head
Detection head формирует итоговые предсказания модели. Для каждого результата он определяет:
координаты объекта;
его класс;
уверенность в предсказании.
Именно на этом этапе признаки превращаются в понятный прикладной результат, например в рамку вокруг яблока с подписью apple и значением confidence score.
- Head (Anchor-Free Detection)
В anchor-free подходе модель не использует заранее заданный набор anchor boxes — шаблонных рамок разных размеров и пропорций. Вместо этого она напрямую предсказывает положение объекта или его центр, а затем восстанавливает координаты рамки.
Такой подход может упростить обработку объектов разных форм и снизить зависимость от ручного подбора anchor boxes. Но это не означает, что anchor-free архитектура однозначно лучше всех альтернатив: результат зависит от данных, настроек обучения и конкретной задачи.
Как YOLO-E v11 находит яблоки
Рассмотрим прикладной сценарий: на изображении нужно найти яблоки и подсчитать их количество. Для модели это не отдельная математическая операция, а последовательность действий:
загрузить изображение;
передать его модели;
задать класс apple;
получить bounding box для каждого найденного объекта;
отфильтровать слабые предсказания по порогу уверенности;
посчитать объекты одного класса;
визуализировать результат.
Если модель обнаружила 38 рамок с классом apple, итогом обработки станет значение 38. В тестовом примере модель обнаружила 38 объектов класса apple. Это результат для конкретного изображения и выбранных настроек, а не универсальная точность алгоритма.
Важно разделять два показателя: количество найденных объектов и качество подсчета. Если на фотографии 38 яблок, но модель обнаружила 35 или ошибочно добавила лишние рамки, простой подсчет результатов будет некорректным. Поэтому для прикладной системы нужно проверять precision, recall и качество на репрезентативном наборе данных.
Пример детекции объектов
Ниже приведен пример логики для Python. Он соответствует API, в котором модель загружается через класс YOLOE, а искомые классы задаются методом set_classes. Такой подход используется в документации Ultralytics для текстовых подсказок классов.
python import cv2 from ultralytics import YOLOE
# Загрузка модели model = YOLOE("yoloe-11m-seg.pt")
# Класс, который нужно найти classes = ["apple"] model.set_classes(classes, model.get_text_pe(classes))
# Сохранение изображения cv2.imwrite("out.jpg", output)
В этом примере:
YOLOE загружает модель и ее веса;
classes задает искомый класс;
get_text_pe формирует текстовое представление класса;
set_classes передает модели список объектов для поиска;
cv2.imread считывает входное изображение;
predict запускает инференс;
plot наносит найденные объекты на изображение;
imwrite сохраняет результат в файл.
Фактический импорт, название файла весов и доступные методы нужно сверять с конкретной версией библиотеки. Для воспроизводимого примера в статье следует указать версии Python, пакета и модели.
Как посчитать найденные объекты
Количество объектов можно получить из результатов модели, а не только определить визуально по рамкам.
Однако конкретный способ подсчета зависит от структуры объекта, который возвращает используемая библиотека. Если результат содержит несколько классов, нужно дополнительно отфильтровать только детекции класса apple. Также стоит учитывать порог confidence: слишком низкий порог увеличит число ложных срабатываний, а слишком высокий может привести к пропуску объектов.
Преимущества и ограничения YOLO-E v11
YOLO-E v11 может быть полезна в задачах, где требуется быстро находить объекты на изображении или в видеопотоке. Но окончательный выбор нужно делать после проверки модели на данных и инфраструктуре проекта.
Возможные преимущества:
высокая скорость инференса;
возможность обработки изображений и видео;
масштабирование под разные вычислительные ресурсы;
поддержка детекции и, если подтверждено для конкретной конфигурации, сегментации;
использование в прикладных сценариях;
возможность задавать собственные классы объектов;
применение текстовых подсказок в поддерживаемых режимах YOLO-E.
Сценарий с текстовыми классами особенно удобен для быстрого прототипирования: разработчик может задать объект, который нужно искать, без немедленного полного переобучения модели. Однако для промышленной эксплуатации это не отменяет тестирование на данных заказчика и проверку стабильности результатов.
Ограничения:
качество зависит от обучающих данных;
мелкие и частично закрытые объекты распознаются сложнее;
результаты зависят от освещения и ракурса;
высокие разрешения требуют больше вычислительных ресурсов;
заявленные показатели нельзя переносить на любую инфраструктуру;
модель требует тестирования перед промышленным использованием;
ложные срабатывания и пропуски нужно учитывать в логике приложения;
открытый словарь классов не гарантирует одинаковое качество для всех объектов.
Где применяется YOLO-E v11 и детекция объектов
Детекция объектов подходит для задач, в которых системе нужно находить конкретные предметы, определять их координаты и реагировать на появление или изменение объектов в кадре.
Промышленность
На производстве компьютерное зрение используют для поиска дефектов, контроля операций, проверки комплектности и отслеживания объектов на конвейере. Модель может находить повреждения, отсутствие детали или нарушение положения изделия.
Для таких сценариев особенно важны качество разметки и стабильность условий съемки. Если меняются освещение, угол обзора или тип продукции, модель необходимо проверять на новых данных.
Безопасность
В системах безопасности детекция помогает обнаруживать объекты и события: людей, транспорт, средства защиты, оставленные предметы или появление объекта в запрещенной зоне.
Здесь важно заранее определить, что именно считается событием, какой уровень уверенности допустим и что должно происходить после обнаружения. Модель сама по себе только формирует предсказание, а прикладная система должна передать его оператору или в контур реагирования.
Автономные автомобили
Компьютерное зрение в беспилотном транспорте помогает воспринимать окружающую среду. Модель может обнаруживать автомобили, пешеходов, велосипедистов, дорожные знаки и другие элементы сцены.
В подобных системах важны малая задержка и устойчивость к разным условиям: ночной съемке, дождю, снегу, бликам, перекрытиям и резким изменениям освещения.
Как оценивать модель YOLO-E v11
Оценивать модель нужно на нескольких этапах проекта: после обучения, во время тестирования на отложенной выборке и перед запуском в рабочую инфраструктуру. В бизнесе это позволяет заранее понять, подходит ли модель для конкретного сценария, сколько вычислительных ресурсов потребуется, как часто она ошибается и во что обойдется обработка одного изображения или видеопотока.
Метрики следует рассматривать вместе и сопоставлять с требованиями процесса. Например, для контроля дефектов важнее не пропустить проблему, а для автоматического подсчета товаров — не посчитать один объект несколько раз. Разберем ключевые показатели:
1. FPS
FPS — количество кадров, которые модель обрабатывает за секунду. Показатель важен для потокового видео и сценариев с ограниченной задержкой.
Но FPS зависит от оборудования, размера модели, разрешения изображения, формата весов, способа запуска и дополнительных операций обработки. Высокая скорость сама по себе не означает, что модель хорошо находит объекты.
2. mAP
mAP — метрика качества детекции, которая учитывает совпадение предсказанных рамок с эталонной разметкой и точность определения классов. При расчете сравнивается, насколько рамка модели пересекается с рамкой из размеченного датасета.
Показатель нужно интерпретировать вместе с условиями теста: датасетом, числом классов, порогом IoU и версией метрики. Значение mAP на одном наборе данных нельзя напрямую переносить на другой проект.
3. Precision и Recall
Precision показывает, какая доля найденных объектов действительно относится к нужному классу.
Recall показывает, какую долю существующих объектов модель смогла обнаружить.
Для бизнес-задачи важно выбрать подходящий баланс. Например, при контроле дефектов может быть важнее не пропустить проблему, поэтому приоритетом становится recall. В автоматическом подсчете товаров, наоборот, большое количество ложных рамок может исказить итог, и тогда нужно контролировать precision.
Что учитывать для проекта, кроме модели
Качество проекта зависит не только от выбранной нейросети. Даже модель с хорошими результатами на открытом датасете может работать нестабильно в конкретной инфраструктуре, если данные проекта отличаются от обучающей выборки. Поэтому при подготовке решения надо учитывать:
подходящий датасет;
корректную разметку классов;
соответствие данных реальным условиям;
освещение, ракурс и перекрытия объектов;
выбранный порог уверенности;
тестирование на данных заказчика;
оценку производительности на целевом оборудовании.
Модель — только один элемент системы. Кроме нее, нужны процесс подготовки данных, интеграция, мониторинг качества и правила обработки ошибок.
Заключение
YOLO-E v11 показывает, как в современных моделях компьютерного зрения совмещаются детекция объектов, скорость обработки и возможность практического применения. На их основе можно строить решения для подсчета объектов, промышленного контроля, систем безопасности и анализа изображений.
При этом выбор нейросети должен определяться не только показателями FPS на RTX 3090 и mAP@0.5. Важно учитывать конкретную задачу, качество данных, требования к задержке, доступную инфраструктуру, стоимость эксплуатации и процесс контроля качества модели.
Т1 ИИ помогает подбирать и адаптировать решения компьютерного зрения под прикладные задачи бизнеса — от подсчета объектов в ритейле до анализа изображений и видеопотоков.
Хотите узнать, как компьютерное зрение может помочь вашему бизнесу? Посмотрите решения Т1 ИИ или свяжитесь с экспертами — обсудим возможный сценарий применения.
Узнайте, как наши эксперты могут помочь именно вам
Оставьте заявку — наши эксперты свяжутся с вами и ответят на все вопросы