Uzamsal analiz işlemleri

Uzamsal analiz, kamera cihazlarından gerçek zamanlı akış videosunun analizine izin vermez. Yapılandırdığınız her kamera cihazında, uzamsal analize yönelik işlemler, Azure IoT Hub örneğinizle gönderilen JSON iletilerinin çıktı akışını oluşturacaktır.

Uzamsal analiz kapsayıcısı aşağıdaki işlemleri uygular:

İşlem tanımlayıcısı Description
biliveservices. Vision. spatialanalysis-PersonCount Kameranın görünüm alanındaki belirli bir bölgedeki kişileri sayar. PersonCount 'un doğru toplamı kaydedebilmesi için bölgenin tek bir kamera tarafından tam olarak kapsanmış olması gerekir.
Sayı değiştiğinde ilk bir personcountevent olayını ve sonra da personcountevent olaylarını yayar.
biliveservices. Vision. spatialanalysis-personcrossingline Bir kişinin, kameranın görünüm alanındaki belirli bir satırı ne zaman kesişdiğini izler.
Kişi çizgiyi kesen ve yön bilgisi sağlayan bir Personlineevent olayı yayar.
biliveservices. Vision. spatialanalysis-personcrossingçokgen Bir kişi bölgeden girdiğinde ya da çıktığında ve çapraz bölgenin numaralı tarafıyla yönlü bilgi sağlayan bir Personzoneentertevent olayı yayar. Kişi bölgeden çıktığında bir Personzonedwelltimeevent yayar ve bir kişinin bölge içinde harcadığı milisaniye sayısını ve yönlü bilgi sağlar.
biliveservices. Vision. spatialanalysis-persondistance İnsanlar bir uzaklık kuralını ihlal ediyor.
Her uzaklık ihlalinin konumuyla düzenli aralıklarla bir personDistanceEvent yayar.
biliveservices. Vision. spatialanalysis Yukarıda bahsedilen tüm senaryoları çalıştırmak için kullanılabilen genel işlem. Bu seçenek, aynı kamerada birden çok senaryo çalıştırmak veya sistem kaynaklarını (ör. GPU) daha verimli bir şekilde kullanmak istediğinizde daha yararlıdır.

Tüm yukarıdaki işlemler, .debug işlenmekte oldukları gibi video çerçevelerini görselleştirme özelliğine sahip olan sürümde de mevcuttur. xhost +Video çerçevelerinin ve olaylarının görselleştirilmesini sağlamak için ana bilgisayarda çalıştırmanız gerekir.

İşlem tanımlayıcısı Description
biliveservices. Vision. spatialanalysis-PersonCount. Debug Kameranın görünüm alanındaki belirli bir bölgedeki kişileri sayar.
Sayı değiştiğinde ilk bir personcountevent olayını ve sonra da personcountevent olaylarını yayar.
biliveservices. Vision. spatialanalysis-personcrossingline. Debug Bir kişinin, kameranın görünüm alanındaki belirli bir satırı ne zaman kesişdiğini izler.
Kişi çizgiyi kesen ve yön bilgisi sağlayan bir Personlineevent olayı yayar.
biliveservices. Vision. spatialanalysis-personcrossingçokgen. Debug Bir kişi bölgeden girdiğinde ya da çıktığında ve çapraz bölgenin numaralı tarafıyla yönlü bilgi sağlayan bir Personzoneentertevent olayı yayar. Kişi bölgeden çıktığında bir Personzonedwelltimeevent yayar ve bir kişinin bölge içinde harcadığı milisaniye sayısını ve yönlü bilgi sağlar.
biliveservices. Vision. spatialanalysis-persondistance. Debug İnsanlar bir uzaklık kuralını ihlal ediyor.
Her uzaklık ihlalinin konumuyla düzenli aralıklarla bir personDistanceEvent yayar.
biliveservices. Vision. spatialanalysis. Debug Yukarıda bahsedilen tüm senaryoları çalıştırmak için kullanılabilen genel işlem. Bu seçenek, aynı kamerada birden çok senaryo çalıştırmak veya sistem kaynaklarını (ör. GPU) daha verimli bir şekilde kullanmak istediğinizde daha yararlıdır.

Uzamsal analiz, video AI modülü olarak canlı video analizi ile de çalıştırılabilir.

İşlem tanımlayıcısı Description
biliveservices. Vision. spatialanalysis-PersonCount. livevideoanalytics Kameranın görünüm alanındaki belirli bir bölgedeki kişileri sayar.
Sayı değiştiğinde ilk bir personcountevent olayını ve sonra da personcountevent olaylarını yayar.
biliveservices. Vision. spatialanalysis-personcrossingline. livevideoanalytics Bir kişinin, kameranın görünüm alanındaki belirli bir satırı ne zaman kesişdiğini izler.
Kişi çizgiyi kesen ve yön bilgisi sağlayan bir Personlineevent olayı yayar.
biliveservices. Vision. spatialanalysis-personcrossingçokgen. livevideoanalytics Bir kişi bölgeden girdiğinde ya da çıktığında ve çapraz bölgenin numaralı tarafıyla yönlü bilgi sağlayan bir Personzoneentertevent olayı yayar. Kişi bölgeden çıktığında bir Personzonedwelltimeevent yayar ve bir kişinin bölge içinde harcadığı milisaniye sayısını ve yönlü bilgi sağlar.
biliveservices. Vision. spatialanalysis-persondistance. livevideoanalytics İnsanlar bir uzaklık kuralını ihlal ediyor.
Her uzaklık ihlalinin konumuyla düzenli aralıklarla bir personDistanceEvent yayar.
biliveservices. Vision. spatialanalysis. livevideoanalytics Yukarıda bahsedilen tüm senaryoları çalıştırmak için kullanılabilen genel işlem. Bu seçenek, aynı kamerada birden çok senaryo çalıştırmak veya sistem kaynaklarını (ör. GPU) daha verimli bir şekilde kullanmak istediğinizde daha yararlıdır.

Canlı video analizi işlemleri de .debug (örneğin, biliveservices. Vision. spatialanalysis-PersonCount. livevideoanalytics. Debug) sürümünde de mevcuttur. Bu, video çerçevelerini işlenen olarak görselleştirme özelliğine sahiptir. xhost +Video çerçevelerini ve olaylarını görselleştirmeyi etkinleştirmek için ana bilgisayarda çalıştırmanız gerekir

Önemli

Görüntü işleme AI modelleri, insan gövdenin etrafında bir sınırlayıcı kutu kullanarak video filmlerindeki ve çıkışındaki insan varlığını algılar ve bulur. AI modelleri, kişilerin kimliklerini veya demograflarını bulmaya çalışmaz.

Bunlar, bu uzamsal analiz işlemlerinin her biri için gereken parametrelerdir.

