В этом примере показано, как сгенерировать код CUDA® для модели Simulink®, которая может обнаружить и вывести контуры маркера маршрута на изображении. Этот пример берет изображение RGB в качестве входа и использует imresize
rgb2gray
, ordfilt2
(Image Processing Toolbox), hough
(Image Processing Toolbox), houghpeaks
(Image Processing Toolbox) и houghlines
Функции (Image Processing Toolbox), которые являются частью Image Processing Toolbox™, чтобы обнаружить маркировки маршрута. Этот пример сопровождает Обнаружение Маршрута на графическом процессоре при помощи Функции houghlines.
Этот пример иллюстрирует следующие концепции:
Смоделируйте приложение обнаружения маршрута в Simulink при помощи функций обработки изображений.
Сконфигурируйте модель для генерации кода графического процессора.
Сгенерируйте исполняемый файл CUDA для модели Simulink.
Необходимый
Этот пример генерирует MEX CUDA и имеет следующие сторонние требования.
CUDA включил NVIDIA® графический процессор и совместимый драйвер.
Дополнительный
Для сборок неMEX, таких как статические, динамические библиотеки или исполняемые файлы, этот пример имеет следующие дополнительные требования.
Инструментарий NVIDIA.
Переменные окружения для компиляторов и библиотек. Для получения дополнительной информации смотрите Стороннее Оборудование и Подготовку Необходимых как условие продуктов.
Чтобы проверить, что компиляторы и библиотеки, необходимые для выполнения этого примера, настраиваются правильно, используйте coder.checkGpuInstall
функция.
envCfg = coder.gpuEnvConfig('host');
envCfg.BasicCodegen = 1;
envCfg.Quiet = 1;
coder.checkGpuInstall(envCfg);
houghlines
Модель SimulinkМодель Simulink для обнаружения маршрута показывают.
open_system('lane_detection');
Lane Detection
подсистема содержит MATLAB Function
блокируйтесь, который берет изображение интенсивности, как введено и обеспечивает обнаруженные маршруты, как выведено. Эта функция основана на реализации алгоритма обнаружения маршрута с помощью houghlines
как описано в Обнаружении Маршрута на графическом процессоре при помощи примера Функции houghlines. Когда модель запускается, Visualization
блок отображается, маршрут обнаружил выходное изображение.
Открытое диалоговое окно Configuration Parameters.
В Целевой панели Симуляции выберите ускорение GPU.
Запустите симуляцию в Режиме normal mode.
set_param('lane_detection', 'SimulationMode', 'Normal'); sim('lane_detection');
В панели Генерации кода выберите Language как C++ и включите, Генерируют код графического процессора.
Открытая Целевая панель Симуляции. В Продвинутых параметрах включите порог Динамического выделения памяти в функциях MATLAB. Для получения дополнительной информации смотрите Динамическое выделение памяти в функциях MATLAB (Simulink)
Генерация Открытого кода> панель графического процессора Кода. В Библиотеках подкатегории включите cuBLAS, cuSOLVER и cuFFT.
Сгенерируйте и создайте модель Simulink на хосте графический процессор при помощи slbuild
команда. Генератор кода помещает файлы в папку сборки, подпапку под названием lane_detection_ert_rtw
под вашей текущей рабочей папкой.
status = evalc("slbuild('lane_detection')");
Закройте модель Simulink.
close_system('lane_detection');
open_system
(Simulink) | load_system
(Simulink) | save_system
(Simulink) | close_system
(Simulink) | bdclose
(Simulink) | get_param
(Simulink) | set_param
(Simulink) | sim
(Simulink) | slbuild
(Simulink)