Привет, меня зовут Игорь Бархатов, я руководитель практики компьютерного зрения в Т1. В этой статье разберу, как алгоритмы компьютерного зрения находят объекты на изображении, и покажу это на практическом примере подсчета яблок с помощью YOLO-E v11.
Поговорим о трех базовых задачах компьютерного зрения — классификации, детекции и сегментации, сравним двухэтапный и одноэтапный подходы к обнаружению объектов, а затем разберем устройство YOLO-E v11 и пример запуска модели на Python.

Что такое компьютерное зрение

Компьютерное зрение позволяет алгоритмам анализировать изображения и видео и извлекать из них полезную информацию. В отличие от обычной обработки изображения, где заранее задаются фиксированные правила, нейросеть ищет закономерности в визуальных данных и на их основе определяет объекты, признаки или события.
Упрощенно процесс выглядит так:
T1 ИИ
На практике результатом может быть подпись к изображению, координаты найденного объекта, пиксельная маска или событие в информационной системе. Например, модель может определить, что на фотографии есть яблоки, найти каждое из них и посчитать их количество.
В зависимости от задачи — классификации, детекции или сегментации — компьютерное зрение использует разные способы анализа изображения. Рассмотрим, чем они отличаются друг от друга.

Классификация изображений

Классификация отвечает на вопрос: что изображено на картинке? Модель получает изображение и относит его к одному или нескольким классам. Например, она может определить, что на снимке есть яблоко, автомобиль или человек.
При этом классификация сама по себе не показывает, где находится объект и сколько экземпляров одного класса присутствует. Если на изображении пять яблок, модель может вернуть класс apple, но необязательно различит все пять объектов.

Детекция объектов

Детекция решает более сложную задачу: определяет, какие объекты находятся на изображении и где именно они расположены. Для каждого найденного объекта модель обычно возвращает:
  • класс объекта;
  • координаты ограничивающей рамки — bounding box;
  • степень уверенности предсказания.
На изображении с яблоками детектор построит отдельную рамку вокруг каждого экземпляра. Затем количество рамок класса apple можно использовать для подсчета объектов. Именно такой подход применяется в практическом примере этой статьи.

Сегментация

Сегментация также определяет положение объекта, но делает это точнее. Вместо прямоугольной рамки модель выделяет объект по пикселям и формирует его маску. Разницу между задачами можно описать так:
  • классификация отвечает на вопрос: «Что на изображении?»;
  • детекция — «Что и где находится?»;
  • сегментация — «Какие пиксели принадлежат объекту?».
Сегментация дает наиболее точное представление о форме и границах объекта, но требует больше вычислительных ресурсов и не всегда необходима на практике. Во многих прикладных задачах важно прежде всего понять, какие объекты находятся в кадре и где именно они расположены. Наша задача — подсчет яблок, поэтому далее рассмотрим именно детекцию объектов.

Как работает детекция объектов

Любая модель детекции проходит несколько этапов. Если описать процесс упрощенно, то изображение поступает на вход нейросети, затем алгоритм:
  1. извлекает признаки — контуры, текстуры, формы и их сочетания;
  2. находит потенциальные объекты;
  3. определяет классы найденных объектов;
  4. рассчитывает координаты bounding box;
  5. отбрасывает слабые или дублирующиеся результаты;
  6. возвращает финальный список объектов.
Модель может одновременно анализировать несколько объектов, в том числе одного класса. Для каждого результата нейросеть указывает, что именно найдено, где находится объект и насколько она уверена в предсказании.
При этом двухэтапные и одноэтапные модели выполняют эти операции по-разному. Первые сначала определяют области изображения, в которых могут находиться объекты, а затем классифицируют их; вторые делают все предсказания за один проход.

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 с другими моделями.
T1 ИИ
Нужно учитывать, что сравнивать модели корректно только при одинаковом датасете, разрешении и методике измерения. 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 формирует итоговые предсказания модели. Для каждого результата он определяет:
  1. координаты объекта;
  2. его класс;
  3. уверенность в предсказании.
Именно на этом этапе признаки превращаются в понятный прикладной результат, например в рамку вокруг яблока с подписью apple и значением confidence score.
- Head (Anchor-Free Detection)
В anchor-free подходе модель не использует заранее заданный набор anchor boxes — шаблонных рамок разных размеров и пропорций. Вместо этого она напрямую предсказывает положение объекта или его центр, а затем восстанавливает координаты рамки.
Такой подход может упростить обработку объектов разных форм и снизить зависимость от ручного подбора anchor boxes. Но это не означает, что anchor-free архитектура однозначно лучше всех альтернатив: результат зависит от данных, настроек обучения и конкретной задачи.

Как YOLO-E v11 находит яблоки