İşlem parametreleri Description
İşlem KIMLIĞI Yukarıdaki tablodan Işlem tanımlayıcısı.
enabled Boolean: true veya false
VIDEO_URL Kamera cihazının RTSP URL 'si (örnek: rtsp://username:password@url ). Uzamsal analiz, RTSP, http veya MP4 aracılığıyla H., kodlanmış akışı destekler. Video_URL, AES şifrelemesi kullanılarak karıştırılmış bir Base64 dizesi değeri olarak sağlanır ve video URL 'si karıştırılmış KEY_ENV ve IV_ENV ortam değişkenleri olarak sağlanması gerekiyorsa. Anahtar ve şifreleme oluşturmak için örnek yardımcı program buradabulunabilir.
VIDEO_SOURCE_ID Kamera cihazı veya video akışı için kolay bir ad. Bu, olay JSON çıkışıyla döndürülür.
VIDEO_IS_LIVE Kamera aygıtları için doğru; Kayıtlı videolar için false.
VIDEO_DECODE_GPU_INDEX Video çerçevesinin kodunu çözecek GPU. Varsayılan olarak 0 ' dır. , gpu_index Ve gibi diğer düğüm yapılandırması ile aynı olmalıdır DETECTOR_NODE_CONFIG CAMERACALIBRATOR_NODE_CONFIG .
INPUT_VIDEO_WIDTH Giriş videosu/akışının çerçeve genişliği (ör. 1920). Bu, isteğe bağlı bir alandır ve sağlanmışsa, en boy oranı korunarak çerçeve bu boyuta ölçeklenmelidir.
DETECTOR_NODE_CONFIG Üzerinde algılayıcı düğümünün çalıştırılacağı GPU 'YU gösteren JSON. Aşağıdaki biçimde olmalıdır: "{ \"gpu_index\": 0 }",
TRACKER_NODE_CONFIG İzleyici düğümünde hız hesaplama yapılıp yapılmayacağını belirten JSON. Aşağıdaki biçimde olmalıdır: "{ \"enable_speed\": true }",
CAMERA_CONFIG Birden çok kamera için ayarlanmış kamera parametrelerini gösteren JSON. Kullandığınız yetenek ayarlama gerektiriyorsa ve kamera parametresi zaten varsa, bu yapılandırmayı doğrudan sağlamak için kullanabilirsiniz. Aşağıdaki biçimde olmalıdır: "{ \"cameras\": [{\"source_id\": \"endcomputer.0.persondistancegraph.detector+end_computer1\", \"camera_height\": 13.105561256408691, \"camera_focal_length\": 297.60003662109375, \"camera_tiltup_angle\": 0.9738943576812744}] }" , source_id her kamerayı tanımlamak için kullanılır. source_infoYayımlandığımız olaydan gelen bir kaynaktan alınabilir. Bu işlem yalnızca do_calibration=false ' de yürürlüğe girer DETECTOR_NODE_CONFIG .
CAMERACALIBRATOR_NODE_CONFIG Kameranın hangi GPU 'YU kullandığını gösteren JSON, üzerinde ve ayarlamanın kullanılıp kullanılmayacağını belirtir. Aşağıdaki biçimde olmalıdır: "{ \"gpu_index\": 0, \"do_calibration\": true, \"enable_orientation\": true}",
CALIBRATION_CONFIG Kamera ayarlama işleminin nasıl çalıştığını denetleyen parametreleri gösteren JSON. Aşağıdaki biçimde olmalıdır: "{\"enable_recalibration\": true, \"quality_check_frequency_seconds\": 86400}",
SPACEANALYTICS_CONFIG Aşağıda özetlenen bölge ve satır için JSON yapılandırması.
ENABLE_FACE_MASK_CLASSIFIER True videoyu devre dışı bırakmak için video akışında yüz maskeleri takanlar False . Varsayılan olarak devre dışıdır. Yüz maskesini algılama için giriş video genişliği parametresinin 1920 olması gerekir "INPUT_VIDEO_WIDTH": 1920 . Algılanan insanlar kamerayı karşılamayamıyorsa veya bu bilgisayardan çok uzakta olduğunda yüz maskesi özniteliği döndürülmez. Daha fazla bilgi için kamera yerleştirme kılavuzuna bakın

Algılayıcı düğüm parametre ayarları

Bu, tüm uzamsal analiz işlemleri için DETECTOR_NODE_CONFIG parametrelerine bir örnektir.

{
"gpu_index": 0,
"enable_breakpad": false
}
Ad Tür Description
gpu_index dize Bu işlemin çalıştırılacağı GPU dizini.
enable_breakpad bool Hata ayıklama kullanımı için bir kilitlenme dökümü oluşturmak için kullanılan BreakPad ' in etkinleştirilip etkinleştirilmeyeceğini belirtir. falseVarsayılan olarak. Öğesini olarak ayarlarsanız true kapsayıcının bölümüne de eklemeniz gerekir "CapAdd": ["SYS_PTRACE"] HostConfig createOptions . Varsayılan olarak, kilitlenme dökümü RealTimePersonTracking AppCenter uygulamasına yüklenir, kilitlenme dökümlerinin kendi AppCenter uygulamanıza yüklenmesini isterseniz, ortam değişkenini RTPT_APPCENTER_APP_SECRET uygulamanızın uygulama gizli anahtarı ile geçersiz kılabilirsiniz.

Kamera ayarlama düğümü parametre ayarları

Bu, CAMERACALIBRATOR_NODE_CONFIG Tüm uzamsal analiz işlemleri için parametrelere bir örnektir.

{
  "gpu_index": 0,
  "do_calibration": true,
  "enable_breakpad": false,
  "enable_orientation": true
}
Ad Tür Description
do_calibration dize Ayarlama özelliğinin açık olduğunu gösterir. do_calibrationbiliveservices. Vision. spatialanalysis-persondistance 'ın düzgün şekilde çalışması için true olması gerekir. do_calibration , varsayılan olarak olarak ayarlanır True .
enable_breakpad bool Hata ayıklama kullanımı için bir kilitlenme dökümü oluşturmak için kullanılan BreakPad ' in etkinleştirilip etkinleştirilmeyeceğini belirtir. falseVarsayılan olarak. Öğesini olarak ayarlarsanız true kapsayıcının bölümüne de eklemeniz gerekir "CapAdd": ["SYS_PTRACE"] HostConfig createOptions . Varsayılan olarak, kilitlenme dökümü RealTimePersonTracking AppCenter uygulamasına yüklenir, kilitlenme dökümlerinin kendi AppCenter uygulamanıza yüklenmesini isterseniz, ortam değişkenini RTPT_APPCENTER_APP_SECRET uygulamanızın uygulama gizli anahtarı ile geçersiz kılabilirsiniz.
enable_orientation bool Algılanan kişiler için yönlendirmeyi hesaplamak isteyip istemediğinizi belirtir. enable_orientation , varsayılan olarak olarak ayarlanır True .

Ayarlama yapılandırması

Bu, CALIBRATION_CONFIG Tüm uzamsal analiz işlemleri için parametrelere bir örnektir.

