1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/duping812-jetson-inference

Клонировать/Скачать
segnet-console-2.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 15:38 5e07e18

Назад | Вперед | Содержание
Семантическое сегментирование

# Семантическое сегментирование с SegNet Следующая способность глубокого обучения, которую мы рассмотрим в этом учебнике, — это **семантическое сегментирование**. Семантическое сегментирование основано на распознавании изображений, но классификация происходит на уровне пикселей, а не на уровне всего изображения. Это достигается путем *конволюционирования* предварительно обученного основного блока распознавания изображений, что трансформирует модель в [полностью конволюционную сеть (Fully Convolutional Network, FCN)](https://arxiv.org/abs/1605.06211), способную к метки пикселей. Особенно полезно для восприятия окружающей среды, сегментация позволяет получать плотные метки пикселей для многих различных потенциальных объектов на сцене, включая передний и задний планы.

segNet принимает на вход двумерное изображение и выводит второе изображение с маской классификации пикселей. Каждый пиксель маски соответствует классу объекта, который был классифицирован. segNet доступен для использования из Python и C++.В качестве примеров использования класса segNet мы предоставляем образцы программ на C++ и Python:

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

См. ниже для различных предварительно обученных моделей сегментации, доступных для использования с сетью FCN-ResNet18 с реального времени производительностью на Jetson. Модели предоставляются для различных сред и тематик, включая городские районы, бездорожье и внутренние офисные пространства и дома.

Доступные предварительно обученные модели сегментации

Ниже приведена таблица предварительно обученных моделей семантического сегментирования, доступных для [скачивания](building-repo- Yöntem 2).

Загрузка моделей и связанный с ними аргумент --network для segnet, используемый для их загрузки. Модели основаны на 21-классовой сети FCN-ResNet18 и были обучены на различных наборах данных и разрешениях с использованием PyTorch, а затем экспортированы в формат ONNX для загрузки с использованием TensorRT.

Исправлено: "Загрузка моделей и связанный с ними аргумент --network для segnet, используемый для их загрузки." на "Загрузка моделей и связанный с ними аргумент --network для segnet, используемый для их загрузки."| Набор данных | Разрешение | Аргумент CLI | Точность | Jetson Nano | Jetson Xavier | |:------------:|:----------:|--------------|:--------:|:-----------:|:-------------:| | Cityscapes | 512x256 | fcn-resnet18-cityscapes-512x256 | 83.3% | 48 FPS | 480 FPS | | Cityscapes | 1024x512 | fcn-resnet18-cityscapes-1024x512 | 87.3% | 12 FPS | 175 FPS | | Cityscapes | 2048x1024 | fcn-resnet18-cityscapes-2048x1024 | 89.6% | 3 FPS | 47 FPS | | DeepScene | 576x320 | fcn-resnet18-deepscene-576x320 | 96.4% | 26 FPS | 360 FPS | | DeepScene | 864x480 | fcn-resnet18-deepscene-864x480 | 96.9% | 14 FPS | 190 FPS | | Multi-Human | 512x320 | fcn-resnet18-mhp-512x320 | 86.5% | 34 FPS | 370 FPS | | Multi-Human | 640x360 | fcn-resnet18-mhp-640x360 | 87.1% | 23 FPS | 325 FPS | | Pascal VOC | 320x320 | fcn-resnet18-voc-320x320 | 85.9% | 45 FPS | 508 FPS | | Pascal VOC | 512x320 | fcn-resnet18-voc-512x320 | 88.5% | 34 FPS | 375 FPS | | SUN RGB-D | 512x400 | fcn-resnet18-sun-512x400 | 64.3% | 28 FPS | 340 FPS | | SUN RGB-D | 640x512 | fcn-resnet18-sun-640x512 | 65.1% | 17 FPS | 224 FPS |

  • Если разрешение опущено в аргументе CLI, загружается модель с наименьшим разрешением.
  • Точность указывает точность классификации пикселей по набору данных валидации модели.
  • Вычислительная производительность измеряется в режиме GPU FP16 с JetPack 4.2.1, nvpmodel 0 (MAX-N).> Примечание: для загрузки дополнительных сетей запустите инструмент загрузки моделей

$ cd jetson-inference/tools
             $ ./download-models.sh

Разделение изображений из командной строки

Сначала попробуем использовать программу segnet для сегментации статических изображений. В дополнение к путям ввода/вывода есть некоторые дополнительные опции командной строки:

  • необязательный флаг --network изменяет модель сегментации (см. выше)
  • необязательный флаг --visualize принимает режимы mask и/или overlay (по умолчанию overlay)
  • необязательный флаг --alpha устанавливает значение альфа-смешивания для overlay (по умолчанию 120)
  • необязательный флаг --filter-mode принимает режимы point или linear (по умолчанию linear) Запустите приложение с флагом --help для получения дополнительной информации, и обратитесь к странице Трансляция с камеры и мультимедиа для поддерживаемых протоколов ввода/вывода. Вот несколько примеров использования программы:

C++

$ ./segnet --network=<model> input.jpg output.jpg                  # накладка сегментации на оригинальное изображение
$ ./segnet --network=<model> --alpha=200 input.jpg output.jpg      # сделать накладку менее прозрачной
$ ./segnet --network=<model> --visualize=mask input.jpg output.jpg # вывести твердую маску сегментации

