Unity3d системы компьютерного зрения примеры pdf. Системы компьютерного зрения: современные задачи и методы

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

Новое зрение

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

Мировой рынок компьютерного зрения к 2023 году превысит 25 млрд долларов.

Мировой рынок компьютерного зрения к 2023 году превысит 25 млрд долларов .
Технология становится всё более востребованной, уже сегодня она стала частью нашего повседневного опыта. В будущем компьютерное зрение продолжит создавать новые воз-можности для людей и менять целые отрасли.

Новый транспорт

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

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

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

Новый ритейл

Сначала Amazon сделал популярными электронные книги, потом принялся за голосовых помощников, а теперь очередь дошла и до практического применения компьютерного зрения. Новый гаджет Echo Look — это как ассистент Alexa, только с «глазами». Echo Look дает своему владельцу модные советы: что надеть, с чем комбинировать разные предметы одежды и как организовать гардероб. Стилистам и персональным шоперам придется несладко: искусственный интеллект за 200 долларов справится с рекомендациями лучше любого человека.

Угадать точный размер детской обуви порой сложно, но приложение SpeedSmith решает эту проблему. Достаточно сфотографировать ногу ребенка, и программа быстро определит размер. Так компьютерное зрение делает жизнь родителей проще, избавляя от ошибок при покупках.
Компьютерное зрение поможет не только людям, но и компаниям. X5 Retail Group тестирует в нескольких магазинах «Перекресток» и «Пятерочка» программу, которая использует технологию для анализа заполняемости полок. Система распознает около 1500 наименований товаров и сообщает, когда пора добавить закончившийся продукт на полку. Кроме того, искусственный интеллект следит за очередями: если алгоритм понимает, что в очереди стоят больше пяти человек, управляющий магазином получает уведомление.

Всевидящее око

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

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

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

Преподаватель

Руслан Рахимов

Выпускник Московского Физико-Технического Института, Сколковского Института Науки и Технологий. Разработчик-исследователь в команде компьютерного зрения в компании Huawei.

Основные темы программы

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

Начальные требования

Знание базовой программы курса «Высшая математика» и основ программирования (желательно Python).

Расписание занятий
С 25 сентября по 30 октября 2019 г.

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

Где и зачем это хотят применять

Массовые мероприятия

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

В московском метро тестируют камеры с распознаванием лиц. Они просматривают лица 20 человек в секунду и сверяют их с базами данных людей в розыске. Если есть совпадение, камеры отправляют данные полицейским. За 2,5 месяца система , которые были в розыске. Известно, что такие камеры есть , но, возможно, их установили и на других станциях.

Банк «Открытие» в начале 2017 года запустил систему распознавания лиц . Она сравнивает лицо посетителя с фотографией в базе данных. Система нужна, чтобы обслуживать клиентов быстрее, как именно - не уточняется. В будущем «Открытие» хочет использовать систему для удаленной идентификации. В 2018 году подобная система, но разработки «Ростелекома» должна появится .

Главное - алгоритм

Какая технология позволяет машинам узнавать лица

Сергей Миляев

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

Камера с алгоритмом компьютерного зрения OpenCV следит за детьми на игровой площадке

Все работает на основе нейросетей

Как именно устроено распознавание лиц, с примером

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

Компьютерное зрение не воспроизводит зрительную систему человека, а только выполняет моделирование некоторых аспектов для решения различных задач

Сергей Миляев

Ведущий исследователь компании VisionLabs

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

Пример

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

Алгоритм компьютерного зрения OpenCV определяет, сколько пальцев ему показывают

Компьютер знает, когда его обманывают

Может ли человек обмануть очень умный компьютер, три примера

Олег Гринчук

Ведущий исследователь VisionLabs

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

Фотография, видео другого человека или распечатанная маска

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

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

Помимо этого, система анализирует отражение света от разных текстур, а также окружение объекта. Так что таким способом обмануть систему почти невозможно.

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

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

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

Большие темные очки, кепка, шарф, закрыть лицо рукой

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

Зрение компьютеров превосходит зрение людей

В чем именно и почему, с примером

Юрий Минкин

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

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

Юрий Минкин

Руководитель департамента Cognitive Technologies

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

Пример

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

Может ли компьютер свидетельствовать против человека

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

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

