Как думаете, кто лучше видит: вы или компьютер? На самом деле все зависит от того, что вы ожидаете получить от компьютерного зрения. Например, с его помощью можно узнать посетителя в очереди на кассу, считать штрихкод или определить, что это за друг рядом с вами на очередном фото в Facebook.
Компьютерное зрение вызывает противоречивые чувства. С одной стороны, не многим хочется, чтобы машины и роботизированные системы узнавали их на улице, в супермаркете или на рабочем месте. С другой — это мощный инструмент в бизнесе и сфере развлечений, к которому все чаще обращаются на волне интереса к алгоритмам искусственного интеллекта.
Впервые о компьютерном зрении заговорили еще в 60-х годах прошлого века. Тогда Оливер Селфридж опубликовал статью «Глаза и уши компьютера», в которой предсказал будущее, наше настоящее. Но лишь за последние десять лет разработки ученых продвинулись так далеко, что стали доступны каждому.
Что такое компьютерное зрение
Википедия говорит о том, что это теория и технология создания машин, которые умеют обнаруживать, отслеживать и классифицировать объекты. Но компьютерное зрение способно на большее: распознавать текст, идентифицировать предметы и людей, оценивать движения, восстанавливать изображения, выделять на них однородные структуры и элементы, анализировать оптические потоки.
Часто компьютерное зрение еще называют машинным, но здесь нет единой точки зрения. Одни настаивают на том, что это синонимы, другие видят очевидные различия. Якобы компьютерное зрение объединяет и теорию, и стоящие за ней технологии, а машинное — это больше про практическое применение. С точки зрения обычного человека разница несущественная, поэтому в этой статье равноправно используются оба названия.
Из чего состоит компьютерное зрение
Компания Automatix первой начала использовать системы компьютерного зрения в бизнесе. В 80-е годы в США она разработала несколько машин для паяния микросхем. Камеры, закрепленные на машинах, делали снимки и отправляли их процессору, а тот оценивал их и давал соответствующие указания манипуляторам, задействованным в производстве.
Даже на этом простом примере можно выделить несколько составляющих компьютерного зрения.
Получение изображения. Для этого используются камеры, датчики и даже готовые двумерные или трехмерные объекты.
Обработка изображения. Умная система делит данные на важные и не очень; вторые отметает, а с первыми продолжает работать дальше — именно они помогут в дальнейшем идентифицировать объект.
Выделение деталей. Речь идет об отдельных выступающих элементах, линиях, изгибах и точках наибольшего интереса.
Сегментация. Система повторно выделяет наиболее важные фрагменты для дальнейшей работы.
Обработка высокого уровня. На этом этапе оцениваются ключевые параметры объекта, затем он классифицируется по основным признакам.
Сходства и отличия с человеческим зрением
Компьютерная система принимает решение молниеносно — за доли секунды, как и в случае с человеческим мозгом. Но у людей все устроено немного иначе: наши глаза не совершенны, и основную задачу по обработке изображения выполняет более продвинутый орган — мозг. В компьютерном зрении таких ограничений нет. Можно установить простейшие датчики или камеры для сбора информации, и они будут отправлять ее на обработку мощному процессору. А можно воспользоваться умными камерами, которые берут на себя часть работы по анализу объекта и тем самым разгружают процессор. Какой будет система компьютерного зрения — зависит от конкретных задач.
Люди не просто видят предметы и себе подобных «здесь и сейчас». Они запоминают их, анализируют и используют полученный опыт в будущем. Эта информация постепенно накапливается, а человек непрерывно обучается. В любой момент он может вспомнить, как выглядел тот или иной объект. Компьютерное зрение тоже учится на примерах, но и не учитывает контекст (окружение), как человек, и не оценивает их с точки зрения жизненного опыта. Еще несколько лет назад компьютеры могли увидеть не более 70% предметов, попадавших в их поле зрения, то сейчас этот показатель приближается вплотную к 100%. Машины не только понимают, что находится перед ними, но и принимают решение о том, что делать дальше.
Где используют компьютерное зрение
Перед вами список основных сфер, где чаще всего используют компьютерным зрением, хотя по факту их намного больше:
- системы видеонаблюдения в офисах, на производстве, в торговых центрах, на улицах;
- системы управления автомобилями, предотвращающие столкновения с препятствием;
- медицинские системы анализа изображений;
- сортировка, поиск брака и другие операции в серийном производстве;
- технологии дополненной и виртуальной реальности;
- системы геопозиционирования и картографические системы;
- системы контроля точности в строительстве и реконструкции;
- анализ эмоционального состояния человека;
- чтение штрихкодов в торговле и на складских комплексах;
- конвертация бумажных книг и документов в цифровые форматы.
От абстрактных сфер переходим к более реальным кейсам, из которых становится понятно, как именно человек использует компьютерное зрение в прикладных задачах.
Face ID и Microsoft Kinect
Apple iPhone X стал первым смартфоном, который получил фронтальную камеру TrueDepth и поддержку технологии Face ID. Это разблокировка по лицу, когда мобильное устройство узнает своего владельца без дополнительных действий с его стороны: не нужно вводить код, рисовать графический ключ или прикладывать к сенсору палец. В этой сложной системе работают две камеры (фронтальная и инфракрасная) и проектор, который по точкам создает карту лица пользователя. За программную обработку отвечает компьютерное зрение и натренированная нейросеть, которая вначале сохраняет модель лица, а затем по точечкам сравнивает ее с тем, что «видит» в процессе авторизации. Кстати, если смотреть на камеру с закрытыми глазами или просто отвести взгляд в сторону, идентификация не сработает.
В работе Face ID и Microsoft Kinect много общего. Kinect — это сенсор (контроллер), который изначально разрабатывался для игровой приставки Xbox 360. Он позволяет взаимодействовать с базой бесконтактно, через движения, позы и другие невербальные команды. За распознавание лица и движений пользователя отвечает RGB-камера, которая вначале снимает фото и видео, а затем анализирует их и отправляет соответствующие команды процессору. На практике Kinect используется не только в играх, но и других сферах. Например, во время операций и в медицинской диагностике, для 3D-сканирования, во время занятий спортом, подготовки уникального цифрового контента в рекламе.
Торговля на примере российского ритейла
Здесь с компьютерным зрением сталкивались многие, хотя и не всегда догадывались об этом. Например, в сети магазинов «Перекресток» были успешно протестированы технологии распознавания фото- и видеопотоков. Они делают товары на полках более доступными и помогают контролировать длину очередей на кассах в пиковые нагрузки. За основу взята российская разработка Intelligence Retail, которая анализирует правильность выкладки товаров и подсчитывает количество людей в очереди. Для распознавания товаров система учитывает их форму, размеры, упаковку, логотипы и надписи на ней. В среднем на обработку одного стеллажа уходит до 30 секунд. Обычные сотрудники магазинов не могут похвастаться подобной скоростью, хотя точность работы идентичная — примерно 93%.
Компания X5 Retail Group, которая владеет торговыми сетями «Пятерочка», «Перекресток» и «Карусель», использует компьютерное зрение, маячки типа iBeacon и камеры, которые умеют распознавать образы, для анализа навигации посетителей в магазинах. Они помогают находить часто посещаемые зоны и составлять так называемые «тепловые карты». Вооружившись этой информацией, можно точнее делать выкладку, проектировать новые зоны и предлагать покупателям товары, которые нужно продавать быстрее.
Другие российские сети используют компьютерное зрение для того, чтобы «узнавать» клиентов в лицо на кассах во время совершения покупки. Таким же образом можно узнавать воров и мошенников, которых ранее занесли в черный список магазина. Еще одно интересное применение машинного зрения — подсчет посетителей. Эта информация помогает получать данные о конверсии, или сколько посетителей превратилось в реальных покупателей магазина.
Качество продукции и безопасность в промышленности
Представьте себе большой завод, на котором ежедневно изготавливают сотни тысяч мелких деталей. Компьютерное зрение упрощает задачи, связанные с учетом деталей, на которые уже нанесен штрихкод, или распознаванием посторонних предметов в упаковке. Но удобнее всего таким образом контролировать качество готовых изделий: находить дефекты (расхождения в физических параметрах, недостающие элементы, цвет и т. п.) или случаи неправильной обработки. Также компьютерное зрение используют в целях безопасности. Оно помогает определять наличие касок и других средств защиты на сотрудниках предприятий или контролировать периметр, чтобы те самые сотрудники ничего не вынесли с охраняемой территории.
Анализ спутниковых карт
Компания Orbital Insights занимается обработкой снимков, сделанных со спутника. Компьютерное зрение помогает увидеть там жилые дома, транспорт, инфраструктурные объекты — все, что может помочь бизнесу или социальным службам. Например, анализ заполнения автостоянки возле крупного торгового центра позволяет найти зависимость между количеством автомобилей и дневной выручкой, чтобы спрогнозировать доход и нагрузку на магазины в предпраздничные дни.
С помощью программы, разработанной Orbital Insights, американские страховые компании автоматически определяют сумму ущерба в результате ДТП, а также борются с мошенничеством в этой сфере. Еще несколько стран используют систему компьютерного зрения для оценки объемов нефти, закупленной Китаем. Спутник делает снимки резервуаров с нефтью сверху, а алгоритмы точно определяют их размеры и объем благодаря тени, размеры которой варьируются в зависимости от времени измерений.
Контроль ситуации на дороге
В западных странах компьютерное зрение несколько лет используется для оценки дорожных ситуаций: пробок, загруженности полос. Анализируются целые сцены и ситуации, связанные с чтением дорожных знаков и скоростью их распознавания. Когда к таким системам подключаются технологии машинного обучения, результаты становятся более впечатляющими. Датчики на автомобиле «видят», когда к нему приближаются посторонние предметы, и контролируют ситуацию, не допуская столкновения. Например, в экстренной ситуации, если водитель попытается сменить полосу, но не включит поворотный сигнал, автомобиль продолжит ехать на прежней полосе.
Медицина и диагностика
МРТ, ЭКГ и другие снимки помогают врачам ставить правильные диагнозы. Но точно таким же навыкам можно обучить машину. Компания Arterys разработала программную платформу на базе системы компьютерного зрения, которая успешно визуализирует и анализирует медицинские изображения в диагностике сердечно-сосудистых заболеваний. Arterys — это такой облачный сервис, самообучающаяся нейросеть, которой требуется 15 секунд на «чтение» снимка. Для сравнения: специалист делает то же самое и с аналогичной точностью намного дольше — от 30 минут до получаса.
Средства массовой информации
Компьютерное зрение широко используется в системах видеоаналитики, принадлежащих крупным медийным порталам. Они обрабатывают огромные объемы данных, чтобы находить интересные сюжеты и такие, которые соответствуют заданным параметрам. Например, машинное зрение помогает быстро найти кадры с речью известного политика или сценой ДТП.