Рассмотрим прикладной сценарий: на изображении нужно найти яблоки и подсчитать их количество. Для модели это не отдельная математическая операция, а последовательность действий:
  1. загрузить изображение;
  2. передать его модели;
  3. задать класс apple;
  4. получить bounding box для каждого найденного объекта;
  5. отфильтровать слабые предсказания по порогу уверенности;
  6. посчитать объекты одного класса;
  7. визуализировать результат. Если модель обнаружила 38 рамок с классом apple, итогом обработки станет значение 38. В тестовом примере модель обнаружила 38 объектов класса apple. Это результат для конкретного изображения и выбранных настроек, а не универсальная точность алгоритма.
T1 ИИ
Важно разделять два показателя: количество найденных объектов и качество подсчета. Если на фотографии 38 яблок, но модель обнаружила 35 или ошибочно добавила лишние рамки, простой подсчет результатов будет некорректным. Поэтому для прикладной системы нужно проверять precision, recall и качество на репрезентативном наборе данных.
T1 ИИ

Пример детекции объектов

Ниже приведен пример логики для 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))
# Чтение изображения
image = cv2.imread("in.jpg")
# Запуск инференса
results = model.predict(image)
# Визуализация результата
output = results[0].plot()
# Сохранение изображения
cv2.imwrite("out.jpg", output)
В этом примере:
  • YOLOE загружает модель и ее веса;
  • classes задает искомый класс;
  • get_text_pe формирует текстовое представление класса;
  • set_classes передает модели список объектов для поиска;
  • cv2.imread считывает входное изображение;
  • predict запускает инференс;
  • plot наносит найденные объекты на изображение;
  • imwrite сохраняет результат в файл.
Фактический импорт, название файла весов и доступные методы нужно сверять с конкретной версией библиотеки. Для воспроизводимого примера в статье следует указать версии Python, пакета и модели.

Как посчитать найденные объекты

Количество объектов можно получить из результатов модели, а не только определить визуально по рамкам.
Общая логика выглядит так:
python
detections = results[0]
count = len(detections)
print(f"Найдено объектов: {count}")
Однако конкретный способ подсчета зависит от структуры объекта, который возвращает используемая библиотека. Если результат содержит несколько классов, нужно дополнительно отфильтровать только детекции класса apple. Также стоит учитывать порог confidence: слишком низкий порог увеличит число ложных срабатываний, а слишком высокий может привести к пропуску объектов.

Преимущества и ограничения YOLO-E v11

YOLO-E v11 может быть полезна в задачах, где требуется быстро находить объекты на изображении или в видеопотоке. Но окончательный выбор нужно делать после проверки модели на данных и инфраструктуре проекта.
Возможные преимущества:
  • высокая скорость инференса;
  • возможность обработки изображений и видео;
  • масштабирование под разные вычислительные ресурсы;
  • поддержка детекции и, если подтверждено для конкретной конфигурации, сегментации;
  • использование в прикладных сценариях;
  • возможность задавать собственные классы объектов;
  • применение текстовых подсказок в поддерживаемых режимах YOLO-E.
Сценарий с текстовыми классами особенно удобен для быстрого прототипирования: разработчик может задать объект, который нужно искать, без немедленного полного переобучения модели. Однако для промышленной эксплуатации это не отменяет тестирование на данных заказчика и проверку стабильности результатов.
Ограничения:
  • качество зависит от обучающих данных;
  • мелкие и частично закрытые объекты распознаются сложнее;
  • результаты зависят от освещения и ракурса;
  • высокие разрешения требуют больше вычислительных ресурсов;
  • заявленные показатели нельзя переносить на любую инфраструктуру;
  • модель требует тестирования перед промышленным использованием;
  • ложные срабатывания и пропуски нужно учитывать в логике приложения;
  • открытый словарь классов не гарантирует одинаковое качество для всех объектов.

Где применяется YOLO-E v11 и детекция объектов

Детекция объектов подходит для задач, в которых системе нужно находить конкретные предметы, определять их координаты и реагировать на появление или изменение объектов в кадре.

Промышленность

На производстве компьютерное зрение используют для поиска дефектов, контроля операций, проверки комплектности и отслеживания объектов на конвейере. Модель может находить повреждения, отсутствие детали или нарушение положения изделия.
Для таких сценариев особенно важны качество разметки и стабильность условий съемки. Если меняются освещение, угол обзора или тип продукции, модель необходимо проверять на новых данных.
T1 ИИ

Безопасность

В системах безопасности детекция помогает обнаруживать объекты и события: людей, транспорт, средства защиты, оставленные предметы или появление объекта в запрещенной зоне.
Здесь важно заранее определить, что именно считается событием, какой уровень уверенности допустим и что должно происходить после обнаружения. Модель сама по себе только формирует предсказание, а прикладная система должна передать его оператору или в контур реагирования.
T1 ИИ

Автономные автомобили

Компьютерное зрение в беспилотном транспорте помогает воспринимать окружающую среду. Модель может обнаруживать автомобили, пешеходов, велосипедистов, дорожные знаки и другие элементы сцены.
В подобных системах важны малая задержка и устойчивость к разным условиям: ночной съемке, дождю, снегу, бликам, перекрытиям и резким изменениям освещения.
T1 ИИ

Как оценивать модель 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 ИИ или свяжитесь с экспертами — обсудим возможный сценарий применения.