Современное компьютерное зрение. Задачи и технологии компьютерного зрения. Программирование компьютерного зрения на Python

программирование компьютерного зрения на PythonМожно ли научить персональный компьютер различать, что изображено на фотографии или картинке? Для нас-то это довольно просто, но для компьютера это матрица, состоящая из нулей и единиц, из которой нужно извлечь требуемую информацию. Что же сегодня понимают под компьютерным зрением? Компьютерное зрение — это способность компьютера «видеть». Зрение для человека является важным источником информации. По разным данным, с помощью зрения мы получаем от 70 до 90% всей важной информации. Естественно, если мы хотим создать «умный» компьютер, нужно будет реализовать на нем эти же навыки. Можно сформулировать задачу компьютерного зрения довольно четко? Проще говоря, видеть – это понимать, что где расположено, просто глядя. Здесь и заключаются различия между зрением человека и компьютерным зрением. Для нас зрение – это источник знаний о мире и источник метрической информации. Благодаря зрению у нас есть способность понимать размеры и расстояния.

Семантическое ядро изображения

Если посмотреть на изображение, то можно сразу охарактеризовать его по целому ряду признаков, или, как говорят специалисты, извлечь семантическую информацию. Так, к примеру, глядя на фотографию, можно сразу сказать, что на ней изображено: уличное движение, город, автомобили. Также по конфигурации зданий можно догадаться, где была сделана фотография. По иероглифам и портретам Мао можно догадаться, что фотографии сделаны в Пекине. Что еще можно сказать по картинке, взглянув на нее? Можно выделить основные объекты на изображении и сказать, кто или что на ней изображено. Приведем примеры классов очень важных объектов, поиском которых занимаются в данный момент: здания, люди, плакаты, сооружения. Также из картинки можно извлечь определенные атрибуты или признаки объектов. Например, в нашем случае речь идет о портретах не каких-то рядовых китайцев, а Мао Цзэдуна. По изображенному на фотографии автомобилю можно определить, что этот объект движется. Кроме того, он жесткий, поскольку не деформируется во время движения. Про флаги же наоборот можно сказать, что это не жесткие объекты, которые постоянно деформируются. В сцене также присутствует ветер. Определить это можно по развивающемуся флагу. Таким образом, можно узнать и направление ветра, например, он дует слева направо.

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

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

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

Распознавание образов и их анализ – путь к созданию высшего разума? Давайте разберемся с этими понятиями. Под обработкой изображения понимается область алгоритмов, в которых на выходе и на выходе присутствует изображение, а нам еще предстоит что-то с ним делать. Анализом изображения называется область компьютерного зрения, которая фокусируется на работе с двухмерным изображением. Распознавание образов является абстрактной математической дисциплиной. Информация в ней распознается в виде векторов. На входе есть вектор, и нам нужно что-то с ним сделать. Здесь не принципиально, откуда этот вектор. Изначально под компьютерным зрением подразумевалось восстановление структуры из двухмерных изображений. Сегодня эта область стала намного шире. Ее можно трактовать вообще как принятие решений о физических объектах на основе изображения. Фактически, это задача искусственного интеллекта. Вместе с компьютерным зрением в совершенно другой области развивалась фотограмметрия. Так называют измерение расстояний между объектами по двухмерным изображениям.

Роботы тоже «видят»

Теперь поговорим о том, что такое машинное зрение. Здесь под машинным зрением мы имеем в виду зрение роботов. Оно может применяться для решения некоторых производственных задач. Сегодня компьютерное зрение представляет собой одну большую науку, которая частично объединяет в себе другие науки. Когда компьютерное зрение получает какое-то конкретное приложение, оно становится машинным зрением. У области компьютерного зрения может быть масса практических применений. Связано это с автоматизацией производства. На предприятиях постепенно становится намного эффективнее заменять ручной труд машинным. Машине не требуется сон и отдых, она может работать по ненормированному рабочему графику, 365 дней в году. Это значит, что используя машинный труд, вы сможете получить гарантированный результат в определенное время, что представляет большой интерес. Все задачи для систем компьютерного зрения имеют наглядное применение. Нет ничего лучше, чем сразу увидеть результат на картинке на стадии расчетов.

Мир искусственного интеллекта

