Comment on page
APIs
Click the link below to access Postman Collection
Streams
is a video channel from an RTSP link or a video directory inside docker volume. Each stream has a unique id
used to assign analytics.Request
Respond
GET /streams HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"stream_number": 1,
"streams": [
{
"active": false,
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": -28820325.098328322,
"stream_longitude": -62037672.49939318,
"stream_name": "camera 1",
"stream_node_num": 0
},
{
"active": true,
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": 11794186.693521708,
"stream_longitude": 85811803.1103701,
"stream_name": "camera 1",
"stream_node_num": 0
}
]
}
Request
Response
GET /streams/{node_number} HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"stream_number": 1,
"streams": [
{
"active": true,
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": -28820325.098328322,
"stream_longitude": -62037672.49939318,
"stream_name": "camera 1",
"stream_node_num": 0
},
{
"active": false,
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": 11794186.693521708,
"stream_longitude": 85811803.1103701,
"stream_name": "camera 1",
"stream_node_num": 0
}
]
}
Request
Active Stream
Disabled Stream
GET /streams/{node_number}/{stream_id} HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": -6.261376228442297,
"stream_longitude": 106.82364878415257,
"stream_name": "camera 1",
"stream_node_num": 0,
"pipelines": [
"NFV4-FR",
"NFV4-FR"
],
"seats": [
{
"analytic_id": "NFV4-FR",
"serial_number": "NFV4-FR6K-XXXX-YYYY"
},
{
"analytic_id": "NFV4-FR",
"serial_number": "NFV4-FR6K-XXXX-YYYY"
}
],
"status": {
"pipelines": [
{
"active": true,
"analytic_id": "NFV4-VC",
"message": "Running",
"restart_num": 0,
"state": "RUNNING"
}
],
"services": []
},
"stream_stats": {
"fps": 30,
"frame_height": 720,
"frame_width": 1280,
"last_error_msg": "Stream is running..",
"state": "RUNNING"
}
}
{
"stream_address": "/workspaces/visionaire4/face_video.mp4",
"stream_custom_data": {},
"stream_id": "5136c6c0916cd30c",
"stream_latitude": -6.261376228442297,
"stream_longitude": 106.82364878415257,
"stream_name": "camera 1",
"stream_node_num": 0,
"pipelines": [
"NFV4-FR",
"NFV4-FR"
],
"seats": [
{
"analytic_id": "NFV4-FR",
"serial_number": "NFV4-FR6K-XXXX-YYYY"
},
{
"analytic_id": "NFV4-FR",
"serial_number": "NFV4-FR6K-XXXX-YYYY"
}
],
"status": {
"pipelines": [
{
"active": false,
"analytic_id": "NFV4-VC",
"message": "Pipeline is disabled",
"restart_num": 0,
"state": "DISABLED"
},
...
],
"services": []
},
"stream_stats": {
"fps": -1,
"frame_height": -1,
"frame_width": -1,
"last_error_msg": "Stream is disabled",
"state": "DISABLED"
}
}
Request
Response
POST /streams/{node_number} HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 101
​
{
"stream_address": "rtsp://10.7.2.50:554/VOD/command.mp4",
"stream_name": "command center",
"active": true
}
{
"code": 200,
"active": true,
"message": "stream successfully created",
"node_num": 0,
"stream_address": "rtsp://10.7.2.50:554/VOD/command.mp4",
"stream_id": "5136c6c0916cd30c",
"stream_name": "command center"
}
Request
Response
PUT /streams/{node_number}/{stream_id} HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 218
​
{
"stream_address": "rtsp://10.7.2.50:554/VOD/command.mp4",
"stream_name": "command center",
"stream_latitude": -6.261376228442297,
"stream_longitude": 106.82364878415257,
"stream_custom_data": {},
"active": true / false,
}
{
"code": 200,
"message": "stream successfully updated",
"node_num": 0,
"stream_address": "rtsp://10.7.2.50:554/VOD/command.mp4",
"stream_id": "5136c6c0916cd30c",
"stream_name": "command center"
}
Request
Response
DELETE /streams/{node_number}/{stream_id} HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"code": 200,
"message": "stream successfully deleted",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Pipeline is a process where we assign specific analytic(s) to a stream.
Analytic | Code |
---|---|
Face Recognition | NFV4-FR |
License Plate Recognition (Deprecated) | NFV4-LPR |
License Plate Recognition | NFV4-LPR2 |
License Plate Recognition Special Case (APH) | NFV4-LPRS |
People Counting | NFV4-PC |
Vehicle Counting | NFV4-VC |
Crowd Estimation | NFV4-CE |
Crowd Estimation Low Density | NFV4-CELD |
Vehicle Dwelling | NFV4-VD |
PPE Detection | NFV4-PPE |
Request
Response
POST /pipeline/{node_number}/{stream_id}/NFV4-FR HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 70
​
{
"areas": [
{
"name": "Blacklist Area 1",
"points": [
{
"x": 0.0,
"y": 0.5
},
{
"x": 1.0,
"y": 0.5
}
],
}
],
"dumping_interval": 0,
"dumping_confidence_threshold" : 0.0,
"fr_primary_threshold": 0.4,
"fr_secondary_threshold": 0.4,
"sampling_time_ms": 50,
"frontal_only": true,
"matching_iou_threshold": 0.7
"bbox_filter_active": true,
"bbox_filter_threshold": 3.0
}
Key | Description |
---|---|
dumping_interval | minimum time interval for dumping, increasing this value reduces dumping intensity. |
dumping_confidence_threshold | minimum threshold for dumping a certain identity, increasing the value will improve precision but reduce sensitivity. |
fr_primary_threshold | Primary face detection threshold. You can customize for your own need. |
fr_secondary_threshold | Secondary face detection threshold. You can customize for your own need. |
sampling_time_ms | time interval for passing detected faces in primary to secondary face detector, parameter for face sampling, decreasing this value will increase intensity in secondary model |
frontal_only | passing the frontal only face to secondary face detector and FR, turn off improve sensitivity on non-frontal cameras/views but may reduce accuracy during performing FR. |
matching_iou_threshold | minimum value of intersection between primary and secondary to be defined as true detection, reducing IOU may improve sensitivity. |
bbox_filter_active | flag for either activating or deactivating face filtering based on bbox, set to True activates the filter |
bbox_filter_threshold | minimum threshold for categorizing an object as outlier based on z-score, set to 3.0 means any bbox/object with z-score > 3.0 detected as outlier or excluding from detections. |
areas | Unique blacklist area per frame. You can draw more than one line. |
points | Blacklist line points. |
{
"analytic_id": "NFV4-FR",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Response
POST /pipeline/{node_number}/{stream_id}/NFV4-VC HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 219
​
{
"areas": [
{
"name": "Area 1",
"points": [
{
"x": 0.0,
"y": 0.5
},
{
"x": 1.0,
"y": 0.5
}
],
"bidirection": true,
"in": true
}
],
"object_confidence_threshold" : 0.7
}
Key | Type | Description |
---|---|---|
points | Array of object | Counting line points. |
areas | Array of object | Unique line per frame. You can draw more than one line. |
name | String | Name of the counter line |
bidirection | Binary | IF set to true THEN line will care about IN or OUT direction.IF set to false THEN line will count both direction as IN. |
in | Binary | If true THEN the L-rules apply. If false, THEN the L-rules must be inverted top to bottom. |
object_confidence_threshold | Float | New parameter for counting analytics family (VC/VC-HW/LPR/PC/PD/VAS) that control the dump information and visualisation based on object detection confidence |
{
"analytic_id": "NFV4-VC",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Response
POST http://127.0.0.1:4004/pipeline/0/04d66cbdb871ae10/NFV4-HC HTTP/1.1
Content-Type: application/json
​
{
"score_threshold": 0.5,
"areas": [
{
"name": "Area 1",
"points": [
{
"x": 0.0,
"y": 0.5
},
{
"x": 1.0,
"y": 0.5
}
],
"bidirection": true,
"in": true
}
],
"object_confidence_threshold" : 0.7
}
Key | Type | Description |
---|---|---|
areas | Array of object | Unique line per frame. You can draw more than one line. |
points | Array of object | Counting line points. |
bidirection | Boolean | IF set to true THEN line will care about IN or OUT direction. IF set to false THEN line will count both direction as IN. |
in | Boolean | If true THEN the L-rules apply. If false, THEN the L-rules must be inverted top to bottom. |
object_confidence_threshold | Float | Parameter for counting analytics family that control the dump information and visualisation based on object detection confidence |
{
"analytic_id": "NFV4-HC",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Response
POST /pipeline/{node_number}/{stream_id}/NFV4-CE HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 143
​
{
"areas": [
{
"name": "Area 1",
"points": [
{
"x": 0.05,
"y": 0.05
},
{
"x": 0.05,
"y": 0.95
},
{
"x": 0.48,
"y": 0.95
},
{
"x": 0.48,
"y": 0.05
}
]
}
],
"interval": 10
}
Key | Type | Description |
---|---|---|
areas | Array of object | Drawn area in frame to estimate crowd. |
name | String | Name of the area. |
points | Array of object | The coordinate of all points of the area. |
x & y | Float | The coordinate of each point of the area. |
interval | Integer | Dumping interval (second) |
{
"analytic_id": "NFV4-CE",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Response
Request
POST /pipeline/{node_number}/{stream_id}/NFV4-WLM HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 733
​
{
"areas": [
{
"value": 900,
"points": [
{
"x": 0.27075520833333333,
"y": 0.1832950367647059
},
{
"x": 0.5707552083333334,
"y": 0.1856479779411765
}
]
},
{
"value": 600,
"points": [
{
"x": 0.27075520833333333,
"y": 0.6832950367647059
},
{
"x": 0.5707552083333334,
"y": 0.6856479779411765
}
]
}
],
"interval": 10,
"level": 5,
"predict_interval": 5
}
Key | Type | Description |
---|---|---|
areas | Array of object | Drawn the area in a frame to estimate the level of water. |
value | Integer | The first value is the top level in real condition.The second value is the bottom level in real condition. Calculated in centimeters. |
points | Array of object | The points of the line. |
interval | Integer | Interval of data dumping |
level | Integer | Number of level to separate top value and bottom value equally. |
predict_interval | Integer | Inference Sampling time (default 5 seconds) |
{
"analytic_id": "NFV4-WLM",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Response
POST /pipeline/{node_number}/{stream_id}/NFV4-VD HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 70
{
"areas": [
{
"name": "Area 0",
"points": [
{"x": 0.0, "y": 0.0},
{"x": 1.0, "y": 0.0},
{"x": 1.0, "y": 1.0},
{"x": 0.0, "y": 1.0}
]
}
],
"score_threshold": 0.3
}
{
"analytic_id": "NFV4-VD",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "1909ed2165133534"
}
Request
Response
POST /pipeline/{node_number}/{stream_id}/NFV4-PPE HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
Content-Length: 70
​
{
"helmet_iou_threshold": 0.85,
"vest_iou_threshold" : 0.85,
"interval_ms" : 5,
"minimal_count" : 10,
"person_score_threshold": 0.6
}
Key | Type | Description |
---|---|---|
helmet_iou_threshold | float | IoU threshold for helmet detection |
vest_iou_threshold | float | IoU threshold for vest detection |
interval_ms | integer | interval for data dumping |
minimal_count | integer | minimum id detected before dump. Please tune this parameter to avoid False Positive |
person_score_threshold | float | Confidence threshold for person detection |
{
"analytic_id": "NFV4-PPE",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Second Tab
### Create pipeline GOC
POST http://127.0.0.1:4004/pipeline/0/b0ee056b6a444e70/NFV4-GOC HTTP/1.1
Content-Type: application/json
​
{
"score_threshold": 0.5,
"class_map": {
"truck": "truck",
"train": "truck"
}
"areas": [
{
"name": "Area 1",
"points": [
{
"x": 0.0,
"y": 0.5
},
{
"x": 1.0,
"y": 0.5
}
],
"bidirection": true,
"in": true
}
],
"object_confidence_threshold" : 0.3
}
Key | Type | Description |
---|---|---|
score_threshold | Float | IoU threshold |
class_map | Dictionary | Mapper for Listed Class |
object_confidence_threshold | Float | Confidence threshold for Object detection |
{
"analytic_id": "NFV4-GOC",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "5b0ee056b6a444e70"
}
Request
Response
POST http://127.0.0.1:4004/pipeline/0/d575b1759d4639b1/NFV4-LPR2 HTTP/1.1
Content-Type: application/json
{
"similarity_score_threshold": 0.7,
"no_input_period_threshold": 20,
"min_group_member": 2,
"max_group_member": 20,
"plate_cache_lifetime" : 5,
"plate_confidence_threshold" : 0.7,
"vehicle_confidence_threshold" : 0.7,
"roi_as_blacklist" : false,
"areas": [
{
"name": "kiri",
"points": [
{"x": 0.05, "y": 0.05},
{"x": 0.05, "y": 0.95},
{"x": 0.48, "y": 0.95},
{"x": 0.48, "y": 0.05}
]
}
]
}
Key | Type | Description |
---|---|---|
similarity_score_threshold | Float | IoU threshold |
no_input_period_threshold | Integer | Time to detect plate |
min_group_member | Integer | Candidates for correct plates (min) |
max_group_member | Integer | Candidates for correct plate (max) |
plate_cache_lifetime | Integer | Time required for plate to be detected |
plate_confidence_threshold | Float | Confidence threshold for plate detection |
vehicle_confidence_threshold | Float | Confidence threshold for Vehicle detection |
roi_as_blacklist | Boolean | If false the ROI become Whitelist |
areas | Dictionary | ROI area description |
bbox_offset | Float | Configurable image offset from bounding box to enlarge the image dumping (default 0.1) |
{
"analytic_id": "NFV4-LPR2",
"code": 200,
"message": "pipeline successfully created",
"node_num": 0,
"stream_id": "d575b1759d4639b1"
}
Request
Response
DELETE /pipeline/{node_number}/{stream_id}/NFV4-FR HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"analytic_id": "NFV4-FR",
"code": 200,
"message": "pipeline successfully deleted",
"node_num": 0,
"stream_id": "5136c6c0916cd30c"
}
Request
Response
GET /analytic_list HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"code": 200,
"message": "success",
"analytic_num": 2,
"deployment_key": "xxxx-xxxxx-xxxxx-xxxxx",
"version": {
"major": 4,
"minor": 11,
"patch": 1
},
"analytics": [
{
"id": "NFV4-FR",
"name": "Face Recognition",
"major_version": 1,
"minor_version": 2,
"publisher": "Nodeflux",
"description": "Realtime face detection and face recognition",
"type": "full_frame",
"seats": [
{
"active_status": true,
"serial_number": "NFV4-FR12-XXXX-XXXX"
},
{
"active_status": false,
"serial_number": "NFV4-FR12-YYYY-YYYY"
},
{
"active_status": true,
"serial_number": "NFV4-FR12-ZZZZ-ZZZZ"
}
]
},
{
"id": "NFV4-FR",
"name": "Face Recognition",
"major_version": 1,
"minor_version": 2,
"publisher": "Nodeflux",
"description": "Realtime face detection and face recognition",
"type": "full_frame",
"seats": [
{
"active_status": true,
"serial_number": "NFV4-FR12-XXXX-XXXX"
},
{
"active_status": false,
"serial_number": "NFV4-FR12-YYYY-YYYY"
},
{
"active_status": true,
"serial_number": "NFV4-FR12-ZZZZ-ZZZZ"
}
]
}
]
}
Request
Response
GET /resource_stats HTTP/1.1
Host: {ip}:{port}
Access-Control-Allow-Origin: *
{
"devices": [
{
"node_num": 0,
"data": {
"cpu_percent": 12.439340591430664,
"ram_percent": 27.455795288085938,
"swap_memory_percent": 0,
"gpus": [
{
"gpu_id": 0,
"gpu_memory_free": 2530672640,
"gpu_memory_total": 7981694976,
"gpu_memory_used": 5451022336,
"gpu_name": "Tesla P4",
"gpu_temperature": 84,
"gpu_utilization": 100,
"services": [
{
"service_name": "visionaire::face_extraction",
"service_number": 1
},
{
"service_name": "visionaire::face_object_detection<visionaire::primary_face_detection>",
"service_number": 2
},
{
"service_name": "visionaire::face_object_detection<visionaire::secondary_face_detection>",
"service_number": 1
},
{
"service_name": "visionaire::object_detection<visionaire::people_detection>",
"service_number": 2