Меню Рубрики

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

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

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

Произведение было опубликовано в 2012 году издательством ДМК-Пресс. На нашем сайте можно скачать книгу «Программирование компьютерного зрения на языке Python» в формате fb2, rtf, epub, pdf, txt или читать онлайн. Здесь так же можно перед прочтением обратиться к отзывам читателей, уже знакомых с книгой, и узнать их мнение. В интернет-магазине нашего партнера вы можете купить и прочитать книгу в бумажном варианте.

Программирование на Python: от новичка до профессионала

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

Что делать?

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

1. Первым делом изучите основы. Узнайте, что такое переменные, управляющие структуры, структуры данных. Эти знания необходимы без привязки к конкретному языку.

2. Займитесь изучением литературы. Начните с классики – Dive into Python. Эта книга вообще может стать настольной. Еще можно почитать Майкла Доусона «Программируем на Python» и Алексея Васильева «Python на примерах. Практический курс по программированию». Доусон – опытный программист и преподаватель, а в книге учит программировать, создавая простые игры. В книге Васильева, напротив, больше внимания уделяется основам и теории.

3. Практикуйтесь. Можно (и нужно) делать это параллельно с изучением теории. Пройдите курс Learn Python на Codecademy: вся необходимая для выполнения заданий теория подается прямо во время заданий. Как вариант, можно посетить Питонтьютор – бесплатный интерактивный курс по Python на русском.
Также есть хорошие курсы на Stepik:
Программирование на Python, Python: основы и применение

4. Пройдите курс «Введение в компьютерные технологии и программирование на языке Python» от MIT.

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

6. Если вас интересуют веб-технологии, обратите внимание на фреймворки Flask и Django. Узнайте, для каких целей какой из них лучше подходит, начните изучать тот, что подходит вам.

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

8. Ищите информацию о методах машинного обучения.

9. Оптимизируйте работу с инструментами, автоматизируйте рутину и все, что еще не автоматизировано.

Куда сходить?

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

Полезные ресурсы

Python Tutor

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

Bucky Roberts на YouTube

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

Derek Banas про Python на YouTube

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

Corey Schafer на YouTube

У Кори хорошие видео на тему форматирования строк, генераторов, программистских терминов (комбинации и перестановки, DRY, замыкания) и многого другого, что поможет понять основные концепции.

Django Getting Started

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

Введение во Flask

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

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

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

Краткое содержание книги:

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

Мой топ-7 библиотек для Python для компьютерного зрения

Published by Kirill IO on 02/08/2017

Когда я начинал изучение компьютерного зрения, я работал в банке и писал программы на C#. Как оказалось, C# хорошо подходит для написания бизнес-логики, сайтов и больших систем BI, но для машинного обучения и обработки изображений он подходит гораздо хуже. Дело не в синтаксисе и не в возможностях языка, а в малом количестве библиотек для обработки данных. На помощь приходит Python, с его практически всеохватывающим PIP и сильным коммьюнити в области DataScience и CV. Первые месяцы прошли в выборе набора библиотек для работы, как же я тогда хотел найти хороший список совместно работающих плагинов и заняться уже решением задач.

Этот список не претендует на законченность и правильность. Я перечислил библиотеки, которые я использую почти каждый день для решения задач по DataScience и компьютерному зрению. У каждой библиотеки будет описание для чего она используется и как ее установить. Если вы можете посоветовать как расширить этот список или заменить что то из него на более новое – пишите в комментарии или на почту. Пользователи Anaconda, для вас этот список – лишь малая часть того, что есть в этом замечательном пакете.

Базовые:

NumPy это больше чем просто библиотека для Python, мало какие плагины для обработки данных могут обойтись без нее. NumPy позволяет быстро и удобно работать с такими структурами данных как большие многомерные массивы. В чем отличие их от встроенных массивов в Python, как в форме List, так и из библиотеки collections? NumPy написать на быстром коде C++ и все операции с массивами уже содержат максимально оптимизированный код, ускорение в сравнении со стандартными библиотеками может составлять сотни раз! Как данные возможности помогают при обработке изображений? Для примера рассмотрим стандартное изображение Лены(цензурное). В представлении NumPy оно будет представлять из себя массив 512 × 512 × 4 значений в формате RGB, где каждое число представляет из себя R G B A значение пикселя. Все значения находятся в промежутке

