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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Привет читатель.

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

image

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

  • Сегментация изображений
  • Детектирование объектов
  • Классификация изображений
  • Отслеживание движущихся объектов во времени
  • Распознавание лиц
  • Оптическое распознавание символов
  • Генерация изображений

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


  • Уверенное владение синтаксисом Python;
  • Математический анализ;
  • Линейная алгебра;
  • Библиотека OpenCV
  • Фреймворк глубокого обучения TensorFlow

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

Шаг 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 пройдите этот туториал.

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

  • Семантическая сегментация: категоризация объектов, сцен, деятельности
  • Обнаружение объектов (non max подавление, скользящие окна, ограничивающие боксы и якоря, подсчёт элементов)
  • YOLO и Darknet, нейросети для предложения областей (region proposal networks)
  • Контролируемые алгоритмы классификации (обучение с учителем)
  • Визуальные атрибуты
  • Оптическое распознавание символов
  • Детектирование лиц

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

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


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

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




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

Всем знаний!
Источник: https://habr.com/ru/post/461365/


Интересные статьи

Интересные статьи

Приветствую всех! Меня зовут Пучнина Анастасия, я ведущий разработчик в компании ДомКлик, занимаюсь фронтендом Витрины объявлений. Сегодня я хотела бы поделиться с вами своим мнением ...
Всем привет! Не так давно на работе в рамках тестирования нового бизнес-процесса мне понадобилась возможность авторизации под разными пользователями. Переход в соответствующий р...
Создавая своего первого робота (Робот для настольного хоккея), а именно механическую часть, узнал много интересного для себя, чем и хочу поделиться. Примерно половину знаний я ...
Возможность интеграции с «1С» — это ключевое преимущество «1С-Битрикс» для всех, кто профессионально занимается продажами в интернете, особенно для масштабных интернет-магазинов.
История сегодня пойдёт про автосервис в Москве и его продвижении в течении 8 месяцев. Первое знакомство было ещё пару лет назад при странных обстоятельствах. Пришёл автосервис за заявками,...