Компьютерное зрение: как машины интерпретируют визуальный мир

Опубликовано: 2021-05-05

Компьютерное зрение — это область искусственного интеллекта, которая позволяет машинам «видеть».

У людей есть дар зрения, и орган, который делает его возможным, сложен. Хотя это несравнимо с дальним зрением орлов или глазами бабочки-бабочки, которая может видеть в УФ-спектре, она все равно отлично справляется со своей задачей.

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

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

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

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

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

48,6 миллиарда долларов

оценивается как стоимость рынка компьютерного зрения к 2022 году.

Источник: BitRefine

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

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

Краткая история компьютерного зрения

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

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

В 1963 году Ларри Робертс, которого считают отцом-основателем Интернета, описал процесс получения трехмерной информации о твердых объектах из двухмерных фотографий. Его диссертация «Машинное восприятие трехмерных тел» до сих пор считается одной из основополагающих работ в области компьютерного зрения.

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

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

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

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

1959: Был изобретен самый первый цифровой сканер изображений, который преобразовывал изображения в числовые сетки.

1963: Ларри Робертс описал процесс получения трехмерной информации о твердых объектах из двухмерных изображений.

1966: Марвин Мински поручил аспиранту подключить камеру к компьютеру и описать то, что она увидела.

1980: Кунихико Фукусима создал   неокогнитрон. Он считается предшественником современной сверточной нейронной сети (CNN).

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

2009: Google запустил проект беспилотного автомобиля.

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

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

2012: Google Brain создала нейронную сеть, состоящую из 16 000 компьютерных процессоров, которая могла распознавать изображения кошек с помощью алгоритма глубокого обучения. В том же году сверточная нейронная сеть AlexNet вошла в пятерку лучших с ошибкой 15,3% в конкурсе ImageNet 2012 Challenge.

2014: Tesla представила автопилот в своих электромобилях Model S. Система автономного вождения не только работала в автономном режиме, но и точно парковалась.

2015: запуск Google   TensorFlow — бесплатная библиотека программного обеспечения с открытым исходным кодом для машинного обучения. В том же году Google представил FaceNet для распознавания лиц.

2016: Представлена ​​Pokemon GO, известная мобильная игра на основе дополненной реальности.

2017: Apple выпустила iPhone X с функцией распознавания лиц.

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

Как работает компьютерное зрение?

Компьютерное зрение начинается с малого и заканчивается большим.

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

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

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

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

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

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

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

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

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

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

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

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

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

Изучение изображений на уровне пикселей

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

Для простоты рассмотрим изображение в градациях серого. Яркость каждого пикселя, называемая значениями пикселей, представлена ​​8-битным целым числом с диапазоном возможных значений от 0 до 255. Ноль считается черным, а 255 — белым. Если мы изучаем цветное изображение, все становится сложнее.

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

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

Тогда есть сверточные нейронные сети

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

Хотя CNN были изобретены еще в 1980-х годах, они были не совсем осуществимы до появления графических процессоров (GPU). Графические процессоры могут значительно ускорить сверточные нейронные сети и другие нейронные сети. В 2004 году реализация CNN на GPU была в 20 раз быстрее, чем эквивалентная реализация на CPU.

Как это делают CNN?

ConvNet учится на входных изображениях и корректирует свои параметры (веса и смещения), чтобы делать более точные прогнозы. CNN обрабатывают изображения как матрицы и извлекают из них пространственную информацию, такую ​​как края, глубина и текстура. ConvNets делают это с помощью   сверточные слои   а также   объединение.

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

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

Сверточная нейронная сеть состоит из входного слоя , нескольких скрытых слоев и выходного слоя .

Скрытые слои содержат:

  • Сверточные слои
  • Слои выпрямленной линейной функции активации (ReLU)
  • Слои нормализации
  • Объединение слоев
  • Полностью связанные слои

Вот простое объяснение того, что они делают.

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

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

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

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

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

Вот некоторые из распространенных задач компьютерного зрения.

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

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

Реальные приложения компьютерного зрения

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

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

Распознавание лиц

Одним из лучших вариантов использования компьютерного зрения является распознавание лиц. Он стал популярным в 2017 году с моделью Apple iPhone X и теперь является стандартной функцией в большинстве смартфонов.

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

Беспилотные автомобили

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

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

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

Медицинская визуализация

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

Медицинская визуализация — еще одно важное приложение с множеством преимуществ. Анализ медицинских изображений сокращает время, затрачиваемое медицинскими работниками на анализ изображений. Эндоскопия, рентгенография, УЗИ и магнитно-резонансная томография (МРТ) — это некоторые из дисциплин медицинской визуализации, в которых используется компьютерное зрение.

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

Модерация контента

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

350 миллионов

фотографии загружаются каждый день на Facebook.

Источник: Социальный отчет

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

Наблюдение

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

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

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

Проблемы компьютерного зрения

Помочь компьютерам видеть сложнее, чем мы думали.

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

Наши знания ограничены

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

Визуальный мир сложен

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

Еще одним ограничением является отсутствие здравого смысла. Даже после многих лет исследований нам еще предстоит воссоздать здравый смысл в системах ИИ. Люди могут применять здравый смысл и базовые знания о конкретных объектах, чтобы понять их смысл. Это также позволяет нам с легкостью понять взаимосвязь между различными объектами изображения.

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

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

CV привязано к оборудованию

В компьютерном зрении задержка — это зло.

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

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

Узкого ИИ недостаточно

Некоторые исследователи ИИ считают, что компьютерное зрение 20/20 может быть достигнуто, только если мы разблокируем искусственный общий интеллект (AGI). Это потому, что сознание, по-видимому, играет решающую роль в зрительной системе человека. Точно так же, как многое мы видим и наблюдаем, мы воображаем. Наше воображение дополняет визуальные эффекты, которые мы видим, и придает им лучшее значение.

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

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

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

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

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

Дарим зрение машинам

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

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