Интернет-журнал Арт-сюжет

  • Просмотров: 15
  • Автор: Gunpowder
  • Дата: 30-03-2019, 23:33

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

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

Название: Программирование компьютерного зрения на языке Python
Автор: Ян Эрик Солем
Издательство: ДМК Пресс
Год: 2016
Страниц: 312
Формат: PDF
Размер: 36,77 МБ
ISBN: 978-5-97060-200-3
Качество: отличное

Краткое содержание книги:

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

Читайте также:  Очки для коррекции зрения в алматы

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

tellurian Матрос

rwa12 Офицер

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

BozMozzis Капитан

rwa12,
у Сычева какая-то болезнь хроническая была. реальная

rwa12 Офицер

BozMozzis Капитан

А что же так увял Федя Смолов?
У меня есть подозрение, что он как не влился в ЧМ, так с тех пор и ищет себя прежнего.

NewYorick Матрос

rwa12 Офицер

BozMozzis,

NewYorick Матрос

Неубиваемые Windows? Типа, антивандальные?
Ну, берётся рама. Желательно из стали толщиной миллиметров 5-7. В раму нужно по размеру вставить многослойные пуленепробиваемые стёкла. Утеплители и герметики — по усмотрению.
Думаю, такие окна прослужат достаточно долго. Даже при очень неблагоприятных внешних условиях.

Dimension Матрос

Небось аффторы по большому секрету рассказывают про
Shadow User или подобную софтину.
Угадал? 🙂

NewYorick Матрос

Небось, газ в газовой горелке — из российской тубы.
Впрочем, какая разница. Уверен, что спичку о коробок чиркает какой-то хитроумный еврей. Иначе зачем двери закрывать? Таинство? Фокуство.

PS
Кстати, Пасха является главным праздником у православных христиан. А у католиков — Рождество. Пастухи так решили.

rwa12 Офицер

У меня немецкий диск Sanctuary Records (2730324), 2010 года выпуска, хотя и ремастер, но звук, на мой взгляд, отменный. Всем советую послушать, если раньше не слышали. discogs

Juergen Мичман

Первым я купил английское издание 1986 года (недорогой Castle), а потом попался уже этот американец. Он мне понравился больше, и от англичанина я избавился.

Потом в 1996 году вышел английский ремастер, его тоже купил, но звук не понравился, и его тоже куда-то его сплавил. В итоге в коллекции остался именно этот американец.

rwa12 Офицер

Мой любимый альбом Black Sabbath. Диск конечно имеется, но скачаю послушаю и этот вариант. Спасибо!

Osieron Офицер

Спасибо с удовольствием забираю:)

Juergen Мичман

В дополнение к другим изданиям, уже представленным на лодке

Самые популярные

Архив новостей

« Апрель 2019 »
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Поиск по тегам

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

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

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

Краткое содержание книги:

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

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

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

Что такое компьютерное зрение? Это способность компьютера «видеть»

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

Задача компьютерного зрения может быть сформулирована достаточно нечетко. Что такое «видеть»? Это понимать, что где расположено, просто глядя. В этом и заключены различия компьютерного зрения и зрения человека. Зрение для нас — это источник знаний о мире, а также источник метрической информации – то есть способность понимать расстояния и размеры.

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

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

Например, глядя на эту фотографию, мы можем сказать, что это вне помещения. Что это город, уличное движение. Что здесь есть автомобили. По конфигурации здания и по иероглифам мы можем догадаться, что это Юго-Восточная Азия. По портрету Мао Цзэдуна понимаем, что это Пекин, а если кто видел видеотрансляции или сам там побывал, сможет догадаться, что это знаменитая площадь Тяньаньмэнь.

Что мы можем ещё сказать о картинке, рассматривая её? Можем выделить объекты на изображении, сказать, вот там люди, здесь ближе — ограда. Вот зонтики, вот здание, вот плакаты. Это примеры классов очень важных объектов, поиском которых занимаются на данный момент.

