В этом примере показано, как реализовать алгоритм обнаружения и отслеживания лиц в Simulink ® с помощью функционального блока MATLAB ®. Он точно соответствует примеру обнаружения и отслеживания лица с помощью алгоритма KLT MATLAB ®.
Обнаружение и отслеживание объектов важны во многих приложениях компьютерного зрения, включая распознавание активности, автомобильную безопасность и наблюдение. В этом примере в Simulink ® проектируется система для обнаружения лица в видеокадре, определения элементов лица и отслеживания этих элементов. Выходной видеокадр содержит обнаруженную грань и отслеживаемые признаки. Если лицо не видно или выходит из фокуса, система пытается повторно обнаружить лицо и затем выполнить отслеживание. Этот пример предназначен для обнаружения и отслеживания одной грани.
close
open_system('DetectAndTrackFace');


В этом примере блок From Multimedia File используется для считывания видеокадров из видеофайла. Detection and Tracking подсистема принимает видеокадр и предоставляет ограничивающую рамку для грани и характерных точек внутри ограничивающей рамки в качестве вывода в Draw Annotations подсистема. Эта подсистема вставляет в изображение прямоугольник для ограничивающей рамки и маркеры для точек элемента.
В этом примере vision.CascadeObjectDetector Система object™ определяет местоположение грани в текущем видеокадре. Каскадный детектор объектов использует алгоритм обнаружения Виолы-Джонса и обученную классификационную модель для обнаружения. После того, как лицо обнаружено, точки признаков лица идентифицируются с помощью метода «Хорошие особенности для отслеживания», предложенного Ши и Томази.
Затем vision.PointTracker Система object™ отслеживает идентифицированные точки признаков с помощью алгоритма отслеживания признаков Kanade-Lucas-Tomasi (KLT). Для каждой точки в предыдущем кадре трекер точек пытается найти соответствующую точку в текущем кадре. Затем estimateGeometricTransform функция оценивает перемещение, поворот и масштаб между старыми и новыми точками. Это преобразование применяется к ограничивающей рамке вокруг грани.
Хотя можно использовать каскадный детектор объектов на каждом кадре, он является дорогостоящим в вычислительном отношении. Этот метод также может не обнаружить лицо, например, когда субъект поворачивается или наклоняет голову. Это ограничение вытекает из типа обученной модели классификации, используемой для обнаружения. В этом примере лицо обнаруживается один раз, а затем алгоритм KLT отслеживает лицо по видеокадрам. Обнаружение выполняется снова только в том случае, если грань больше не видна или если трекер не может найти достаточное количество характерных точек.
Возможность выполнения динамического выделения памяти в функциях MATLAB (Simulink) позволяет использовать вышеупомянутые системные объекты и методы внутри функционального блока MATLAB ®.
open_system('DetectAndTrackFace/Detection and Tracking')

Угловые точки ограничивающей рамки и местоположения характерных точек используются для рисования на выходном видеокадре. Блок «Рисование фигур» рисует ограничительную рамку. Характерные точки прорисовываются с помощью блока «Маркеры прорисовки».
open_system('DetectAndTrackFace/Draw Annotations')

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

На следующем экране показаны отслеживаемые грани и характерные точки.
![]()
Виола, Пол А. и Майкл Дж. Джонс. «Быстрое обнаружение объектов с использованием усиленного каскада простых функций», IEEE CVPR, 2001.
Лукас, Брюс Д. и Такео Канаде. «Метод итеративной регистрации изображения с приложением для стереовидения». Международная совместная конференция по искусственному интеллекту, 1981 год.
Лукас, Брюс Д. и Такео Канаде. «Обнаружение и отслеживание элементов точек». Технический отчет Университета Карнеги-Меллона CMU-CS-91-132, 1991 год.
Ши, Цзяньбо и Карло Томази. «Хорошие возможности для отслеживания». Конференция IEEE по компьютерному зрению и распознаванию образов, 1994 год.
ЗКалал, Зденек, Крыстиан Миколайчик, и Иржи Матас. «Ошибка при пересылке: автоматическое обнаружение ошибок отслеживания». Международная конференция по распознаванию образов, 2010 год