I want to call an external service to add custom metadata based on data that I can get from boundingbox, should I add this extra call and metadata on de recording device or can I handle this call from xprotect?

We manage all incoming and outgoing driver traffic in-house. we know what trucks go in and out. We would like to know which trailer is on it. object recognition will be able to determine the BoundingBox and pass it on in the metadata.

we have a service running that, the given the correct data, can determine the position of the trailer in the world. Afterwords we can ask a geofence for all available trailers. and get the id for this trailer.

I would like to add this id to the metadata so that I can show it in XProtect and search for it in the metadata.

Now my question:

Should I run this external service on each camera device which might make the devices much slower since it will trigger some http requests.

Or can I trigger this external service call from xprotect and update the metadata as needed?

When you send the bounding box metadata you can include the extra information.

See how the Bounding Box Metadata Provider sample includes some text and more. https://doc.developer.milestonesys.com/html/index.html?base=samples/componentsamples/boundingboxmetadataprovider/readme.html&tree=tree_search.html?search=boundingbox

If you do not send the bounding box metadata and it originates from somewhere else then it is different. You cannot alter a metadata already recorded.

This is due to security, it is important in the VMS use that you cannot alter an image after it has been recorded, the metadata is stored the same way and cannot be altered either.

So your solution will in this case need to store some extra information and find a way to associate it with the original bounding box metadata.

I am in doubt how this might fit with what you have envisioned and if it answers your question. If asking clarifying questions could you please tell me if you produce the original metadata or where it stems from.

Hi Bo,

Thanks for your reply and the information.

At the moment it would be a S&ST camera running a TensorFlow model.

So the camera would publish the boundingboxes based on what was returned for each frame. Using the default DataTrolley the metadata will be converted to an ONVIF XML.

I’m not certain what the effect would be if I add a delay inside the camera logic.

Would it be possible to trigger the external call from a custom MIPDriver?

As you cannot change the metadata I see two options:

You could send a new metadata that includes more information.

You could send an analytics event that include the information.

https://download.milestonesys.com/MIPSDK/Samples/MetadataVsAnalyticsEvent.pdf

I have a nagging feeling I might not understand the scenario and as a concequemce my answer might not fit, does it not fit please try to outline what you want to have happening. Please try to elaborate on the use case, and include what triggers what action..