{
  "enable_recalibration": true,
  "calibration_quality_check_frequency_seconds": 86400,
  "calibration_quality_check_sample_collect_frequency_seconds": 300,
  "calibration_quality_check_one_round_sample_collect_num": 10,
  "calibration_quality_check_queue_max_size": 1000,
  "calibration_event_frequency_seconds": -1
}
Ad Tür Description
enable_recalibration bool Otomatik yeniden renklendirme özelliğinin açılıp açılmadığını gösterir. true varsayılan değerdir.
calibration_quality_check_frequency_seconds int Her kalite denetimi arasındaki en az saniye sayısının, gerekli olup olmadığını belirleme gerekliliği. Varsayılan değer 86400 (24 saat). Yalnızca ne zaman kullanılır enable_recalibration=True .
calibration_quality_check_sample_collect_frequency_seconds int Yeni veri örneklerinin toplanması ve kalite denetimi için en az saniye sayısı. Varsayılan değer 300 (5 dakikadır). Yalnızca ne zaman kullanılır enable_recalibration=True .
calibration_quality_check_one_round_sample_collect_num int Örnek toplamanın hepsini başına toplanacak en az yeni veri örneği sayısı. 10 varsayılan değerdir. Yalnızca ne zaman kullanılır enable_recalibration=True .
calibration_quality_check_queue_max_size int Kamera modeli kalibre edildiğinde depolanacak en fazla veri örneği sayısı. 1000 varsayılan değerdir. Yalnızca ne zaman kullanılır enable_recalibration=True .
calibration_event_frequency_seconds int Kamera ayarlama olaylarının çıkış sıklığı (saniye). Bir değeri, kamera ayarlama -1 bilgileri değiştirilmediği takdirde kamera ayarlama işleminin gönderilmemesi gerektiğini gösterir. -1 varsayılan değerdir.

Kamera ayarlama çıkışı

Bu, kamera ayarı etkinse çıktının bir örneğidir. Üç nokta, bir listedeki aynı tür nesneleri gösterir.

{
  "type": "cameraCalibrationEvent",
  "sourceInfo": {
    "id": "camera1",
    "timestamp": "2021-04-20T21:15:59.100Z",
    "width": 640,
    "height": 360,
    "frameId": 531,
    "cameraCalibrationInfo": {
      "status": "Calibrated",
      "cameraHeight": 13.294151306152344,
      "focalLength": 372.0000305175781,
      "tiltupAngle": 0.9581864476203918,
      "lastCalibratedTime": "2021-04-20T21:15:59.058"
    }
  },
  "zonePlacementInfo": {
    "optimalZoneRegion": {
      "type": "POLYGON",
       "points": [
        {
          "x": 0.8403755868544601,
          "y": 0.5515320334261838
        },
        {
          "x": 0.15805946791862285,
          "y": 0.5487465181058496
        },
        ...
      ],
      "name": "optimal_zone_region"
    },
    "fairZoneRegion": {
      "type": "POLYGON",
      "points": [
        {
          "x": 0.7871674491392802,
          "y": 0.7437325905292479
        },
        {
          "x": 0.22065727699530516,
          "y": 0.7325905292479109
        },
        ...
      ],
      "name": "fair_zone_region"
    },
    "uniformlySpacedPersonBoundingBoxes": [
      {
        "type": "RECTANGLE",
        "points": [
          {
            "x": 0.0297339593114241,
            "y": 0.0807799442896936
          },
          {
            "x": 0.10015649452269171,
            "y": 0.2757660167130919
          }
        ]
      },
      ...
    ],
    "personBoundingBoxGroundPoints": [
      {
        "x": -22.944068908691406,
        "y": 31.487680435180664
      },
      ...
    ]
  }
}

Ayrıntılar için bkz. uzamsal analiz işlemi çıkışı source_info .

Zoneplacementınfo alan adı Tür Description
optimalZonePolygon object Kamera görüntüsünde, işlemlerinizin satır veya bölgelerinin en iyi sonuçlar için yerleştirilebileceği bir çokgen.
Her bir değer çifti, çokgenin köşeleri için x, y 'yi temsil eder. Çokgen, insanların izlenen veya sayılan olduğu alanı temsil eder ve çokgen noktaları, sol üst köşenin (0,0, 0,0) ve sağ alt köşenin (1,0, 1,0) olduğu normalleştirilmiş koordinatları (0-1) temel alır.
fairZonePolygon object Kamera görüntüsünde, işlemlerinizin hatlarının veya bölgelerinin iyi, ancak en iyi şekilde sonuç olarak yerleştirilebileceği bir çokgen.
optimalZonePolygonİçeriğin derinlemesine bir açıklaması için yukarıdaki bölümüne bakın.
uniformlySpacedPersonBoundingBoxes list Kamera görüntüsündeki kişilerin sınırlayıcı kutularının bir listesi gerçek alana eşit olarak dağıtılır. Değerler normalleştirilmiş koordinatları (0-1) temel alır.
personBoundingBoxGroundPoints list , Kameraya göre taban düzledeki koordinatların bir listesi. Her koordinat, içindeki sınırlayıcı kutunun sağ alt sağına karşılık gelir uniformlySpacedPersonBoundingBoxes .
centerGroundPointtaban düzlemdeki koordinatların nasıl hesaplandığı hakkında daha fazla ayrıntı için biliveservices. vision. spatialanalysis-persondistance aı Analizler bölümünde JSON biçimindeki alana bakın.

Bir video çerçevesinde görselleştirilen bölge yerleştirme bilgisi çıkışı örneği:  bölge yerleştirme bilgileri görselleştirme

Bölge yerleştirme bilgileri, yapılandırmanızla ilgili öneriler sağlar, ancak Kamera yapılandırmasındaki yönergelerin en iyi sonuçlar için yine de izlenmesi gerekir.

Hız parametresi ayarları

Hızlı hesaplamayı izleyici düğümü parametre ayarları aracılığıyla yapılandırabilirsiniz.

{
"enable_speed": true,
}
Ad Tür Description
enable_speed bool Algılanan kişilerin hızını hesaplamak isteyip istemediklerini gösterir. enable_speed varsayılan olarak olarak True ayarlanır. En iyi tahmini değerlere sahip olmak için hem hızı hem de yönlendirmeyi etkinleştirmeniz kesinlikle önerilir.

Uzamsal Analiz işlemleri yapılandırması ve çıkışı

cognitiveservices.vision.spatialanalysis-personcount için bölge yapılandırması

Bu, bölgeyi yapılandıran SPACEANALYTICS_CONFIG JSON girişi örneğidir. Bu işlem için birden çok bölge yapılandırabilirsiniz.

{
  "zones": [
    {
      "name": "lobbycamera",
      "polygon": [[0.3,0.3], [0.3,0.9], [0.6,0.9], [0.6,0.3], [0.3,0.3]],
      "events": [
        {
          "type": "count",
          "config": {
            "trigger": "event",
            "threshold": 16.00,
            "focus": "footprint"
          }
        }
      ]
    }
  ]
}
Ad Tür Description
zones list Bölgelerin listesi.
name string Bu bölge için kolay ad.
polygon list Her değer çifti, çokgen köşeleri için x,y değerini temsil eder. Poligon, kişilerin takip veya sayılacağı alanları temsil eder ve çokgen noktaları normalleştirilmiş koordinatları (0-1) temel alır; sol üst köşe (0.0, 0.0) ve sağ alt köşe (1.0, 1.0) olur.
threshold float Kişi, bölge içindeki bu piksel sayısından büyük olduğunda olaylar çıkışlı olur.
type string cognitiveservices.vision.spatialanalysis-personcount için bu olması count gerekir.
trigger string Olay göndermek için tetikleyici türü. Desteklenen değerler, sayı değişip değişmemiş olup olmadığına bakılmaksızın sayı değişip değişmediğini bakılmaksızın düzenli aralıklarla olay göndermek event için olayları göndermek için interval kullanılır.
output_frequency int Olayların çıkış hızı. When output_frequency = X, her X olayı çıkışlı olur, örneğin: output_frequency = 2, diğer her olayın çıkış olduğu anlamına gelir. hem output_frequency hem de için event interval geçerlidir.
focus string Olayları hesaplamak için kullanılan kişinin sınırlayıcı kutusunun içindeki nokta konumu. Odak değeri (kişinin ayak izi), (kişinin sınırlayıcı kutusunun alt merkezi) (kişinin sınırlayıcı footprint bottom_center kutusunun center merkezi) olabilir.

