- PVSM.RU - https://www.pvsm.ru -

Осваиваем компьютерное зрение — 8 основных шагов

Привет читатель.

Для тебя уже не является новостью тот факт, что все на себе попробовали маски старения через приложение Face App [1]. В свою очередь для компьютерного зрения есть задачи и поинтереснее этой. Ниже представлю 8 шагов, которые помогут освоить принципы компьютерного зрения.

image

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

Минимальные знания, необходимые для освоения компьютерного зрения

Итак, теперь давайте приступим непосредственно к этапам.

Шаг 1 — Базовые методики работы с изображениями

Этот шаг посвящен техническим основам.

Посмотрите — отличный YouTube-плейлист «Древние секреты компьютерного зрения» [14] от Joseph Redmon. [15]

Прочтите — третью главу книги Ричарда Шелиски «Компьютерное зрение: Алгоритмы и приложения». [16]

image

Закрепите знания — попробуйте себя в преобразовании изображений [17] с помощью OpenCV. На сайте есть много пошаговых электронных пособий [18], руководствуясь которыми можно во всём разобраться.

Шаг 2 — Отслеживание движения и анализ оптического потока

Оптический поток [19] — это последовательность изображений объектов, получаемая в результате перемещения наблюдателя или предметов относительно сцены.

Пройдите курс — курс по компьютерному зрению на Udacity [20], в особенности урок 6.
Посмотрите — 8-ое видео [21] в YouTube-списке и лекцию об оптическом потоке и трекинге.

Прочтите — разделы 10.5 и 8.4 учебника Шелиски. [16]

image

В качестве учебного проекта разберитесь с тем, как с помощью OpenCV отслеживать объект в видеофрейме. [22]

Шаг 3 — Базовая сегментация

В компьютерном зрении, сегментация [2] — это процесс разделения цифрового изображения на несколько сегментов (суперпиксели). Цель сегментации заключается в упрощении и/или изменении представления изображения, чтобы его было проще и легче анализировать.

Так, преобразование Хафа [23] позволяет найти круги и линии.

Посмотрите эти видео:

Ознакомьтесь — отличный проект [24] подобные задачи которого чрезвычайно важны для компьютерного зрения самоуправляемых электромобилей.

Шаг 4 — Фитинг

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

Посмотрите видео:

Прочтите — разделы 4.3.2 и 5.1.1 учебника Шелиски. [16]

В качестве задания для самостоятельной работы проанализируйте проблему определения координаты места схождения линий на горизонте перспективы. [25]

Шаг 5 — Совмещение изображений, полученных с разных точек осмотра

Посмотрите Youtube-плейлист [26]

Прочтите — сопроводительное письмо. [27]

Для проекта можно взять собственные данные. Например, сфотографировать с разных сторон что-то из мебели и сделать в OpenCV из альбома плоских изображений 3D-объект.

Шаг 6 — Трёхмерные сцены

Умея создавать 3D-объекты из плоских изображений, можно попробовать создать и трёхмерную реальность.

Пройдите — курс по стереозрению и трекингу [28]

Посмотрите видео:

В качестве проекта попытайтесь реконструировать сцену [29] или сделать трекинг объекта в трехмерном пространстве [30].

Шаг 7 — Распознавание объектов и классификация изображений

В качестве фреймворка для глубокого обучения удобно использовать TensorFlow. Это один из наиболее популярных фреймворков, поэтому вы без труда отыщете достаточно примеров. Для начала работы с изображениями в TensorFlow пройдите этот туториал [31].

Далее, пользуясь ссылками, рассмотрите следующие темы:

В качестве проекта создайте в TensorFlow нейросеть, определяющую по изображению марку автомобиля [43] или породу собаки [44].

Шаг 8 — Современное глубокое обучение

Прочитайте — лекции Стенфордского курса [45]

Посмотрите видео:

На этом наши шаги в изучении компьютерного зрения подошли к концу. Надеюсь вы узнали для себя что-нибудь новое. Как принято на Хабре, понравился пост — поставь плюс. Не забудьте поделиться с коллегами. Также, если у вас есть то, чем вы можете поделиться сами — пишите в комментариях. Больше информации о машинном обучении и Data Science на Хабре [46] и в телеграм-канале Нейрон [47] (@neurondata).

Всем знаний!

Автор: Rushan

Источник [48]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/325101

Ссылки в тексте:

[1] приложение Face App: https://faceapp.com/app

[2] Сегментация изображений: https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F_(%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9)

[3] Детектирование объектов: https://proglib.io/p/real-time-object-detection/

[4] Классификация изображений: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8

[5] Отслеживание движущихся объектов во времени: https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B5%D0%BA%D0%B8%D0%BD%D0%B3_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0)

