Aracılığıyla paylaş


Python için Azure Video Analyzer Edge istemci kitaplığı - sürüm 1.0.0b4

Kullanım dışı. Azure Video Analyzer önizleme hizmetini kullanımdan kaldırıyoruz. Uygulamalarınızı 01 Aralık 2022'ye kadar Video Analyzer'ın dışına geçirmeniz önerilir. Bu SDK artık korunmaz.

Azure Video Analyzer, hem uç hem de bulut altyapılarını kapsayan akıllı video uygulamaları oluşturmanız için bir platform sağlayan bir Azure Uygulamalı Yapay Zeka Hizmetidir . Platform, sonuçları, video ve video analizini uçtaki veya buluttaki Azure hizmetlerine yayımlamanın yanı sıra canlı video yakalama, kaydetme ve analiz etme özelliği sunar. Bilişsel hizmetler modülleri gibi farklı video çıkarım uç modüllerine veya açık kaynak makine öğrenmesi veya Azure Machine Learning kullanarak kendi verilerinizle eğitilmiş özel çıkarım modüllerine bağlanmanızı sağlayan genişletilebilir bir platform olarak tasarlanmıştır.

Video Analyzer Edge için istemci kitaplığını kullanarak:

  • Microsoft Azure IoT SDK'larıyla etkileşimleri basitleştirme
  • Program aracılığıyla işlem hattı topolojileri ve canlı işlem hatları oluşturma

Paket (PyPI) | Ürün belgeleri | Doğrudan yöntemler | Boru hattı | Kaynak kodu | Örnekleri

Başlarken

Paketi yükleme

Pip ile Python için Video Analyzer Edge istemci kitaplığını yükleyin:

pip install azure-media-videoanalyzer-edge

Önkoşullar

  • Bu paketi kullanmak için Python 2.7 veya 3.6 veya üzeri gereklidir.

  • Bu paketi kullanmak için etkin bir Azure aboneliğine ve bir IoT cihaz bağlantı dizesine ihtiyacınız vardır.

  • Azure IoT Hub ile etkileşime geçmek için çalıştırmanız gerekirpip install azure-iot-hub

  • SDK'nın kullanmakta olduğunuz Video Analyzer Edge modülünün sürümüne karşılık gelen sürümünü kullanmanız gerekir.

    SDK Video Analyzer edge modülü
    1.0.0b3 1.1
    1.0.0b2 1.0
    1.0.0b1 1.0

İşlem hattı topolojisi oluşturma ve istekte bulunma

Başlangıç kodu örnekleri'ni ziyaret edin.

Önemli kavramlar

İşlem hattı topolojisi ile canlı işlem hattı karşılaştırması

İşlem hattı topolojisi, canlı işlem hatları oluşturmaya yönelik bir şema veya şablondur. Yer tutucuları bunlar için değer olarak kullanarak işlem hattının parametrelerini tanımlar. Canlı işlem hattı bir işlem hattı topolojisine başvurur ve parametreleri belirtir. Bu şekilde, aynı topolojiye başvuran ancak parametreler için farklı değerlerle birden çok canlı işlem hattına sahip olursunuz. Daha fazla bilgi için lütfen işlem hattı topolojilerini ve canlı işlem hatlarını ziyaret edin.

CloudToDeviceMethod

CloudToDeviceMethod, azure-iot-hub SDK'sının bir parçasıdır. Bu yöntem, IoT hub'ınızdaki bir cihaza tek yönlü bildirimler iletmenizi sağlar. Bizim örneğimizde ve PipelineTopologyGetRequestgibi PipelineTopologySetRequest çeşitli doğrudan yöntemleri iletmek istiyoruz. Kullanmak CloudToDeviceMethod için iki parametre geçirmeniz gerekir: method_name ve payload.

İlk parametre olan method_name, gönderdiğiniz doğrudan yöntem isteğinin adıdır. Her yöntemin önceden tanımlanmış method_name özelliğini kullandığınızdan emin olun. Örneğin, PipelineTopologySetRequest.method_name.

İkinci parametre olan payload, işlem hattı topolojisi isteğinin tüm serileştirmesini gönderir. Örneğin, PipelineTopologySetRequest.serialize()

Örnekler

İşlem hattı topolojisi oluşturma

İşlem hattı topolojisi oluşturmak için kaynakları ve havuzları tanımlamanız gerekir.

#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)

Canlı işlem hattı oluşturma

Canlı işlem hattı oluşturmak için mevcut bir işlem hattı topolojisine sahip olmanız gerekir.

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)

Doğrudan yöntem çağırma

Cihazınızda doğrudan bir yöntem çağırmak için önce Video Analyzer Edge SDK'sını kullanarak isteği tanımlamanız, ardından ioT SDK'sını CloudToDeviceMethodkullanarak bu yöntem isteğini göndermeniz gerekir.

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 ile farklı işlem hattı topolojilerini denemek için lütfen resmi Örnekler'e bakın.

Sorun giderme

  • IoT Hub CloudToDeviceMethod kullanarak bir yöntem isteği gönderirken, yöntem isteği adını doğrudan yazmamayı unutmayın. Bunun yerine [MethodRequestName.method_name] kullanılıyor
  • Yöntem isteğini geçirmeden önce tüm yöntem isteğini seri hale getirerek emin olun CloudToDeviceMethod

Sonraki adımlar

Katkıda bulunma

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.

Herhangi bir sorunla karşılaşırsanız lütfen Github'da bir sorun açın.

Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları hakkında SSS bölümüne bakın veya başka soru ya da görüşleriniz olursa opencode@microsoft.com ile iletişime geçin.