AdvCP
AdvCP изменяет инференс кооперативного восприятия во время симуляции CAVISE. Механизм включается через CLI OpenCDA и YAML-файл атаки. Отдельный исследовательский репозиторий AdvCollaborativePerception использует собственный процесс оценки наборов данных. Для этого интегрированного примера он не требуется.
Предварительные требования
Выполните Кооперативное восприятие. Оставьте CARLA 0.9.16 запущенной и убедитесь, что доступна Town06, используйте контейнер opencda-coperception и задайте CARLA_HOST внутри его оболочки, как показано в Подключение из OpenCDA.
В этом примере используются совместно:
сценарий
advcp-scenarios/advcp_check(содержит атакующегоcav-5).модель
pointpillar-late-opv2v-30(позднее слияние).конфигурация атаки
removal_forward(режим удаления).пакет ресурсов времени выполнения
base-car.
Имя сценария включает его каталог внутри config_yaml. Не подставляйте 3cars_advcp_removal_check без соответствующей адаптации конфигурации атаки: этот сценарий не содержит cav-5.
Базовый запуск
В оболочке контейнера OpenCDA сначала запустите тот же сценарий и модель без AdvCP:
python opencda.py -t advcp-scenarios/advcp_check \
--carla-host "$CARLA_HOST" --with-coperception \
--model-id pointpillar-late-opv2v-30 \
--ticks 200 --save-vis --save-npy
Запуск с включённым удалением
После завершения базового запуска выполните:
python opencda.py -t advcp-scenarios/advcp_check \
--carla-host "$CARLA_HOST" --with-coperception \
--model-id pointpillar-late-opv2v-30 \
--with-advcp --advcp-config removal_forward \
--advcp-assets-id base-car \
--ticks 200 --save-vis --save-npy
Для --with-advcp необходимы как --with-coperception, так и --advcp-config. OpenCDA разрешает модель и ресурсы AdvCP до запуска симуляции. Подготовка пакетов для автономного запуска описана в Модели и ресурсы времени выполнения.
Проверка активации и сравнение результатов
Найдите в журнале строки AdvCP mode: removal и AdvCP attackers: cav-5. Они подтверждают конфигурацию и проверку атакующего, но не успешность атаки. Если в сценарии нет ни одного настроенного атакующего, при инициализации возникает ошибка. Атакующий также может отсутствовать в отдельном пакете входных данных модели.
Сравните сохранённые прогнозы, визуализации и метрики оценки базового запуска и запуска с атакой в каталоге simulation_output. См. Запись и результаты. В примере сценария для метрики настроен прогрев длительностью пять шагов. Успех атаки не гарантирован на каждом кадре: результат зависит от видимости, выбранной модели, режима слияния и геометрии атаки.
Настройка эксперимента
Именованные конфигурации разрешаются в каталоге opencda/scenario_testing/config_yaml/advcp-configs/. Суффикс .yaml необязателен. Абсолютный путь выбирает пользовательский файл. Относительные имена разрешаются относительно этого каталога, а не рабочего каталога оболочки.
Поле |
Назначение |
|---|---|
|
|
|
Существующие идентификаторы агентов сценария, например |
|
Геометрия цели: каждый параллелепипед использует позу |
|
Включает вариант на основе формы там, где он поддерживается. Могут потребоваться дополнительные предварительно обученные файлы форм. Для первого примера оставьте значение false. |
|
Настройки выборки точек, используемые применимыми путями атаки на LiDAR. |
|
Параметры оптимизации, используемые применимыми путями промежуточного слияния. |
|
Временные параметры и параметры инициализации применимых путей атаки. |
Режим слияния определяется конфигурацией модели, а не отдельным параметром CLI AdvCP. Параметры, используемые в одном режиме слияния, могут игнорироваться в другом. Не полагайтесь на то, что изменение каждого YAML-поля повлияет на позднее слияние.
Чтобы проверить спуфинг в том же сценарии с семью агентами, замените --advcp-config removal_forward на --advcp-config spoofing_forward. Для другой модели сначала выберите требуемую цель образа и создайте новый базовый результат. Также необходимо проверить поддержку модели с промежуточным слиянием в реализации. Поддерживаются не все модели OpenCOOD.
Атаки на сервисы поведения, заданные списком attacks сценария, используют Фреймворк атак. Эта конфигурация не связана с AdvCP.