cognitiveservices.vision.spatialanalysis-personcrossingline için satır yapılandırması

Bu, bir satırı yapılandıran SPACEANALYTICS_CONFIG JSON girişi örneğidir. Bu işlem için birden çok geçiş hattı yapılandırebilirsiniz.

{
   "lines": [
       {
           "name": "doorcamera",
           "line": {
               "start": {
                   "x": 0,
                   "y": 0.5
               },
               "end": {
                   "x": 1,
                   "y": 0.5
               }
           },
           "events": [
               {
                   "type": "linecrossing",
                   "config": {
                       "trigger": "event",
                       "threshold": 16.00,
                       "focus": "footprint"
                   }
               }
           ]
       }
   ]
}
Ad Tür Description
lines list Satır listesi.
name string Bu satır için kolay ad.
line list Satırın tanımı. Bu, "giriş" ile "çıkış" karşılaştırması anlamanıza olanak sağlayan yönlü bir çizgidir.
start değer çifti Çizginin başlangıç noktası için x, y koordinatları. Float değerleri, köşenin sol üst köşeye göre konumunu temsil eder. Mutlak x, y değerlerini hesaplamak için bu değerleri çerçeve boyutuyla çarpabilirsiniz.
end değer çifti Çizginin bitiş noktası için x, y koordinatları. Float değerleri, köşenin sol üst köşeye göre konumunu temsil eder. Mutlak x, y değerlerini hesaplamak için bu değerleri çerçeve boyutuyla çarpabilirsiniz.
threshold float Kişi, bölge içindeki bu piksel sayısından büyük olduğunda olaylar çıkışlı olur. Varsayılan değer 16'dır. Bu, maksimum doğruluk elde etmek için önerilen değerdir.
type string cognitiveservices.vision.spatialanalysis-personcrossingline için bu şu linecrossing şekildedir: .
trigger string Olay göndermek için tetikleyici türü.
Desteklenen Değerler: "event": Birisi çizgiyi geçenin tarafından esnedildi.
focus string Olayları hesaplamak için kullanılan kişinin sınırlayıcı kutusunun içindeki nokta konumu. Odak değeri (kişinin ayak izi), (kişinin sınırlayıcı kutusunun alt merkezi) (kişinin sınırlayıcı footprint bottom_center kutusunun center merkezi) olabilir. Varsayılan değer ayak izidir.

cognitiveservices.vision.spatialanalysis-personcrossingpolygon için bölge yapılandırması

Bu, bölgeyi yapılandıran SPACEANALYTICS_CONFIG JSON girişi örneğidir. Bu işlem için birden çok bölge yapılandırabilirsiniz.

{
"zones":[
   {
       "name": "queuecamera",
       "polygon": [[0.3,0.3], [0.3,0.9], [0.6,0.9], [0.6,0.3], [0.3,0.3]],
       "events":[{
           "type": "zonecrossing",
           "config":{
               "trigger": "event",
               "threshold": 48.00,
               "focus": "footprint"
               }
           }]
   },
   {
       "name": "queuecamera1",
       "polygon": [[0.3,0.3], [0.3,0.9], [0.6,0.9], [0.6,0.3], [0.3,0.3]],
       "events":[{
           "type": "zonedwelltime",
           "config":{
               "trigger": "event",
               "threshold": 16.00,
               "focus": "footprint"
               }
           }]
   }]
}
Ad Tür Description
zones list Bölgelerin listesi.
name string Bu bölge için kolay ad.
polygon list Her değer çifti, çokgen köşeleri için x,y değerini temsil eder. Çokgen, kişilerin izne veya sayılacağı alanları temsil eder. Float değerleri, köşenin sol üst köşeye göre konumunu temsil eder. Mutlak x, y değerlerini hesaplamak için bu değerleri çerçeve boyutuyla çarpabilirsiniz.
target_side int Kullanıcıların bölgedeyken bu tarafa ne kadar polygon süreyle karşı karşıya olduğunu ölçmek için tarafından tanımlanan bölgenin bir tarafını belirtir. 'elde edilen tahmini süre,'olarak elde edilen değerin çıkışını oluşturur. Her taraf, bölgenizi temsil eden poligonun iki köşesi arasında numaralı bir kenardır. Örneğin, çokgenin ilk iki köşesi arasındaki kenar birinci tarafı temsil ediyor, 'side'=1. değeri target_side [0,N-1] arasındadır, N burada değerinin kenar polygon sayısıdır. Bu isteğe bağlı bir alandır.
threshold float Kişi, bölge içindeki bu piksel sayısından büyük olduğunda olaylar çıkışlı olur. Tür zonecrossing olduğunda varsayılan değer 48, time Değeri Ise 16'dır. Bunlar, maksimum doğruluk elde etmek için önerilen değerlerdir.
type string cognitiveservices.vision.spatialanalysis-personcrossingpolygon için bu veya zonecrossing zonedwelltime şeklindedir.
trigger string Olay göndermek için tetikleyici türü
Desteklenen Değerler: "event": Birisi bölgeye giren veya bölgeden çıkarken etkindir.
focus string Olayları hesaplamak için kullanılan kişinin sınırlayıcı kutusunun içindeki nokta konumu. Odağın değeri footprint (kişinin parmak izi), (kişinin sınırlayıcı bottom_center kutusunun alt Merkezi), center (kişinin sınırlayıcı kutusunun merkezi) olabilir. Varsayılan değer, parmak izdir.

Biliveservices. Vision. spatialanalysis-persondistance için bölge yapılandırması

Bu, biliveservices. Vision. spatialanalysis-persondistance için bir bölgeyi yapılandıran SPACEANALYTICS_CONFIG parametresi IÇIN bir JSON girişi örneğidir. Bu işlem için birden çok bölge yapılandırabilirsiniz.