Плюсом данной области является ее сложность. За зрение отвечает существенная часть мозга. Считается, что в полной мере научить компьютер «видеть», то есть применить компьютерное зрение во всем объеме, является одной из основных задач искусственного интеллекта. Если мы сможем решить проблему на уровне человека, то нам, скорее всего, одновременно удастся решить задачу. Это может существенно упростить жизнь современного человека, а может доставить и множество проблем, достаточно хотя бы вспомнить фильм «Терминатор». Почему же наше зрение так сложно устроено? Изображение одних и тех же объектов может различаться в зависимости от внешних факторов. Кроме того, объекты могут выглядеть по-разному в зависимости от точек наблюдения. К примеру, одна и та же фигура может быть сфотографирована с разных точек. Самое интересное, что у фигуры может быть один глаз, два или полтора. Может быть и больше двух глаз. Компьютер еще не совсем хорошо понимает, но уже все «видит». Существует еще один фактор, который создает особую сложность – это освещение. Одна и та же сцена с различным освещением может выглядеть по-разному. Может варьироваться и размер объектов. Причем, это могут быть объекты любого класса. Как можно сказать о человеке, имеющем рост 2 метра? Никак. Ведь рост человека может равняться и 2,5 м, и 80 см. Тем не менее, все это объекты одного класса. Чаще всего разнообразные деформации претерпевают живые объекты. Особенно это касается животных, спортсменов. Достаточно только взглянуть на снимок бегущих лошадей. Ведь невозможно определить, что происходит с их хвостом и гривой. Что уж говорить о перекрытии объектов на изображении? Если вы подсунете компьютеру такую картинку, то даже самая мощная вычислительная машина не сможет вам выдать правильное решение.

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

Компьютерное зрение: интеграция в различные платформы

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

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

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

Игры с участием компьютерного зрения

Создание трехмерных моделей и захват движения — это отдельная область, которая сегодня довольно широко используется в компьютерных играх. Первая программа, использующая компьютерное зрение, была реализована в системе взаимодействия с компьютером при помощи жестов. При разработке данной системы было открыто много нового. Алгоритм сам по себе устроен достаточно просто. Чтобы настроить его потребовалось создать генератор искусственных изображений, чтобы получить миллионы картинок. С помощью них суперкомпьютер подобрал параметры алгоритма, по которым он теперь работает лучшим образом. Таким образом, миллион изображений и неделя расчетов на суперкомпьютере позволили разработать алгоритм, который потребляет 12% мощности одного процессора и позволяет в реальном времени воспринимать позу человека. Эта система получила название Microsoft Kinect. Поиск изображений по содержанию дает возможность загружать фотографию в систему. По результатам анализа система выдаст все снимки с таким же содержанием, или выполненные с такого же ракурса. Компьютерное зрение сегодня применяется для изготовления трехмерных и двухмерных карт. Карты для навигаторов регулярно обновляются за счет данных с видеорегистраторов. Существует база, в которой содержится миллиард фотографий с геометками. При загрузке снимка в эту базу можно будет определить, где и с какого ракурса он был сделан. Конечно, при том условии, если это место пользуется популярностью, и в свое время там побывали туристы, которые сделали много фотографий данной местности.

Нас окружают роботы

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

Современные фотоаппараты

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

Психологическое восприятие цвета

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

Программирование компьютерного зрения на Python

Если вы всерьез решили заняться изучением компьютерного зрения, то вам стоит сразу приготовиться к целому ряду трудностей. Начальную информацию по этому вопросу вы можете получить из книги Яна Эрика Солема «Программирование компьютерного зрения на Python». В этой книге вся информация излагается простым и понятным языком. Здесь вы сможете познакомиться с методами распознавания различных объектов в 3D, научиться работать с виртуальной реальностью, стереоизображениями и многими приложениями из области компьютерного зрения. В этой книге приводится достаточно много примеров на языке Python. Пояснения представлены довольно обобщенно, чтобы не нагружать читателя тяжелой научной информацией. Данная книга подойдет энтузиастам и просто любителям. Вы можете скачать эту книгу в сети Интернет. Сегодня существует открытая библиотека алгоритмов компьютерного зрения, численных алгоритмов Open CV и алгоритмов обработки изображений. Если говорить конкретно о компьютерном зрении, которое использует в качестве языка программирования Python, то оно также имеет поддержку данных библиотек. Компания Microsoft предоставляет своиApi-сервисы, которые способны обучить нейросети работе с изображениями лиц.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *