Клиентская библиотека Видеоанализатора Azure Для Пограничных вычислений для Python — версия 1.0.0b4
Не рекомендуется. Прекращается использование предварительной версии Видеоанализатора Azure. Рекомендуем вам перевести свои приложения с этой службы до 1 декабря 2022 г. Этот пакет SDK больше не поддерживается.
Видеоанализатор Azure — это служба прикладного ИИ Azure , которая предоставляет платформу для создания интеллектуальных видеоприложений, которые могут охватывать как пограничные, так и облачные инфраструктуры. Платформа предоставляет возможность записывать, записывать и анализировать видеотрансляций, а также публиковать результаты, видео и видеоаналистику в службах Azure на пограничных устройствах или в облаке. Это расширяемая платформа, позволяющая подключать различные пограничные модули вывода видео, такие как модули Cognitive Services, или пользовательские модули вывода, которые были обучены на основе ваших собственных данных с помощью машинного обучения с открытым исходным кодом или Машинного обучения Azure.
Используйте клиентская библиотека для Видеоанализатора Edge, чтобы:
- Упрощение взаимодействия с пакетами SDK для Интернета вещей Microsoft Azure
- Программное создание топологий конвейеров и динамических конвейеров
Пакет (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.
Azure SDK for Python