En
Проекты Вакансии Блог
05 октября 2023

Методы распознавания образов: от простых до сложных

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

Что такое распознавание образов?

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

  • Медицинская диагностика и обработка изображений.В медицине системы распознавания образов помогают врачам выявлять патологии на рентгеновских снимках, сканах магнитно-резонансной и компьютерной томографии. Применение технологии распознавания образов увеличивает точность диагнозов, способствует раннему выявлению заболеваний.
  • Автомобильная промышленность. В автомобильной отрасли технологии распознавания образов используются для создания систем адаптивного управления, обнаружения пешеходов и автомобилей, а также для разработки автономных транспортных средств.
  • Сельское хозяйство. Распознавание образов применяется для мониторинга состояния посевов, выявления болезней растений, определения влажности почвы и пр.
  • Робототехника. Роботы, оснащенные системами распознавания образов, могут анализировать окружающую среду, перемещаться, выполнять задачи в местах, где требуется взаимодействие с людьми.
  • Безопасность и видеонаблюдение. Наибольшее распространение нашла эта технология в области идентификации лиц, контроля доступа, обнаружения аномального поведения людей и автоматического анализа видеопотоков для обеспечения безопасности в общественных местах и на предприятиях.
  • Интернет вещей (IoT). В “умных” устройствах и системах IoT-методы распознавания образов могут применяться для улучшения взаимодействия между устройствами, автоматического управления бытовыми системами и “умными” городами.
  • Маркетинг и реклама. Распознавание образов позволяет компаниям анализировать данные о потребителях, предоставляя персонализированные рекомендации и рекламные коммуникации, улучшая таким образом опыт пользователей.
  • Промышленность и производство. В производственных средах данные технологии применяются для контроля качества продукции, оптимизации процессов, обнаружения дефектов на производственной линии и пр.
  • Развлечения и игры. В мире развлечений распознавание образов используется для создания интерактивных игр и виртуальной реальности, помогает обогащать геймплей и визуальный опыт игроков.

Этапы развития технологии, выдающиеся имена и проекты

Эволюция методов распознавания образов началась с исследований и экспериментов в области компьютерного зрения и обработки изображений. Первые наработки появились еще в 1950-е годы. С развитием микропроцессоров и вычислительных ресурсов начались активные исследования в области компьютерного зрения и машинного обучения для распознавания лиц. Метод глубокого обучения и появление нейронных сетей в начале 2000-х дали толчок тому, чтобы технологии распознавания образов становились точнее и эффективнее. Открытие архитектур сверточных нейронных сетей (далее — CNN) в предыдущее десятилетие способствовало увеличению точности и производительности систем распознавания образов.

Среди выдающихся исследователей в области распознавания образов — британский разработчик Джеффри Хинтон. Его работы сыграли основополагающую роль в развитии CNN. Французский ученый Ян Лекун считается одним из основоположников метода глубокого обучения, создателем CNN. Его работы способствовали развитию методов распознавания образов и автоматического извлечения признаков. Огромный вклад в развитие нейронных сетей и распознавание образов внес итальянский ученый в области вычислительной нейробиологии Томазо Поджо. Его новаторские исследования способствовали пониманию принципов, лежащих в основе восприятия — как людей, так и машин.

Значительный вклад в развитие этой области внесли такие глобальные игроки, как Google, Microsoft, Amazon, IBM, NVIDIA, Qualcomm, Intel. Эти компании активно инвестируют в исследования и разработки, что способствует постоянному улучшению технологий.

Примеры использования: полезные, комические, трагические

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

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

Примером уязвимости систем может считаться случай, когда в 2021 году хакеры использовали маску с изображением лица сотрудника компании для обхода системы распознавания лиц и получения несанкционированного доступа в офис этой компании.

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

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

Еще пример применения технологии распознавания лиц — разблокировка экрана смартфона с использованием фронтальной камеры. Наиболее распространенные методы разблокировки — Face ID, Face Unlock, IR-камера и Time-of-Flight с дополнительными сенсорами глубины, благодаря чему можно обнаружить маскировку или манекен.

Какие решения должны усовершенствовать технологию распознавания образов

Технологии распознавания образов еще проходят стадию становления. Перед разработчиками стоит ряд задач, решение которых поможет усовершенствовать существующие методы. Например, проблема классификации, когда компьютер должен определить, к какой категории или классу относится изображение (является ли объект на фотографии кошкой или собакой).

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

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

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

