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, 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ığı.

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. |