[6] Распознавание лиц: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BB%D0%B8%D1%86

[7] Оптическое распознавание символов: https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2

[8] Генерация изображений: https://postnauka.ru/video/74128

[9] Уверенное владение синтаксисом Python: https://www.edx.org/course/introduction-to-python-for-data-science-3

[10] Математический анализ: http://tutorial.math.lamar.edu/pdf/Calculus_Cheat_Sheet_All.pdf

[11] Линейная алгебра: https://www.souravsengupta.com/cds2016/lectures/Savov_Notes.pdf

[12] Библиотека OpenCV: https://opencv.org/

[13] Фреймворк глубокого обучения TensorFlow: https://www.tensorflow.org/

[14] «Древние секреты компьютерного зрения»: https://www.youtube.com/watch?v=8jXIAWg_yHU&list=PLjMXczUzEYcHvw5YYSU92WrY8IwhTuq7p

[15] Joseph Redmon.: https://www.youtube.com/channel/UClVWrKrmoeNM7A9nkEMeYzA

[16] «Компьютерное зрение: Алгоритмы и приложения».: http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf

[17] в преобразовании изображений: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.html

[18] пошаговых электронных пособий: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html

[19] Оптический поток: https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%82%D0%BE%D0%BA

[20] курс по компьютерному зрению на Udacity: https://www.udacity.com/course/introduction-to-computer-vision--ud810

[21] 8-ое видео: https://youtu.be/a-v5_8VGV0A

[22] отслеживать объект в видеофрейме.: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html#lucas-kanade

[23] преобразование Хафа: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A5%D0%B0%D1%84%D0%B0

[24] отличный проект: https://github.com/udacity/CarND-LaneLines-P1

[25] проблему определения координаты места схождения линий на горизонте перспективы.: https://pdfs.semanticscholar.org/ba19/1fa3a3adb372384b3079ed5287fb5a14880f.pdf

[26] Youtube-плейлист: https://www.youtube.com/playlist?list=PLyH-5mHPFffFvCCZcbdWXAb_cTy4ZG3Dj

[27] сопроводительное письмо.: http://vision.cs.utexas.edu/376-spring2018/#Tues_May_1

[28] курс по стереозрению и трекингу: https://www.coursera.org/learn/stereovision-motion-tracking

[29] реконструировать сцену: https://docs.opencv.org/master/d4/d18/tutorial_sfm_scene_reconstruction.html

[30] сделать трекинг объекта в трехмерном пространстве: https://docs.opencv.org/3.4.3/dc/d2c/tutorial_real_time_pose.html

[31] этот туториал: https://www.tensorflow.org/tutorials/load_data/images

[32] Семантическая сегментация: https://neurohive.io/ru/osnovy-data-science/semantic-segmention/

[33] non max подавление: https://www.pyimagesearch.com/2014/11/17/non-maximum-suppression-object-detection-python/

[34] скользящие окна: https://www.pyimagesearch.com/2015/03/23/sliding-windows-for-object-detection-with-python-and-opencv/

[35] ограничивающие боксы и якоря: https://medium.com/@andersasac/anchor-boxes-the-key-to-quality-object-detection-ddf9d612d4f9

[36] YOLO: https://medium.com/@jonathan_hui/real-time-object-detection-with-yolo-yolov2-28b1b93e2088

[37] Darknet: https://pjreddie.com/darknet/

[38] region proposal networks: https://medium.com/@tanaykarmarkar/region-proposal-network-rpn-backbone-of-faster-r-cnn-4a744a38d7f9

[39] Контролируемые алгоритмы классификации: https://www.ukessays.com/essays/engineering/supervised-image-classification-9746.php

[40] Визуальные атрибуты: http://www.robots.ox.ac.uk/~vgg/publications/papers/ferrari07.pdf

[41] Оптическое распознавание символов: https://www.pyimagesearch.com/2018/09/17/opencv-ocr-and-text-recognition-with-tesseract/

[42] Детектирование лиц: https://medium.com/@somaniswastik/face-recognition-using-tensorflow-pre-trained-model-opencv-91184efa4aaf

[43] изображению марку автомобиля: https://www.kaggle.com/jutrera/training-a-densenet-for-the-stanford-car-dataset

[44] породу собаки: https://medium.com/@RaghavPrabhu/a-simple-tutorial-to-classify-images-using-tensorflow-step-by-step-guide-7e0fad26c22

[45] лекции Стенфордского курса: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv

[46] Хабре: https://habr.com/en/users/syurmakov/

[47] Нейрон: https://t.me/neurondata

[48] Источник: https://habr.com/ru/post/461365/?utm_source=habrahabr&utm_medium=rss&utm_campaign=461365