{
"zones":[{
   "name": "lobbycamera",
   "polygon": [[0.3,0.3], [0.3,0.9], [0.6,0.9], [0.6,0.3], [0.3,0.3]],
   "events":[{
       "type": "persondistance",
       "config":{
           "trigger": "event",
           "output_frequency":1,
           "minimum_distance_threshold":6.0,
           "maximum_distance_threshold":35.0,
        "aggregation_method": "average"
           "threshold": 16.00,
           "focus": "footprint"
                   }
          }]
   }]
}
Ad Tür Description
zones list Bölgelerin listesi.
name string Bu bölge için kolay ad.
polygon list Her bir değer çifti, poligonun köşeleri için x, y 'yi temsil eder. Çokgen, insanların sayıldığı ve kişiler arasındaki mesafe ölçülen alanı temsil eder. Float değerleri, üst, sol köşeye göre köşe konumunu temsil eder. Mutlak x, y değerlerini hesaplamak için, bu değerleri çerçeve boyutuyla çarpmanız gerekir.
threshold float Kişi, bölge içindeki bu pikselden daha büyük olduğunda olaylar olur.
type string Biliveservices. Vision. spatialanalysis-persondistance için olmalıdır persondistance .
trigger string Olay gönderme tetikleyicisinin türü. Desteklenen değerler, sayımdan event bağımsız olarak değişiklik yapılıp yapılmayacağını fark edildiğinde, sayı değiştiğinde ya da interval olayların düzenli aralıklarla gönderilmesi için olay göndermeye yöneliktir.
output_frequency int Olayların yumurdaki oranı. output_frequency= X olduğunda, her X olayı ise, EX olur. output_frequency = 2, diğer tüm olayların çıkış olduğu anlamına gelir. , output_frequency Ve için geçerlidir event interval .
minimum_distance_threshold float İnsanlar bu uzaklığa göre daha az olduğunda "Toockaybetme" olayını tetikleyen bir uzaklık.
maximum_distance_threshold float İnsanlar bu uzaklıktan daha büyük olduğunda bir "TooFar" olayı tetikleyen bir uzaklık.
aggregation_method string Persondistance sonucunu topla yöntemi. Aggregation_method hem hem de için geçerlidir mode average .
focus string Olayları hesaplamak için kullanılan öğenin sınırlayıcı kutusundaki nokta konumu. Odağın değeri footprint (kişinin parmak izi), (kişinin sınırlayıcı bottom_center kutusunun alt Merkezi), center (kişinin sınırlayıcı kutusunun merkezi) olabilir.

Biliveservices. Vision. spatialanalysis için yapılandırma

Bu, biliveservices. Vision. spatialanalysis için bir satır ve bölge yapılandıran SPACEANALYTICS_CONFIG parametresi IÇIN bir JSON girişi örneğidir. Bu işlem için birden çok satır/bölge yapılandırabilirsiniz ve her bir satır/bölge farklı olaylara sahip olabilir.

{
  "lines": [
    {
      "name": "doorcamera",
      "line": {
        "start": {
          "x": 0,
          "y": 0.5
        },
        "end": {
          "x": 1,
          "y": 0.5
        }
      },
      "events": [
        {
          "type": "linecrossing",
          "config": {
            "trigger": "event",
            "threshold": 16.00,
            "focus": "footprint"
          }
        }
      ]
    }
  ],
  "zones": [
    {
      "name": "lobbycamera",
      "polygon": [[0.3, 0.3],[0.3, 0.9],[0.6, 0.9],[0.6, 0.3],[0.3, 0.3]],
      "events": [
        {
          "type": "persondistance",
          "config": {
            "trigger": "event",
            "output_frequency": 1,
            "minimum_distance_threshold": 6.0,
            "maximum_distance_threshold": 35.0,
            "threshold": 16.00,
            "focus": "footprint"
          }
        },
        {
          "type": "count",
          "config": {
            "trigger": "event",
            "output_frequency": 1,
            "threshold": 16.00,
            "focus": "footprint"
          }
        },
        {
          "type": "zonecrossing",
          "config": {
            "threshold": 48.00,
            "focus": "footprint"
          }
        },
        {
          "type": "zonedwelltime",
          "config": {
            "threshold": 16.00,
            "focus": "footprint"
          }
        }
      ]
    }
  ]
}

Kamera yapılandırması

Bölgeleri ve satırları yapılandırma hakkında daha fazla bilgi edinmek için kamera yerleştirme yönergelerine bakın.

Uzamsal analiz işlemi çıkışı

Her bir işlemin olayları, JSON biçiminde Azure IoT Hub için de kullanılır.

biliveservices. vision. spatialanalysis-personcount aı Analizler için JSON biçimi

Bu işlem tarafından bir olay çıkışı için örnek JSON.

{
    "events": [
        {
            "id": "b013c2059577418caa826844223bb50b",
            "type": "personCountEvent",
            "detectionIds": [
                "bc796b0fc2534bc59f13138af3dd7027",
                "60add228e5274158897c135905b5a019"
            ],
            "properties": {
                "personCount": 2
            },
            "zone": "lobbycamera",
            "trigger": "event"
        }
    ],
    "sourceInfo": {
        "id": "camera_id",
        "timestamp": "2020-08-24T06:06:57.224Z",
        "width": 608,
        "height": 342,
        "frameId": "1400",
        "cameraCalibrationInfo": {
            "status": "Calibrated",
            "cameraHeight": 10.306597709655762,
            "focalLength": 385.3199462890625,
            "tiltupAngle": 1.0969393253326416
        },
        "imagePath": ""
    },
    "detections": [
        {
            "type": "person",
            "id": "bc796b0fc2534bc59f13138af3dd7027",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.612683747944079,
                        "y": 0.25340268765276636
                    },
                    {
                        "x": 0.7185954043739721,
                        "y": 0.6425260577285499
                    }
                ]
            },
            "confidence": 0.9559211134910583,
            "centerGroundPoint": {
                "x": 0.0,
                "y": 0.0
            },
            "metadata": {
            "attributes": {
                "face_mask": 0.99
            }
        }
        },
        {
            "type": "person",
            "id": "60add228e5274158897c135905b5a019",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.22326200886776573,
                        "y": 0.17830915618361087
                    },
                    {
                        "x": 0.34922296122500773,
                        "y": 0.6297955429344847
                    }
                ]
            },
            "confidence": 0.9389744400978088,
            "centerGroundPoint": {
                "x": 0.0,
                "y": 0.0
            },
            "metadata":{
            "attributes": {
            "face_nomask": 0.99
            }
            }
       }
    ],
    "schemaVersion": "1.0"
}
Olay alanı adı Tür Description
id dize Olay Kimliği
type string Olay türü
detectionsId array Bu olayı tetikleyen kişinin benzersiz tanımlayıcısının 1 boyutlu dizisi
properties koleksiyonu Değer koleksiyonu
trackinId string Algılanan kişinin benzersiz tanıtıcısı
zone string Çapraz olan bölgeyi temsil eden çokgenin "ad" alanı
trigger string Tetikleyici türü, SPACEANALYTICS_CONFIG değerine bağlı olarak ' Event ' veya ' Interval ' trigger
Algılama alanı adı Tür Description
id dize Algılama KIMLIĞI
type string Algılama türü
region koleksiyonu Değer koleksiyonu
type string Bölgenin türü
points koleksiyonu Bölge türü DIKDÖRTGEN olduğunda sol üst ve sağ alt noktaları
confidence float Algoritma güveni
face_mask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takdiğini belirtir
face_nomask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takmadığını belirtir
SourceInfo alan adı Tür Description
id dize Kamera KIMLIĞI
timestamp date JSON yükünün ne zaman yayıldığını UTC tarihi
width int Video çerçevesi genişliği
height int Video çerçeve yüksekliği
frameId int Çerçeve tanımlayıcısı
cameraCallibrationInfo koleksiyonu Değer koleksiyonu
status string Biçiminin biçimindeki durumu state[;progress description] . Durum Calibrating , Recalibrating (Eğer yeniden renklendirme etkinse), veya olabilir Calibrated . İlerleme açıklaması bölümü yalnızca ve durumunda olduğunda geçerlidir. Bu, Calibrating Recalibrating geçerli ayarlama işleminin ilerlemesini göstermek için kullanılır.
cameraHeight float Kameranın, fit 'teki üstündeki yüksekliği. Bu, otomatik ayarlama tarafından algılanır.
focalLength float Kameranın piksel cinsinden odak uzunluğu. Bu, otomatik ayarlama tarafından algılanır.
tiltUpAngle float Kameranın eğim açısı Dikey. Bu, otomatik ayarlama tarafından algılanır.