Python

$ ./segnet.py --network=<model> input.jpg output.jpg
```jpg                  # накладка сегментации на оригинальное изображение
$ ./segnet.py --network=<model> --alpha=200 input.jpg output.jpg      # сделать накладку менее прозрачной
$ ./segnet.py --network=<model> --visualize=mask input.jpg output.jpg # вывести маску сегментации

Cityscapes

Давайте рассмотрим несколько различных сценариев. Вот пример сегментации городской улицы с использованием модели Cityscapes:

# C++
$ ./segnet --network=fcn-resnet18-cityscapes images/city_0.jpg images/test/output.jpg
# Python
$ ./segnet.py --network=fcn-resnet18-cityscapes images/city_0.jpg images/test/output.jpg
Есть дополнительные тестовые изображения, названные `city-*.jpg`, находящиеся в подпапке `images/` для тестирования модели Cityscapes. ### DeepScene [DeepScene dataset](http://deepscene.cs.uni-freiburg.de/) состоит из тропинок и растительности в лесу, что помогает в следовании пути для роботов на открытом воздухе. Вот пример генерации сегментационного перекрытия и маски путем указания аргумента `--visualize`: #### C++ ``` bash $ ./segnet --network=fcn-resnet18-deepscene images/trail_0.jpg images/test/output_overlay.jpg # перекрытие $ ./segnet --network=fcn-resnet18-deepscene --visualize=mask images/trail_0.jpg images/test/output_mask.jpg # маска ``` #### Python ``` bash $ ./segnet.py --network=fcn-resnet18-deepscene images/trail_0.jpg images/test/output_overlay.jpg # перекрытие $ ./segnet.py --network=fcn-resnet18-deepscene --visualize=mask images/trail_0.jpg images/test/output_mask.jpg # маска ``` com/dusty-nv/jetson-inference/raw/pytorch/docs/images/segmentation-deepscene-0-mask.jpg"> Есть больше образцов изображений, названных `trail-*.jpg`, расположенных в поддиректории `images/`. ### Многократное распознавание человека (MHP) [Многократное распознавание человека](https://lv-mhp.github.io/) предоставляет плотное маркирование частей тела, таких как руки, ноги, голова и различные типы одежды. Посмотрите на небольшое количество тестовых изображений, названных `humans-*.jpg`, найденных в поддиректории `images/` для тестирования модели MHP: ```bash # C++ $ ./segnet --network=fcn-resnet18-mhp images/humans_0.jpg images/test/output.jpg # Python $ ./segnet.py --network=fcn-resnet18-mhp images/humans_0.jpg images/test/output.jpg ``` #### Классы MHP ### Pascal VOC [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/) — один из первых наборов данных, используемых для семантической сегментации, содержащий различные изображения людей, животных, транспортных средств и домашних предметов. Есть некоторые образцы изображений, названных `object-*.jpg`, для тестирования модели Pascal VOC: ```bash # C++ $ ./segnet --network=fcn-resnet18-voc images/object_0.jpg images/test/output.jpg # Python $ ./segnet.py --network=fcn-resnet18-voc images/object_0.jpg images/test/output.jpg ``` com/dusty-nv/jetson-inference/raw/pytorch/docs/images/segmentation-voc-1.jpg" width="825">com/dusty-nv/jetson-inference/raw/pytorch/docs/images/segmentation-voc.jpg" width="1000"> #### Классы VOC ### SUN RGB-D Датасет [SUN RGB-D](http://rgbd.cs.princeton.edu/) предоставляет сегментацию объектов и сцен, часто встречающихся в офисных помещениях и домах. Для тестирования моделей SUN RGB-D используйте изображения, названные `room-*.jpg`, найденные в подпапке `images/`: ```bash # C++ $ ./segnet --network=fcn-resnet18-sun images/room_0.jpg images/test/output.jpg # Python $ ./segnet.py --network=fcn-resnet18-sun images/room_0.jpg images/test/output.jpg ``` #### Классы SUN ### Обработка директории или последовательности изображений Если вы хотите обработать директорию или последовательность изображений, запустите программу с путем к директории, содержащей изображения, или с шаблоном: ```bash # C++ $ ./segnet --network=fcn-resnet18-sun "images/room_*.jpg" images/test/room_output_%i.jpg # Python $ ./segnet.py --network=fcn-resnet18-sun "images/room_*.jpg" images/test/room_output_%i.jpg ``` > **Примечание:** при использовании шаблонов всегда заключайте их в кавычки (`"*.jpg"`). В противном случае операционная система автоматически расширит шаблон и изменит порядок аргументов на командной строке, что может привести к перезаписи одного из входных изображений выходным.Для получения дополнительной информации о загрузке/сохранении последовательностей изображений, см. страницу [Трансляция с камеры и мультимедиа](aux-streaming.md#sequences). Далее мы выполним сегментацию на потоке с камеры или видео. ##

Далее | Запуск демонстрации сегментации с камеры
Назад | Создание собственной программы детекции объектов

© 2016-2019 NVIDIA | Содержание

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/duping812-jetson-inference.git
git@api.gitlife.ru:oschina-mirror/duping812-jetson-inference.git
oschina-mirror
duping812-jetson-inference
duping812-jetson-inference
master