diff --git a/RELEASE.md b/RELEASE.md index 378860c..24d2134 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,11 +1,19 @@ # Release Notes +## v1.5.7 + +- Update MCP to 1.4.2: fixes database locked error +- deployment-examples: change data path +- sh-services script improvements + ## v1.5.6 + - Update SIO to r240318 - Update .env editing for better understanding (add banners and more) - Remove SIO images when disk is full ## v1.5.5 + - Initial version of on-demand analytics sample - Sighthound REST API Gateway - Docker Compose Updates - Fix MCPEvents logic @@ -13,12 +21,14 @@ - sh-services: bug fix: ensure folders are created before interacting with them ## v1.5.4 + - Add more sio examples and rename them - Fix MCPEvents example - Update SIO to r231204 that fixes hanging issue - sh-services: add rabbitmq check fn ## v1.5.3 + - Add Aqueduct API and UI examples - Refine Aqueduct runner example - Add fakeRTSP example configuration diff --git a/VERSION b/VERSION index 54a3d96..22708fe 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.5.6 +v1.5.7 diff --git a/deployment-examples/SIOOnDemandAnalytics/docker-compose.yml b/deployment-examples/SIOOnDemandAnalytics/docker-compose.yml index 600fe51..3eab791 100644 --- a/deployment-examples/SIOOnDemandAnalytics/docker-compose.yml +++ b/deployment-examples/SIOOnDemandAnalytics/docker-compose.yml @@ -10,6 +10,10 @@ services: restart: unless-stopped ports: - "8554:554" + volumes: + # A local folder we can drop videos into and have those references via RTSP URI + # Keep in mind, the videos need to be H264 MKV to be properly served by the server + - ${DEMO_VIDEO-./videos}:/mnt/data # The actual analytics container analytics: diff --git a/deployment-examples/StandaloneSIOWithExtension/docker-compose-rtsp.yml b/deployment-examples/StandaloneSIOWithExtension/docker-compose-rtsp.yml index 8275234..c097120 100644 --- a/deployment-examples/StandaloneSIOWithExtension/docker-compose-rtsp.yml +++ b/deployment-examples/StandaloneSIOWithExtension/docker-compose-rtsp.yml @@ -10,6 +10,10 @@ services: restart: unless-stopped ports: - "8554:554" + volumes: + # A local folder we can drop videos into and have those references via RTSP URI + # Keep in mind, the videos need to be H264 MKV to be properly served by the server + - ${DEMO_VIDEO-./videos}:/mnt/data analytics: diff --git a/deployment-examples/VideoStreamsConsumer/docker-compose.yml b/deployment-examples/VideoStreamsConsumer/docker-compose.yml index 38c0c93..84f4e21 100644 --- a/deployment-examples/VideoStreamsConsumer/docker-compose.yml +++ b/deployment-examples/VideoStreamsConsumer/docker-compose.yml @@ -10,6 +10,10 @@ services: restart: unless-stopped ports: - "8554:554" + volumes: + # A local folder we can drop videos into and have those references via RTSP URI + # Keep in mind, the videos need to be H264 MKV to be properly served by the server + - ${DEMO_VIDEO-./videos}:/mnt/data # AMQP broker to receive analytics data rabbitmq_svc: diff --git a/deployment-examples/VideoStreamsRecorder/docker-compose.yml b/deployment-examples/VideoStreamsRecorder/docker-compose.yml index bd97241..257ec1f 100644 --- a/deployment-examples/VideoStreamsRecorder/docker-compose.yml +++ b/deployment-examples/VideoStreamsRecorder/docker-compose.yml @@ -10,6 +10,10 @@ services: restart: unless-stopped ports: - "8554:554" + volumes: + # A local folder we can drop videos into and have those references via RTSP URI + # Keep in mind, the videos need to be H264 MKV to be properly served by the server + - ${DEMO_VIDEO-./videos}:/mnt/data # AMQP broker to receive analytics data rabbitmq_svc: diff --git a/docs/schemas/anypipe/anypipe.html b/docs/schemas/anypipe/anypipe.html index 046dcde..a39cb70 100644 --- a/docs/schemas/anypipe/anypipe.html +++ b/docs/schemas/anypipe/anypipe.html @@ -1 +1 @@ -
Analytics data sent by the Sighthound video/image analysis pipeline. This data is sent based on configuration when the number of detected objects or attributes of detected objects changes, the confidence of detected objects or their attributes improves, or a configurable timeout occurs.
No Additional PropertiesTimestamp the frame corresponding to this analytics data was processed at, in milliseconds since the epoch and GMT timezone.
Value must be greater or equal to 0
A global unique ID representing the media source, for
instance a specific video stream from a camera sensor or RTSP feed, , or input source location for images or videos
An ID corresponding to this frame, which may be used to
access the image corresponding to all box coordinates and object
detections represented in this object, via the Media Service API.
The dimensions (width and height) of the frame represented by frameId. Also used as the coordinate base for all bounding box coordinates.
Width in pixels
Value must be greater or equal to 0
Height in pixels
Value must be greater or equal to 0
Timestamp of the frame corresponding to this analytics data, acccording to the source, in milliseconds since the epoch and GMT timezone.
Value must be greater or equal to 0
Meta classes include objects such as vehicles, license plates, and people. These are high-level classifications.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
An plural MetaClass name. Supported MetaClasses
include:
vehicles - Objects including cars, buses, trucks, motorbikes.
Vehicles include objects which may potentially include license
plates, may include links to licensePlates.
licensePlates - Objects which are detected/classified as license plates.
people - Pedestrians or people riding skateboards, electric
scooter, wheelchairs,etc.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A Unique ID representing this object, used to map
additional object properties. This ID is guaranteed unique
for each object, regardless of streamId. It will change the object drops out of
detection/tracking
The analyticsTimestamp with highest confidence score for this object.
Value must be greater or equal to 0
Object specific class returned by the model. For objects of the vehicles metaclass this may include car, truck, bus, motorbike, etc based on model capabilities
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A map of attributes for this object. Not all atributes are supported for all object types. Example attributes include:
color - The color of an object
lpString - A string representing license plate text
and numbers
lpRegion - A string representing license plate region
vehicleType - Make model and generation of the vehicle in a single string
Confidence score for attribute detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.
Value must be greater or equal to 0
and lesser or equal to 1
Confidence score for object detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.When included in an attribute, this score represents the
object Detection score for the parent object corresponding to the
timestamp when the attribute value was determined.
Value must be greater or equal to 0
and lesser or equal to 1
Flag to indicate if the attribute is updated. True means updated, False means not updated.
A value of the attribute. The value is specific to the attribute type.
Information about the detected vehicle, including its make, model, and generation.
The manufacturer of the detected vehicle, e.g., 'Toyota'.
The specific model of the detected vehicle, e.g., 'Camry'.
The generation or variant of the detected vehicle, e.g., '2020'.
The category to which the detected vehicle belongs, e.g., 'Sedan'.
Additional Properties of any type are allowed.
Type: objectDebug information, subject to change
between releases. Do not use this object in an
application.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
Links between Meta Class instances, for
example, between vehicles and license plates.
The name of the Meta Class pointed to
by this link.
The ID of the Meta Class, which can be
used to reference the specific object in the
metaClasses map.
An object hash which uniquely identifies this object and associated attributes. Will change when attributes change. Reserved for future use
The bounding box containing this object, in
pixel coordinates where the top left corner of the
image is represented by pixel 0,0, corresponding to the image referenced by imageRef
Height of the bounding box in pixels
Value must be greater or equal to 0
Width of the bounding box in pixels
Value must be greater or equal to 0
X coordinate of the top left corner
of the bounding box.
Value must be greater or equal to 0
Y coordinate of the top left corner of
the bounding box
Value must be greater or equal to 0
Confidence score for object detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.When included in an attribute, this score represents the
object Detection score for the parent object corresponding to the
timestamp when the attribute value was determined.
Flag to indicate if the attribute is updated. True means updated, False means not updated.
Same definition as updatedThe analyticsTimestamp with highest confidence score for this object.
Value must be greater or equal to 0
A map of maps describing an event type.
- The top level map key is a name describing the event type. Supported types are presenceSensor, lineCrossingEvent, speedEvent.
- The sub level map key is a Unique ID representing the event, used to map
additional object properties. This ID is guaranteed unique
for each event for a given stream ID.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A name describing an event type.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A Unique ID representing this event
No Additional ItemsDescribes an event where one or more objects are present in a region of interest.
The event starts when the first object enters a region of interest. Updates are sent for each change in status, with updateCount incremented for each update. When the last object exits and the region is empty, the sensor event will become immutable and will track the total amount of time at least one object was present in the region of interest. An entry of an object will start a new event and reset the updateCount to 1. Region definitons, object filtering and other items related to sensor definitions are tracked as a part of the sensorId associated with the event.
The globally unique event ID corresponding to this event.
The total number of objects of a specific type detected within a region of interest, excluding those filtered out based on sensor configuration.
Value must be greater or equal to 0
The total number of detected objects in a region grouped by metaclasses.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
The total number of objects detected within a region of interest grouped by metaclass. Metaclasses represent higher-level categories that objects may belong to, such as 'vehicle' or 'people,' while classes represent more specific types, such as 'car' or 'person'.
Value must be greater or equal to 0
The total number of detected objects in a region grouped by classes.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
The total number of objects detected within a region of interest grouped by class. For example, if the sensor is configured to detect vehicles, this property may include counts of 'car,' 'bus,' and 'truck'.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event started, or when a link was established.
Value must be greater or equal to 0
The cumulative number of updates sent for this sensor, starting with 1 for the initial update and incremented once for each update sent for each unique sensor event ID. An update refers to a change in the state of the sensor due to a corresponding sensor event (entry, exit, crossing, ...). For sensors which include multiple updates per sensor event (presense sensors), the updateCount will be reset to 1 to indicate the first update for a given event. For sensors (count) which only include 1 update per event, updateCount will be cumulative and count the total number of events per sensor.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event ended.
Value must be greater or equal to 0
Links between objects (see objectAnalytics schema) and events.
No Additional ItemsDescribes an event where one object crosses a line
No Additional PropertiesThe direction of an object's trajectory relative to the sensor's line, with the first point (A) as the pivot point. 'Clockwise' means the object is moving in a clockwise direction relative to the line, while 'counterclockwise' means the object is moving in a counterclockwise direction.
Number of clockwise crossings.
Value must be greater or equal to 0
Number of counterclockwise crossings.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event started, or when a link was established.
Same definition as startedAtLinks between objects (see objectAnalytics schema) and events.
Same definition as linksLink type: Ex: image,video
Path to media type
Start Timestamp
Value must be greater or equal to 0
End Timestamp
Value must be greater or equal to 0
File format. Ex: jpeg, mp4, ts...
Status of link object. Ex: Closed, recording, ...
Media Event type: Ex: image,video
Message content
Start of Event Timestamp
Value must be greater or equal to 0
End of Event Timestamp
Value must be greater or equal to 0
Message format. Ex: json, jpeg, mp4, ts...
Analytics data sent by the Sighthound video/image analysis pipeline. This data is sent based on configuration when the number of detected objects or attributes of detected objects changes, the confidence of detected objects or their attributes improves, or a configurable timeout occurs.
No Additional PropertiesTimestamp the frame corresponding to this analytics data was processed at, in milliseconds since the epoch and GMT timezone.
Value must be greater or equal to 0
A global unique ID representing the media source, for
instance a specific video stream from a camera sensor or RTSP feed, , or input source location for images or videos
An ID corresponding to this frame, which may be used to
access the image corresponding to all box coordinates and object
detections represented in this object, via the Media Service API.
The dimensions (width and height) of the frame represented by frameId. Also used as the coordinate base for all bounding box coordinates.
Width in pixels
Value must be greater or equal to 0
Height in pixels
Value must be greater or equal to 0
Timestamp of the frame corresponding to this analytics data, acccording to the source, in milliseconds since the epoch and GMT timezone.
Value must be greater or equal to 0
Meta classes include objects such as vehicles, license plates, and people. These are high-level classifications.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
An plural MetaClass name. Supported MetaClasses
include:
vehicles - Objects including cars, buses, trucks, motorbikes.
Vehicles include objects which may potentially include license
plates, may include links to licensePlates.
licensePlates - Objects which are detected/classified as license plates.
people - Pedestrians or people riding skateboards, electric
scooter, wheelchairs,etc.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A Unique ID representing this object, used to map
additional object properties. This ID is guaranteed unique
for each object, regardless of streamId. It will change the object drops out of
detection/tracking
The analyticsTimestamp with highest confidence score for this object.
Value must be greater or equal to 0
Object specific class returned by the model. For objects of the vehicles metaclass this may include car, truck, bus, motorbike, etc based on model capabilities
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A map of attributes for this object. Not all atributes are supported for all object types. Example attributes include:
color - The color of an object
lpString - A string representing license plate text
and numbers
lpRegion - A string representing license plate region
vehicleType - Make model and generation of the vehicle in a single string
Confidence score for attribute detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.
Value must be greater or equal to 0
and lesser or equal to 1
Confidence score for object detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.When included in an attribute, this score represents the
object Detection score for the parent object corresponding to the
timestamp when the attribute value was determined.
Value must be greater or equal to 0
and lesser or equal to 1
Flag to indicate if the attribute is updated. True means updated, False means not updated.
A value of the attribute. The value is specific to the attribute type.
Information about the detected vehicle, including its make, model, and generation.
The manufacturer of the detected vehicle, e.g., 'Toyota'.
The specific model of the detected vehicle, e.g., 'Camry'.
The generation or variant of the detected vehicle, e.g., '2020'.
The category to which the detected vehicle belongs, e.g., 'Sedan'.
Additional Properties of any type are allowed.
Type: objectDebug information, subject to change
between releases. Do not use this object in an
application.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
Links between Meta Class instances, for
example, between vehicles and license plates.
The name of the Meta Class pointed to
by this link.
The ID of the Meta Class, which can be
used to reference the specific object in the
metaClasses map.
An object hash which uniquely identifies this object and associated attributes. Will change when attributes change. Reserved for future use
The bounding box containing this object, in
pixel coordinates where the top left corner of the
image is represented by pixel 0,0, corresponding to the image referenced by imageRef
Height of the bounding box in pixels
Value must be greater or equal to 0
Width of the bounding box in pixels
Value must be greater or equal to 0
X coordinate of the top left corner
of the bounding box.
Value must be greater or equal to 0
Y coordinate of the top left corner of
the bounding box
Value must be greater or equal to 0
Confidence score for object detection, ranging from 0.0 to 1.0. A score of 1.0 indicates 100% confidence.When included in an attribute, this score represents the
object Detection score for the parent object corresponding to the
timestamp when the attribute value was determined.
Flag to indicate if the attribute is updated. True means updated, False means not updated.
Same definition as updatedThe analyticsTimestamp with highest confidence score for this object.
Value must be greater or equal to 0
A map of maps describing an event type.
- The top level map key is a name describing the event type. Supported types are presenceSensor, lineCrossingEvent, speedEvent.
- The sub level map key is a Unique ID representing the event, used to map
additional object properties. This ID is guaranteed unique
for each event for a given stream ID.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A name describing an event type.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
A Unique ID representing this event
No Additional ItemsDescribes an event where one or more objects are present in a region of interest.
The event starts when the first object enters a region of interest. Updates are sent for each change in status, with updateCount incremented for each update. When the last object exits and the region is empty, the sensor event will become immutable and will track the total amount of time at least one object was present in the region of interest. An entry of an object will start a new event and reset the updateCount to 1. Region definitons, object filtering and other items related to sensor definitions are tracked as a part of the sensorId associated with the event.
The globally unique event ID corresponding to this event.
The total number of objects of a specific type detected within a region of interest, excluding those filtered out based on sensor configuration.
Value must be greater or equal to 0
The total number of detected objects in a region grouped by metaclasses.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
The total number of objects detected within a region of interest grouped by metaclass. Metaclasses represent higher-level categories that objects may belong to, such as 'vehicle' or 'people,' while classes represent more specific types, such as 'car' or 'person'.
Value must be greater or equal to 0
The total number of detected objects in a region grouped by classes.
All properties whose name matches the following regular expression must respect the following conditions
Property name regular expression:^.*$
The total number of objects detected within a region of interest grouped by class. For example, if the sensor is configured to detect vehicles, this property may include counts of 'car,' 'bus,' and 'truck'.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event started, or when a link was established.
Value must be greater or equal to 0
The cumulative number of updates sent for this sensor, starting with 1 for the initial update and incremented once for each update sent for each unique sensor event ID. An update refers to a change in the state of the sensor due to a corresponding sensor event (entry, exit, crossing, ...). For sensors which include multiple updates per sensor event (presense sensors), the updateCount will be reset to 1 to indicate the first update for a given event. For sensors (count) which only include 1 update per event, updateCount will be cumulative and count the total number of events per sensor.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event ended.
Value must be greater or equal to 0
Links between objects (see objectAnalytics schema) and events.
No Additional ItemsDescribes an event where one object crosses a line
No Additional PropertiesThe direction of an object's trajectory relative to the sensor's line, with the first point (A) as the pivot point. 'Clockwise' means the object is moving in a clockwise direction relative to the line, while 'counterclockwise' means the object is moving in a counterclockwise direction.
Number of clockwise crossings.
Value must be greater or equal to 0
Number of counterclockwise crossings.
Value must be greater or equal to 0
The time in milliseconds since the epoch (GMT) when the event started, or when a link was established.
Same definition as startedAtLinks between objects (see objectAnalytics schema) and events.
Same definition as linksLink type: Ex: image,video
Path to media type
Start Timestamp
Value must be greater or equal to 0
End Timestamp
Value must be greater or equal to 0
File format. Ex: jpeg, mp4, ts...
Status of link object. Ex: Closed, recording, ...
Media Event type: Ex: image,video
Message content
Start of Event Timestamp
Value must be greater or equal to 0
End of Event Timestamp
Value must be greater or equal to 0
Message format. Ex: json, jpeg, mp4, ts...