← Все статьи

YOLO: как нейросеть учится находить объекты на изображении

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

YOLO: как нейросеть учится находить объекты на изображении
Содержание

Классификатор смотрит на картинку и отвечает одним словом: «клапан». На технологической схеме этого мало. На одном листе одновременно насос, несколько клапанов, теплообменник, резервуар, датчики и подписи вроде P-101. Нужно знать что найдено, где оно лежит и насколько модель в этом уверена. Для такой постановки и существует семейство детекторов YOLO: один проход по изображению, на выходе набор объектов с рамками.

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

Ключевые выводы

YOLO — детектор, а не «понимание картинки». Она учится находить объекты заданных классов и ставить им рамку. Смысл схемы, текст на подписи и связь «насос → клапан» из одних рамок не следуют.

Одной модели YOLO не существует. Есть идея «посмотри один раз», семейство архитектур, конкретный файл весов и ваша модель после дообучения. Путать их — обещать заказчику чужой чекпоинт как готовый цех.

Своя модель почти всегда начинается с готовых весов. Случайная инициализация и огромный набор — запасной путь, не первый промышленный шаг.

Качество данных важнее размера сети. Крупная архитектура не компенсирует кривую разметку, редкий класс и утечку почти одинаковых листов между обучением и проверкой.

На схеме детектор, распознавание текста и линии решают разные вопросы. Их соединяют в контур. Языковую модель логичнее ставить на уже собранную структуру, а не вместо координат.

Почему одной метки на всё изображение мало

Классификация устроена коротко. Изображение проходит через свёрточную сеть, на выходе — один класс:

[ изображение ]
      ↓
     CNN
      ↓
    valve

Вопрос один: «что изображено?». Он честен, когда в кадре один объект и вам не нужны координаты. Рукописная цифра в уже вырезанной клетке — как раз такой случай, его мы разбирали отдельно: картинка → класс 7.

Реальный кадр задаёт три вопроса сразу: что найдено, где находится, насколько модель уверена. Ответ детектора — не строка, а запись:

{
  "class": "valve",
  "confidence": 0.96,
  "bbox": [120, 240, 180, 310]
}

bbox — ограничивающая рамка: прямоугольник вокруг объекта. Числа здесь — пиксели левого верхнего и правого нижнего угла или эквивалент «центр, ширина, высота». Смысл один: объект привязан к месту на листе.

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

Что такое YOLO и чем она не является

YOLO расшифровывается как You Only Look Once — «смотришь один раз». Идея: изображение проходит через модель, и та сразу выдаёт набор обнаруженных объектов, а не ищет их скользящим окном по всему кадру.

                 IMAGE
                   ↓
               YOLO model
                   ↓
     ┌─────────────┼─────────────┐
     ↓             ↓             ↓
   pump          valve          tank

Важно не склеить четыре разные вещи в одну «модель YOLO»:

  • идея и семейство архитектур — один проход, предсказание рамок и классов;
  • конкретная версия — ранние сетки и современные головы устроены по-разному;
  • файл весов — числа, которым сеть уже научилась;
  • готовая модель — веса, обученные на общем наборе вроде фотографий бытовых объектов;
  • ваша модель — те же стартовые веса после дообучения на ваших схемах.

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

Популярность семейства держится на сочетании, а не на магии. Оно быстрое на выводе. Качество на узкой задаче дотягивается дообучением. Разметка рамками проще полной маски. Готовые веса дают перенос признаков. Один и тот же контур умеет не только детекцию, но и, в отдельных сборках, сегментацию и ключевые точки. Для первого промышленного детектора это практичнее, чем собирать архитектуру с нуля.

Три постановки: класс, рамка и маска

Сравнение короткое, но от него зависит вся разметка.

Классификация: image → class. Одна метка, нет места.

Детекция: image → class + bbox + confidence. Несколько объектов, у каждого прямоугольник и оценка уверенности.

Сегментация: image → class + pixel mask. Класс назначается пикселям, а не прямоугольнику. Маска повторяет форму.

Для оборудования рамка обычно достаточна. Насос, клапан, резервуар — компактные символы:

┌────────────┐
│   P-101    │
└────────────┘

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

┌─────────────────────────────┐
│                             │
└─────────────────────────────┘

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

Как сеть видит кадр

Детектор — это свёрточная сеть с головой, которая превращает признаки в рамки. Первые слои замечают границы, линии, углы и простые формы. Глубокие слои собирают из них части объектов и характерные силуэты: окружность клапана, корпус насоса, контур резервуара. Это не «понимание стандарта P&ID». Это статистика форм, которой сеть научилась на вашей разметке.

