空間分析作業
空間分析可讓您即時分析來自相機裝置的視訊串流。 針對您設定的每個攝影機裝置,空間分析作業會產生傳送至實例 Azure IoT 中樞 JSON 訊息的輸出數據流。
空間分析容器會實作下列作業。 您可以在容器的部署指令清單中設定這些作業。
作業標識碼 | 描述 |
---|---|
cognitiveservices.vision.spatialanalysis-personcount |
計算相機視野中指定區域中的人員。 區域必須完全由單一相機覆蓋,才能讓 PersonCount 記錄精確的總計。 發出初始 personCountEvent 事件,然後在 計數變更時發出 personCountEvent 事件。 |
cognitiveservices.vision.spatialanalysis-personcrossingline |
追蹤人員在相機視野中越過指定的線條時。 當人員越過這一 行並提供方向資訊時,發出personLineEvent 事件。 |
cognitiveservices.vision.spatialanalysis-personcrossingpolygon |
當人員進入或離開指定的區域時,發出personZoneEnterExitEvent事件,並提供交叉區域側的方向資訊。 當人員離開區域並提供方向資訊,以及人員在區域內花費的毫秒數時,發出 personZoneDwellTimeEvent。 |
cognitiveservices.vision.spatialanalysis-persondistance |
追蹤人員違反最小距離規則的時機。 使用每個距離違規的位置定期發出personDistanceEvent。 |
cognitiveservices.vision.spatialanalysis |
泛型作業,可用來執行上述所有案例。 當您想要在同一個相機上執行多個案例,或使用系統資源時,此選項會更有效率地使用此選項。 |
上述所有作業也適用於 .debug
服務版本 (例如 , cognitiveservices.vision.spatialanalysis-personcount.debug
)。 偵錯能夠在處理視訊畫面時將視訊畫面可視化。 您必須在主計算機上執行 xhost +
,才能啟用視訊畫面和事件的視覺效果。
重要
Azure AI 視覺 AI 模型會在影片畫面中偵測並找出是否有人類存在,並輸出人體周圍的週框方塊。 AI 模型不會嘗試探索個人身分識別或人口統計。
作業參數
以下是每個空間分析作業所需的參數。
作業參數 | 描述 |
---|---|
Operation ID |
上表中的作業標識碼。 |
enabled |
布爾值:true 或 false |
VIDEO_URL |
相機裝置的 RTSP URL(範例: rtsp://username:password@url )。 空間分析支援透過 RTSP、HTTP 或 mp4 的 H.264 編碼數據流。 Video_URL可以使用 AES 加密作為模糊化的base64字串值來提供,如果視訊 URL 經過模糊KEY_ENV IV_ENV 處理,則必須以環境變數的形式提供。 您可以在這裡找到產生金鑰和加密的範例公用程式。 |
VIDEO_SOURCE_ID |
相機裝置或視訊串流的易記名稱。 這會使用事件 JSON 輸出傳回。 |
VIDEO_IS_LIVE |
若為相機裝置,則為 True;如果錄製的影片為 false。 |
VIDEO_DECODE_GPU_INDEX |
要譯碼視訊畫面的 GPU。 預設為 0。 應該與其他 gpu_index 節點組態中的 相同,例如 DETECTOR_NODE_CONFIG 和 CAMERACALIBRATOR_NODE_CONFIG 。 |
INPUT_VIDEO_WIDTH |
輸入視訊/數據流的畫面寬度(例如 1920 年)。 這是選擇性欄位,如果提供,框架將會縮放至此維度,同時保留外觀比例。 |
DETECTOR_NODE_CONFIG |
JSON,指出要在其中執行偵測器節點的 GPU。 其格式應如下: "{ \"gpu_index\": 0 }", |
TRACKER_NODE_CONFIG |
JSON,指出是否要在追蹤器節點中計算速度。 其格式應如下: "{ \"enable_speed\": true }", |
CAMERA_CONFIG |
JSON,指出多個相機的校正相機參數。 如果您使用的技能需要校正,而且您已經有相機參數,您可以使用此設定來直接提供它們。 應採用下列格式: "{ \"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 用來識別每個相機。 它可以從 source_info 我們發佈的事件取得。 只有在 中DETECTOR_NODE_CONFIG 時do_calibration=false 才會生效。 |
CAMERACALIBRATOR_NODE_CONFIG |
JSON,指出要在哪個 GPU 上執行相機校正器節點,以及是否要使用校正。 其格式應如下: "{ \"gpu_index\": 0, \"do_calibration\": true, \"enable_orientation\": true}", |
CALIBRATION_CONFIG |
JSON,指出控制相機校正運作方式的參數。 其格式應如下: "{\"enable_recalibration\": true, \"quality_check_frequency_seconds\": 86400}", |
SPACEANALYTICS_CONFIG |
區域和行的 JSON 組態如下所述。 |
ENABLE_FACE_MASK_CLASSIFIER |
True 啟用偵測在視訊串流中戴面罩的人, False 以停用它。 根據預設,這會停用。 臉部掩碼偵測需要輸入視訊寬度參數為 1920 "INPUT_VIDEO_WIDTH": 1920 。 如果偵測到的人沒有面對相機或離相機太遠,則不會傳回臉部遮罩屬性。 如需詳細資訊,請參閱 相機放置。 |
STATIONARY_TARGET_REMOVER_CONFIG |
JSON,指出固定目標移除的參數,這增加了學習和忽略長期靜止誤判目標的功能,例如模特或圖片中的人員。 組態的格式應如下: "{\"enable\": true, \"bbox_dist_threshold-in_pixels\": 5, \"buffer_length_in_seconds\": 3600, \"filter_ratio\": 0.2 }" |
偵測器節點參數設定
以下是所有空間分析作業的參數範例 DETECTOR_NODE_CONFIG
。
{
"gpu_index": 0,
"enable_breakpad": false
}
名稱 | 類型 | 描述 |
---|---|---|
gpu_index |
string | 執行此作業的 GPU 索引。 |
enable_breakpad |
bool | 指出是否要啟用斷層,用來產生損毀傾印以供偵錯使用。 預設為 false 。 如果您將它設定為 true ,則也需要在容器createOptions 的元件中HostConfig 新增 "CapAdd": ["SYS_PTRACE"] 。 根據預設,損毀傾印會上傳至 RealTimePersonTracking AppCenter 應用程式,如果您想要將損毀傾印上傳至您自己的 AppCenter 應用程式,您可以使用應用程式的應用程式秘密覆寫環境變數 RTPT_APPCENTER_APP_SECRET 。 |
相機 校正節點參數設定
以下是所有空間分析作業的參數範例 CAMERACALIBRATOR_NODE_CONFIG
。
{
"gpu_index": 0,
"do_calibration": true,
"enable_breakpad": false,
"enable_orientation": true
}
名稱 | 類型 | 描述 |
---|---|---|
do_calibration |
string | 表示已開啟校正。 do_calibration cognitiveservices.vision.spatialanalysis-persondistance 必須成立,才能正常運作。 do_calibration 預設會設定為 True 。 |
enable_breakpad |
bool | 指出是否要啟用斷層,用來產生損毀傾印以供偵錯使用。 預設為 false 。 如果您將它設定為 true ,則也需要在容器createOptions 的元件中HostConfig 新增 "CapAdd": ["SYS_PTRACE"] 。 根據預設,損毀傾印會上傳至 RealTimePersonTracking AppCenter 應用程式,如果您想要將損毀傾印上傳至您自己的 AppCenter 應用程式,您可以使用應用程式的應用程式秘密覆寫環境變數 RTPT_APPCENTER_APP_SECRET 。 |
enable_orientation |
bool | 指出是否要計算所偵測人員的方向。 enable_orientation 預設會設定為 True 。 |
校正設定
這是所有空間分析作業的參數範例 CALIBRATION_CONFIG
。
{
"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
}
名稱 | 類型 | 描述 |
---|---|---|
enable_recalibration |
bool | 指出是否開啟自動重新調整。 預設值為 true 。 |
calibration_quality_check_frequency_seconds |
int | 每個質量檢查之間的秒數下限,以判斷是否需要重新調整。 預設值為 86400 (24 小時)。 只有在 時 enable_recalibration=True 才會使用。 |
calibration_quality_check_sample_collect_frequency_seconds |
int | 收集新數據樣本以進行重新調整和品質檢查之間的秒數下限。 預設值為 300 (5 分鐘)。 只有在 時 enable_recalibration=True 才會使用。 |
calibration_quality_check_one_round_sample_collect_num |
int | 每一輪取樣收集要收集的新數據樣本數目下限。 預設值為 10 。 只有在 時 enable_recalibration=True 才會使用。 |
calibration_quality_check_queue_max_size |
int | 校正相機模型時要儲存的數據樣本數目上限。 預設值為 1000 。 只有在 時 enable_recalibration=True 才會使用。 |
calibration_event_frequency_seconds |
int | 相機校正事件的輸出頻率(秒)。 值 -1 表示除非相機校正資訊已變更,否則不應該傳送相機校正。 預設值為 -1 。 |
相機 校正輸出
以下是已啟用相機校正輸出的範例。 省略號表示清單中更多相同類型的物件。
{
"type": "cameraCalibrationEvent",
"sourceInfo": {
"id": "camera1",
"timestamp": "2021-04-20T21:15:59.100Z",
"width": 512,
"height": 288,
"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
}
]
}
}
如需 的詳細資訊,請參閱空間分析作業輸出。source_info
ZonePlacementInfo 功能變數名稱 | 類型 | 描述 |
---|---|---|
optimalZonePolygon |
object | 相機影像中的多邊形,您可以放置作業的線條或區域,以獲得最佳結果。 每個值組都代表多邊形頂點的 x,y。 多邊形代表追蹤或計算人員的區域,多邊形點是以正規化座標(0-1)為基礎,左上角為 (0.0, 0.0), 右下角為 (1.0, 1.0)。 |
fairZonePolygon |
object | 相機影像中的多邊形,其中作業的線條或區域可以放置良好,但可能不是最佳結果。 如需內容的深入說明,請參閱 optimalZonePolygon 上方。 |
uniformlySpacedPersonBoundingBoxes |
清單 | 相機影像中周框方塊的人清單,這些框線框方塊會統一分散在真實空間中。 值是以標準化座標 (0-1) 為基礎。 |
personBoundingBoxGroundPoints |
清單 | 相對於相機的平面座標清單。 每個座標都會對應至中周框方塊 uniformlySpacedPersonBoundingBoxes 的右下角,且索引相同。 centerGroundPointX/centerGroundPointY 如需如何計算地板平面座標的詳細資訊,請參閱 cognitiveservices.vision.spatialanalysis-persondistance AI 見解 一節的 JSON 格式下的欄位。 |
在影片畫面上可視化的區域放置信息輸出範例:
區域放置資訊會提供設定的建議,但 相機 設定中的指導方針仍必須遵循以獲得最佳結果。
追蹤器節點參數設定
您可以透過追蹤器節點參數設定來設定速度計算。
{
"enable_speed": true,
"remove_stationary_objects": true,
"stationary_objects_dist_threshold_in_pixels": 5,
"stationary_objects_buffer_length_in_seconds": 3600,
"stationary_objects_filter_ratio": 0.2
}
名稱 | 類型 | 描述 |
---|---|---|
enable_speed |
bool | 指出是否要計算偵測到人員的速度。 enable_speed 預設會設定為 True 。 強烈建議您同時啟用速度和方向,以取得最佳估計值。 |
remove_stationary_objects |
bool | 指出您是否要移除靜止物件。 remove_stationary_objects 默認會設定為 True。 |
stationary_objects_dist_threshold_in_pixels |
int | 決定兩個偵測方塊是否可以視為相同的偵測的鄰里距離臨界值。 stationary_objects_dist_threshold_in_pixels 默認會設定為 5。 |
stationary_objects_buffer_length_in_seconds |
int | 系統必須回頭查看以秒為單位的時間長度下限,以決定目標是否為固定目標。 stationary_objects_buffer_length_in_seconds 默認會設定為 3600。 |
stationary_objects_filter_ratio |
float | 如果目標在相同位置重複偵測到大於 (stationary_objects_dist_threshold_in_pixels stationary_objects_filter_ratio 0.2 表示 20%) stationary_objects_buffer_length_in_seconds 的時間間隔,則會將其視為靜止目標。 stationary_objects_filter_ratio 默認會設定為 0.2。 |
空間分析作業組態和輸出
personcount 的區域設定
以下是設定區域之 SPACEANALYTICS_CONFIG 參數的 JSON 輸入範例。 您可以為此作業設定多個區域。
{
"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",
"focus": "footprint"
}
}
]
}
]
}
名稱 | 類型 | 描述 |
---|---|---|
zones |
list | 區域清單。 |
name |
string | 這個區域的易記名稱。 |
polygon |
清單 | 每個值組都代表多邊形頂點的 x,y。 多邊形代表追蹤或計算人員的區域。 多邊形點以正規化座標 (0-1) 為基礎,左上角為 (0.0, 0.0), 右下角為 (1.0, 1.0)。 |
threshold |
float | 當人員大於區域內的像素數目時,就會輸出事件。 這是選擇性欄位,且值為比率 (0-1)。 例如,影像寬度 = 512 的視訊值 0.0253 會是 13 像素(0.0253 X 512 = ~13)。 |
type |
string | 針對 cognitiveservices.vision.spatialanalysis-personcount,這應該是 count 。 |
trigger |
string | 傳送事件的觸發程序類型。 當計數變更或interval 定期傳送事件時,支援的值是event 傳送事件,不論計數是否已變更。 |
output_frequency |
int | 事件輸出的速率。 當 = X 時 output_frequency ,每個 X 事件都會輸出,例如 output_frequency = 2 表示輸出其他每個事件。 output_frequency 適用於 event 與 interval 。 |
focus |
string | 用於計算事件之人員周框方塊內的點位置。 焦點的價值可以是 footprint (個人足跡)、 bottom_center (個人周框方塊的底部中心)、 center (個人周框方塊的中心)。 |
personcrossingline 的線條設定
以下是設定行之參數的 JSON 輸入 SPACEANALYTICS_CONFIG
範例。 您可以為此作業設定多個交叉線。
{
"lines": [
{
"name": "doorcamera",
"line": {
"start": {
"x": 0,
"y": 0.5
},
"end": {
"x": 1,
"y": 0.5
}
},
"events": [
{
"type": "linecrossing",
"config": {
"trigger": "event",
"focus": "footprint"
}
}
]
}
]
}
名稱 | 類型 | 描述 |
---|---|---|
lines |
list | 行清單。 |
name |
string | 這一行的易記名稱。 |
line |
清單 | 行的定義。 這是一條方向線,可讓您瞭解「進入」與「結束」。 |
start |
值組 | x,線條起點的 Y 座標。 float 值代表頂點相對於左上角的位置。 若要計算絕對 x、y 值,您可以將這些值乘以框架大小。 |
end |
值組 | x,線條結束點的 y 座標。 float 值代表頂點相對於左上角的位置。 若要計算絕對 x、y 值,您可以將這些值乘以框架大小。 |
threshold |
float | 當人員大於區域內的像素數目時,就會輸出事件。 這是選擇性欄位,且值為比率 (0-1)。 例如,影像寬度 = 512 的視訊值 0.0253 會是 13 像素(0.0253 X 512 = ~13)。 |
type |
string | 針對 cognitiveservices.vision.spatialanalysis-personcrossingline,這應該是 linecrossing 。 |
trigger |
string | 傳送事件的觸發程序類型。 支援的值:「event」:當有人越過行時引發。 |
focus |
string | 用於計算事件之人員周框方塊內的點位置。 焦點的價值可以是 footprint (個人足跡)、 bottom_center (個人周框方塊的底部中心)、 center (個人周框方塊的中心)。 預設值為使用量。 |
personcrossingpolygon 的區域設定
這是設定區域之參數的 JSON 輸入 SPACEANALYTICS_CONFIG
範例。 您可以為此作業設定多個區域。
{
"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",
"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",
"focus": "footprint"
}
}]
}]
}
名稱 | 類型 | 描述 |
---|---|---|
zones |
list | 區域清單。 |
name |
string | 這個區域的易記名稱。 |
polygon |
清單 | 每個值組都代表多邊形頂點的 x,y。 多邊形代表追蹤或計算人員的區域。 float 值代表頂點相對於左上角的位置。 若要計算絕對 x、y 值,您可以將這些值乘以框架大小。 |
target_side |
int | 指定 所 polygon 定義的區域一側,以測量人員在該區域中面對該側的時間長度。 'dwellTimeForTargetSide' 會輸出預估時間。 每一端都是多邊形兩個頂點之間的編號邊緣,代表您的區域。 例如,多邊形前兩個頂點之間的邊緣代表第一端 『side』=1。 的值target_side 介於 其中 N 是的polygon 兩側數目。[0,N-1] 這是非必填欄位。 |
threshold |
float | 當人員大於區域內的像素數目時,就會輸出事件。 這是選擇性欄位,且值為比率 (0-1)。 例如,影像寬度 = 512 (0.074 X 512 = ~38) 的視訊值 0.074 會是 38 像素。 |
type |
string | 針對 cognitiveservices.vision.spatialanalysis-personcrossingpolygon ,這應該是 zonecrossing 或 zonedwelltime 。 |
trigger |
string | 傳送事件的觸發程序類型 支援的值:「event」:當有人進入或離開區域時引發。 |
focus |
string | 用於計算事件之人員周框方塊內的點位置。 焦點的價值可以是 footprint (個人足跡)、 bottom_center (個人周框方塊的底部中心)、 center (個人周框方塊的中心)。 預設值為使用量。 |
人員的區域設定
這是參數的 SPACEANALYTICS_CONFIG
JSON 輸入範例,可設定 cognitiveservices.vision.spatialanalysis-persondistance 的區域。 您可以為此作業設定多個區域。
{
"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",
"focus": "footprint"
}
}]
}]
}
名稱 | 類型 | 描述 |
---|---|---|
zones |
list | 區域清單。 |
name |
string | 這個區域的易記名稱。 |
polygon |
清單 | 每個值組都代表多邊形頂點的 x,y。 多邊形代表計算人員的區域,以及測量人員之間的距離。 float 值代表頂點相對於左上角的位置。 若要計算絕對 x、y 值,您可以將這些值乘以框架大小。 |
threshold |
float | 當人員大於區域內的像素數目時,就會輸出事件。 這是選擇性欄位,且值為比率 (0-1)。 例如,影像寬度 = 512 的視訊值 0.0253 會是 13 像素(0.0253 X 512 = ~13)。 |
type |
string | 針對 cognitiveservices.vision.spatialanalysis-persondistance,這應該是 persondistance 。 |
trigger |
string | 傳送事件的觸發程序類型。 當計數變更或interval 定期傳送事件時,支援的值是event 傳送事件,不論計數是否已變更。 |
output_frequency |
int | 事件輸出的速率。 當 = X 時 output_frequency ,每個 X 事件都會輸出,例如 output_frequency = 2 表示輸出其他每個事件。 output_frequency 適用於 event 與 interval 。 |
minimum_distance_threshold |
float | 以腳為單位的距離,當人們相距小於該距離時,就會觸發 「TooClose」 事件。 |
maximum_distance_threshold |
float | 當人們大於該距離時,以腳為單位的距離,將觸發 「TooFar」 事件。 |
aggregation_method |
string | 匯總 persondistance 結果的方法。 aggregation_method同時適用於 mode 和 average 。 |
focus |
string | 用於計算事件之人員周框方塊內的點位置。 焦點的價值可以是 footprint (個人足跡)、 bottom_center (個人周框方塊的底部中心)、 center (個人周框方塊的中心)。 |
空間分析的設定
以下是參數的 SPACEANALYTICS_CONFIG
JSON 輸入範例,該參數會設定 cognitiveservices.vision.spatialanalysis 的行和區域。 您可以為此作業設定多行/區域,而且每個行/區域可以有不同的事件。
{
"lines": [
{
"name": "doorcamera",
"line": {
"start": {
"x": 0,
"y": 0.5
},
"end": {
"x": 1,
"y": 0.5
}
},
"events": [
{
"type": "linecrossing",
"config": {
"trigger": "event",
"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,
"focus": "footprint"
}
},
{
"type": "count",
"config": {
"trigger": "event",
"output_frequency": 1,
"focus": "footprint"
}
},
{
"type": "zonecrossing",
"config": {
"focus": "footprint"
}
},
{
"type": "zonedwelltime",
"config": {
"focus": "footprint"
}
}
]
}
]
}
相機 組態
請參閱相機放置指導方針,以深入瞭解如何設定區域和線條。
空間分析作業輸出
每個作業的事件都會以 JSON 格式輸出至 Azure IoT 中樞。
personcount AI 見解 的 JSON 格式
此作業的事件輸出範例 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,
"metadata": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "0.0",
"groundOrientationAngle": "1.3",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
},
"attributes": [
{
"label": "face_mask",
"confidence": 0.99,
"task": ""
}
]
},
{
"type": "person",
"id": "60add228e5274158897c135905b5a019",
"region": {
"type": "RECTANGLE",
"points": [
{
"x": 0.22326200886776573,
"y": 0.17830915618361087
},
{
"x": 0.34922296122500773,
"y": 0.6297955429344847
}
]
},
"confidence": 0.9389744400978088,
"metadata": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "18.635927200317383",
"groundOrientationAngle": "1.3",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
},
"attributes": [
{
"label": "face_mask",
"confidence": 0.99,
"task": ""
}
]
}
],
"schemaVersion": "2.0"
}
事件功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 事件識別碼 |
type |
string | 事件類型 |
detectionsId |
陣列 | 觸發此事件之人員偵測的唯一標識符大小 1 陣列 |
properties |
collection | 值的集合 |
trackinId |
string | 偵測到人員的唯一標識碼 |
zone |
string | 多邊形的 「name」 字段,代表已交叉的區域 |
trigger |
string | 觸發程式類型是 'event' 或 'interval',視 SPACEANALYTICS_CONFIG 中的 值 trigger 而定 |
偵測功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 偵測標識碼 |
type |
string | 偵測類型 |
region |
collection | 值的集合 |
type |
string | 區域類型 |
points |
collection | 區域類型為 RECTANGLE 時的左上方和右下角點 |
confidence |
float | 演算法信賴度 |
attributes |
陣列 | 屬性的陣列。 每個屬性都包含標籤、工作和信賴度 |
label |
string | 屬性值(例如, {label: face_mask} 表示偵測到的人戴著面罩) |
confidence (attribute) |
float | 範圍為 0 到 1 的屬性信賴值(例如, {confidence: 0.9, label: face_nomask} 表示偵測到的人 未 戴面具) |
task |
string | 屬性分類工作/類別 |
SourceInfo 功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 相機識別碼 |
timestamp |
date | 發出 JSON 承載的 UTC 日期 |
width |
int | 視訊畫面寬度 |
height |
int | 視訊畫面高度 |
frameId |
int | 框架標識碼 |
cameraCallibrationInfo |
collection | 值的集合 |
status |
string | 格式的校正 state[;progress description] 狀態。 狀態可以是 Calibrating 、 Recalibrating (如果已啟用重新調整),或 Calibrated 。 進度描述部分只有在處於 Calibrating 和 Recalibrating 狀態時才有效,用來顯示目前校正程序的進度。 |
cameraHeight |
float | 相機的高度在地面上以腳為單位。 這是從自動自定義推斷。 |
focalLength |
float | 相機的焦點長度,以像素為單位。 這是從自動自定義推斷。 |
tiltUpAngle |
float | 相機從垂直傾斜角度。 這是從自動自定義推斷。 |
personcrossingline AI 見解 的 JSON 格式
此作業偵測輸出的範例 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": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "18.635927200317383",
"groundOrientationAngle": "1.3",
"trackingId": "90d55bfc64c54bfd98226697ad8445ca",
"speed": "1.2",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
},
"attributes": [
{
"label": "face_mask",
"confidence": 0.99,
"task": ""
}
]
}
],
"schemaVersion": "2.0"
}
事件功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 事件識別碼 |
type |
string | 事件類型 |
detectionsId |
陣列 | 觸發此事件之人員偵測的唯一標識符大小 1 陣列 |
properties |
collection | 值的集合 |
trackinId |
string | 偵測到人員的唯一標識碼 |
status |
string | 線條交叉的方向,可以是 'CrossLeft' 或 'CrossRight'。 方向是根據想像站在線“終點”的“開始”。 CrossRight 是從左到右交叉。 CrossLeft 是從右到左交叉。 |
orientationDirection |
string | 交叉線之後所偵測到人員的方向方向。 值可以是 'Left'、'Right 或 'Straight'。 如果 enable_orientation 設定為 True in,則此值為輸出 CAMERACALIBRATOR_NODE_CONFIG |
zone |
string | 已交叉行的 「name」 欄位 |
偵測功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 偵測標識碼 |
type |
string | 偵測類型 |
region |
collection | 值的集合 |
type |
string | 區域類型 |
points |
collection | 區域類型為 RECTANGLE 時的左上方和右下角點 |
groundOrientationAngle |
float | 推斷地面平面上人員方向的順時針弧度角度 |
mappedImageOrientation |
float | 在 2D 影像空間上投影人員方向的順時針弧度角度 |
speed |
float | 偵測到人員的估計速度。 單位為 foot per second (ft/s) |
confidence |
float | 演算法信賴度 |
attributes |
陣列 | 屬性的陣列。 每個屬性都包含標籤、工作和信賴度 |
label |
string | 屬性值(例如, {label: face_mask} 表示偵測到的人戴著面罩) |
confidence (attribute) |
float | 範圍為 0 到 1 的屬性信賴值(例如, {confidence: 0.9, label: face_nomask} 表示偵測到的人 未 戴面具) |
task |
string | 屬性分類工作/類別 |
SourceInfo 功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 相機識別碼 |
timestamp |
date | 發出 JSON 承載的 UTC 日期 |
width |
int | 視訊畫面寬度 |
height |
int | 視訊畫面高度 |
frameId |
int | 框架標識碼 |
重要
AI 模型會偵測人員,而不論該人員是否面對或遠離相機。 AI 模型不會執行臉部辨識,也不會發出任何生物特徵辨識資訊。
personcrossingpolygon AI 見解 的 JSON 格式
此作業的偵測輸出範例 JSON,其 zonecrossing
類型為 SPACEANALYTICS_CONFIG。
{
"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": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "18.635927200317383",
"groundOrientationAngle": "1.3",
"trackingId": "afcc2e2a32a6480288e24381f9c5d00e",
"speed": "1.2",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
},
"attributes": [
{
"label": "face_mask",
"confidence": 0.99,
"task": ""
}
]
}
],
"schemaVersion": "2.0"
}
此作業的偵測輸出範例 JSON,其 zonedwelltime
類型為 SPACEANALYTICS_CONFIG。
{
"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,
"metadata": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "18.635927200317383",
"groundOrientationAngle": "1.2",
"mappedImageOrientation": "0.3",
"speed": "1.2",
"trackingId": "afcc2e2a32a6480288e24381f9c5d00e",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
}
}
],
"schemaVersion": "2.0"
}
事件功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 事件識別碼 |
type |
string | 事件類型。 此值可以是 personZoneDwellTimeEvent 或 personZoneEnterExitEvent |
detectionsId |
陣列 | 觸發此事件之人員偵測的唯一標識符大小 1 陣列 |
properties |
collection | 值的集合 |
trackinId |
string | 偵測到人員的唯一標識碼 |
status |
string | 多邊形交叉的方向,可以是 'Enter' 或 'Exit' |
side |
int | 人員越過之多邊形的側邊數目。 每一端都是多邊形兩個頂點之間的編號邊緣,代表您的區域。 多邊形前兩個頂點之間的邊緣代表第一端。 當事件因遮蔽而未與特定端產生關聯時,『Side』 是空的。 例如,當人員消失但未看到穿過區域一側時,或當人員出現在區域內但未看到越過一側時,就會發生出口。 |
dwellTime |
float | 毫秒數,表示人員在區域中花費的時間。 當事件類型為personZoneDwellTimeEvent時,會提供此字段 |
dwellFrames |
int | 人員在區域中花費的框架數。 當事件類型為personZoneDwellTimeEvent時,會提供此字段 |
dwellTimeForTargetSide |
float | 毫秒數,表示人員在區域中所花費的時間,而且會面對 target_side 。 當 enable_orientation 位於 True 且 CAMERACALIBRATOR_NODE_CONFIG 的值 target_side 設定為 時,會提供此欄位 SPACEANALYTICS_CONFIG |
avgSpeed |
float | 區域中人員的平均速度。 單位為 foot per second (ft/s) |
minSpeed |
float | 區域中人員的最低速度。 單位為 foot per second (ft/s) |
zone |
string | 多邊形的 「name」 字段,代表已交叉的區域 |
偵測功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 偵測標識碼 |
type |
string | 偵測類型 |
region |
collection | 值的集合 |
type |
string | 區域類型 |
points |
collection | 區域類型為 RECTANGLE 時的左上方和右下角點 |
groundOrientationAngle |
float | 推斷地面平面上人員方向的順時針弧度角度 |
mappedImageOrientation |
float | 在 2D 影像空間上投影人員方向的順時針弧度角度 |
speed |
float | 偵測到人員的估計速度。 單位為 foot per second (ft/s) |
confidence |
float | 演算法信賴度 |
attributes |
陣列 | 屬性的陣列。 每個屬性都包含標籤、工作和信賴度 |
label |
string | 屬性值(例如, {label: face_mask} 表示偵測到的人戴著面罩) |
confidence (attribute) |
float | 範圍為 0 到 1 的屬性信賴值(例如, {confidence: 0.9, label: face_nomask} 表示偵測到的人 未 戴面具) |
task |
string | 屬性分類工作/類別 |
個人化 AI 見解 的 JSON 格式
此作業偵測輸出的範例 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,
"metadata": {
"centerGroundPointX": "-1.4638760089874268",
"centerGroundPointY": "18.29732322692871",
"groundOrientationAngle": "1.3",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
}
},
{
"type": "person",
"id": "7ad7f43fd1a64971ae1a30dbeeffc38a",
"region": {
"type": "RECTANGLE",
"points": [
{
"x": 0.5200299714740954,
"y": 0.2875368218672903
},
{
"x": 0.6457497446160567,
"y": 0.6183311060855263
}
]
},
"confidence": 0.8235412240028381,
"metadata": {
"centerGroundPointX": "2.6310102939605713",
"centerGroundPointY": "18.635927200317383",
"groundOrientationAngle": "1.3",
"footprintX": "0.7306610584259033",
"footprintY": "0.8814966493381893"
}
}
],
"schemaVersion": "2.0"
}
事件功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 事件識別碼 |
type |
string | 事件類型 |
detectionsId |
陣列 | 觸發此事件之人員偵測的唯一標識符大小 1 陣列 |
properties |
collection | 值的集合 |
personCount |
int | 發出事件時偵測到的人數 |
averageDistance |
float | 所有偵測到的人之間的平均距離 |
minimumDistanceThreshold |
float | 當人們相距小於該距離時,會觸發 「TooClose」 事件的距離。 |
maximumDistanceThreshold |
float | 當人們大於距離時,會觸發 「TooFar」 事件的英呎距離。 |
eventName |
string | 事件名稱是TooClose minimumDistanceThreshold 違反、TooFar 違反時maximumDistanceThreshold ,或unknown 自動自定義尚未完成時 |
distanceViolationPersonCount |
int | 偵測到違反 minimumDistanceThreshold 或的人員數目 maximumDistanceThreshold |
zone |
string | 多邊形的 「name」 字段,代表監視人員之間距離的區域 |
trigger |
string | 觸發程式類型是 'event' 或 'interval',視 SPACEANALYTICS_CONFIG 中的 值 trigger 而定 |
偵測功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 偵測標識碼 |
type |
string | 偵測類型 |
region |
collection | 值的集合 |
type |
string | 區域類型 |
points |
collection | 區域類型為 RECTANGLE 時的左上方和右下角點 |
confidence |
float | 演算法信賴度 |
centerGroundPointX/centerGroundPointY |
2 個浮點數 | x , y 值,其座標為人員推斷的位置在地面上以腳為單位。 x 和 y 是地板平面上的座標,假設地板是水準。 相機的位置是原點。 |
在 中 centerGroundPoint
, x
是相機與與相機圖像平面垂直的人距離的元件。 y
是與相機影像平面平行的距離元件。
在此範例中,centerGroundPoint
是 {centerGroundPointX: 4, centerGroundPointY: 5}
。 這意味著有一個人四英尺前的相機和五英尺右邊,看著房間的上下。
SourceInfo 功能變數名稱 | 類型 | 描述 |
---|---|---|
id |
string | 相機識別碼 |
timestamp |
date | 發出 JSON 承載的 UTC 日期 |
width |
int | 視訊畫面寬度 |
height |
int | 視訊畫面高度 |
frameId |
int | 框架標識碼 |
cameraCallibrationInfo |
collection | 值的集合 |
status |
string | 格式的校正 state[;progress description] 狀態。 狀態可以是 Calibrating 、 Recalibrating (如果已啟用重新調整),或 Calibrated 。 進度描述部分只有在處於 Calibrating 和 Recalibrating 狀態時才有效,用來顯示目前校正程序的進度。 |
cameraHeight |
float | 相機的高度在地面上以腳為單位。 這是從自動自定義推斷。 |
focalLength |
float | 相機的焦點長度,以像素為單位。 這是從自動自定義推斷。 |
tiltUpAngle |
float | 相機從垂直傾斜角度。 這是從自動自定義推斷。 |
空間分析 AI 見解 的 JSON 格式
此作業的輸出取決於設定 events
的 ,例如,如果 zonecrossing
為此作業設定事件,則輸出會與 cognitiveservices.vision.spatialanalysis-personcrossingpolygon
相同。
使用容器所產生的輸出
您可能想要將空間分析偵測或事件整合到您的應用程式中。 以下是一些要考慮的方法:
- 使用您所選程序設計語言的 Azure 事件中樞 SDK,連線到 Azure IoT 中樞 端點並接收事件。 如需詳細資訊,請參閱 從內建端點讀取裝置到雲端訊息。
- 在您的 Azure IoT 中樞 上設定訊息路由,以將事件傳送至其他端點,或將事件儲存至數據記憶體。 如需詳細資訊,請參閱 IoT 中樞 訊息路由。
- 設定 Azure 串流分析作業,以在事件送達並建立視覺效果時即時處理事件。
大規模部署空間分析作業 (多個相機)
若要取得 GPU 的最佳效能和使用率,您可以使用圖形實例,在多個相機上部署任何空間分析作業。 以下是在 15 個相機上執行 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>"
}
}
}
},
}
}
名稱 | 類型 | 描述 |
---|---|---|
batch_size |
int | 如果所有相機的解析度都相同,請將 設定 batch_size 為將用於該作業的相機數目,否則設定 batch_size 為1或保留為預設值 (1),表示不支援批次。 |
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應