biliveservices. vision. spatialanalysis-personcrossingline aı Analizler için JSON biçimi

Bu işlem tarafından algılanan algılamalar için örnek JSON.

{
    "events": [
        {
            "id": "3733eb36935e4d73800a9cf36185d5a2",
            "type": "personLineEvent",
            "detectionIds": [
                "90d55bfc64c54bfd98226697ad8445ca"
            ],
            "properties": {
                "trackingId": "90d55bfc64c54bfd98226697ad8445ca",
                "status": "CrossLeft"
            },
            "zone": "doorcamera"
        }
    ],
    "sourceInfo": {
        "id": "camera_id",
        "timestamp": "2020-08-24T06:06:53.261Z",
        "width": 608,
        "height": 342,
        "frameId": "1340",
        "imagePath": ""
    },
    "detections": [
        {
            "type": "person",
            "id": "90d55bfc64c54bfd98226697ad8445ca",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.491627341822574,
                        "y": 0.2385801348769874
                    },
                    {
                        "x": 0.588894994635331,
                        "y": 0.6395559924387793
                    }
                ]
            },
            "confidence": 0.9005028605461121,
            "metadata": {
            "attributes": {
                "face_mask": 0.99
            }
        }
        }
    ],
    "schemaVersion": "1.0"
}
Olay alanı adı Tür Description
id dize Olay Kimliği
type string Olay türü
detectionsId array Bu olayı tetikleyen kişinin benzersiz tanımlayıcısının 1 boyutlu dizisi
properties koleksiyonu Değer koleksiyonu
trackinId string Algılanan kişinin benzersiz tanıtıcısı
status string Çizgi çapraz yönlerinin yönü, ' CrossLeft ' veya ' CrossRight '. Yön, "Başlat" çizgisinin "bitiş" haline gelecek şekilde "başlangıç" ile oluşan görüntü oluşturma ' yı temel alır. Çapraz sağ, soldan sağa doğru kesişme. Çapraz sol, sağdan sola kesişme.
orientationDirection string Satır geçtikten sonra algılanan kişinin yön yönü. Değer ' Left ', ' Right ' veya ' düz ' olabilir. Bu değer, enable_orientation içinde olarak ayarlandıysa çıkış olur True``CAMERACALIBRATOR_NODE_CONFIG
zone string Çapraz çizginin "ad" alanı
Algılama alanı adı Tür Description
id dize Algılama KIMLIĞI
type string Algılama türü
region koleksiyonu Değer koleksiyonu
type string Bölgenin türü
points koleksiyonu Bölge türü DIKDÖRTGEN olduğunda sol üst ve sağ alt noktaları
groundOrientationAngle float Saat yönünde, gösterilen zemin düzleinde kişinin yönünün bir açısı
mappedImageOrientation float Saat yönünde, 2B görüntü alanındaki kişinin yönün bir açısı olan tahmini
speed float Algılanan kişinin tahmini hızı. Birim foot per second (ft/s)
confidence float Algoritma güveni
face_mask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takdiğini belirtir
face_nomask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takmadığını belirtir
SourceInfo alan adı Tür Description
id dize Kamera KIMLIĞI
timestamp date JSON yükünün ne zaman yayıldığını UTC tarihi
width int Video çerçevesi genişliği
height int Video çerçeve yüksekliği
frameId int Çerçeve tanımlayıcısı

Önemli

AI modeli, kişinin kameraya veya uzaklaşmaya bağlı olup olmadığına bakılmaksızın bir kişi algılar. AI modeli, yüz tanıma 'yı çalıştırmaz ve biyometrik bilgiler oluşturmaz.

biliveservices. vision. spatialanalysis-personcrossingçokgen aı Analizler için JSON biçimi

Bu işlem tarafından SPACEANALYTICS_CONFIG türünde algılanan algılamalar için örnek JSON zonecrossing .

{
    "events": [
        {
            "id": "f095d6fe8cfb4ffaa8c934882fb257a5",
            "type": "personZoneEnterExitEvent",
            "detectionIds": [
                "afcc2e2a32a6480288e24381f9c5d00e"
            ],
            "properties": {
                "trackingId": "afcc2e2a32a6480288e24381f9c5d00e",
                "status": "Enter",
                "side": "1"
            },
            "zone": "queuecamera"
        }
    ],
    "sourceInfo": {
        "id": "camera_id",
        "timestamp": "2020-08-24T06:15:09.680Z",
        "width": 608,
        "height": 342,
        "frameId": "428",
        "imagePath": ""
    },
    "detections": [
        {
            "type": "person",
            "id": "afcc2e2a32a6480288e24381f9c5d00e",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.8135572734631991,
                        "y": 0.6653949670624315
                    },
                    {
                        "x": 0.9937645761590255,
                        "y": 0.9925406829655519
                    }
                ]
            },
            "confidence": 0.6267998814582825,
        "metadata": {
        "attributes": {
        "face_mask": 0.99
        }
        }
           
        }
    ],
    "schemaVersion": "1.0"
}

Bu işlem tarafından SPACEANALYTICS_CONFIG türünde algılanan algılamalar için örnek JSON zonedwelltime .

