МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Алгоритмы классификации изображений в компьютерном зрении»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 6
- 8
- 11
1. Компьютерное зрение: задачи и история
Компьютерное зрение начинается там, где заканчивается простая работа с пикселями. Это междисциплинарная область на стыке математики, физики и программирования, которая занимается извлечением осмысленной информации из изображений и видео. Цель здесь не «увидеть» картинку, а понять её содержание: распознать объект, оценить расстояние до него или предсказать его движение. Человеческий глаз обрабатывает визуальные данные мгновенно, а компьютер вынужден превращать двумерный массив чисел в абстрактные категории. Именно этот процесс и составляет ядро дисциплины.
Спектр задач в этой области широк, но его можно свести к нескольким базовым операциям. Классификация отвечает на вопрос «что изображено на картинке?». Детекция добавляет к ответу координаты: «где именно находится объект?». Сегментация идёт ещё дальше, выделяя каждый пиксель изображения и относя его к определённому классу, будь то дорога, пешеход или небо. Есть и более специализированные направления, например, восстановление трёхмерной структуры сцены по двумерным снимкам или отслеживание перемещения объектов в видеопотоке. Все они опираются на фундамент, который закладывает классификация. Прежде чем искать объект на изображении, алгоритм должен уметь уверенно отличать его от фона и других сущностей. Поэтому в данной работе акцент сделан именно на классификации как на ключевом звене всей цепочки визуального анализа.
Исторический путь компьютерного зрения парадоксален: первые шаги были сделаны задолго до появления мощных процессоров. В 1960-х годах Лоуренс Робертс в своей диссертации в Массачусетском технологическом институте описал алгоритмы, которые могли выделять простые геометрические фигуры из кубических блоков. Это была эпоха геометрического подхода, когда изображение воспринималось как проекция трёхмерного
мира, а главной задачей было восстановить её форму. К 1970-м годам Дэвид Марр предложил теорию зрительного восприятия, разделив процесс на стадии: от первичной карты краёв до полного трёхмерного описания сцены. Его работы заложили концептуальный каркас, но на практике методы оставались хрупкими и зависели от ручной настройки.
Прорыв начался с осознания того, что правила не обязательно писать вручную. Вместо того чтобы вручную задавать, как выглядит «край» или «угол», исследователи обратились к статистике. Уже в 1990-х годах появились методы, которые автоматически извлекали характерные признаки из набора данных. Например, алгоритм Scale-Invariant Feature Transform (SIFT), разработанный Дэвидом Лоу в 1999 году, позволял находить стабильные точки на изображении, устойчивые к изменению масштаба и освещения. Это была уже не просто обработка сигнала, а полноценное машинное обучение: компьютер сам определял, какие параметры важны для решения задачи.
Переломный момент наступил в 2012 году, когда команда Джеффри Хинтона представила сеть AlexNet на конкурсе ImageNet. Ошибка классификации упала с 26% до 15% за один год, что стало шоком для научного сообщества. Однако этот успех был бы невозможен без двух факторов. Первый: накопленные за десятилетия теоретические основы, от перцептрона Розенблатта 1957 года до алгоритма обратного распространения ошибки. Второй: взрывной рост вычислительных мощностей, в первую очередь графических процессоров, способных выполнять миллиарды операций в секунду.
Сегодня классификация изображений воспринимается как рутинная операция, но именно она стала катализатором развития всей области. Без надёжного решения этой задачи невозможно представить современные системы автопилотирования, которые за доли секунды должны отличить дорожный знак от рекламного щита. Невозможна и медицинская диагностика, где алгоритмы помогают находить патологии
на рентгеновских снимках. Каждое такое приложение начинается с простого вопроса: «Что это?». Ответ на него определяет, как будут строиться все остальные, более сложные этапы визуального анализа.
2. Традиционные методы классификации изображений
До появления глубокого обучения классификация изображений строилась по единой схеме, которую сейчас называют традиционным pipeline. Конвейер состоял из трех последовательных этапов: предобработка, извлечение признаков и работа классификатора. Предобработка сводилась к нормализации размера, коррекции освещения и шумоподавлению. Затем наступал самый ответственный шаг: изображение превращалось в набор числовых дескрипторов, которые должны были отражать его суть. Инженеры вручную проектировали эти признаки, пытаясь угадать, какие именно характеристики помогут алгоритму разделить классы.
Самыми известными ручными признаками стали HOG и SIFT. Гистограмма направленных градиентов (HOG) описывает распределение направлений перепадов яркости по локальным областям. Метод SIFT, разработанный Дэвидом Лоу в 1999 году, выделяет ключевые точки, инвариантные к масштабу и повороту. Для задач, где важна цветовая информация, использовали цветовые гистограммы: они показывают, сколько пикселей каждого оттенка присутствует в кадре. После векторизации изображения признаки подавались в классический алгоритм машинного обучения. Чаще всего применялись метод опорных векторов (SVM) и метод k ближайших соседей (k-NN). SVM строит разделяющую гиперплоскость между классами, максимизируя зазор между ними. k-NN работает проще: объект относится к тому классу, чьи представители доминируют среди его ближайших соседей в пространстве признаков.
Классический пример такого подхода, задача распознавания рукописных цифр на датасете MNIST. Он содержит 70 тысяч изображений цифр размером 28 на 28 пикселей. В одном из типовых экспериментов изображение делилось на блоки, для каждого вычислялся HOG-дескриптор. Полученный вектор признаков подавался в SVM с радиальной базисной функцией. Такая связка достигала точности около 98-99 процентов на тестовой
выборке. Для середины 2000-х это был впечатляющий результат, который долгое время считался эталонным.
Однако у традиционных методов обнаружились фундаментальные ограничения. Главная проблема заключалась в ручной разработке признаков: исследователь должен был обладать глубокой экспертизой в области, чтобы спроектировать удачные дескрипторы. Подбор параметров HOG или SIFT часто превращался в итеративный процесс проб и ошибок. Признаки, хорошо работавшие на одном датасете, часто теряли эффективность на другом. Низкая обобщающая способность проявлялась при переносе модели на изображения с другим освещением, ракурсом или фоном: точность резко падала, и требовалось заново настраивать весь конвейер.
Сравнение с глубинными подходами наглядно демонстрирует масштаб разрыва. На том же MNIST сверточные сети, обученные с нуля, достигают точности 99,7 процента и выше, что почти полностью исключает ошибки. Более того, CNN справляются с задачами, которые традиционные методы просто не в состоянии решить: распознавание объектов в естественных сценах, где фон хаотичен, а объекты сильно варьируются. Сверточные сети автоматически извлекают иерархию признаков: от простых ребер к сложным семантическим структурам. Этот процесс не требует вмешательства человека. В итоге ручная инженерия признаков, бывшая основой компьютерного зрения два десятилетия назад, уступила место обучаемым представлениям, которые вытеснили классический pipeline из большинства практических приложений.
3. Глубокое обучение и сверточные нейросети
Традиционный подход к распознаванию изображений строился на ручной работе. Исследователю нужно было самому понять, какие признаки отличают кошку от собаки, и описать их на языке математики. Сверточные нейронные сети (CNN) изменили это правило. Они извлекают признаки самостоятельно и сразу интерпретируют их, работая напрямую с сырыми пикселями.
Идея CNN заключается в построении иерархии абстракций. Первые слои улавливают простые вещи: ребра, градиенты, переходы цвета. На следующем уровне из этих примитивов складываются формы, круги, углы или текстуры. Глубже сеть начинает распознавать целые объекты: глаз, колесо, шерсть. Такая автоматическая структура, идущая от локального к глобальному, оказалась очень эффективной для визуальных данных.
Основу архитектуры составляет сверточный слой. Это набор небольших фильтров (обычно 3x3 или 5x5 пикселей), которые скользят по изображению. Каждый фильтр отвечает за поиск своего паттерна и создает карту активаций. В полносвязных сетях каждый нейрон связан с каждым, здесь же свертка использует общие веса для всех позиций. Это заметно сокращает число параметров и делает сеть нечувствительной к сдвигу объекта в кадре.
Сразу после свертки применяется функция активации ReLU (Rectified Linear Unit). Она просто обнуляет отрицательные значения: f(x) = max(0, x). Без этой нелинейности слои сложились бы в один линейный оператор, и сеть потеряла бы смысл. ReLU оказалась практичнее ранних сигмоид и тангенсоидов: она быстрее сходится и не сталкивается с проблемой затухающего градиента.
Между сверточными слоями ставят пулинг, чаще всего max-pooling. Слой берет небольшое окно, скажем 2x2, и оставляет в нем максимальное значение. Размер карты признаков уменьшается вдвое, снижая вычислительную нагрузку. Пулинг также дает
инвариантность к небольшим смещениям: если паттерн сдвинулся на пару пикселей, максимум все равно попадет в окно.
В конце сети находятся несколько полносвязных слоев. Сверток там уже нет, это классический перцептрон. Он собирает все извлеченные признаки вместе и выдает итоговые вероятности для каждого класса.
Прорыв произошел в 2012 году. Сеть AlexNet, созданная Алексом Крижевским и Джеффри Хинтоном, выиграла конкурс ImageNet с ошибкой 15.3%. Это было на десять процентов лучше ближайшего конкурента, использовавшего традиционные методы. AlexNet применила ReLU, dropout и аугментацию, и эта комбинация сработала.
Следующим шагом стала архитектура VGG из Оксфорда. Ее авторы заметили простую вещь: две свертки 3x3 эквивалентны одной свертке 5x5, но при этом требуют меньше параметров и дают больше нелинейности. VGG показала, что глубина сети важнее размера фильтров, и привела все сверточные слои к единому размеру 3x3.
У глубины оказалась своя цена. Чем больше слоев добавляли, тем труднее становилось обучать сеть, ошибка росла. Эту проблему решила ResNet, представленная Каймином Хэ с коллегами из Microsoft в 2015 году. Они ввели остаточные связи (skip connections): выход слоя складывается с его входом. Сеть учится не отображать H(x), а лишь приращение F(x) = H(x) - x. Если слой не нужен, сеть обнуляет его и пропускает сигнал дальше. Это позволило строить сети глубиной в 152 слоя, которые выиграли ImageNet с ошибкой 3.57%, тогда как человеческий уровень составлял 5.1%.
Обучение CNN строится на обратном распространении ошибки. Сеть делает предсказание, сравнивает его с правильным ответом через функцию потерь, и градиент ошибки идет от последнего слоя к первому, обновляя веса методом стохастического градиентного спуска. Для больших сетей это требует серьезных вычислительных ресурсов, поэтому обучение обычно
проходит на GPU.
Чтобы сеть не запоминала обучающую выборку, применяют регуляризацию. Простой и эффективный метод, dropout, отключает случайные нейроны во время обучения с заданной вероятностью. Сеть вынуждена учиться избыточным представлениям и не полагаться на отдельные нейроны. Дополнительно используют L2-регуляризацию, которая штрафует большие значения весов.
Аугментация данных помогает при малом наборе примеров. Исходные изображения модифицируют: поворачивают, сдвигают, меняют яркость, отражают горизонтально. Каждая такая модификация создает новый тренировочный пример. Для AlexNet аугментация снизила ошибку на несколько процентов, фактически увеличив выборку в десятки раз. Этот прием остается стандартом и сегодня, хотя современные методы генерации синтетических данных расширяют его возможности.
4. Оценка точности и сравнительный анализ
После того как мы разобрались с устройством традиционных конвейеров и сверточных сетей, логично спросить: а как вообще понять, какой классификатор лучше? Голое значение accuracy, которое так любят приводить в маркетинговых материалах, на деле говорит мало. Любая внятная оценка начинается с матрицы ошибок (confusion matrix). Она показывает, сколько объектов из каждого класса алгоритм определил верно, а сколько перепутал с соседними категориями. И уже на её основе считаются все остальные показатели.
Accuracy, то есть доля правильных ответов, работает только на сбалансированных выборках. Если в датасете 99% кошек и 1% собак, классификатор, который всегда отвечает «кошка», получит accuracy 99%. Только пользы от него никакой. Поэтому в ход идут precision и recall. Precision отвечает на вопрос, сколько из найденных алгоритмом объектов действительно целевые. Recall показывает, какую долю целевых объектов из всех имеющихся мы вообще сумели обнаружить. Эти две величины постоянно конфликтуют: поднимаешь одну, почти неизбежно падает другая. Сводный показатель F1-score (гармоническое среднее) позволяет найти между ними баланс и выдать одну цифру для сравнения моделей.
Сравнительный анализ на реальных бенчмарках даёт однозначную картину. На наборе ImageNet (более миллиона изображений) лучшие традиционные методы с ручными признаками в 2012 году давали ошибку около 26%. Архитектура AlexNet, представленная тогда же, снизила её до 15,3%. А к 2015 году сеть ResNet от команды Kaiming He достигла 3,57%. Это уже ниже, чем показывает человек на этом тесте. Разрыв колоссальный. И дело тут не только в объёме данных, но и в способности сети самостоятельно выстраивать иерархию признаков, без участия инженера. На маленьких выборках вроде MNIST традиционные методы ещё могут побороться, но как только данные усложняются,
глубокие сети уходят в отрыв.
Выбор конкретной метрики зависит от того, сколько стоит ошибка в конкретной задаче. В медицинской диагностике пропустить опухоль страшнее, чем дать ложноположительный результат, поэтому там критичен recall. В рекомендательных системах или поиске пользователь раздражается от лишнего мусора, так что важнее precision. Дисбаланс классов может свести на нет все усилия: когда редкий класс занимает 1% данных, даже слабая модель покажет высокий accuracy. Решение лежит не в подборе хитрых формул, а в изменении самой выборки. Например, через аугментацию редких классов или взвешенные функции потерь. Метрика обязана соответствовать бизнес-задаче, иначе она останется просто цифрой в отчёте, которая ничего не говорит о реальности.
Что дальше? Архитектуры будут усложняться, но фокус смещается с чистой точности на другие свойства моделей. Всё больше внимания уделяется интерпретируемости. Хочется понимать, на какие участки изображения сеть смотрела, когда принимала решение. Методы вроде Grad-CAM, подсвечивающие значимые пиксели, уже стали стандартом де-факто. Обучение с подкреплением открывает дорогу системам, которые не просто классифицируют статичную картинку, а активно взаимодействуют со средой (например, в робототехнике). Параллельно идёт работа над эффективностью: модели вроде MobileNet показывают, что приемлемую точность можно получить даже на устройствах с ограниченными ресурсами, без мощных GPU. Оценка качества превращается из формальности в самостоятельную инженерную дисциплину. Мало посчитать метрики, нужно ещё правильно их интерпретировать в контексте конкретной задачи.
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.