Ещё мы можем извлечь некоторые признаки или атрибуты объектов. Например, здесь мы можем определить, что это не портрет какого-то рядового китайца, а именно Мао Цзэдуна.

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

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

Очень важной является метрическая информация в науке про компьютерное зрение. Это всевозможные расстояния. Например, для марсохода это особенно важно, потому что команды с Земли идут порядка 20 минут и ответ столько же. Соответственно, связь туда-обратно — 40 минут. И если мы будем составлять план движения по командам Земли, то нужно это учитывать.

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

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

Анализ, распознавание образов – путь к созданию высшего разума

Разберем эти понятия отдельно.

Обработка изображений – это область алгоритмов, в которых на входе и на выходе — изображение, и мы уже с ним что-то делаем.

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

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

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

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

Роботы могут «видеть»

И последнее — это машинное зрение. Под машинным зрением подразумевается зрение роботов. То есть решение некоторых производственных задач. Можно сказать, что компьютерное зрение это одна большая наука. Она объединяет в себе некоторые другие науки частично. А когда компьютерное зрение получает какое-то конкретное приложение, то оно превращается в машинное зрение.

Читайте также:  Увидит ли окулист лазерную коррекцию зрения

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

На пороге в мир искусственного интеллекта

Плюс области – это сложно! Существенная часть мозга отвечает за зрение и считается, что если научить компьютер «видеть», то есть в полной мере применить компьютерное зрение, то это одна из полных задач искусственного интеллекта. Если мы сможем решить проблему на уровне человека, скорее всего, одновременно мы решим задачу ИИ. Что очень хорошо! Или не очень хорошо, если смотреть «Терминатор 2».

Почему зрение — это сложно? Потому что изображение одних и тех же объектов может сильно разниться в зависимости от внешних факторов. В зависимости от точек наблюдения объекты выглядят по-разному.

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

Компьютер ещё не понимает, но уже «видит»

Ещё один фактор, создающий сложности — это освещение. Одна и та же сцена с разным освещением будет выглядеть по-разному. Размер объектов может варьироваться. Причем объектов любых классов. Ну как можно сказать о человеке, что его рост 2 метра? Никак. Рост человека может составлять и 2.3 м, и 80 см. Как и объектов других типов, тем не менее это объекты одного и того же класса.

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

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

Ещё одна проблема – это движение. Объекты в движении претерпевают невообразимые деформации.

Многие объекты очень изменчивы. Вот, к примеру, на двух фото ниже объекты типа «кресло».

И на этом можно сидеть. Но научить машину, что такие разные вещи по форме, цвету, материалу все являются объектом «кресло» — очень сложно. В этом и состоит задача. Интегрировать методы компьютерного зрения – это научить машину понимать, анализировать, предполагать.

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

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

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

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

Требования к паспортным фотографиям во многом обусловлены особенностью алгоритмов распознавания по лицу.

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

Нерешенная задача компьютерного зрения – это способность распознавать произвольный текст

Возможно, кто-то пользовался системой распознавания текста. Одна из таких — это Fine Reader, очень популярная в Рунете система. Есть много форм, где нужно заполнять данные, они прекрасно сканируются, информация распознаётся системой очень хорошо. А вот с произвольным текстом на изображении дело обстоит гораздо хуже. Эта задача пока остаётся нерешенной.

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

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

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

Вот так миллион изображений и неделя счётного времени суперкомпьютера позволили создать алгоритм, который потребляет 12% мощности одного процессора и позволяет воспринимать позу человека в реальном времени. Это система Microsoft Kinect (2010 год).

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

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

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

Роботы повсюду

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

Современный фотоаппарат — это аналог камеры-обскура

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

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

Ниже вы видите первое цифровое изображение в мире.

Но что на этом изображении отсутствует? Цвет. А что такое цвет?

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

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

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

