По сравнению с распознаванием изображений технология генерации изображений теперь более привлекательна. Однако, если вы хотите заняться технологией AIGC, в первую очередь не рекомендуется обращаться к тем зрелым веб-сайтам с интерфейсом с закрытым исходным кодом, которые упакованы и предоставлены вам. . Вы будете использовать других. Можете ли вы назвать себя AIGC, создав несколько изображений из своей модели? Это настоящий движитель, и он самый дешевый. Технология генерации изображений более развита и основана на некоторых базовых технологиях обработки изображений. Изучая самые базовые технологии обработки изображений, вы можете понять, что такое генерация изображений. В последнее время я прочитал много статей и блогов об обнаружении целей, а также изучаю технологию AIGC: от базовых функций, разработанных вручную, до современных моделей глубокого обучения, можно сказать, что история развития этих двух технологий относительно схожа.
В этой статье мы рассмотрим историю развития алгоритмов обнаружения объектов, от ранних традиционных методов, основанных на искусственно созданных функциях, до развития технологий глубокого обучения и великих достижений обнаружения объектов в различных областях. Мы рассмотрим этот долгий и увлекательный путь, обсудив важные алгоритмы и методы на каждом этапе, а также их ценность в практических приложениях.
Обнаружение цели делает не что иное, как две вещи: первая — определение местоположения цели на изображении или видео и ее категории. Второй — определить местоположение и категории всех целей на изображениях с несколькими целями. Итак, чтобы первая проблема была решена, мы можем понять, что именно нужно сделать.
Прежде всего, мы знаем, что изображения состоят из бесчисленного количества пикселей, а видео также можно понимать как последовательное формирование изображений в каждом кадре, то есть соотношение точек с линиями и линий с поверхностями. Проблема позиционирования и классификации представляет собой задачу перехода от классификации к обнаружению цели, от простой задачи классификации изображений к указанию местоположения цели, к категории и местонахождению нескольких целей.
Что касается проблемы классификации, мы знаем, что, пока существуют соответствующие функции, обнаруженные цели имеют некоторые общие характеристики в разных сценах. Чтобы уточнить, форма комбинации пикселей в определенной степени поддается классификации. Мы можем использовать эти функции классификации. . Что касается проблемы позиционирования, модель должна вернуть внешний прямоугольный блок, в котором расположена цель, то есть четверка (x, y, w, h) цели. Объединив их, мы можем понять это как результат одновременного использования классификации и регрессии для получения классификации и позиционирования, за исключением того, что регрессия представляет собой проблему позиционирования и возвращает четыре значения.
Для обнаружения целей необходимо получить положения и категории всех целей на изображении. Обычно мы думаем об использовании метода скользящего окна для последовательного обнаружения изображений, но нам нужно спроектировать скользящую рамку того размера, чтобы решить проблему и как. сколько раз в среднем нам нужно его обнаружить? Очевидно, что этот расчет очень велик и не соответствует ожидаемым результатам. Есть ли способ быстро обнаружить цель?
Многие эксперты в этой области разработали здесь множество алгоритмов. Более известным методом является метод выборочного поиска, который может выбирать потенциальные кадры-кандидаты объектов (области интереса, рентабельность инвестиций) из изображения. При использовании метода получения рентабельности окончательные результаты обнаружения целей могут быть получены путем классификации и объединения.
Логику алгоритма можно разделить на следующие этапы. Проблемы с обнаружением целей с использованием методов скользящего окна, например: разные размеры, размеры и положения скользящего окна генерируют очень большой объем вычислений.
Начало традиционных методов (1990-е - начало 2000-х годов):
Методы машинного обучения (2000-е – начало 2010-х годов):
Инновации в области глубокого обучения (с 2010-х годов по настоящее время):
Детализированная и мультимодальная разработка обнаружения объектов:
Обнаружение целей в режиме реального времени и на конечной стороне:
Основные алгоритмы обнаружения целей условно делятся на две категории: одноэтапные и двухэтапные.,бывшийОдноступенчатый детектор объектов,Этот тип метода позволяет одновременно позиционировать и классифицировать цель.,Обычно плотные раздвижные окна или анкерные коробки (анкерные коробка) для обнаружения. ЙОЛО(Ты Only Look Один раз) и SSD (одиночный Shot Multibox Detector) — представительный однокаскадный детектор.
последнийДвухступенчатый детектор объектов,Этот тип метода сначала генерирует области-кандидаты целевой цели.,Затем каждый регион классифицируется и настраивается для получения окончательных результатов обнаружения.。Классические методы включают в себяRCNNряд(нравитьсяFast R-CNN、Faster Р-CNN). Такие методы обычно имеют более высокую точность, но могут принести в жертву некоторую скорость. Они обычно способны точно обнаруживать и идентифицировать цели. Выбор подходящего двухступенчатого детектора целей зависит от конкретного сценария применения и требований к производительности.
Можно сказать, что R-CNN является революционным алгоритмом обнаружения целей. Идеи последующих двухступенчатых детекторов целей в основном основаны на принципах алгоритма R-CNN. Процесс обучения R-CNN можно разделить на четыре этапа. В качестве примера мы возьмем обучение R-CNN на наборе данных ImageNet:
Во многих статьях, таких как объектность, выборочный поиск, предложения объектов, не зависящих от категории, и т. д., описывается этот алгоритм. R-CNN использует метод выборочного поиска для выбора 2000 потенциальных кадров-кандидатов ROI (область интереса).
ROI означает «Область интереса», то есть область интереса. ROI обычно относится к области изображения, которая, как считается, может содержать целевой объект. В двухэтапном детекторе объектов (например, в серии RCNN) потенциальные области интереса сначала генерируются через сеть предложений регионов (RPN). Эти регионы-кандидаты будут использоваться для последующей классификации и точной настройки местоположения. Выбор области интереса является ключевым шагом в процессе обнаружения цели. Он может помочь алгоритму сосредоточиться на области, которая может содержать цель, тем самым повышая эффективность и точность обнаружения.
Извлечение признаков можно выполнить с помощью AlexNet, VGGNet, GoogLeNet и т. д. Чтобы получить лучший экстрактор функций, он будет скорректирован на основе предварительно обученной модели ImageNet. Единственное изменение — изменить выходные данные 1000 категорий в ImageNet на выходные данные (C + 1), где C — фактическая потребность. количество прогнозируемых категорий, 1 — фоновая категория. Новые функции обучаются с использованием стохастического градиентного спуска, который аналогичен методу обучения обычных нейронных сетей, представленному в предыдущих главах.
упомянутое обучение,Должны быть положительные образцы и отрицательные образцы.,Вот индикатор, используемый для измерения перекрытия двух прямоугольников: пересечение объединения на самом деле является пересечением площадей двух прямоугольников, разделенных объединением.,Обычно,Когда долговая расписка>=0.5час,Можно считать, что два прямоугольника в основном пересекаются.,Итак, в этой задаче,Предположим, что в двух прямоугольных ящиках,1 прямоугольник представляет рентабельность инвестиций,Другой представляет собой настоящую прямоугольную коробку.,Итак, когда окупаемость инвестиций и долговая расписка настоящей прямоугольной коробки>=0.5час则认为да正样本,Остальные образцы отрицательные.
Следует отметить, что необходимо отбирать отрицательные выборки, поскольку слишком малое количество выборок в обучающих данных приведет к квартальному дисбалансу положительных и отрицательных выборок. В конечном итоге на этом этапе получается экстрактор признаков сверточной нейронной сети, признаком которого является 4096-мерный вектор признаков.
Инициатор R-CNN провел эксперимент по выбору оптимального порога долговой расписки и, наконец, выбрал прямоугольный прямоугольник с истинным значением в качестве положительного образца. Существуют правила выбора положительных и отрицательных образцов. И Fast R-CNN, и Faster R-CNN выбирают положительные и отрицательные образцы в зависимости от размера долговой расписки.
Обучите модель регрессии для каждого класса, чтобы точно настроить отклонение между рентабельностью инвестиций и положением и размером реального прямоугольного блока:
Метод расчета индикатора IOU:
def calculate_iou(box1, box2):
# Формат box1 и box2: (xmin, ymin, xmax, ymax)
# Вычислить диапазон координат пересечения
x1 = max(box1[0], box2[0])
y1 = max(box1[1], box2[1])
x2 = min(box1[2], box2[2])
y2 = min(box1[3], box2[3])
# Вычислить площадь пересечения
intersection_area = max(0, x2 - x1 + 1) * max(0, y2 - y1 + 1)
# Вычислить площадь двух ограничивающих рамок
area_box1 = (box1[2] - box1[0] + 1) * (box1[3] - box1[1] + 1)
area_box2 = (box2[2] - box2[0] + 1) * (box2[3] - box2[1] + 1)
# Вычислить площадь союза
union_area = area_box1 + area_box2 - intersection_area
# Рассчитать стоимость долговой расписки
iou = intersection_area / union_area
return iou
Стадию прогнозирования можно разделить на:
Все еще видно, что у R-CNN есть много проблем. Например, обучение в соответствии с описанным выше процессом займет много времени.
Быстрый R-CNN, предложенный Фиршиком и др. в 2015 году, который очень умно решает несколько основных проблем RCNN.
1) Непосредственно введите все изображение и ROI в полностью сверточную CNN, чтобы получить векторный слой и ROI, соответствующий функциональному слою (информация об ROI векторного слоя может быть получена из его геометрического положения плюс формулы координат свертки).
2) Подобно R-CNN, чтобы обеспечить равномерное обучение ROI разных размеров, Fast R-CNN настраивает каждую область-кандидат на указанное M * N с помощью метода объединения. В это время скорректированный векторный слой будет ROI. служит обучающими данными для классификатора. В отличие от R-CNN, задачи классификации и регрессии объединяются для обучения, таким образом каскадируя весь процесс. Диаграмма объединения Fast R-CNN показана на рисунке 9-11. То есть все изображение сначала обрабатывается с помощью сверточной нейронной сети, а затем позиция, соответствующая рентабельности инвестиций, находится на слое объектов и извлекается, а затем извлекается. полученная рентабельность инвестиций объединяется (здесь существует множество методов объединения). После объединения все 2000 обучающих данных M*N проходят через полностью связанный слой и две головки соответственно: классификацию softmax и регрессию L2. Окончательная функция потерь представляет собой взвешенную сумму функций потерь классификации и регрессии. Таким образом, можно добиться непрерывного обучения.
Быстрый R-CNN значительно повышает скорость обучения и прогнозирования обнаружения целей, как показано на рисунке 9-12. С картинки:
Мы видим, что Fast R-CNN сокращает время обучения с 84 часов R-CNN до 8,75 часов, а среднее общее время прогнозирования каждого изображения сокращается с 49 секунд до 2,3 секунды. С картинки:
Мы также можем видеть, что из 2,3 секунды, прогнозируемых Fast R-CNN, реальный процесс прогнозирования составляет всего 0,32 секунды, в то время как предложение региона занимает подавляющее большинство времени.
Поскольку в серии алгоритмов R-CNN необходимо получить большое количество предложений, но между предложениями существует большое перекрытие, это потребует много повторной работы. YOLO [5] меняет идею прогнозирования на основе предложений, делит входное изображение на небольшие сетки S*S, делает прогнозы в каждой маленькой сетке и, наконец, объединяет результаты.
Шаги и принципы:
YOLOv2 (Darknet-19) и YOLOv3 — это усовершенствованные версии серии YOLO, вносящие некоторые важные улучшения:
В целом, серия алгоритмов YOLO достигает цели обнаружения целей в реальном времени путем преобразования задачи обнаружения целей в одно прямое распространение. Благодаря обновлениям версий и усовершенствованию алгоритмов серия YOLO продолжает совершать прорывы в производительности и скорости, становясь одним из важных направлений исследований в области обнаружения целей.
Развитие технологии обнаружения целей неотделимо от неустанных усилий и инноваций бесчисленных исследователей, а также от развития аппаратных технологий и использования большого количества наборов аннотированных данных.
Это все по этому вопросу. Меня зовут фанат. Если у вас есть вопросы, оставьте сообщение для обсуждения. Увидимся в следующем выпуске.