Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 gerekir
pip 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 PipelineTopologyGetRequest
gibi 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ı CloudToDeviceMethod
kullanarak 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.
Azure SDK for Python