...

Основы компьютерного зрения и его применение в различных областях

Компьютерное зрение

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

Задачи компьютерного зрения

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

Идентификация

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

Распознавание объектов

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

Самым простым методом детекции объектов является метод скользящего окна методом R-CNN(англ. Regions with Convulational Neural Network – Выделение регионов с помощью свертоных сетей), при котором мы проходимся некоторым окном фиксированного размера по каждому кусочку картинки, и применяем к нему простой классификатор, обученный распознавать заранее определенный набор объектов. Модификации этого метода, такие как Faster R-CNN применяются до сих пор.

Сегментация изображений

Основная статья: Сегментация изображений

Задача похожая на детекцию объектов, но в отличие от нее требуется не окружить найденные объекты рамками, а выделить пиксели, которые этот объект составляют. Сегментация применяется во многих областях, например, в производстве для индикации дефектов при сборке деталей, в медицине для первичной обработки снимков, также для составления карт местности по снимкам со спутников. Одним из типичных способов сегментации является применение модели U-Net, представляющую из себя нексколько слоев сверточной сети, которые различаются по размеру, и в совокопности имеют U-образную форму, что и отражено в названии.

Типичные примеры изображений, обработанных алгоритмами сегментации

Оценка положения

Задача оценки положения объекта(англ. Pose Estimation), в некотором роде продолжающая задачу сегментации. Заключается в выделении некоторого каркаса объекта (например скелета, если речь идет о людях) и определении положения этого каркаса на изображении. Этот скелет может быть использован в последствии например для предсказания направления движения. В зависимости от количества рассматриваемых объектов различают одиночную оценку положения(англ. Single-person pose estimation) и множественную(англ. Multi-person pose estimation). Различие состоит в том, что во втором случае необходимо также учитывать, что объекты могут накладываться друг на друга. Для выполнения этой задачи сначала обрезается фон, оставляя только изображения непосредственно объектов, а затем для каждого из объектов с помощью сверточных нейронных сетей выделяются области суставов, которые затем соединяются.

Пример применения алгоритмов pose_estimation к изображению. Источник: [2]

Распознавание текста

Одна из ключевых задач компьютерного зрения. Сначала с помощью алгоритмов детекции выделяется область в которой текст написан, затем производится непосредственно распознавание текста например с помощью алгоритмов сегментации. При этом задачи распознавания текста написанного на листе бумаги, и распознавания текста написанного где-то на изображении (“in the wild”), например текст на дорожном знаке, номер машины и т. д., сильно различаются, в силу наличия в последнем случае помех, которые мешают выделить конкретные буквы. В этом случае может помочь, например обучение предсказания буквы по остальным буквам в слове.

Пример реальной задачи распознавания текста – Распознование номеров на дверях. Источник: [3]

Генерация объектов

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

Пример генерации изображения методом GAN. Источник: [4]

Анализ видео

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

Примечания

  1. https://www.fritz.ai/pose-estimation/
  2. https://habr.com/ru/post/274725/
  3. https://towardsdatascience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e
  4. https://ccis2k.org/iajit/PDF/vol.3,no.2/2-Nassir.pdf
  5. https://towardsdatascience.com/unet-line-by-line-explanation-9b191c76baf5
  6. https://towardsdatascience.com/a-gentle-introduction-to-ocr-ee1469a201aa
  7. https://nanonets.com/blog/human-pose-estimation-2d-guide/
  8. https://medium.com/@jonathan_hui/gan-some-cool-applications-of-gans-4c9ecca35900]
  9. https://ru.coursera.org/lecture/deep-learning-in-computer-vision/introduction-to-video-analysis-alApg

См. Также

  1. Вариационный автокодировщик
  2. GAN
  3. Сверточные нейронные сети
  4. Сегментация изображений

Ссылки

  1. [5] – Статья Pose Estimation
  2. [6] – Статья на Хабре, краткий обзор задач компьютерного зрения
  3. [7] – Про R-CNN, Faster R-CNN и YOLO
  4. [8] – Про Watershed
  5. [9] – Про U-Net с примерами кода

Как применяют компьютерное зрение в работе с визуальным контентом

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

554 просмотров
Как работает компьютерное зрение

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

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

Александра Царёва, ведущий специалист одной из крупнейших ИТ-компаний в России, отмечает, что за последние пять лет точность нейросетей в распознавании объектов возросла с 70 до 98%.

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

Как компьютерное зрение используют в бизнесе

Технологии КЗ используют для работы с визуальным контентом.

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

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

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

Расскажу об этих и других инструментах подробнее. Они уже есть на рынке в ряде сервисов и приложений.

Поиск по изображению

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

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

Поиск при помощи умной камеры Яндекса в браузере.

Её аналог — «Google Объектив». Для телефона есть отдельное приложение. Сидя с пк нужно кликнуть на изображение правой клавишей мыши и нажать «Найти через Google Объектив». Однако основной поиск по изображению в браузере находится в Google картинках.

Поиск похожих товаров с помощью мобильной версии Google Объектива.

Также есть платформы, которые дают возможность встроить поиск по фотографиям в интернет-магазины на сайт или мобильное приложение. Это будет полезно маркетплейсам с каталогом товаров в несколько тысяч изображений. Пользователь загружает фотографию и получает наиболее похожие варианты из каталога. Такие решения предлагает англоязычный сервис Imagga и российская компания EoraMage. У последней есть сервис, который проверяет оригинальность товарного знака: алгоритм за 5 секунд найдёт все похожие логотипы, точность распознавания составляет 80%.

Текстовое описание изображений

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

Так умеет делать нейросетевая модель ruCLIP, созданная командой разработчиков из «Сбера». ruCLIP обучали на уникальных парах «картинка-текст», модель соотносила, насколько текстовое описание совпадает с содержанием картинки. Самая крупная версия модели изучила 240 млн пар. В работе СLIP участвуют две нейросети, одна обрабатывает изображение, вторая — текст, и для обоих типов данных создаётся единое пространство.

Чтобы получить текстовое описание, пользователю надо подать модели ссылку на изображение или загрузить его в формате base64.

Ниже представлена иллюстрация, где ruCLIP оценил сходство текста и изображений. Чем ближе к 1, тем оно выше

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

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

8563 просмотров
Что уже произошло за последние пять лет и что изменится в следующую пятилетку

Начнем с того, что в сфере распознавания объектов случился внушительный прорыв: за последние пять лет улучшились (с точки зрения hardware) основы обучения нейросетей и архитектурные решения; произошел заметный сдвиг в точности распознавания объектов на открытых дата-сетах — от 70 до 98% точности.

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

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

Где применяют компьютерное зрение

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

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

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

Ритейл — золотая жила для машинного обучения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Александра Царева, специалист Центра машинного обучения «Инфосистемы Джет»

При подготовке материала использовались источники:
https://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%BE%D0%B5_%D0%B7%D1%80%D0%B5%D0%BD%D0%B8%D0%B5
https://vc.ru/u/1183928-valentin-zaycev/466264-kak-primenyayut-kompyuternoe-zrenie-v-rabote-s-vizualnym-kontentom
https://vc.ru/ml/166105-kompyuternoe-zrenie-zadachi-oblasti-primeneniya-perspektivy