В этом примере показов, как обнаружить и отследить маркеры дорожной полосы в видеопоследовательности и уведомляет драйвер, если они перемещаются по полосе. Пример иллюстрирует, как использовать блоки Преобразование Хафа, Hough Lines и Фильтр Калмана для создания алгоритма обнаружения и отслеживания линий. Пример реализует этот алгоритм с помощью следующих шагов: 1) Обнаружить маркеры маршрута в текущем видеокадре. 2) Сопоставьте текущие маркеры маршрута с маркерами, обнаруженными в предыдущем видеокадре. 3) Найти левый и правый маркеры маршрута. 4) Выдавать предупреждающее сообщение, если транспортное средство перемещается по любому из маркеров маршрута.
Чтобы обработать низкокачественные видеопоследовательности, где маркеры маршрута могут быть трудными для просмотра или скрыты за объектами, пример ожидает появления маркера маршрута в нескольких системах координат, прежде чем он считает маркер действительным. Пример использует тот же процесс, чтобы решить, когда начать игнорировать маркер маршрута.
Примечание. Параметры примера заданы в рабочем пространстве модели. Чтобы получить доступ к параметрам, нажмите View > Model Explorer. Затем перейдите в Рабочее Пространство Модели под именем модели.
Смотрите пример системы предупреждения о выезде из маршрута.
Следующий рисунок показывает модель примера системы предупреждения о выезде из маршрута:
Эта подсистема использует блоки 2-D конечной импульсной характеристики Filter и Автопорог, чтобы обнаружить левые контуры маркеров маршрута в текущем видеокадре. Контуры маркеров маршрута напоминают прямые линии и соответствуют пиковым значениям в матрице преобразования Хафа. Эта подсистема использует блок Find Local Maxima, чтобы определить положение полярных координат маркеров маршрута.
Пример сохраняет ранее обнаруженные полосы в репозитории и подсчитывает количество раз, когда обнаруживается каждый канал. Эта подсистема соответствует полосам, найденным в текущем видеокадре, линиям в репозитории. Если текущий канал достаточно похож на другой канал в репозитории, то пример обновляет репозиторий с текущим местоположением каналов. Блок Фильтр Калмана предсказывает расположение каждого маршрута в репозитории, что улучшает точность отслеживания маршрута.
Эта подсистема использует блок Hough Lines, чтобы преобразовать полярные координаты линии в Декартовы координаты. Подсистема использует эти Декартовы координаты, чтобы вычислить расстояние между маркерами маршрута и центром контура дна видео. Если это расстояние меньше порог значения, пример выдает предупреждение. Эта подсистема также определяет, является ли линия желтой или белой и является ли она твердой или сломанной.
В окне «Сигналы запаса прочности» показан график метрики запаса прочности. Метрика запаса прочности определяется расстоянием между автомобилем и ближайшим маркером маршрута. Когда метрика запаса прочности, показанная желтым цветом, опускается ниже 0, показанная синим цветом, машина находится в режиме вылета из полосы в противном случае машина находится в нормальном режиме вождения.
В окне Results показаны маркеры слева и справа, а также предупреждающее сообщение. Предупреждающее сообщение указывает, что транспортное средство перемещается через правый маркер маршрута. Тип и цвет маркеров маршрута также показаны в этом окне. В дополнение к текстовому сообщению версия примера Windows ® выдает звуковое предупреждение.
Версия этого примера с плавающей точкой: vipldws.slx
Версия этого примера с фиксированной точкой: vipldws_fixpt.slx