Роли внутри современной YOLO удобно держать тремя словами.

Остов (backbone) достаёт признаки из изображения. Готовые веса полезны именно здесь: края и текстуры уже умеет почти любая сеть, обученная на фотографиях.

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

Голова детекции превращает карты признаков в предсказания: координаты, класс, уверенность. Её как раз и доучивают сильнее всего, когда домен новый, а остов уже «видит».

Что именно предсказывает детектор

Рамка задаётся четырьмя числами. Часто это центр, ширина и высота, иногда углы. В файле разметки YOLO они нормализованы: делятся на ширину и высоту картинки и лежат от 0 до 1. Так одна и та же метка переживает изменение размера кадра.

Класс — целое из вашего словаря:

0 = pump
1 = valve
2 = tank
3 = exchanger

Сеть не «знает слово pump». Она выдаёт распределение по индексам. Имя класса живёт в конфиге рядом с весами. Переставить строки словаря и не переобучить — значит молча переименовать насос в клапан.

Уверенность (confidence) — число, которым модель сопровождает рамку. Его используют как порог: ниже 0.25 отбросить, выше оставить. Это не калиброванная вероятность в статистическом смысле. 0.96 не означает «в 96 случаях из 100 здесь точно клапан», пока вы не проверили калибровку на своём тесте. Порог — рабочий рычаг точности и полноты, а не физическая истина.

Одинаковых классов на листе может быть много:

pump
pump
pump
valve
valve

Детектор как раз для этого. Классификатор на весь лист такой список не отдаст.

Как одна модель находит много объектов

Единый проход означает, что сеть не запускается отдельно на каждый возможный прямоугольник. Она смотрит на карты признаков и сразу предлагает много кандидатов: на разных масштабах и в разных местах кадра. Среди кандидатов большинство — фон. Их отрезают порогом уверенности.

Дальше остаётся практическая неприятность: на один клапан модель часто предлагает несколько перекрывающихся рамок.

        ┌───────────────┐
        │     valve     │
        └───────────────┘

   ┌──────────────┐
   │    valve     │
   └──────────────┘

Подавление немаксимумов (NMS, non-maximum suppression) оставляет рамку с наибольшей уверенностью и удаляет соседей, которые перекрывают её слишком сильно. «Слишком сильно» меряют пересечением.

Пересечение к объединению (IoU, intersection over union):

IoU = площадь пересечения / площадь объединения

Две почти одинаковые рамки дают IoU близкий к 1. Рамки, которые едва касаются, — близкий к 0. Порог NMS говорит, при каком перекрытии считать предсказания дублем одного объекта. Отдельный порог уверенности говорит, какие кандидаты вообще доходят до этого шага.

IoU нужен не только в постобработке. При оценке качества им же решают, совпала ли предсказанная рамка с эталонной. Класс верный, а рамка съехала на соседний символ — это не попадание, если пересечение ниже договорённого порога. Поэтому в отчёте нельзя писать голое «mAP 0.8»: нужно имя методики и пороги IoU.

Своя модель: готовые веса и дообучение

Свою YOLO не собирают из случайных слоёв в первый день проекта. Обычный путь такой:

готовые веса YOLO
       ↓
ваш датасет
       ↓
дообучение
       ↓
ваш детектор схем

Готовые веса — сеть, которая уже умеет выделять края, углы и грубые формы объектов на обычных фотографиях. Она не видела ваш стандарт оформления схем. Она видела мир достаточно, чтобы не учить «что такое линия» с нуля.

Перенос обучения (transfer learning) — адаптация этих навыков к новому домену. Аналогия простая: человек, который умеет читать чертежи другого завода, быстрее выучит ваши условные обозначения, чем человек, который впервые видит линию на бумаге. Веса остова — этот уже имеющийся навык. Дообучение двигает их к вашим символам.

Обучение с нуля выглядит иначе:

случайные веса
      ↓
большой набор
      ↓
долгое обучение

Оно оправдано, когда домен визуально далёк от фотографий, набор огромный, а готовые веса устойчиво мешают. Для первого детектора насосов и клапанов это почти всегда худший старт: дольше, дороже и легче не сойтись. Дообучение — не гарантия качества. Оно только даёт разумную начальную точку. Плохая разметка испортит и её.

Подробнее о том, когда дообучение вообще уместно как приём, а когда сначала нужно починить данные, — в материале про дообучение. Дисциплина набора, а не чекпоинта, — в инженерии датасетов.

Датасет: разметка, разрезы и ошибки как новые примеры