Давайте вернемся в детство, и вспомним фантастику. Ну, хотя бы Звездные войны, где есть такой желтый человекообразый робот. Он каким-то волшебным образом ходит и ориентируется в пространстве. По сути, у этого робота есть «глаза» и он «видит» окружающее пространство. Но как компьютеры могут что-либо видеть? Когда мы смотрим на что-то, мы понимаем, что мы видим, для нас зрительная информация осмысленна. Но подключив к компьютеру видеокамеры, мы получим лишь набор нулей и единиц, которые он с этой видеокамеры будет считывать. Как компьютеру «понять», что он «видит»? Для ответа на этот вопрос создана такая научная дисциплина, как Computer Vision (Компьютерное зрение). По сути, Computer Vision — это наука о том, как создать алгоритмы, которые анализируют изображения и ищут в них полезную информацию (информацию, которая необходима роботу для ориентации по данным, поступающим с видеокамеры). Задача компьютерного зрения является, по сути, задачей .

Существует несколько направлений и подходов в Computer Vision:

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

Разберем их более подробно.

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

Пример, зашумленное изображение:

После применения размытия по гауссу

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

Сегментация. Сегментация — это разделение изображение на области. Например, одна область — фон, другая конкретный объект. Или, например, есть у нас фотография, где морской пляж. Мы делим ее на области: море, пляж, небо. Для чего нужна сегментация? Ну например, у нас есть задача найти на изображении объект. Для ускорения мы ограничиваем область поиска определенным сегментом, если точно знаем, что объект может быть только в этой области. Или, например, в геоинформатике может быть задача сегментации спутниковых или аэро фотоснимков.

Пример. Вот у нас исходное изображение:

А вот его сегментация:

В данном случае при сегментации использовались текстурные признаки.

Выделение контуров. Для чего на изображении выделять контур? Давайте предположим, что нам надо решить задачу поиска на фотографии лица человека. Допустим, мы сначала попытались решить эту задачу «в лоб» — тупым перебором. Берем «квадратик» с изображением лица и попиксельно сравниваем его с изображением, перемещая квадратик попиксельно слева направо и так по каждой строке пикселей. Понятно, что так будет работать слишком долго, к тому-же, такой алгоритм найдет не любое лицо, а только одно конкретное. И то, если его чуть-чуть повернуть или изменить масштаб, то все, поиск перестанет работать. Другое дело, если у нас есть контур изображения и контур лица. Мы сможем линии контура описать каким-то иным способом, кроме растровой картинки, например, в виде списка координат его точек, в виде группы линий, описанных разными математическими формулами. Короче говоря, выделим контур, мы можем его векторизовать и производить уже не поиск растра среди растра, а векторного объекта среди векторных объектов. Это гораздо быстрее, кроме того, тогда описание объектов может быть инвариантным к поворотам и/или масштабу (то есть, мы можем находить объекты даже если они повернуты или масштабированы).

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

Пример выделения контуров.

Исходное изображение:

Выделенные контуры:

Нахождение особых точек. Другой метод анализа изображения — это нахождение на нем особых точек. В качестве особых точек могут быть, например, углы, экстремумы яркости, а также другие особенности изображения. С особыми точками можно делать примерно тоже, что и с контурами — описать в векторном виде. Например, можно описать взаимное расположение точек в виде расстояний между точками. При повороте объектов расстояние не меняется — значит, такое описание будет инвариантно к повороту. А чтобы сделать модель еще и инвариантной к масштабу, можно описать не расстояние, а отношения между расстояниями — действительно, если расстояние одной пары точек в два раза больше чем другой пары точек, о оно будет всегда в два раза больше, независимо от того, во сколько раз мы увеличили или уменьшили объект. В настоящее время существует много типовых алгоритмов нахождения особых точек, например, детектор Харриса, Моравеца, MSER, AKAZE и так далее. Многие из существующих алгоритмов нахождения особых точек реализованы в OpenCV.

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

Распознавание образов - это отнесение исходных данных к определенному классу с помощью выделения существенных признаков, характеризующих эти данные, из общей массы несущественных данных. При постановке задач распознавания стараются пользоваться математическим языком, стремясь — в отличие от теории искусственных нейронных сетей, где основой является получение результата путём эксперимента, — заменить эксперимент логическими рассуждениями и математическими доказательствами. Классическая постановка задачи распознавания образов: Дано множество объектов. Относительно них необходимо провести классификацию. Множество представлено подмножествами, которые называются классами. Заданы: информация о классах, описание всего множества и описание информации об объекте, принадлежность которого к определенному классу неизвестна. Требуется по имеющейся информации о классах и описании объекта установить — к какому классу относится этот объект.

