Обзор курса: Практика компьютерного зрения с OpenCV и Python

Введение В этой статье я сделаю обзор курса Udemy Hands On Computer Vision с OpenCV и Python [https://stackabu.se/hands-on-cv-with-opencv-and-python] Шробона Бисваса, представленного на сайт онлайн-обучения Udemy [https://stackabu.se/udemy]. На момент написания этой статьи я бы сказал, что курс является умеренно успешным с в общей сложности 146 оценками, в среднем до 4,1 / 5 звезд, при общем количестве учащихся 851. Согласно описанию этот курс

Вступление

В этой статье я расскажу о курсе Udemy Hands On Computer Vision с OpenCV и Python Шробона Бисваса, представленного на сайте онлайн-обучения Udemy. На момент написания этой статьи я бы сказал, что курс является умеренно успешным с в общей сложности 146 оценками, в среднем до 4,1 / 5 звезд, при общем количестве учащихся 851.

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

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

Обзор раздела курса

Введение и установка

Этот раздел имеет типичное вводное содержание, которое охватывает большинство курсов такого рода, например, базовое объяснение курса и его план. Установка была представлена в виде простой записи о том, как установить среду Anaconda вместе с OpenCV. На мой взгляд, было бы хорошо дать видеодемонстрацию установки необходимого программного обеспечения, а не описание предоставленных инструкций.

Основы изображения

В этом разделе автор курса описывает основы чтения и записи изображений на диск и с диска, а также способы получения изображения с веб-ресурса через HTTP.

В дополнение к базовому файловому вводу-выводу, он прекрасно объясняет концепцию каналов изображения для изображений красного, зеленого и синего цветов. В дополнение к его объяснению каналов изображений есть несколько хороших примеров использования языка программирования Python и библиотеки OpenCV для индивидуального выбора каналов и управления ими, а также для преобразования назад и вперед между цветными изображениями и изображениями в градациях серого. Наконец, рассказывается о том, как отображать изображения с использованием как библиотеки OpenCV, так и библиотеки визуализации matplotlib .

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

Кроме того, я думаю, что включение того, как читать изображение через HTTP, было отличным практическим решением, но автор не разъяснил здесь, что используемая библиотека не является OpenCV, а вместо этого является подмодулем библиотеки Scikit-Learn. устанавливается вместе с установочным пакетом Anaconda. Обсуждение понятия каналов изображения было хорошо продумано и продемонстрировано на простом, но элегантном примере.

Гистограммы

Здесь автор обсуждает использование гистограмм для представления распределения интенсивностей по отдельным каналам цветного изображения, а также для изображения в градациях серого. Есть примеры, которые показывают, как использовать библиотеку OpenCV для манипулирования пиксельными данными, содержащимися в цифровом изображении, в структуры данных, подходящие для отображения в виде гистограммы с использованием библиотеки matplotplib.

Несмотря на то, что этот раздел краткий, он по существу и закладывает основу для последующих тем курса.

Манипуляции с пикселями и геометрия

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

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

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

Проект - Утилита Snipping

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

Я был очень рад увидеть этот раздел в курсе. Мне лично нравится, когда в курсе требуется время для демонстрации утилит технологии для создания чего-то, что демонстрирует функциональность, как в случае с примитивным инструментом для обрезки в этом разделе.

Фильтрация, размытие и удаление шума

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

Все о пороге

Этот раздел начинается с простого объяснения того, что такое пороговое значение. После этого инструктор предлагает студенту выполнить упражнение по кодированию, чтобы вручную создать пороговое изображение без помощи библиотеки OpenCV. Конечно, инструктор предлагает решение, но мне всегда нравится, когда подобные задачи решаются на курсах. Он не только усиливает часть концепции «как сделать», но также демонстрирует, «почему» такая библиотека, как OpenCV, так ценна.

Проект - Создание индивидуального фильтра с блестками

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

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

Наложение изображений

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

Работа с видео

В этом разделе инструктор демонстрирует, как использовать библиотеку OpenCV для взаимодействия с веб-камерой. Во-первых, он показывает, как снимать кадры и отображать их в окне. Затем он продолжает показывать, как управлять цветовым представлением видеопотока на основе ввода с клавиатуры.

Еще раз, примеры кодирования в этом разделе не приводятся.

Освоение контуров

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

Однако, как и в некоторых других разделах этого курса, я чувствую, что значительное количество деталей было упущено в объяснении различных параметров, используемых для настройки результатов методов OpenCV. Я нахожу это немного разочаровывающим и считаю, что простое заявление о том, что тема «сложна и вам следует поиграть со значениями, пока не получите желаемый результат», не является достаточным объяснением.

Проект - Обнаружение транспортных средств

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

Заключение

В этой статье я постарался дать справедливый и сбалансированный обзор курса « Практика компьютерного зрения с OpenCV и Python » Шробона Бисваса на Udemy . При этом моя цель состояла в том, чтобы описать охватываемый контент, стараясь не разглашать специфику фактического контента, поскольку я чувствую, что инструктор внес ценность в сообщество онлайн-обучения.

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

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

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

Как всегда, спасибо за чтение и не стесняйтесь комментировать или критиковать ниже.

comments powered by Disqus