Набор для YOLO — это пары файлов:

images/
labels/

Картинка scheme-014.jpg и метка scheme-014.txt с тем же именем. В каждой строке метки один объект:

0 0.52 0.41 0.10 0.14

Первое число — индекс класса. Дальше центр по x, центр по y, ширина и высота, все от 0 до 1 относительно кадра. 0.52 0.41 — объект чуть правее и выше середины. 0.10 0.14 — он занимает около десятой ширины и седьмой высоты листа. Ошибка в индексе класса не видна глазом на рамке: прямоугольник верный, имя неправильное. Такие ошибки тихо портят точность.

Набор делят на три части. Обучение двигает веса. Проверка (validation) смотрит, не зазубрила ли сеть обучающие листы, и по ней выбирают пороги и момент остановки. Тест трогают редко: это независимая оценка перед разговором о качестве, а не ещё одна ручка для подбора. Самая частая утечка на схемах — положить почти одинаковые версии одного листа в обучение и в проверку. Сеть «узнаёт» лист, метрика врёт, на новом стандарте оформления всё разваливается. Режьте по документам и по источникам, не по случайным файлам из одной папки.

Универсального числа «нужно ровно 1000 картинок» нет. Важнее разнообразие, число объектов (на одном листе их десятки), сложность, качество рамок и то, похожи ли входы на будущий поток: скан, фото, экспорт из CAD, другой контраст. Баланс классов ломает редкие символы:

pump       5000
valve       800
tank        150

Сеть честно выучит насос и будет пропускать резервуар. Лечится это не лозунгом «возьмите модель больше», а дополнительными примерами редкого класса и честной метрикой по классам, а не одним средним.

Ошибки модели — источник следующих данных. Цикл короче любого спора об архитектуре:

набор → обучение → модель → ошибки → сложные примеры → набор+ → снова обучение

Сложный пример (hard example) — кадр, на котором текущая модель уже ошиблась: блик, нестандартный символ, плотный узел арматуры, чужой штамп. Его размечают и возвращают в набор. Это тот же приём, что в пилоте бланков: сомнительное поле не «доучивают лозунгом», а кладут в эталон.

Аугментация — искусственные искажения при обучении: масштаб, вырез, поворот, яркость, шум, размытие, перспектива, следы сжатия. Она полезна, когда повторяет реальный вход. Для схем она опасна, когда меняет смысл: отражение может перевернуть направление потока, сильный поворот — сделать допустимый символ недопустимым. Искажение должно быть таким, какое вы готовы увидеть в проде, а не «чтобы картинок стало больше».

Как проходит обучение и нужен ли GPU

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

image → прямой проход → предсказание → потери → обратное распространение → обновление весов

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

Эпоха — один проход по обучающему набору. Батч — пачка картинок, по которой считают один шаг обновления. Скорость обучения — размер шага. Слишком большой шаг разбрасывает веса, слишком маленький застревает. Переобучение видно на паре кривых: качество на обучении растёт, на проверке падает. Сеть запомнила листы, а не символы.

Графический процессор для обучения желателен: тот же дообучающий прогон занимает минуты или часы вместо суток. Для вывода картина другая. Один лист в секунду часто тянет обычный процессор. Видеокарта на выводе нужна при большом потоке, жёсткой задержке или тяжёлой модели. Обучение и эксплуатация — разные машины:

машина обучения
     ↓
файл весов / ONNX
     ↓
сервер вывода на CPU

Наличие видеокарты в эксперименте не означает видеокарту в контуре заказчика.

Как измерять качество и какие ошибки считать

Точность (precision): из всего, что модель нашла, какая доля была верной. Низкая точность — много ложных тревог.

Полнота (recall): из всего, что на листе было, какую долю модель нашла. Низкая полнота — пропуски.

Осторожная модель мало врёт и много пропускает. Агрессивная находит почти всё и засоряет кадр лишними рамками. Порог уверенности двигает вас по этой оси. Для схемы пропуск клапана и ложный клапан — разные деньги; порог выбирают по цене ошибки, не по красивому среднему.

AP (average precision) сжимает кривую точности и полноты по одному классу в одно число. mAP — среднее AP по классам. Оно зависит от порогов IoU и от того, как считают попадание. Сравнивать две модели можно только при одинаковой методике. Один класс с пятью примерами способен испортить или нарисовать среднее — смотрите таблицу по классам.