Если вы решили всерьёз заняться изучением компьютерного зрения, стоит сразу приготовиться к ряду трудностей, наука эта не самая лёгкая и прячет в себе ряд подводных камней. Но «Программирование компьютерного зрения на Python» в авторстве Яна Эрика Солема — это книга, в которой все излагается максимально простым языком. Здесь вы познакомитесь с методами распознавания различных объектов в 3D, научитесь работать со стереоизображениями, виртуальной реальностью и многими другими приложениями компьютерного зрения. В книге достаточно примеров на языке Python. Но пояснения представлены, так сказать, обобщённо, дабы не перегрузить слишком научной и тяжелой информацией. Труд подойдёт студентам, просто любителям и энтузиастам. Скачать эту книгу и другие про компьютерное зрение (pdf-формата) можно в сети.

Читайте также:  С каким зрением не дадут справку на права

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

Компания «Майкрософт» предоставляет свои Api-сервисы, способные обучить нейросети для работы именно с изображениями лиц. Есть возможность применять также компьютерное зрение, Python использующее в качестве языка программирования.

Ян Эрик Солем — Программирование компьютерного зрения на языке Python

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

Название: Программирование компьютерного зрения на языке Python
Автор: Ян Эрик Солем
Язык: Русский
Издательство: ДМК Пресс
Жанр: Программирование
Год выхода: 2016
Формат: pdf
Страниц: 312
Размер: 36,8 МБ

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

Категория: Электронные книги Дата выхода: Февраль 2016
Отзывов о курсе: 0 / 0 / 0 —> Источник: Сайт автора продукта Цена у автора: 819 руб

Программирование компьютерного зрения на языке Python
Programming Computer Vision with Python
Автор: Солем Я. (Jan Erik Solem)
Языки: Русский
Переводчик: ?
Издательство: ДМК Пресс (OReilly Media)
Год: 2016 (2012)
ISBN: 978-5-97060-200-3 (978-1-4493-1653-2)
Странниц: 360 (264)
Переплет: Мягкий
Если вы хотите разобраться в основах теории и алгоритмов машинного зрения, то это практическое введение — как раз то, что вам нужно.
Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях машинного зрения.
Изложение сопровождается понятными примерами на Python.
В этой книге объяснения даются в общих чертах, без погружения в сухую теорию. В примерах кодах описано, как подготовить данные и выполнить программу, а упражнения позволят закрепить пройденное.
Книга идеально подходит для студентов, исследователей и энтузиастов-любителей с базовыми знаниями математики и навыками программирования.

Краткое содержание книги:

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

Компьютерное зрение и мобильные роботы. Часть 1 — V-REP, Python, OpenCV

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

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

Так и возникла идея серии статей, про решение простейшей задачи ориентации робота в пространстве — от виртуальной симуляции, до воплощения в реальном мобильном роботе:

Часть 1. Настройка виртуальной среды, интеграция с python и OpenCV для распознавания образов из виртуального мира.
Часть 2. Создание виртуального мобильного робота, алгоритм автономного перемещения (поиск объекта)
Часть 3. Создание реального робота, перенос логики на него.

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

Мозгом робота будет микрокомпьютер RaspberryPi2 — на котором без проблем работает и python, и OpenCV. Таким образом необходимо состыковать систему виртуальной робототехники V-REP — с Python и OpenCV. Вот про это и будет первая часть — данная публикация.

Нарисуем архитектуру нашего мобильного робота.

Архитектура мобильного робота
Реальный робот, будет выглядит примерно так (ещё камеру добавим)

Архитектурно:

Как мы видим — «мозг» робота получает изображение, распознаёт (посредством OpenCV) и передаёт управляющие команды на колеса. И заменив изображение с камеры на 3д изображение, а управление колесами — на управление виртуальными колесами 3д робота в виртуальном мире — мы получим стенд для отработки логики.

Получаем, такую архитектуру для виртуального стенда:

В нашей сегодняшней первой части — нам необходимо решить задачу связки V-REP с внешним python скриптом, который выполняет распознавание образов с помощью OpenCV, и выводит маркер вокруг найденного объекта.

Получается такая архитектура:

Установка V-REP

Считаем что V-REP установлен и работает. Нам необходимо создать сцену.

На сцене будет камера, что просматривает область, на которой есть разные 3д объекты, это изображение необходимо транслировать внешнему python скрипту, который должен вызывать OpenCV для распознавания, и формирования маркера, и возврат данного изображения обратно в V-REP — для контроля.

