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

OSCHINA-MIRROR/duping812-jetson-inference

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

Назад | Вперед | Содержание
Распознавание изображений

# Классификация изображений с помощью ImageNet Существует множество типов глубоких нейронных сетей, включая распознавание, обнаружение/локализацию и семантическую сегментацию. Первым глубоким нейронным способом, который мы рассматриваем в этом руководстве, является **распознавание изображений**, используя классификационные сети, обученные на больших наборах данных для идентификации сцен и объектов. Объект [`imageNet`](../c/imageNet.h) принимает входное изображение и выводит вероятность для каждого класса. Будучи обученным на наборе данных ImageNet ILSVRC, содержащем **[1000 классов](../data/networks/ilsvrc12_synset_words.txt)**, модели GoogleNet и ResNet-18 были автоматически загружены во время этапа сборки. См. [ниже](#загрузка-других-классификационных-моделей) для других классификационных моделей, которые можно загрузить и использовать. В качестве примера использования класса [`imageNet`](../c/imageNet.h) мы предоставляем образцы программ на C++ и Python: - [`imagenet.cpp`](../examples/imagenet/imagenet.cpp) (C++) - [`imagenet.py`](../python/examples/imagenet.py) (Python) Эти образцы могут классифицировать изображения, видео и потоки с камеры.Для получения дополнительной информации о различных типах входных/выходных потоков, поддерживаемых, см. страницу [Потоковое видео с камеры и мультимедиа](aux-streaming.md). ### Использование программы ImageNet на Jetson Сначала попробуем использовать программу `imagenet` для тестирования распознавания изображений на примерах. Она загружает изображение (или изображения), использует TensorRT и класс `imageNet` для выполнения инференса, затем накладывает результат классификации и сохраняет выходное изображение. Проект включает образцы изображений для вас, расположенные в директории `images/`. После [сборки](building-repo-2.md) проекта, убедитесь, что ваш терминал находится в директории `aarch64/bin`: ```bash $ cd jetson-inference/build/aarch64/bin ``` Далее, классифицируем примерное изображение с помощью программы `imagenet`, используя либо [C++](../examples/imagenet/imagenet.cpp), либо [Python](../python/examples/imagenet.py) варианты. Если вы используете [Docker-контейнер](aux-docker.md), рекомендуется сохранять отсортированные изображения в отмонтированную директорию `images/test`. Эти изображения будут легко доступны на вашем устройстве в директории `jetson-inference/data/images/test` (для получения дополнительной информации см. [Отмонтированные данные](aux-docker.md#mounted-data-volumes)). ```bash # C++ $ ./imagenet images/orange_0.jpg images/test/output_0.jpg # (по умолчанию используется сеть googlenet) # Python $ ./imagenet.py images/orange_0.jpg images/test/output_0.jpg # (по умолчанию используется сеть googlenet) ```> **Примечание**: при первом запуске каждого из моделей TensorRT затрачивается несколько минут на оптимизацию сети.
>           оптимизированная сеть сохраняется на диске, поэтому последующие запуски будут быстрее. ```bash # C++ $ . /imagenet images/strawberry_0. jpg images/test/output_1. jpg # Python $ . /imagenet. py images/strawberry_0. jpg images/test/output_1. jpg ``` В дополнение к загрузке отдельных изображений, вы можете загружать директорию или последовательность изображений, а также видеофайлы. Для получения дополнительной информации см. страницу [Трансляция с камеры и мультимедиа](aux-streaming. md) или запустите приложение с флагом `--help`.### Загрузка других моделей классификации По умолчанию проект загружает сети GoogleNet и ResNet-18 во время этапа сборки. Также доступны другие предобученные модели, которые вы можете использовать, если решите [загрузить](building-repo-2.md#downloading-models) их: | Сеть | CLI аргумент | NetworkType enum | |------------|----------------|------------------| | AlexNet | `alexnet` | `ALEXNET` | | GoogleNet | `googlenet` | `GOOGLENET` | | GoogleNet-12 | `googlenet-12` | `GOOGLENET_12` | | ResNet-18 | `resnet-18` | `RESNET_18` | | ResNet-50 | `resnet-50` | `RESNET_50` | | ResNet-101| `resnet-101` | `RESNET_101` | | ResNet-152| `resnet-152` | `RESNET_152` | | VGG-16 | `vgg-16` | `VGG_16` | | VGG-19 | `vgg-19` | `VGG_19` | | Inception-v4 | `inception-v4` | `INCEPTION_V4` | > **Примечание**: для загрузки дополнительных сетей запустите [инструмент загрузки моделей](building-repo-2.md#downloading-models) > > `$ cd jetson-inference/tools` > > `$ ./download-models.sh` > Обычно более сложные сети могут иметь большую точность классификации, с увеличенным временем выполнения. ### Использование различных моделей классификации Вы можете указать, какую модель загрузить, установив флаг `--network` на командной строке одним из соответствующих аргументов CLI из таблицы выше. По умолчанию загружается GoogleNet, если не указано опциональное значение флага `--network`. Ниже приведены примеры использования модели ResNet-18: ```bash # C++ $ ./imagenet --network=resnet-18 images/jellyfish.jpg images/test/output_jellyfish.jpg # Python $ ./imagenet ```py --network=resnet-18 images/jellyfish.jpg images/test/output_jellyfish.jpg ``` ``` bash # C++ $ ./imagenet --network=resnet-18 images/stingray.jpg images/test/output_stingray.jpg # Python $ ./imagenet.py --network=resnet-18 images/stingray.jpg images/test/output_stingray.jpg ``` ``` bash # C++ $ ./imagenet --network=resnet-18 images/coral.jpg images/test/output_coral.jpg # Python $ ./imagenet.py --network=resnet-18 images/coral.jpg images/test/output_coral.jpg ``` Пожалуйста, экспериментируйте с использованием различных моделей и увидите, как различаются их точность и производительность — вы можете загрузить больше моделей с помощью [инструмента загрузки моделей](building-repo-2.md#downloading-models). Также есть различные тестовые изображения, расположенные в папке `images/` ### Обработка видео Страница [Трансляция с камеры и мультимедиа](aux-streaming.md) показывает различные типы потоков, которые может обрабатывать программа `imagenet`. Вот пример выполнения программы на видео с диска: ``` bash # Загрузка тестового видео (спасибо jell.yfish.us) $ wget https://nvidia.box.com/shared/static/tlswont1jnyu3ix2tbf7utaekpzcx4rc.mkv -O jellyfish.mkv # C++ $ ./imagenet --network=resnet-18 jellyfish.mkv images/test/jellyfish_resnet18.mkv # Python $ ./imagenet.py --network=resnet-18 jellyfish.mkv images/test/jellyfish_resnet18.mkv ``` Далее мы рассмотрим шаги по написанию собственной программы распознавания изображений с нуля, сначала на Python, а затем на C++. ##

Далее | Написание собственной программы распознавания изображений (Python)
Назад | Конструкция репозитория из исходного кода

© 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