Поделиться через


Клиентская библиотека Видеоанализатора Azure Для Пограничных вычислений для Python — версия 1.0.0b4

Не рекомендуется. Прекращается использование предварительной версии Видеоанализатора Azure. Рекомендуем вам перевести свои приложения с этой службы до 1 декабря 2022 г. Этот пакет SDK больше не поддерживается.

Видеоанализатор Azure — это служба прикладного ИИ Azure , которая предоставляет платформу для создания интеллектуальных видеоприложений, которые могут охватывать как пограничные, так и облачные инфраструктуры. Платформа предоставляет возможность записывать, записывать и анализировать видеотрансляций, а также публиковать результаты, видео и видеоаналистику в службах Azure на пограничных устройствах или в облаке. Это расширяемая платформа, позволяющая подключать различные пограничные модули вывода видео, такие как модули Cognitive Services, или пользовательские модули вывода, которые были обучены на основе ваших собственных данных с помощью машинного обучения с открытым исходным кодом или Машинного обучения Azure.

Используйте клиентская библиотека для Видеоанализатора Edge, чтобы:

Пакет (PyPI) | Документация по продукту | Прямые методы | Трубопроводов | Исходный код | Образцы

Начало работы

Установка пакета

Установите клиентную библиотеку Видеоанализатора Edge для Python с помощью pip:

pip install azure-media-videoanalyzer-edge

Предварительные требования

  • Для использования этого пакета требуется Python 2.7 или 3.6 (или более поздней версии).

  • Для использования этого пакета вам потребуется активная подписка Azure и строка подключения к устройству Интернета вещей.

  • Для взаимодействия с Центр Интернета вещей Azure необходимо запуститьpip install azure-iot-hub

  • Вам потребуется использовать версию пакета SDK, соответствующую версии модуля Видеоанализатора Edge, который вы используете.

    SDK Пограничный модуль Видеоанализатора
    1.0.0b3 1,1
    1.0.0b2 1,0
    1.0.0b1 1,0

Создание топологии конвейера и выполнение запросов

Ознакомьтесь с примерами для начального кода.

Основные понятия

Топология конвейера и динамический конвейер

Топология конвейера — это схема или шаблон для создания динамических конвейеров. Он определяет параметры конвейера, используя заполнители в качестве значений для них. Динамический конвейер ссылается на топологию конвейера и задает параметры. Таким образом вы сможете создать несколько динамических конвейеров, ссылающихся на одну топологию, но с разными значениями для параметров. Дополнительные сведения см. в разделе Топологии конвейеров и динамические конвейеры.

CloudToDeviceMethod

входит CloudToDeviceMethod в состав SDk azure-iot-hub. Этот метод позволяет передавать односторонние уведомления на устройство в Центре Интернета вещей. В нашем случае мы хотим связаться с различными прямыми методами, такими как PipelineTopologySetRequest и PipelineTopologyGetRequest. Для использования CloudToDeviceMethod необходимо передать два параметра: method_name и payload.

Первый параметр, method_name, — это имя отправляемого запроса прямого метода. Обязательно используйте предопределенное method_name свойство каждого метода. Например, PipelineTopologySetRequest.method_name.

Второй параметр, payload, отправляет всю сериализацию запроса топологии конвейера. Например PipelineTopologySetRequest.serialize().

Примеры

Создание топологии конвейера

Чтобы создать топологию конвейера, необходимо определить источники и приемники.

#Parameters
user_name_param = ParameterDeclaration(name="rtspUserName",type="String",default="testusername")
password_param = ParameterDeclaration(name="rtspPassword",type="SecretString",default="testpassword")
url_param = ParameterDeclaration(name="rtspUrl",type="String",default="rtsp://www.sample.com")

#Source and Sink
source = RtspSource(name="rtspSource", endpoint=UnsecuredEndpoint(url="${rtspUrl}",credentials=UsernamePasswordCredentials(username="${rtspUserName}",password="${rtspPassword}")))
node = NodeInput(node_name="rtspSource")
sink = VideoSink(name="videoSink", inputs=[node], video_name="video", local_media_cache_path="/var/lib/videoanalyzer/tmp/", local_media_cache_maximum_size_mi_b="1024");
    
pipeline_topology_properties = PipelineTopologyProperties()
pipeline_topology_properties.parameters = [user_name_param, password_param, url_param]
pipeline_topology_properties.sources = [source]
pipeline_topology_properties.sinks = [sink]
pipeline_topology = PipelineTopology(name=pipeline_topology_name,properties=pipeline_topology_properties)

Создание динамического конвейера

Чтобы создать динамический конвейер, необходимо иметь существующую топологию конвейера.

url_param = ParameterDefinition(name="rtspUrl", value=pipeline_url)
pass_param = ParameterDefinition(name="rtspPassword", value="secret_password")
live_pipeline_properties = LivePipelineProperties(description="Sample pipeline description", topology_name=pipeline_topology_name, parameters=[url_param])

live_pipeline = LivePipeline(name=live_pipeline_name, properties=live_pipeline_properties)

Вызов прямого метода

Чтобы вызвать прямой метод на устройстве, необходимо сначала определить запрос с помощью пакета SDK Для Edge Видеоанализатора, а затем отправить запрос этого метода с помощью пакета SDK Для CloudToDeviceMethodИнтернета вещей .

set_method_request = PipelineTopologySetRequest(pipeline_topology=pipeline_topology)
direct_method = CloudToDeviceMethod(method_name=set_method_request.method_name, payload=set_method_request.serialize())
registry_manager = IoTHubRegistryManager(connection_string)

registry_manager.invoke_device_module_method(device_id, module_d, direct_method)

Чтобы опробовать различные топологии конвейера с помощью пакета SDK, см. официальные примеры.

Устранение неполадок

  • При отправке запроса метода с помощью Центр Интернета вещей CloudToDeviceMethod не забывайте вводить имя запроса метода напрямую. Вместо него используется [MethodRequestName.method_name].
  • Убедитесь, что весь запрос метода сериализуется перед его передачей в CloudToDeviceMethod

Дальнейшие действия

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

Если у вас возникли проблемы, сообщите о проблеме на сайте GitHub.

При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения: Вопросы и ответы по правилам поведения. С любыми другими вопросами или комментариями обращайтесь по адресу opencode@microsoft.com.