{
    "events": [
        {
            "id": "f095d6fe8cfb4ffaa8c934882fb257a5",
            "type": "personZoneDwellTimeEvent",
            "detectionIds": [
                "afcc2e2a32a6480288e24381f9c5d00e"
            ],
            "properties": {
                "trackingId": "afcc2e2a32a6480288e24381f9c5d00e",
                "status": "Exit",
                "side": "1",
                      "dwellTime": 7132.0,
                      "dwellFrames": 20            
            },
            "zone": "queuecamera"
        }
    ],
    "sourceInfo": {
        "id": "camera_id",
        "timestamp": "2020-08-24T06:15:09.680Z",
        "width": 608,
        "height": 342,
        "frameId": "428",
        "imagePath": ""
    },
    "detections": [
        {
            "type": "person",
            "id": "afcc2e2a32a6480288e24381f9c5d00e",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.8135572734631991,
                        "y": 0.6653949670624315
                    },
                    {
                        "x": 0.9937645761590255,
                        "y": 0.9925406829655519
                    }
                ]
            },
            "confidence": 0.6267998814582825,
            "metadataType": "",
             "metadata": { 
                     "groundOrientationAngle": 1.2,
                     "mappedImageOrientation": 0.3,
                     "speed": 1.2
               },
        }
    ],
    "schemaVersion": "1.0"
}
Olay alanı adı Tür Description
id dize Olay Kimliği
type string Olay türü. Değer, Personzonedwelltimeevent ya da Personzoneenterexitevent olabilir
detectionsId array Bu olayı tetikleyen kişinin benzersiz tanımlayıcısının 1 boyutlu dizisi
properties koleksiyonu Değer koleksiyonu
trackinId string Algılanan kişinin benzersiz tanıtıcısı
status string Çokgen çapraz yönlerinin yönü, ' Enter ' veya ' Exit '
side int Kişinin çapraz olduğu Çokgen tarafının numarası. Her kenar, kendi diliminizi temsil eden iki köşe arasında numaralandırılmış bir kenar. Poligonun ilk iki köşesi arasındaki kenar ilk tarafı temsil eder. ' SIDE ', bir olay belirli bir kenar ile ilişkili olmadığında bir hata nedeniyle boş. Örneğin, bir kişi kaybolduğunda, ancak bölgenin bir tarafında geçen bir zaman ya da bir kişi bölgede göründüğünde ancak bir tarafında geçen bir bir giriş görüldüğünde bir çıkış meydana geldi.
dwellTime float Kişinin bölgede harcadığı süreyi temsil eden milisaniye sayısı. Bu alan, olay türü personZoneDwellTimeEvent olduğunda sağlanır
dwellFrames int Kişinin bölgede harcadığı çerçeve sayısı. Bu alan, olay türü personZoneDwellTimeEvent olduğunda sağlanır
dwellTimeForTargetSide float Kişinin bölgede harcadığı ve öğesine bakan süreyi temsil eden milisaniye sayısı target_side . Bu alan enable_orientation , True içinde olduğunda CAMERACALIBRATOR_NODE_CONFIG ve değeri target_side ' de ayarlandığında sağlanır SPACEANALYTICS_CONFIG
avgSpeed float Bölgedeki kişinin ortalama hızı. Birim foot per second (ft/s)
minSpeed float Bölgedeki kişinin en düşük hızı. Birim foot per second (ft/s)
zone string Çapraz olan bölgeyi temsil eden çokgenin "ad" alanı
Algılama alanı adı Tür Description
id dize Algılama KIMLIĞI
type string Algılama türü
region koleksiyonu Değer koleksiyonu
type string Bölgenin türü
points koleksiyonu Bölge türü DIKDÖRTGEN olduğunda sol üst ve sağ alt noktaları
groundOrientationAngle float Saat yönünde, gösterilen zemin düzleinde kişinin yönünün bir açısı
mappedImageOrientation float Saat yönünde, 2B görüntü alanındaki kişinin yönün bir açısı olan tahmini
speed float Algılanan kişinin tahmini hızı. Birim foot per second (ft/s)
confidence float Algoritma güveni
face_mask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takdiğini belirtir
face_nomask float Aralık (0-1) ile öznitelik güvenirlik değeri, algılanan kişinin bir yüz maskesini takmadığını belirtir

biliveservices. vision. spatialanalysis-persondistance aı Analizler için JSON biçimi

Bu işlem tarafından algılanan algılamalar için örnek JSON.

{
    "events": [
        {
            "id": "9c15619926ef417aa93c1faf00717d36",
            "type": "personDistanceEvent",
            "detectionIds": [
                "9037c65fa3b74070869ee5110fcd23ca",
                "7ad7f43fd1a64971ae1a30dbeeffc38a"
            ],
            "properties": {
                "personCount": 5,
                "averageDistance": 20.807043981552123,
                "minimumDistanceThreshold": 6.0,
                "maximumDistanceThreshold": "Infinity",
                "eventName": "TooClose",
                "distanceViolationPersonCount": 2
            },
            "zone": "lobbycamera",
            "trigger": "event"
        }
    ],
    "sourceInfo": {
        "id": "camera_id",
        "timestamp": "2020-08-24T06:17:25.309Z",
        "width": 608,
        "height": 342,
        "frameId": "1199",
        "cameraCalibrationInfo": {
            "status": "Calibrated",
            "cameraHeight": 12.9940824508667,
            "focalLength": 401.2800598144531,
            "tiltupAngle": 1.057669997215271
        },
        "imagePath": ""
    },
    "detections": [
        {
            "type": "person",
            "id": "9037c65fa3b74070869ee5110fcd23ca",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.39988183975219727,
                        "y": 0.2719132942065858
                    },
                    {
                        "x": 0.5051516984638414,
                        "y": 0.6488402517218339
                    }
                ]
            },
            "confidence": 0.948630690574646,
            "centerGroundPoint": {
                "x": -1.4638760089874268,
                "y": 18.29732322692871
            },
            "metadataType": ""
        },
        {
            "type": "person",
            "id": "7ad7f43fd1a64971ae1a30dbeeffc38a",
            "region": {
                "type": "RECTANGLE",
                "points": [
                    {
                        "x": 0.5200299714740954,
                        "y": 0.2875368218672903
                    },
                    {
                        "x": 0.6457497446160567,
                        "y": 0.6183311060855263
                    }
                ]
            },
            "confidence": 0.8235412240028381,
            "centerGroundPoint": {
                "x": 2.6310102939605713,
                "y": 18.635927200317383
            },
            "metadataType": ""
        }
    ],
    "schemaVersion": "1.0"
}
Olay alanı adı Tür Description
id dize Olay Kimliği
type string Olay türü
detectionsId array Bu olayı tetikleyen kişinin benzersiz tanımlayıcısının 1 boyutlu dizisi
properties koleksiyonu Değer koleksiyonu
personCount int Olay yayınlandığında algılanan kişilerin sayısı
averageDistance float Tüm algılanan kişilerin feet içinde ortalama uzaklığı
minimumDistanceThreshold float İnsanlar bu uzaklıktan daha az olduğunda bir "Toockaybetme" olayı tetiklenecek mesafe uzaklığı.
maximumDistanceThreshold float İnsanlar birbirinden uzaklıktan daha büyük olduğunda bir "TooFar" olayı tetiklenecek mesafe uzaklığı.
eventName string Olay adı TooClose minimumDistanceThreshold ihlal edildi, TooFar ne zaman ihlal edildiğinde maximumDistanceThreshold veya unknown otomatik ayarlama tamamlanmamışsa
distanceViolationPersonCount int Veya ihlaline göre algılanan kişilerin sayısı minimumDistanceThreshold``maximumDistanceThreshold
zone string Kişiler arasında distancing için izlenen bölgeyi temsil eden çokgenin "ad" alanı
trigger string Tetikleyici türü, SPACEANALYTICS_CONFIG değerine bağlı olarak ' Event ' veya ' Interval ' trigger
Algılama alanı adı Tür Description
id dize Algılama KIMLIĞI
type string Algılama türü
region koleksiyonu Değer koleksiyonu
type string Bölgenin türü
points koleksiyonu Bölge türü DIKDÖRTGEN olduğunda sol üst ve sağ alt noktaları
confidence float Algoritma güveni
centerGroundPoint 2 float değeri x, y kişinin yüz içinde çıkarılan konumunun koordinatlarıyla birlikte değerleri. x ve taban y düzledeki koordinatların ortasının düzeyi olduğunu varsayar. Kameranın konumu kaynak.

