共用方式為


空間分析作業

空間分析可讓您即時分析來自相機裝置的視訊串流。 針對您設定的每個攝影機裝置,空間分析作業會產生傳送至實例 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_ENVIV_ENV處理,則必須以環境變數的形式提供。 您可以在這裡找到產生金鑰和加密的範例公用程式。
VIDEO_SOURCE_ID 相機裝置或視訊串流的易記名稱。 這會使用事件 JSON 輸出傳回。
VIDEO_IS_LIVE 若為相機裝置,則為 True;如果錄製的影片為 false。
VIDEO_DECODE_GPU_INDEX 要譯碼視訊畫面的 GPU。 預設為 0。 應該與其他 gpu_index 節點組態中的 相同,例如 DETECTOR_NODE_CONFIGCAMERACALIBRATOR_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_CONFIGdo_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_calibrationcognitiveservices.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 格式下的欄位。

在影片畫面上可視化的區域放置信息輸出範例: Zone placement info visualization

區域放置資訊會提供設定的建議,但 相機 設定中的指導方針仍必須遵循以獲得最佳結果。

追蹤器節點參數設定

您可以透過追蹤器節點參數設定來設定速度計算。

{
"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_pixelsstationary_objects_filter_ratio0.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適用於 eventinterval
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 ,這應該是 zonecrossingzonedwelltime
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適用於 eventinterval
minimum_distance_threshold float 以腳為單位的距離,當人們相距小於該距離時,就會觸發 「TooClose」 事件。
maximum_distance_threshold float 當人們大於該距離時,以腳為單位的距離,將觸發 「TooFar」 事件。
aggregation_method string 匯總 persondistance 結果的方法。 aggregation_method同時適用於 modeaverage
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]狀態。 狀態可以是 CalibratingRecalibrating (如果已啟用重新調整),或 Calibrated。 進度描述部分只有在處於 CalibratingRecalibrating 狀態時才有效,用來顯示目前校正程序的進度。
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 事件類型。 此值可以是 personZoneDwellTimeEventpersonZoneEnterExitEvent
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 位於 TrueCAMERACALIBRATOR_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 事件名稱是TooCloseminimumDistanceThreshold違反、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 個浮點數 xy 值,其座標為人員推斷的位置在地面上以腳為單位。 xy 是地板平面上的座標,假設地板是水準。 相機的位置是原點。

在 中 centerGroundPointx 是相機與與相機圖像平面垂直的人距離的元件。 y 是與相機影像平面平行的距離元件。

Example center ground point

在此範例中,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]狀態。 狀態可以是 CalibratingRecalibrating (如果已啟用重新調整),或 Calibrated。 進度描述部分只有在處於 CalibratingRecalibrating 狀態時才有效,用來顯示目前校正程序的進度。
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),表示不支援批次。

下一步