Существует несколько подходов к распознаванию образов:

  • Перечисление. Каждый класс задаётся путём прямого указания его членов. Такой подход используется в том случае, если доступна полная априорная информация о всех возможных объектах распознавания. Предъявляемые системе образы сравниваются с заданными описаниями представителей классов и относятся к тому классу, которому принадлежат наиболее сходные с ними образцы. Такой подход называют методом сравнения с эталоном. Он, к примеру, применим при распознавании машинопечатных символов определённого шрифта. Его недостатком является слабая устойчивость к шумам и искажениям в распознаваемых образах.
  • Задание общих свойств . Класс задаётся указанием некоторых признаков, присущих всем его членам. Распознаваемый объект в таком случае не сравнивается напрямую с группой эталонных объектов. В его первичном описании выделяются значения определённого набора признаков, которые затем сравниваются с заданными признаками классов. Такой подход называется сопоставлением по признакам. Он экономичнее метода сравнения с эталоном в вопросе количества памяти, необходимой для хранения описаний классов. Кроме того, он допускает некоторую вариативность распознаваемых образов. Однако, главной сложностью является определение полного набора признаков, точно отличающих членов одного класса от членов всех остальных.
  • Кластеризация. В случае, когда объекты описываются векторами признаков или измерений, класс можно рассматривать как кластер. Распознавание осуществляется на основе расчёта расстояния (чаще всего это евклидово расстояние) описания объекта до каждого из имеющихся кластеров. Если кластеры достаточно разнесены в пространстве, при распознавании хорошо работает метод оценки расстояний от рассматриваемого объекта до каждого из кластеров. Сложность распознавания возрастает, если кластеры перекрываются. Обычно это является следствием недостаточности исходной информации и может быть разрешено увеличением количества измерений объектов. Для задания исходных кластеров целесообразно использовать процедуру обучения.

Для того, чтобы провести процедуру распознавание образов, объекты нужно как-то описать. Существует также несколько способов описания объектов:

  • Евклидово пространство — объекты представляются точками в евклидовом пространстве их вычисленных параметров, представление в виде набора измерений;
  • Списки признаков — выявление качественных характеристик объекта и построение характеризующего вектора;
  • Структурное описание — выявление структурных элементов объекта и определение их взаимосвязи.

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

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

  • Используются изображения в интегральном представлении, что позволяет вычислять быстро необходимые объекты;
  • Используются признаки Хаара, с помощью которых происходит поиск нужного объекта (в данном контексте, лица и его черт);
  • Используется бустинг (от англ. boost – улучшение, усиление) для выбора наиболее подходящих признаков для искомого объекта на данной части изображения;
  • Все признаки поступают на вход классификатора, который даёт результат «верно» либо «ложь»;
  • Используются каскады признаков для быстрого отбрасывания окон, где не найдено лицо.

Скажу пару слов об интегральном изображении. Дело в том, что в задачах компьютерного зрения часто приходиться использовать метод сканирующего окна: мы двигаем окно попиксельно по всему изображению и для каждого пикселя окна выполняем определенный алгоритм. Как я уже говорил в начале статьи, такой подход работает медленно, особенно если размер скользящего окна и изображения большой. Например, если у нас размер изображения 1000 на 1000 то это будет миллион пикселей. А если скользящее окно 10 на 10 в нем 100 пикселей и алгоритм, обрабатывающий сто пикселей надо выполнить миллион раз. При получении интегрального изображения мы пробегам по картинке 1 раз и получаем матрицу, в которой каждый пиксель — это сумма яркостей прямоугольника, ограниченного этим пикселем и началом координат. Благодаря такой матрице, мы можем вычислить всего за 4 операции может вычислить сумму яркостей любого прямоугольника (хоть 10 на 10, хоть 30 на 30, хоть 100 на 50). Как правило, во многих случаях, обработка в скользящем окне как раз сводиться к вычислению суммы яркостей.

Машинное зрение. Что это и как им пользоваться? Обработка изображений оптического источника

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

Исторические прорывы в машинном зрении