Hesaplama sırasında centerGroundPoint , kameradan x kameraya, kamera görüntü düzlemine dikey bir çizgi arasındaki mesafe uzaklığı. y , kameradan kameraya, kamera görüntü düzlemine paralel bir çizgi ile uzaklığı.

Örnek orta zemin noktası

Bu örnekte, centerGroundPoint {x: 4, y: 5} . Bu, kameradan 4 metre uzakta olan ve oda üst alta bakarak 5 metreye kadar bir kişi olduğu anlamına gelir.

SourceInfo alan adı Tür Description
id dize Kamera KIMLIĞI
timestamp date JSON yükünün ne zaman yayıldığını UTC tarihi
width int Video çerçevesi genişliği
height int Video çerçeve yüksekliği
frameId int Çerçeve tanımlayıcısı
cameraCallibrationInfo koleksiyonu Değer koleksiyonu
status string Biçiminin biçimindeki durumu state[;progress description] . Durum Calibrating , Recalibrating (Eğer yeniden renklendirme etkinse), veya olabilir Calibrated . İlerleme açıklaması bölümü yalnızca ve durumunda olduğunda geçerlidir. Bu, Calibrating Recalibrating geçerli ayarlama işleminin ilerlemesini göstermek için kullanılır.
cameraHeight float Kameranın, fit 'teki üstündeki yüksekliği. Bu, otomatik ayarlama tarafından algılanır.
focalLength float Kameranın piksel cinsinden odak uzunluğu. Bu, otomatik ayarlama tarafından algılanır.
tiltUpAngle float Kameranın eğim açısı Dikey. Bu, otomatik ayarlama tarafından algılanır.

biliveservices. vision. spatialanalysis aı için JSON biçimi Analizler

Bu işlemin çıktısı yapılandırıldığına bağlıdır events , örneğin, zonecrossing Bu işlem için yapılandırılmış bir olay varsa, çıkış ile aynı olacaktır cognitiveservices.vision.spatialanalysis-personcrossingpolygon .

Kapsayıcı tarafından oluşturulan çıktıyı kullanın

Uzamsal analiz algılama veya olaylarını uygulamanızla tümleştirmek isteyebilirsiniz. Göz önünde bulundurmanız gereken birkaç yaklaşım aşağıda verilmiştir:

  • Azure IoT Hub uç noktasına bağlanmak ve olayları almak için seçtiğiniz programlama diline yönelik Azure Event hub SDK 'sını kullanın. Daha fazla bilgi için bkz. yerleşik uç noktadan cihazdan buluta Iletileri okuma .
  • Olayları diğer uç noktalara göndermek veya olayları veri depolamaya kaydetmek için Azure IoT Hub Ileti yönlendirmeyi ayarlayın. Daha fazla bilgi için bkz. IoT Hub Ileti yönlendirme .
  • Olayları geldikçe ve görselleştirmeler oluştururken gerçek zamanlı olarak işlemek için bir Azure Stream Analytics işi ayarlayın.

Uzamsal analiz işlemlerini ölçekte dağıtma (birden çok kamera)

GPU 'ların en iyi performansını ve kullanımını sağlamak için, grafik örnekleri kullanarak birden fazla kamera üzerinde herhangi bir uzamsal analiz işlemini dağıtabilirsiniz. İşlemin on beş kamera üzerinde çalıştırılması için bir örnek aşağıda verilmiştir cognitiveservices.vision.spatialanalysis-personcrossingline .

  "properties.desired": {
      "globalSettings": {
          "PlatformTelemetryEnabled": false,
          "CustomerTelemetryEnabled": true
      },
      "graphs": {
        "personzonelinecrossing": {
        "operationId": "cognitiveservices.vision.spatialanalysis-personcrossingline",
        "version": 1,
        "enabled": true,
        "sharedNodes": {
            "shared_detector0": {
                "node": "PersonCrossingLineGraph.detector",
                "parameters": {
                    "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0, \"batch_size\": 7, \"do_calibration\": true}",
                }
            },
            "shared_calibrator0": {
                "node": "PersonCrossingLineGraph/cameracalibrator",
                "parameters": {
                    "CAMERACALIBRATOR_NODE_CONFIG": "{ \"gpu_index\": 0, \"do_calibration\": true, \"enable_zone_placement\": true}",
                    "CALIBRATION_CONFIG": "{\"enable_recalibration\": true, \"quality_check_frequency_seconds\": 86400}",
                }
        },
        "parameters": {
            "VIDEO_DECODE_GPU_INDEX": 0,
            "VIDEO_IS_LIVE": true
        },
        "instances": {
            "1": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 1>",
                    "VIDEO_SOURCE_ID": "camera 1",
                    "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[[0,0],[1,0],[0,1],[1,1],[0,0]]}]}"
                }
            },
            "2": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 2>",
                    "VIDEO_SOURCE_ID": "camera 2",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "3": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 3>",
                    "VIDEO_SOURCE_ID": "camera 3",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "4": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 4>",
                    "VIDEO_SOURCE_ID": "camera 4",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "5": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 5>",
                    "VIDEO_SOURCE_ID": "camera 5",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "6": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 6>",
                    "VIDEO_SOURCE_ID": "camera 6",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "7": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 7>",
                    "VIDEO_SOURCE_ID": "camera 7",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "8": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 8>",
                    "VIDEO_SOURCE_ID": "camera 8",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "9": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 9>",
                    "VIDEO_SOURCE_ID": "camera 9",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "10": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 10>",
                    "VIDEO_SOURCE_ID": "camera 10",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "11": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 11>",
                    "VIDEO_SOURCE_ID": "camera 11",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "12": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 12>",
                    "VIDEO_SOURCE_ID": "camera 12",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "13": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 13>",
                    "VIDEO_SOURCE_ID": "camera 13",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "14": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 14>",
                    "VIDEO_SOURCE_ID": "camera 14",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            },
            "15": {
                "sharedNodeMap": {
                    "PersonCrossingLineGraph/detector": "shared_detector0",
            "PersonCrossingLineGraph/cameracalibrator": "shared_calibrator0",
                },
                "parameters": {
                    "VIDEO_URL": "<Replace RTSP URL for camera 15>",
                    "VIDEO_SOURCE_ID": "camera 15",
                    "SPACEANALYTICS_CONFIG": "<Replace the zone config value, same format as above>"
                }
            }
          }
        },
      }
  }
Ad Tür Description
batch_size int Tüm kameralar aynı çözünürlüğe sahip ise, batch_size Bu işlemde kullanılacak olan kamera sayısına ayarlayın, aksi takdirde 1 olarak ayarlayın batch_size veya varsayılan olarak (1) olarak bırakın. Bu, hiçbir toplu işin desteklenmediğini gösterir.

Sonraki adımlar