Алгоритмы распознавания образов делятся на два вида: методы, основанные на теории решений, и структурные.

Классика: Анализ границ и форм

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

Фильтр Собеля (или оператор Собеля). Этот алгоритм используется для выделения границ на изображении. Он работает путем применения матрицы свертки к каждому пикселю изображения и позволяет вычислять градиент яркости. Так определяется, где на изображении находятся переходы от светлых к темным областям и наоборот.

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

Эти методы широко применяются, например, для выделения ключевых черт лица (глаза, рот, нос) в системах безопасности, идентификации и авторизации, а также в фото- и видеоредакторах.

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

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

В системах оптического распознавания символов (OCR) методы анализа границ и форм работают для выделения и распознавания букв и цифр на изображениях рукописного текста. А также они эффективны при измерении размеров и форм — для создания индивидуальной одежды или анализа геометрии объектов в инженерных сооружениях.

Наиболее известный проект в этой категории — онлайн-сервис для хранения и организации фотографий и видеозаписей Google Photos. Создатели используют методы анализа границ и форм для автоматической категоризации фотографий, выделения объектов (например, лиц) и для поиска изображений по содержанию.

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

Поиск шаблонов (Pattern Matching)

Этот метод заключается в поиске конкретного шаблона (детали, фрагмента) внутри большего изображения. Для этого используются различные метрики сходства, такие как кросс-корреляция или сумма квадратов разностей. Алгоритм сравнивает окно большого изображения с шаблоном и находит наилучшее совпадение.

Примером поиска шаблонов является система оптического распознавания символов с открытым исходным кодом Tesseract OCR (успешно применяется в системах OCR и документальном анализе), мобильное приложение для распознавания объектов на фотографиях CamFind, приложение для распознавания музыки Shazam от Apple. Алгоритм Shazam — образец поиска шаблонов в аудио данных. Приложение предоставляет пользователю возможность записать фрагмент музыки, а затем сравнить его с базой данных, чтобы определить название и автора.

Local Binary Patterns (LBP)

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

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

Примерами продуктов, созданных на основе локальных бинарных шаблонов, стала платформа для распознавания и анализа лиц Face++ компании Megvii. Она позволяет выявлять и сравнивать уникальные текстурные шаблоны на лицах, используется в системах идентификации и верификации лиц.

Проект Commercial Texture Analysis Software разработал различное программное обеспечение для анализа текстур с использованием LBP. Эти инструменты применяются, например, для анализа текстур на медицинских изображениях, материалах, а также для контроля качества и анализа характеристик материалов.

Каскады Хаара

Еще один классический метод используется для быстрого обнаружения классов объектов, таких, например, как руки людей, животные или номера автомобилей на изображении. Каскады Хаара представляют собой набор классификаторов, которые обучаются на большом количестве положительных и отрицательных примеров исходного объекта. Затем они применяются к изображению в виде "каскада", где более простые классификаторы рассматриваются первыми для быстрого отсеивания большого числа негативных областей, а более сложные классификаторы используются позднее для более точной проверки.

На этапе обучения алгоритм тренируется на большом наборе тестовых изображений, которые содержат как положительные (изображения с объектами, которые нужно обнаружить), так и отрицательные (изображения без объектов интереса) примеры. Для каждого объекта на положительных изображениях извлекаются характерные признаки Хаара. Они представляют собой яркие различия в разных областях изображения.

После обучения создается каскад классификаторов. Каскад состоит из нескольких этапов (классификаторов), каждый из которых является бинарным классификатором (да/нет). Этапы каскада характеризуются пороговым значением, при котором объект считается обнаруженным или отклоненным. Процесс обнаружения начинается с применения первого этапа каскада к изображению. Если этап не прошел, изображение отклоняется. Если прошел, то изображение передается следующему этапу, и так далее. Когда все этапы каскада успешно пройдены, объект считается обнаруженным.

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

Библиотека OpenCV, например, предоставляет реализации каскадов Хаара для обнаружения таких объектов, как улыбки, автомобили, велосипеды на изображениях и в видеопотоке. Это одна из наиболее популярных библиотек для реализации систем компьютерного зрения. Другой аналогичный проект — Dlib. Он включает реализации такого типа классификаторов для задач распознавания лиц.

Достоинства и недостатки классических методов

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

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

Нейронные сети с отобранными вручную признаками

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

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

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

Снижается размерность данных, исключаются избыточные или неинформативные признаки, сокращается вычислительная сложность.

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

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

Нейросетевые методы распознавания образов