Компоненты системы машинного зрения

  • Одна или несколько цифровых или аналоговых камер (черно-белые или цветные) с подходящей оптикой для получения изображений
  • Программное обеспечение для изготовления изображений для обработки. Для аналоговых камер это оцифровщик изображений
  • Процессор (современный ПК c многоядерным процессором или встроенный процессор, например - ЦСП)
  • Программное обеспечение машинного зрения, которое предоставляет инструменты для разработки отдельных приложений программного обеспечения.
  • Оборудование ввода-вывода или каналы связи для доклада о полученных результатах
  • Умная камера: одно устройство, которое включает в себя все вышеперечисленные пункты.
  • Очень специализированные источники света (светодиоды, люминесцентные и галогенные лампы и т. д.)
  • Специфичные приложения программного обеспечения для обработки изображений и обнаружения соответствующих свойств.
  • Датчик для синхронизации частей обнаружения (часто оптический или магнитный датчик) для захвата и обработки изображений.
  • Приводы определенной формы используемые для сортировки или отбрасывания бракованных деталей.
Машинное зрение сосредотачивается на применении, в основном промышленном, например, автономные роботы и системы визуальной проверки и измерений. Это значит, что технологии датчиков изображения и теории управления связаны с обработкой видеоданных для управления роботом и обработка полученных данных в реальном времени осуществляется программно или аппаратно.

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

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

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

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

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

Задачи машинного зрения

  • Распознавание
  • Идентификация
  • Обнаружение
  • Распознавание текста
  • Восстановление 3D формы по 2D изображениям
  • Оценка движения
  • Восстановление сцены
  • Восстановление изображений
  • Выделение на изображениях структур определенного вида, сегментация изображений
  • Анализ оптического потока

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


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

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

Один или несколько предварительно заданных или изученных объектов или классов объектов могут быть распознаны (обычно вместе с их двухмерным положением на изображении или трехмерным положением в сцене).

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


Распознается индивидуальный экземпляр объекта принадлежащего к какому-либо классу.
Примеры: идентификация определённого человеческого лица или отпечатка пальцев или автомобиля.

Обнаружение


Видеоданные проверяются на наличие определенного условия.

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

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


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

Оценка положения: определение положения или ориентации определенного объекта относительно камеры.

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

Восстановление 3D формы по 2D изображениям осуществляется с помощью стереореконструкции карты глубины, реконструкции поля нормалей и карты глубины по закраске полутонового изображения, реконструкции карты глубины по текстуре и определения формы по перемещению

Пример восстановления 3D формы по 2D изображеню

Оценка движения

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

Восстановление сцены

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

Восстановление изображений


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

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

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

Восстановление изображений

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

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

Методы обработки изображений

Счетчик пикселей

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

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

Бинаризация


Преобразует изображение в серых тонах в бинарное (белые и черные пиксели).
Значения каждого пикселя условно кодируются, как «0» и «1». Значение «0» условно называют задним планом или фоном а «1» - передним планом.

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

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

Сегментация

Используется для поиска и (или) подсчета деталей.

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

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

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

Чтение штрих-кодов


Штрих-код - графическая информация, наносимая на поверхность, маркировку или упаковку изделий, представляющая возможность считывания её техническими средствами - последовательность чёрных и белых полос либо других геометрических фигур.
В машинном зрении штрих-коды используют для декодирования 1D и 2D кодов, разработанных для считывания или сканирования машинами.

Оптическое распознавание символов

Оптическое распознавание символов: автоматизированное чтение текста, например, серийных номеров.

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

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

Моя программа, написанная на LabView по работе с изображениями

Использовано компьютерное зрение для неразрушающего контроля качества сверхпроводящих материалов.

Введение. Решение задач обеспечения комплексной безопасности (как антитеррористической и механической безопасности объектов, так и технологической безопасности инженерных систем), в настоящее время, требует системной организации контроля, текущего состояния объектов. Одними из наиболее перспективных способов контроля текущего состояния объектов являются оптические и оптико-электронные методы, основанные на технологиях обработки видеоизображений оптического источника. К ним относятся: программы по работе с изображениями; новейшие способы обработки изображений; оборудования для получения, анализа и обработки изображений, т.е. комплекс средств и методов относящихся к области компьютерного и машинного зрения. Компьютерное зрение - это общий набор методов, позволяющих компьютерам видеть и распознавать трех- или двухмерные объекты, как инженерного направления, так и нет. Для работы с компьютерным зрение требуются цифровые или аналоговые устройства ввода-вывода, а также вычислительные сети и IP анализаторы локаций, предназначенные для контроля производственного процесса и подготовки информации для принятия оперативных решений в кратчайшие сроки.

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

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

