Компьютерное зрение и нейронные сети. Практика

Сацюк А. В.
1 820₽
ISBN
978-5-9729-2706-7
Кол-во страниц
364
Формат
148х210
Переплет
Твердый; Полноцвет
Год
2025
Вес
0,553
Библиографическая запись:
С22 Компьютерное зрение и нейронные сети. Практика : учебное пособие / А. В. Сацюк. – Москва ; Вологда : Инфра-Инженерия, 2025. – 364 с. : ил., табл.

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

ВВЕДЕНИЕ 8 1. ОСНОВЫ КОМПЬЮТЕРНОГО ЗРЕНИЯ 10 1.1. История развития компьютерного зрения 10 1.2. Биологические основы цветовосприятия 14 1.3. Пиксели и их представление 17 1.4. Цветовые пространства 22 1.5. Библиотеки для работы с изображениями. OpenCV 26 Практическое задание 30 2. ОСНОВЫ ОБРАБОТКИ ИЗОБРАЖЕНИЙ И ВИДЕО 31 2.1. Представление изображений 31 2.2. Загрузка, отображение и сохранение изображений 38 2.3. Захват видео с камеры и из файла 40 2.4. Операции над пикселями 43 2.5. Основные операции с изображением 47 2.5.1. Изменение размера изображения 47 2.5.2. Обрезка изображения 51 2.5.3. Вращение изображения 53 2.5.4. Отражение изображения 56 2.6. Конкатенация изображений 58 Практическое задание 60 3. МЕТОДЫ ОБРАБОТКИ ИЗОБРАЖЕНИЙ 62 3.1. Преобразование между цветовыми пространствами 62 3.2. Цветовая коррекция 65 3.3. Фильтрация цветов и цветовая сегментация 67 3.4. Инверсия изображения 72 3.5. Линейное объединение двух изображений 75 3.6. Вычисления абсолютной разницы изображений 77 3.7. Преобразование изображения с использованием абсолютных значений и масштабирования 81 3.8. Бинаризация и пороговая обработка 83 3.9. Фильтрация 86 3.9.1. Основные термины и явления фильтрации 86 3.9.2. Принцип фильтрации 88 3.9.3. Ядро фильтра 97 3.9.4. Фильтрация без использования ядер свертки: нелинейные фильтры 103 3.9.5. Практическое применение фильтров 105 3.10. Нормализация и масштабирование значений пикселей 122 3.11. Выделение контуров и краев на изображениях 125 3.11.1. Обнаружения границ 125 3.11.2. Обнаружения контуров 128 3.12. Гомография изображений 132 3.13. Вычисление гистограммы изображения 137 3.14. Сегментация изображений 142 Практическое задание 145 4. ИНТЕРАКТИВНОЕ УПРАВЛЕНИЕ В КОМПЬЮТЕРНОМ ЗРЕНИИ 148 4.1. Общие сведения об интерактивном управлении 148 4.2. Интерактивные окна и виджеты 149 4.3. Слайдеры 152 4.4. События мыши 154 Практическое задание 156 5. ГРАФИЧЕСКИЕ ОТРИСОВКИ В КОМПЬЮТЕРНОМ ЗРЕНИИ 158 5.1. Графические отрисовки 158 5.2. Отрисовка геометрических фигур 160 5.2.1. Отрисовка линий 161 5.2.2. Отрисовка прямоугольника 162 5.2.3. Отрисовка кругов и эллипсов 164 5.2.4. Отрисовка полигональных фигур 166 5.2.5. Создание холста 168 5.3. Позиционирование геометрических фигур 171 5.4. Динамическая отрисовка прямоугольной области 173 5.5. Добавление текста к изображению 176 Практическое задание 178 6. ОБРАБОТКА ДВИЖУЩИХСЯ ОБЪЕКТОВ 180 6.1. Основы обработки движущихся объектов 180 6.2. Предварительная обработка изображений 181 6.3. Выбор области интереса 184 6.4. Фильтр Калмана 192 6.4.1. Принцип работы фильтра Калмана 192 6.4.2. Математическая модель фильтра Калмана для отслеживания 195 6.4.3. Практическое применение фильтра Калмана 200 6.4.4. Расширенный фильтр Калмана для нелинейных моделей 207 6.5. Трекинг движущихся объектов 208 6.6. Анализ траекторий движущихся объектов 215 Практическое задание 219 7. РАСПОЗНАВАНИЕ ОБЪЕКТОВ: КЛАССИЧЕСКИЕ МЕТОДЫ 222 7.1. Введение в распознавание объектов 222 7.2. Поиск объектов с помощью сопоставления шаблонов 223 7.3. Признаки Хаара 228 7.4. Применение каскадов Хаара 232 Практическое задание 235 8. ГЛУБОКОЕ ОБУЧЕНИЕ И НЕЙРОННЫЕ СЕТИ 237 8.1. Основы нейронной сети 237 8.1.1. Нейрон: от аналогии к техническому пониманию 237 8.1.2. Искусственная нейронная сеть 240 8.2. Введение в глубокое обучение 245 8.3. Сверточная нейронная сеть 247 8.4. Пример применения сверточной нейронной сети 248 8.5. Обобщенная структура сверточной нейронной сети 257 8.6. YOLO (You Only Look Once) 258 8.6.1. История развития YOLO 258 8.6.2. Принцип работы YOLO 264 8.6.3. Работа YOLO на этапе обучения 266 8.6.4. Практическое применение YOLO 273 Практическое задание 277 9. ВСТРАИВАЕМЫЕ СИСТЕМЫ КОМПЬЮТЕРНОГО ЗРЕНИЯ 278 9.1. Аппаратные ресурсы 278 9.2. Выбор микрокомпьютера 287 9.3. Установка и настройка окружения 293 9.4. Работа с камерой 295 9.5. Программно-аппаратная архитектура CUDA 302 9.6. Настройка CUDA на микрокомпьютере Jetson Nano 304 Практическое задание 308 Заключение 310 Словарь терминов 311 Список рекомендуемой литературы 319 ПРИЛОЖЕНИЕ 320 cv2.addWeighted() 320 cv2.bilateralFilter() 320 cv2.bitwise_and() 321 cv2.bitwise_not() 321 cv2.bitwise_xor() 322 cv2.boxPoints() 322 cv2.calcHist() 322 cv2.Canny() 323 cv2.CascadeClassifier() 323 cv2.circle() 324 cv2.contourArea() 324 cv2.convertScaleAbs() 325 cv2.createTrackbar() 325 cv2.cvtColor() 326 cv2.destroyAllWindows() 327 cv2.detectMultiScale() 327 cv2.dilate() 328 cv2.distanceTransform() 328 cv2.drawContours() 329 cv2.ellipse() 329 cv2.erode() 330 cv2.fastNlMeansDenoising() 331 cv2.filter2D() 331 cv2.findContours() 332 cv2.flip() 333 cv2.GaussianBlur() 333 cv2.getRectSubPix() 334 cv2.getRotationMatrix2D() 334 cv2.getTrackbarPos() 335 cv2.imread() 335 cv2.imshow() 335 cv2. imwrite() 336 cv2.inRange() 336 cv2.KalmanFilter() 336 cv2.Laplacian() 337 cv2.line() 338 cv2.magnitude() 338 cv2.matchTemplate() 339 cv2.medianBlur() 339 cv2.merge() 340 cv2.minAreaRect() 340 cv2.minMaxLoc() 340 cv2.moveWindow() 341 cv2.MultiTracker() 342 cv2.namedWindow() 342 cv2.normalize() 342 cv2.polylines() 343 cv2.putText() 344 cv2.rectangle() 344 cv2.remap() 345 cv2.resize() 346 cv2.saturate_cast() 346 cv2.selectROI() 347 cv2.setMouseCallback() 347 cv2.setWindowProperty() 348 cv2.Sobel() 349 cv2.split() 349 cv2.threshold() 350 cv2.subtract() 350 cv2.TrackerCSRT() 351 cv2.TrackerKCF() 351 cv2.TrackerMedianFlow() 351 cv2.TrackerMIL() 351 cv2.TrackerMOSSE() 352 cv2.VideoCapture() 352 cv2.VideoWriter() 352 cv2.VideoWriter_fourcc() 353 cv2.waitKey() 353 cv2.warpAffine() 353 numpy.array() 354 numpy.arange() 355 np.clip() 355 numpy.concatenate() 355 numpy.empty() 356 numpy.flip() 356 numpy.full() 357 numpy.hstack() 357 numpy.mean() 358 numpy.ones() 358 numpy.random() 359 numpy.reshape() 360 numpy.std() 361 numpy.vstack() 361 numpy.zeros() 361 tracker.init() 362 tracker.update() 362 tracker.get() 363 tracker.release() 363

Комментарии

Также советуем посмотреть