Типичные ошибки полезнее одной цифры:

  • ложная тревога — клапан там, где его нет;
  • пропуск — клапан есть, рамки нет;
  • ошибка класса — насос назван теплообменником, рамка при этом на месте;
  • ошибка локализации — класс верный, рамка съехала;
  • дубль — один объект двумя рамками, порог NMS не дожал.

Пропуски легко спрятать, если смотреть только точность. На схеме пропуск часто дороже лишней рамки: отсутствующий клапан не попадёт в граф.

Что сильнее архитектуры

Порядок влияния на первый релиз почти всегда такой:

  1. качество исходных изображений;
  2. качество рамок и индексов классов;
  3. разнообразие источников;
  4. честный разрез обучения, проверки и теста;
  5. возврат сложных ошибок в набор;
  6. скорость обучения, эпохи, пороги;
  7. размер и имя архитектуры.

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

YOLO на технологических схемах

На P&ID и близких чертежах детектору естественно отдать компактные символы: насос, клапан, резервуар, компрессор, теплообменник, фильтр, датчик, прибор, двигатель. Словарь должен быть таким, какой вы готовы размечать стабильно. Сто классов «на всякий случай» размазывают редкие символы и срывают согласование имён.

Текст — отдельное решение.

Подход А: детектор находит области текста, кроп уходит в распознавание (OCR / CRNN). Плюс — текст привязан к рамке, его проще сопоставить с соседним символом. Минус — вы размечаете ещё один класс и зависите от того, как детектор режет строку.

Подход Б: отдельная система сама ищет и читает текст. Плюс — не мешаете словари оборудования и букв. Минус — сопоставление «подпись P-101 принадлежит этому насосу» становится геометрической задачей уже после обоих контуров.

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

YOLO → где объект?
CRNN / OCR → что написано?
Сегментация → где линия?
Сборщик графа → что с чем соединено?
Языковая модель → что эта структура означает?

Специализированные модели здесь не соревнуются. Они закрывают разные вопросы. CRNN сильна на последовательности символов и слаба как искатель насоса. YOLO сильна как искатель насоса и не читает P-101. Современный OCR бывает и не CRNN — важен контракт «строка на кропе», не имя архитектуры.

Почему детектор не понимает схему

После удачного прогона у вас есть список:

P-101 — pump
V-101 — valve
E-101 — exchanger

Этого недостаточно, чтобы утверждать:

P-101 → V-101 → E-101

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

Языковую модель можно подключить двумя способами.

Первый — отдать ей картинку и попросить ответ. Быстрый прототип, удобный осмотр. Слабые места: полноту по всему листу трудно гарантировать, координаты плавают, связи на большом чертеже теряются, повтор того же листа не обязан дать тот же граф.

Второй — сначала зрение и геометрия, потом структура, потом модель:

изображение → зрение → структура → языковая модель

Так проще валидировать, применять инженерные правила и не путать «модель красиво рассказала» с «все клапаны найдены». Языковая модель здесь интерпретирует граф: ищет аналогии, объясняет контур, отвечает по базе знаний. Она не рисует пропущенную рамку.

Контур из нескольких моделей

Практический каркас, который стоит нарисовать до выбора весов:

                    СХЕМА
                      │
                      ▼
                предобработка
                      │
         ┌────────────┴────────────┐
         ▼                         ▼
   детекция символов          текст
         │                         │
         ▼                         ▼
    оборудование              чтение строки
         │                         │
         └────────────┬────────────┘
                      ▼
              линии и геометрия
                      │
                      ▼
                 логика связей
                      │
                      ▼
                    ГРАФ
                      │
                      ▼
              правила и языковая модель

Предобработка — поворот скана, обрезка полей, единый масштаб. Без неё детектор учится на кривых фотографиях вместо символов. Дальше два параллельных зрения: символы и текст. Потом линии. Потом правила соединения: кто касается какой линии, какая подпись ближе к какому символу (P-101 → насос, V-101 → клапан). Граф — первый продукт, который можно тестировать без разговора о «интеллекте». Языковая модель и поиск по знаниям — слой сверху.

Дорожная карта по этапам, а не одним релизом:

1. Детектор оборудования
2. Чтение обозначений
3. Линии
4. Геометрия соединений
5. Граф
6. Инженерные проверки
7. Интерпретация и поиск знаний

Каждый этап имеет свой тест. Нельзя закрыть этап 1 метрикой этапа 7.

Мини-проект, вывод и эксплуатация

Короткий учебный детектор собирается так. Сто–триста изображений. Три–пять классов: для первой пробы хоть pump, valve, tank, хоть бытовые объекты, если промышленных сканов ещё нет. Рамки. Разрез без утечки похожих кадров. Готовые веса. Дообучение. Точность, полнота, mAP и обязательный просмотр ошибок. Сложные кадры обратно в набор. Повтор.