Задачи:

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

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

Анализ актуальности разработки программы.
  • отсутствием на рынке программного обеспечения программ обработки изображений с выводом подробного анализа инженерных составляющих объектов;
  • постоянно растущими требованиями к качеству и скорости получения визуальной информации, резко повышающими востребованность программ обработки изображений;
  • существующей потребность в программах высокой производительности, надежных и простых с точки зрения пользователя;
  • существует потребность программ высокой производительности и простого управления, чего добиться в наше время крайне сложно. Для примера я взял Adobe Photoshop. Данный графический редактор обладает гармоничным сочетанием функциональности и простоты использования для рядового пользователя, но в данной программе невозможно работать со сложными инструментами по обработке изображения (например, анализ изображения путём построения математической зависимости (функции) или же интегральной обработкой изображений);
  • высокой стоимостью профессиональных программ обработки визуальной информации. Если программное обеспечение качественно, то цена на него крайне высока, вплоть до отдельных функции того или иного набора программ. На графике ниже представлена зависимость цены/качества простых аналогов программы.

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

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

При создании композиционных сверхпроводников на основе Nb3Sn варьируется объемное соотношение бронзы и ниобия, размер и количество волокон в нем, равномерность их распределения по сечению бронзовой матрицы, наличие диффузионных барьеров и стабилизирующих материалов. При заданной объемной доле ниобия в проводнике увеличение количества волокон приводит, соответственно, к уменьшению их диаметра. Это ведет к заметному возрастанию поверхности взаимодействия Nb / Cu-Sn, что в значительной степени ускоряет процесс нарастания сверхпроводящей фазы. Такое увеличение количества сверхпроводящей фазы при повышении числа волокон в проводнике обеспечивает возрастание критических характеристик сверхпроводника. В связи с этим необходимо наличие инструмента для контроля объемной доли сверхпроводящей фазы в конечном продукте (композиционном сверхпроводнике).

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

Блок-диаграмма программы


Описание этапов исследования.

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

2 этап. Получение изображений: получение металлографических изображений на сканирующем электронном микроскопе.

3 этап. Обработка изображений: создание инструмента для определения объемной доли сверхпроводящей фазы на металлографическом изображении; набор статистически значимых данных на конкретном типе образцов. Созданы математические модели различных инструментов по обработке изображений; создана программная разработка для оценки объемной доли сверхпроводящий фазы; программа была облегчена путём соединения нескольких математических функций в одну; было получено среднее значение объемной доли волокон ниобия в бронзовой матрице 24.7±0,1 %. Низкий процент отклонения свидетельствует о высокой повторяемости структуры композиционного провода.

Электронномикроскопическое изображения композиционных сверхпроводников

Методы обработки изображений в программе.

  • Идентификация - распознается индивидуальный экземпляр объекта, принадлежащего к какому-либо классу.
  • Бинаризация – процесс перевода цветного (или в градациях серого) изображения в двухцветное черно-белое.
  • Сегментация - это процесс разделения цифрового изображения на несколько сегментов (множество пикселей, также называемых суперпикселями).
  • Эрозия – сложный процесс, при выполнении которого структурный элемент проходит по всем пикселам изображения. Если в некоторой позиции каждый единичный пиксел структурного элемента совпадет с единичным пикселом бинарного изображения, то выполняется логическое сложение центрального пиксела структурного элемента с соответствующим пикселом выходного изображения.
  • Дилатация - свертка изображения или выделенной области изображения с некоторым ядром. Ядро может иметь произвольную форму и размер. При этом в ядре выделяется единственная ведущая позиция, которая совмещается с текущим пикселем при вычислении свертки.

Формулы работы программы

Формула бинаризации (метод Оцу):

Формула эрозии:

Формула дилатации:

Схема дилатации и эрозии

Формулы сегментации порогами цвета:

Определение модуля градиента яркости для каждого пикселя изображения:

Вычисление порога:

Использованное оборудование

Интерфейс программы