Как начать работу с компьютерным зрением

Стало традицией писать блоги, в которых даются рекомендации по машинному обучению ace. Мне было трудно найти такую ​​дорожную карту и список дел для компьютерного зрения. Как энтузиаст и консультант в области компьютерного зрения, я обнаружил, что множество людей спрашивают о конкретной дорожной карте (с точки зрения навыков, курсов и т. Д.) Для понимания компьютерного зрения. Следующий блог пытается служить этой цели.

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

Что такое компьютерное зрение?

Компьютерное зрение - это подраздел искусственного интеллекта, цель которого - сделать машины достаточно интеллектуальными, чтобы понимать изображения. Поскольку машинное обучение (и глубокое обучение) в настоящее время является одним из самых активных подмножеств ИИ на планете, было бы уместно и разумно заняться компьютерным зрением в рамках машинного обучения. Чтобы понять всю суть моей будущей дорожной карты, важно рассмотреть общий процесс машинного обучения.

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

Как работает машинное обучение?

Каждую систему машинного обучения можно разделить на следующие две подсистемы:

  1. Извлечение функций из необработанных данных (изображения, аудио, текст и т. Д.)
  2. Подгонка алгоритма обучения к пространству признаков

Алгоритм обучения по существу требует n-мерного пространства признаков, чтобы провести границу решения (в парадигме классификации) или соответствовать гиперплоскости (в терминах линейной регрессии). Чтобы преобразовать необработанные данные в пространство функций, нам обычно требуются две важные вещи:

а. Область / Бизнес-знания

б. Знания об обработке данных

Знание предметной области говорит нам о важных факторах, которые необходимо учитывать при рассмотрении данных для принятия бизнес-решения (представьте, что врач советует вам поискать кружок на МРТ, чтобы обнаружить опухоль). Затем знания об обработке данных кодируют эти факторы (из знаний предметной области) в пространство признаков из знаний об обработке данных (с учетом обнаружения круга на МРТ с использованием обработки изображений).

Обработка данных необходима для извлечения важных функций из необработанных данных. Если необработанные данные представлены в виде изображений, обработка изображений - это необходимые нам знания в области обработки данных. Если данные являются текстовыми, нам необходимы лингвистические знания и знания в области интеллектуального анализа текста для извлечения функций. Каждому типу данных соответствуют соответствующие знания в области обработки.

Чем отличается глубокое обучение?

Глубокое обучение - это разновидность машинного обучения, имеющая свои технические корни. Не вдаваясь в технические подробности глубокого обучения, следует понимать, что глубокое обучение позволяет нам избавиться от этапа извлечения функций. У нас просто есть алгоритм обучения, чтобы делать все. Эти алгоритмы глубокого обучения могут напрямую работать с пространством необработанных данных. Вся нынешняя шумиха вокруг ИИ связана с глубоким обучением.

Так какой рецепт?

Поскольку у нас есть две разные парадигмы обучения, мы можем изучать и применять компьютерное зрение в двух разных формах. Компьютерное зрение, основанное на традиционных алгоритмах машинного обучения, называется классическим компьютерным зрением. Если компьютерное зрение основано на глубоком обучении, его называют современным компьютерным зрением.

Дорожная карта классического компьютерного зрения

Как и любая система машинного обучения, классическое компьютерное зрение также состоит из двух основных подсистем:

  1. Обработка изображений: для кодирования данных в разумное пространство функций (аналогично извлечению функций)
  2. Алгоритм обучения: чтобы соответствовать любой подходящей модели в этом пространстве

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

  1. Курс Udacity Введение в компьютерное зрение
  2. Курс доктора Мубарака Шаха на YouTube
  3. Курс чисто машинного обучения также важен для нашего второго шага. Вы можете пройти любой доступный курс. Например, курс Эндрю Нг на Coursera или курс Нандо на YouTube
  4. Вам также необходимо освоить некоторые инструменты с открытым исходным кодом, такие как OpenCV, для быстрого экспериментирования и обучения. Для этого вы можете проверить несколько интересных блогов PyImageSearch и LearnOpenCV.

Дорожная карта современного компьютерного зрения

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

  1. Стэнфордский Cs231n (сверточная сеть для распознавания визуальных объектов)
  2. Курс Эндрю Сверточные нейронные сети
  3. Для общего курса глубокого обучения отметьте эту специализацию.

Я настоятельно рекомендую читателям хотя бы иметь некоторое представление о классическом компьютерном зрении, прежде чем углубляться в современное компьютерное зрение. Это очень поможет в будущем.

Заключение

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

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