Partial metadata updates.
AnsweredWe are exploring plugin metadata integration with our facial recognition platform.
When looking to VideoFrameProcessingDeviceAgent API, I see there is possibility to push or pull metadata packets into Nx.
It looks fine, but I have question about partial updates of metada. Our system performs tracking (bounding boxes), extraction (age,gender) and matching (name of people on watchlist) in asynchronous manner, meaning these information are propagated independently.
Questions:
1. Do we need to wait for all these asynchronous processes to complete and send one whole metadata packet for each frame or can we send packet about bounding boxes right away and update attributes of that objects later on based on trackId ?
2. Can u explain more how rendering and also saving of metadata objects works together ? It is directly related to IObjectMetadataPacket/IObjectTrackBestShotPacket ?
-
Hello Ivan,
Regarding 1.
You don't need to wait. You can send metadata asynchronously, just setting a proper timestamp. However there are several limitations.
- In order the metadata to be displayed in live stream the delay must not be more than 2 seconds.
- The Server writes metadata to separate track in the resulting .mkv file. The buffer size limit is 5 seconds. In order the metadata to be displayed during video playback the delay must not exceed this limit of 5 seconds.Regarding 2.
On accepting the metadata packet (i.e. a pointer to IMetadataPacket, of which IObjectMetadataPacket is a descendant), the Server puts it into the buffer with the limit of 5 seconds, then writes video to the archive. The metadata is written to the .mkv file to the separate track. This limit is introduced for reducing memory consumption.
At the same moment the Server writes some index data related to the timestamp to the metadata DB, for searching.
If the metadata packet is delayed for more than 5 seconds, it is being written to another .mkv chunk, content of which might not necessarily correlate to the metadata. The metadata track will still store valid timestamp, but will not be displayed during playback. In this case the metadata should be still searchable, thanks to indexes in the DB.0
Please sign in to leave a comment.
Comments
1 comment