Этот тип методов базируется на применении нейросетей различных типов. Они направлены на извлечение основных характеристик или признаков исходных образов и изображений, а также классификацию этих образов и на решение задач оптимизации. Применяются архитектуры сверточные сети (convolutional neural networks — CNN), трансформеры (visual transformers), автоэнкодеры (autoencoders) и ряд других.

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

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

Анализ границ с нейросетевыми детекторами

Анализ границ с использованием нейросетевых детекторов, таких как HED (Holistically-nested edge detector), pidinet, dexinet и другие, представляет собой подход к распознаванию границ и контуров на изображениях с помощью глубоких нейронных сетей.

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

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

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

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

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

Сверточные нейронные сети (CNN)

Сверточные нейронные сети (Convolutional neural network — CNN) — класс нейронных сетей, разработанный специально для анализа данных с пространственной структурой, таких как изображения и видео. Архитектура этого метода была предложена Яном Лекуном в 1988 году. CNN относится к технологиям глубокого обучения.

Для обучения нейросети используется стандартный метод обратного распространения ошибки. Структура сверточных сетей похожа на воронку: от общей картины к деталям. Благодаря свертке нейросеть отсеивает лишнюю информацию и оставляет только ту, которая характеризует объект. Сверточные нейросети решают задачи распознавания и классификации по той же модели, как и человеческий мозг. Первой нейросетью этого типа стала AlexNet, которая оказала значительное влияние на развитие машинного обучения. Разработана учеными Алексеем Крижевским и Ильей Суцкевером — выпускниками аспирантуры Университета Торонто.

Какие достоинства сверточных нейросетей стоит отметить? CNN обладают способностью достигать высокой точности в решении задач компьютерного зрения, включая классификацию изображений, сегментацию и детекцию объектов. Они способны к автоматическому извлечению признаков из входных данных. Это упрощает процесс обработки изображений и помогает избежать необходимости вручную создавать признаки.

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

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

Трансформеры

Трансформеры представляют собой относительно новую архитектуру нейронных сетей, которая была разработана для обработки последовательных данных, таких как тексты и временные ряды. Ведут себя примерно как CNN, давая в ряде случаев лучшее решение. Они способны на выдающиеся результаты в различных задачах, но пока недостаточно освоены.

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

Трансформеры могут работать с длинными текстами или последовательностями данных без заметного снижения производительности. Успешно применяются при обработке изображений (для классификации, сегментации, обнаружения объектов), в задачах машинного перевода, извлечения информации и многих других областях. Основной компонент трансформеров — механизм внимания, который позволяет модели “концентрироваться” на важных элементах входных данных, что способствует улучшению производительности.

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

Достоинства и недостатки нейросетевых методов

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

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

Как выбрать метод распознавания образов для конкретной задачи

Резюмируем обзор методов распознавания образов:

  • Нейросетевые методы оптимальны, когда у вас достаточно данных и нет ограничений в вычислительных ресурсах. Их легче обучать, они надежны и продуктивны.
  • Классические методы подходят, если по каким-либо причинам вы не можете собрать исходные данные и есть особые требования по вычислительным мощностям. И конечно, обратите внимание, что этот подход требует долгой и кропотливой работы.

Подробнее о применении этих методов на практике рассказываем здесь.

Денис
C#-разработчик

Другие статьи

Стоимость разработки MVP: как сохранить качество и при этом сэкономить
09 декабря 2024
Карьера SDET: с чего начать и что надо уметь
29 ноября 2024
RPA или Программные роботы: внедрение, возможности для бизнеса, рекомендации
26 ноября 2024
Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Angular-разработчик
  • Node.js-разработчик
  • Middle Vue.js / Frontend-разработчик
  • Системный аналитик
  • QA Engineer Fullstack (Python)
  • Инженер по нагрузочному тестированию
  • DevOps-инженер
  • 1С-аналитик
  • Юрист
  • Разработчик на C++
  • UI/UX дизайнер
  • 1С-разработчик
  • Data Scientist (NLP)
  • SDET (Python)
  • Аналитик DWH
  • Технический писатель
  • SDET (Java)
  • IT сорсер
  • DBA
  • QA с опытом в автоматизиции Java
  • Коммуникационный/графический дизайнер
  • Ассистент руководителя
  • MLOps инженер
  • SDET разработчик C#
  • Руководитель отдела 1С
  • SDET (Swift)
  • React native-разработчик
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Будь в курсе новостей SimbirSoft