Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 651162.02.99
К покупке доступен более свежий выпуск Перейти
Если вы хотите разобраться в основах теории и алгоритмов компьютерного зрения, то эта книга - как раз то, что вам нужно. Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях компьютерного зрения. Изложение сопровождается понятными примерами на языке Python. При этом объяснения даются в общих чертах, без погружения в сухую теорию. Издание идеально подходит для студентов, исследователей и энтузиастов-любителей с базовыми знаниями математики и навыками программирования.
Солем, Ян Эрик Программирование компьютерного зрения на языке Python / Ян Эрик Солем ; пер. с англ. А.А. Слинкина. - Москва : ДМК Пресс, 2016. - 312 с. - ISBN 978-5-97060-200-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1027847 (дата обращения: 29.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Программирование компьютерного зрения на Python

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

Интернет-магазин:
www.dmkpress.com
Книга – почтой: 
orders@alians-kniga.ru
Оптовая продажа:
“Альянс-книга”
тел.(499)782-38-89 
books@alians-kniga.ru
www.дмк.рф

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

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

• 
преобразования изображений, в частности деформирование текстур и создание панорам;

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

• 
организация изображений по сходству или содержанию с применением методов кластеризации;

• 
разработка эффективных методов поиска изображений по содержанию;

• 
алгоритмы распознавания объектов и классификации изображений по содержанию;

• 
работа с популярной библиотекой OpenCV через интерфейс              
с Python.

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

зрения

Ян Эрик Солем, большой энтузиаст языка Python, занимается 

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

По образованию прикладной математик, работал доцентом, 

техническим директором стартапа, пишет книги. 

9 785970 602003

ISBN 978-5-97060-200-3

на языкеPython

Ян Эрик Солем

Цветное издание

Ян Эрик Солем

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

Programming 
Computer Vision 
with Python

Jan Erik Solem

Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo

Москва, 2016

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

Ян Эрик Солем

УДК    004.93Python
ББК    32.972.1

С60

С60     Ян Эрик Солем

Программирование компьютерного зрения на языке Python. / пер. с 
англ. Слинкин А. А. – М.: ДМК Пресс, 2016. – 312 с.: ил.

ISBN 978-5-97060-200-3

Если вы хотите разобраться в основах теории и алгоритмов 

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

Издание идеально подходит для студентов, исследователей 

и энтузиастов-любителей с базовыми знаниями математики и 
навыками программирования.

УДК    004.93Python

     ББК    32.972.1

Original English language edition published by O'Reilly Media, Inc., 1005 

Gravenstein Highway North, Sebastopol, CA 95472. Copyright © 2012 O'Reilly 
Media, Inc. Russian-language edition copyright © 2016 by DMK Press. All 
rights reserved.

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

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

ISBN 978-1-44931-654-9 (англ.)                     Copyright © Jan Erik Solem, 2012. 
ISBN 978-5-97060-200-3 (рус.)                       © Оформление, перевод на русский язык,

          ДМК Пресс, 2016

Оглавление

Предисловие.................................................... 11

Требования к читателю и структура книги ...................................... 12

Необходимые знания и навыки ............................................................. 12
Чему вы научитесь ................................................................................ 12
Структура книги .................................................................................... 13

Введение в компьютерное зрение ................................................. 14
Python и NumPy ............................................................................. 14
Обозначения и графические выделения ........................................ 15
О примерах кода ........................................................................... 16
Как с нами связаться ..................................................................... 17
Благодарности .............................................................................. 17
Об авторе ...................................................................................... 18

Глава.1..Основы.обработки.изображений............... 19

1.1. PIL – библиотека Python Imaging Library ................................... 19
Преобразование изображения в другой формат ................................... 20
Создание миниатюр.............................................................................. 21
Копирование и вставка областей .......................................................... 21
Изменение размера и поворот .............................................................. 22

1.2. Библиотека Matplotlib ............................................................. 22
Рисование точек и прямых линий .......................................................... 22
Изолинии и гистограммы изображений ................................................ 25
Интерактивное аннотирование ............................................................. 26

1.3. Пакет NumPy ........................................................................... 27
Представление изображения в виде массива ....................................... 27
Преобразование уровня яркости .......................................................... 29
Изменение размера изображения ........................................................ 31
Выравнивание гистограммы ................................................................. 31
Усреднение изображений ..................................................................... 33
Метод главных компонент для изображений ......................................... 34
Использование модуля pickle ................................................................ 37

1.4. Пакет SciPy ............................................................................. 39
Размытие изображений ........................................................................ 39
Производные изображения ................................................................... 40
Морфология – подсчет объектов........................................................... 43
Полезные модули в пакете SciPy ........................................................... 46

Оглавление

1.5. Более сложный пример: очистка изображения от шумов ........ 47

Упражнения ................................................................................... 50

Соглашения в примерах кода ........................................................ 51

Глава.2..Локальные.дескрипторы.изображений...... 53

2.1. Детектор углов Харриса .......................................................... 53
Нахождение соответственных точек в изображениях ............................ 57

2.2. SIFT – масштабно-инвариантное преобразование признаков . 62
Особые точки ........................................................................................ 62
Дескриптор ........................................................................................... 63
Обнаружение особых точек ................................................................... 63
Сопоставление дескрипторов ............................................................... 67

2.3. Сопоставление изображений с геометками ............................ 70
Загрузка изображений с геометками из Panoramio ............................... 71
Сопоставление с помощью локальных дескрипторов ............................ 74
Визуализация связанных изображений ................................................. 76

Упражнения ................................................................................... 78

Глава.3..Преобразования.изображений................. 80

3.1. Гомографии ............................................................................ 80
Алгоритм прямого линейного преобразования ..................................... 82
Аффинные преобразования .................................................................. 84

3.2. Деформирование изображений .............................................. 85
Изображение внутри изображения ....................................................... 86
Кусочно-аффинное деформирование ................................................... 91
Регистрация изображений .................................................................... 95

3.3. Создание панорам ................................................................ 101
RANSAC .............................................................................................. 101
Устойчивое вычисление гомографии .................................................. 102
Сшивка изображений .......................................................................... 106

Упражнения ................................................................................. 109

Глава.4..Модели.камер.и.дополненная.реальность.... 110

4.1. Модель камеры с точечной диафрагмой ............................... 110
Матрица камеры ................................................................................. 111
Проецирование точек трехмерного пространства ............................... 113
Вычисление центра камеры ................................................................ 116

4.2. Калибровка камеры .............................................................. 116
Простой метод калибровки ................................................................. 117

4.3. Оценивание положения по плоскостям и маркерам .............. 119

4.4. Дополненная реальность ...................................................... 123
PyGame и PyOpenGL............................................................................ 124

Оглавление

От матрицы камеры к формату OpenGL ............................................... 125
Помещение виртуальных на изображение .......................................... 127
Собираем все вместе ......................................................................... 129
Загрузка моделей ............................................................................... 132

Упражнения ................................................................................. 134

Глава.5..Многовидовая.геометрия...................... 135

5.1. Эпиполярная геометрия ....................................................... 135
Демонстрационный набор данных ...................................................... 138
Построение трехмерных графиков в Matplotlib .................................... 140
Вычисление F – восьмиточечный алгоритм ......................................... 141
Эпиполюс и эпиполярные прямые ...................................................... 142

5.2. Вычисления, относящиеся к камерам и трехмерной  
структуре .................................................................................... 145
Триангуляция ...................................................................................... 145
Вычисление матрицы камеры по точкам в пространстве ..................... 148
Вычисление матрицы камеры по фундаментальной матрице .............. 150

5.3. Многовидовая реконструкция ............................................... 153
Устойчивое вычисление фундаментальной матрицы ........................... 154
Пример трехмерной реконструкции .................................................... 156
Обобщения и случай более двух видов................................................ 159

5.4. Стереоизображения ............................................................. 161
Вычисление карт диспаратности......................................................... 163

Упражнения ................................................................................. 167

Глава.6..Кластеризация.изображений................. 170

6.1. Кластеризация методом K средних ....................................... 170
Пакет кластеризации в SciPy ............................................................... 171
Кластеризация изображений .............................................................. 172
Визуализация проекций изображений на главные компоненты ........... 174
Кластеризация пикселей .................................................................... 175

6.2. Иерархическая кластеризация .............................................. 178
Кластеризация изображений .............................................................. 182

6.3. Спектральная кластеризация ................................................ 186

Упражнения ................................................................................. 191

Глава.7..Поиск.изображений.............................. 193

7.1. Поиск изображений по содержанию ..................................... 193
Векторная модель – инструмент анализа текста ................................. 193

7.2. Визуальные слова ................................................................. 195
Создание словаря ............................................................................... 195

7.3. Индексирование изображений ............................................. 198
Подготовка базы данных ..................................................................... 198

Оглавление

Добавление изображений ................................................................... 200

7.4. Поиск изображений в базе данных ........................................ 202
Использование индекса для получения кандидатов ............................ 203
Запрос по изображению ..................................................................... 205
Эталонное тестирование и построение графика ................................. 206

7.5. Ранжирование результатов с применением геометрических 
соображений ............................................................................... 209

7.6. Создание демонстраций и веб-приложений ......................... 212
Создание веб-приложений с помощью CherryPy ................................. 212
Демонстрация поиска изображений ................................................... 212

Упражнения ................................................................................. 215

Глава.8..Классификация.изображений.
по.содержанию............................................... 217

8.1. Метод k ближайших соседей ................................................ 217
Простой двумерный пример ............................................................... 218
Плотные SIFT-дескрипторы в качестве признаков изображения ......... 222
Классификация изображений – распознавание жестов ...................... 223

8.2. Байесовский классификатор ................................................ 227
Использование метода главных компонент для понижения  
размерности ....................................................................................... 231

8.3. Метод опорных векторов ...................................................... 232
Использование библиотеки LibSVM .................................................... 233
И снова о распознавании жестов ........................................................ 235

8.4. Оптическое распознавание символов ................................... 237
Обучение классификатора .................................................................. 238
Отбор признаков ................................................................................. 238
Выделение клеток и распознавание символов .................................... 240
Выпрямление изображений ................................................................ 243

Упражнения ................................................................................. 245

Глава.9..Сегментация.изображений.................... 247

9.1. Разрезание графов ............................................................... 247
Графы изображений ........................................................................... 249
Сегментация с привлечением пользователя ....................................... 254

9.2. Сегментация с применением кластеризации ........................ 258

9.3. Вариационные методы ......................................................... 264

Упражнения ................................................................................. 265

Глава.10..OpenCV............................................. 268

10.1. Интерфейс между OpenCV и Python .................................... 268
10.2. Основы OpenCV .................................................................. 269

Оглавление

Чтение и запись изображений ............................................................. 269
Цветовые пространства ...................................................................... 270
Отображение изображений и результатов обработки ......................... 270

10.3. Обработка видео ................................................................ 273
Ввод видео ......................................................................................... 273
Чтение видео в массивы NumPy .......................................................... 275

10.4. Трассировка ....................................................................... 276
Оптический поток ............................................................................... 276
Алгоритм Лукаса-Канаде .................................................................... 279
Использование трассировщика .......................................................... 283
Применение генераторов ................................................................... 284

10.5. Другие примеры ................................................................. 285
Ретуширование ................................................................................... 285
Сегментация по морфологическим водоразделам .............................. 286
Обнаружение фигур с помощью преобразования Хафа....................... 288

Упражнения ................................................................................. 288

Приложение.А..Установка.пакетов...................... 291

А.1. NumPy и SciPy....................................................................... 291
Windows .............................................................................................. 291
Mac OS X ............................................................................................. 291
Linux ................................................................................................... 292

А.2. Matplotlib .............................................................................. 292
А.3. PIL ........................................................................................ 292
А.4. LibSVM .................................................................................. 293
А.5. OpenCV ................................................................................. 293
Windows и Unix .................................................................................... 293
Mac OS X ............................................................................................. 294
Linux ................................................................................................... 294

А.6. VLFeat ................................................................................... 294
А.7. PyGame ................................................................................ 295
А.8. PyOpenGL ............................................................................. 295
А.9. Pydot .................................................................................... 295
А.10. Python-graph ....................................................................... 296
А.11. Simplejson ........................................................................... 296
А.12. PySQLite.............................................................................. 297
А.13. CherryPy ............................................................................. 297

Приложение.Б..Наборы.изображений.................. 298

Б.1. Flickr ..................................................................................... 298
Б.2. Panoramio ............................................................................. 299
Б.3. Оксфордская группа Visual Geometry .................................... 300

К покупке доступен более свежий выпуск Перейти