К счастью среди примеров который поставляются с V-REP был подобный пример, правда он использовал ROS (что для текущих задач не требовался):

На базе этого демо появилась следующая сцена:

  • подвижный штатив, что вращается
  • на этом штативе закреплена камера v0 (vision sensor)
  • размещён v1 сенсор, данные на который передаются из внешней системы

Сцену scene.ttt можно скачать отсюда.

Python API

Считаем, что Python у вас установлен (тестировалось на 2.7.6)

При запуске V-REP автоматически загружается плагин обеспечивающий связку Python API. Для работы с API через python скрипт необходимо наличие трёх файлов в папке:

  • remoteApi.so (или remoteApi.dll)
  • vrep.py
  • vrepConst.py

Их можно скопировать из V-REP каталога (programming/remoteApiBindings/python/python, programming/remoteApiBindings/lib/lib/). После этого можно импортировать модуль V-REP:

Простейший скрипт, что подключается к API, выглядит так:

На нашей сцене есть два объекта — v0 и v1 — это Visual Sensor — с первого мы считываем картинку, на второй мы должны записывать результат. Поэтому мы должны получить эти объекты в контексте нашего python скрипта, делается это с помощью API команды vrep.simxGetObjectHandle

Обращаем внимание, что все функции доступные через API — так же доступны и через внутренние скрипты (Lua), единственное отличие что в названии вместо simx — sim, то есть в нашем случае вызов функции на Lua будет «simGetObjectHandle».

Для получения из Vision Sensor картинки и записи — есть две функции: vrep.simxGetVisionSensorImage и vrep.simxSetVisionSensorImage соответственно.

И в python коде это будет выглядеть так (где v0 и v1 — соответствующие объекты):

Единственно, для Vision Sensor что получает данные из внешнего источника, в параметрах надо выставить соответствующий флаг:

Ретрансляция изображения

Для проверки мы должны стартовать сцену (кнопка «Play» вверх), и после этого в командной строке запустить файл simple_image_retranslate.py

И вот результат (v1 — отображает изображение из python скрипта):

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

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

Во первых OpenCV надо установить, установка opencv2 на Linux Mint (Ubuntu) выглядела достаточно просто:
sudo apt-get install libopencv-dev python-opencv

После этого появилась возможность подключать библиотеку в python коде:

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

Появилась функция def track_green_object(image), что возвращает координаты зелёного объекта, если найден.

И так же надо отметить маркером вокруг найденного объекта, для этого мы воспользуемся базовой OpenCV функцией для рисования прямоугольника: cv2.rectangle.

И наш фрагмент кода, что:

  1. получает изображение (из v0)
  2. находит объект (что-то зелёное)
  3. добавляет маркер (желтый прямоугольник)
  4. возвращает изображение (в v1)

выглядит так:

Теперь осталось запустить всё вместе: стартуем сцену, запускаем скрипт и смотрим, что происходит:

Исходный код проекта можно найти на github.

В следующей части мы будем создавать робота в V-REP, и программировать его для поиска зелёного мяча.

Источники:
  • http://proglib.io/p/python-from-newbie-to-professional/
  • http://dmkpress.com/catalog/computer/programming/python/978-5-97060-200-3/
  • http://arboook.com/kompyuternoe-zrenie/moj-top-7-bibliotek-dlya-python-dlya-kompyuternogo-zreniya/
  • http://www.artplot.ru/book/306350-programmirovanie-kompyuternogo-zreniya-na-yazyke-python.html
  • http://www.kpnemo.eu/ebooks/kompjuternaja-literatura/79585-programmirovanie-kompyuternogo-zreniya-na-yazyke-python.html
  • http://fb.ru/article/293034/sovremennoe-kompyuternoe-zrenie-zadachi-i-tehnologii-kompyuternogo-zreniya-programmirovanie-kompyuternogo-zreniya-na-python
  • http://quantum-soft.net/book/212919-yan-erik-solem-programmirovanie-kompyuternogo-zreniya-na-yazyke-python.html
  • http://relizor.ru/products/programmirovanie-kompyuternogo-zreniya-na-yazike-python-2016/
  • http://habr.com/post/281186/