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

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

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

    image

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


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



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

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


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

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





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

    image

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

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


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

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


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

    image

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

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


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

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

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





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



    Шаг 4 — Фитинг


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

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


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

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

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


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


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

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

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


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

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

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




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

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


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

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


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

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


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

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




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

    Всем знаний!
    Поддержать автора
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 10

      0
      Мм, рисуем сову, да?)
        0
        Спасибо автору за хорошую подборку материалов.
          –1

          Классная подборка. Спасибо. Отложил. Потом внимательно почитаю.

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

            А что, за пределами Питона жизни нет?
              +3
              Жизнь есть. Но если Вы зайдете к примеру на любой форум посвященный DS, ML или DL то уведите там что используется либо Python либо R. Все остальное по крайне мере у нас, к сожалению или к радости, считается экзотикой.
                0
                Я в курсе, что Питон больше остальных языков на виду в этой экосистеме. Но это не значит, что он является «необходимым», т.е., единственно возможным средством реализации систем компьютерного зрения.
                  +2
                  Возможно, слово «необходимые» здесь не очень корректно, если сильно уж придираться, но, на мой взгляд, всё равно понятно, что хотел сказать автор.
                  Это как начать гайд по разработке под Андроид с того, что prerequisites — это владение синтаксисом Java. Да, есть React Native, есть Xamarin, есть ещё много чего, но дефолт — это Java.
                  Так и здесь. Понятно, что компьютерное зрение — это раздел задач и алгоритмов, не привязанный к языку. Но изучать компьютерное зрение и реализовывать необходимые алгоритмы проще и в данный момент популярнее именно на Python.
                    +1
                    Если Вы собираетесь реализовывать все библиотеки самостоятельно то конечно, у Вас не каких ограничений нет. Вам тогда нужна одна математика, а все перечисленные шаги для Вас не подходят. Но если Вы собираетесь использовать готовые библиотеки то выбор у Вас будет мал.
                    Я хотел бы заметить, что все мной сказанное относится к процессу создания моделей. Разработав модель Вы можете ее использовать в любой своей программе написанной на любом языке программирования.
                0
                Я бы еще добавил в необходимы навыки — уметь работать с большими объемами данных.
                  +1

                  Классный пост, только по объему информации… Думаю как гайд для русскоговорящего он не очень подойдёт, ту хард ту андестенд

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

                  Самое читаемое