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

Некоторые приложения компьютерного зрения включают:

  • Обнаружение объекта
  • Распознавание лиц
  • Распознавание лица
  • Самостоятельное вождение автомобилей
  • Автономные дроны

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

Алгоритм Виолы-Джонса

Этот алгоритм является основой библиотеки OpenCV. Он был разработан Полом Виолой и Майклом Джонсом в 2001 году. Он позволяет обнаруживать изображения в реальном времени.

Как это работает

В этом алгоритме есть два этапа

  1. Обучение
  2. Обнаружение

Сначала мы обсудим обнаружение

Обнаружение

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

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

Хаароподобные особенности

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

Виола и Джонс обнаружили три типа функций Хаара:

  1. Особенности Edge
  2. Особенности линии
  3. Четыре прямоугольных элемента / Четырехсторонние элементы

Особенности Edge

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

Особенности линии

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

Четыре стороны функции

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

Интегральные образы

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

Давайте немного разберемся, объяснив, как это работает. Рассмотрим изображение ниже

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

Учебные классификаторы

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

На этапе обучения изображение сжимается до 24 * 24 пикселей и выполняет поиск функций на изображении. Нам нужно много данных изображения для алгоритма, чтобы его можно было обучить. Виола и Джонс снабдили свой алгоритм 4960 размеченными вручную изображениями. Мы также должны предоставить классификатору изображения, не связанные с лицом, чтобы он мог их классифицировать и понимать. Виола и Джонс предоставили свой алгоритм 9 544 изображения лица.

Адаптивное усиление

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

Здесь у нас есть уравнение с f1, f2, f3 в качестве признаков и a1, a1, a3 в качестве их соответствующих весов. F (x) называется сильным классификатором. Единый классификатор будет слабым, мы получим сильный классификатор, когда у нас есть комбинация двух или трех слабых классификаторов. Этот процесс называется ансамблем.

Каскадный

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

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