exponenta event banner

Система предупреждения о выходе из полосы движения

В этом примере показано, как обнаруживать и отслеживать маркеры полос движения в видеопоследовательности и уведомлять водителя о том, что они перемещаются по полосе движения. В примере показано, как использовать блоки преобразования, линий и фильтра Калмана для создания алгоритма обнаружения и отслеживания линий. В примере этот алгоритм реализуется с помощью следующих шагов: 1) Обнаружение маркеров полосы движения в текущем видеокадре. 2) Сопоставьте текущие маркеры полосы с маркерами, обнаруженными в предыдущем видеокадре. 3) Найдите левый и правый маркеры полосы движения. 4) Выдайте предупреждающее сообщение, если транспортное средство перемещается по любому из маркеров полосы движения.

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

Примечание.Параметры примера определяются в рабочем пространстве модели. Для доступа к параметрам щелкните Вид (View) > Обозреватель моделей (Model Explorer). Затем перейдите в рабочее пространство модели под именем модели.

Посмотрите пример системы предупреждения о выходе из полосы движения.

Пример модели

На следующем рисунке показана примерная модель системы предупреждения о выходе из полосы движения:

Подсистема обнаружения полос движения

Эта подсистема использует блоки 2-D FIR Filter и Autothreshold для обнаружения левых границ маркеров полосы движения в текущем видеокадре. Границы маркеров полосы движения напоминают прямые линии и соответствуют пиковым значениям в матрице преобразования Хафа. Эта подсистема использует блок «Найти локальные максимумы» для определения положения полярных координат маркеров полосы движения.

Подсистема отслеживания полос движения

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

Подсистема предупреждения об уходе

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

Результаты системы предупреждения о выходе из полосы движения

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

В окне «Результаты» отображаются маркеры левой и правой полос движения и предупреждающее сообщение. Предупреждающее сообщение указывает на то, что транспортное средство движется через маркер правой полосы движения. В этом окне также отображаются тип и цвет маркеров полосы движения. В дополнение к текстовому сообщению, версия примера для Windows ® выдает звуковое предупреждение.

Доступные примерные версии

Версия этого примера с плавающей запятой: vipldws.slx

Версия этого примера с фиксированной точкой: vipldws_fixpt.slx