Это протокол, не отчёт о прогоне. Имеет смысл заранее запланировать несколько заходов и смотреть не одну цифру: базовый прогон, прогон с осторожной аугментацией, прогон со сложными примерами, прогон с расширенным набором, отдельная настройка порогов уже после того, как веса зафиксированы. Пороги не обучают сеть заново — они выбирают рабочую точку точности и полноты.

После обучения остаются веса. Файл в формате обучения ещё не есть эксплуатация. Дальше экспорт под конкретный рантайм: исходный формат, ONNX, при необходимости ускоритель вроде TensorRT. Формат выбирают по тому, где модель будет жить, а не по моде.

Вывод на одном кадре:

изображение
 ↓
размер и предобработка
 ↓
детектор
 ↓
отсев по уверенности
 ↓
подавление дублей
 ↓
JSON
{
  "objects": [
    {
      "class": "pump",
      "confidence": 0.97,
      "bbox": [120, 200, 240, 320]
    }
  ]
}

Эксплуатация — это задержка, пропускная способность, память, размер файла, контейнер, версия весов и мониторинг ошибок на живых листах. Фраза «на тесте было 97%» не описывает ни один из этих пунктов. После релиза цикл тот же, что у набора: живые ошибки → разметка → новая версия данных → обучение → оценка → выпуск. Модель не «готова навсегда» в момент первого файла весов.

Частые ошибки

Сразу берут самую большую модель и не успевают разметить редкий класс.

Карт мало и все из одного экспортёра. На чужом штампе детектор слепнет.

Рамки кривые, индексы классов перепутаны, один символ размечен по-разному у двух людей.

Почти одинаковые листы попали и в обучение, и в проверку.

Смотрят один mAP и не открывают пропуски.

Пытаются одной YOLO и найти насос, и прочитать подпись, и восстановить граф.

Считают, что дообучение само по себе делает модель хорошей.

Игнорируют дубли и пороги, а потом спорят о качестве весов.

Частые вопросы

YOLO — это одна конкретная нейросеть?

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

Нужно ли писать сеть с нуля?

Для первого детектора оборудования — нет. Берут готовые веса и дообучают на своих рамках. Обучение со случайного старта имеет смысл позже, если измеренный потолок дообучения упёрся в чужой домен, а набор уже большой.

Сколько картинок нужно?

Заранее честного числа нет. Смотрят число объектов по классам, разнообразие источников и долю ошибок на проверке. Тысяча почти одинаковых сканов хуже двухсот разных. Редкий класс в десятки примеров важнее ещё одной тысячи насосов.

Уверенность 0.99 значит, что объект точно есть?

Нет, пока вы не откалибровали оценку на своём тесте. Это счёт, по которому режут список. Рабочую точку выбирают по цене пропуска и ложной тревоги.

Хватит ли процессора без видеокарты?

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

Может ли YOLO прочитать надпись P-101?

Как детектор — нет. Она может найти область текста. Строку читает отдельная модель распознавания. Связка «рамка символа + рамка текста + близость на листе» уже собирает соответствие «P-101 — этот насос».

Зачем сегментация, если рамки уже есть?

Рамка плохо описывает длинную ломаную трубу. Если продукт обязан знать соединения, линию лучше размечать маской. Если продукт только перечисляет оборудование, маска пока не нужна.

Куда ставить языковую модель?

После графа. На сырой картинке она удобна для прототипа и слаба как гарантия полноты. На структуре она объясняет и ищет, а пропущенный клапан остаётся проблемой детектора, которую видно в тесте.

Что почитать дальше

Рядом на сайте уже есть контуры, из которых этот детектор вырастает, а не заменяет их.

Следующий практический шаг этой линии — отдельный разбор обучения на P&ID: словарь классов, инструмент разметки, конфиг запуска, матрица ошибок и экспорт в ONNX. Его имеет смысл писать уже с измеренным прогоном, а не с планом прогона.

Заключение

YOLO не «понимает картинку». Она учится находить объекты выбранных классов и отмечать их положение. На технологической схеме этого достаточно, чтобы снять слой оборудования, и недостаточно, чтобы знать, что с чем соединено и что написано рядом.

Свою модель начинают с готовых весов, узкого словаря и честной разметки. Качество держат полнотой и пропусками, а не одним средним баллом. Видеокарта ускоряет обучение и не обязана стоять рядом с каждым сервером вывода.

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

Комментарии

Загрузка комментариев…