Metropolis Microservices/RidgeRun Microservices Demo/Demo Description: Difference between revisions

From RidgeRun Developer Wiki
No edit summary
No edit summary
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>
<noinclude>
{{Metropolis Microservices/Head|previous=Getting_Started/Introduction|next=Application_services|metakeywords=Metropolis|title= Demo Description |metadescription=This page provides a general overview of the PTZ RidgeRun Service}}
{{Metropolis Microservices/Head
|previous=https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun Microservices Demo
|next=https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun Microservices Demo/Getting the code
|metakeywords=Metropolis
|title= Demo Description  
|metadescription=This page provides a general overview of the PTZ RidgeRun Service
}}
</noinclude>
</noinclude>


The '''SmartSeek360 ''' search for objects specified by the user in a 360-degree video stream, once the object is found the system follows it trough the video leveraging the PTZ functions, and triggers video recording at the same time.  
The '''SmartSeek360 ''' searches for objects specified by the user in a 360-degree video stream, once the object is found the system follows it through the video leveraging the PTZ functions, and also triggers a video recording.
 
In the following diagram; Blocks in green are Microservices designed by NVIDIA and blocks in blue are custom Microservices developed by RidgeRun.


This system is made up of the following Microservices:


NVIDIA Metropolis Microservices:
[[File:RidgeRun_Microservices_Demo_diagram-vertical.png|thumbnail|center|640px|center|'''RidgeRun SmartSeek360''' - Microservices Demo diagram]]
#'''Video Storage Toolkit (VST):''' VST NVIDIA microservice auto-discovers ONVIF-S compliant IP cameras, and allows use of custom IP stream as video source. It then allows for video to be stored, played back at various speeds, or paused at any frame


#'''Deepstream AI Microservice:''' Metropolis Microservices provide a DeepStream application for real-time processing of various camera streams presented by VST. The processing includes object detection, and object tracking. The output of the application is metadata based on metropolis schema sent to Redis message bus using msgbroker plugin.


#'''REDIS: ''' Redis is a message broker that contains all device metadata. VST depends on Redis streams to publish device status change events. DeepStream depends on Redis streams to publish metadata and receive VST camera status events.


#'''Analytics:''' This NVIDIA microservice is used to create metrics and to emit alerts based on the Analytics microservice configuration.
This system is made up of the following Microservices:


{{Review|Add links to the respective MS nvida website|mortigoza}}
'''[https://developer.nvidia.com/blog/bringing-generative-ai-to-the-edge-with-nvidia-metropolis-microservices-for-jetson/ NVIDIA Metropolis Microservices:''']
#[https://docs.nvidia.com/moj/vst/VST_Overview.html '''Video Storage Toolkit (VST):'''] VST NVIDIA microservice auto-discovers ONVIF-S compliant IP cameras, and allows the use of custom IP stream as video source. It then allows for video to be stored, played back at various speeds, or paused at any frame
#[https://docs.nvidia.com/moj/platform-services/redis.html '''REDIS: '''] Redis is a message broker that contains all device metadata. VST depends on Redis streams to publish device status change events. DeepStream depends on Redis streams to publish metadata and receive VST camera status events.
#[https://docs.nvidia.com/moj/platform-services/ingress.html '''INGRESS: '''] Ingress is the API Gateway to all Metropolis Microservices APIs. It acts as a reverse proxy, where incoming API requests pass through it, which it then forwards to the appropriate microservice based on path prefix.


RidgeRun Microservices:
#'''PTZ Microservice:''' This RidgeRun Microservice encapsulates the GstPTZR GStreamer element that can be used to provide Pan Tilt and Zoom operation in the incoming video stream, the PTZ microservice is designed to receive a 360 degree video and perform PTZ operation in equirectangular projected videos. The PTZ Microservice can receive 360-degree equirectangular RTSP video streams and outputs an RTSP stream with the performed PTZ operations over the equirectangular videos using RidgeRun libpanorama.
#'''Detection Microservice:''' This microservice accepts one or multiple text queries to search for and detect target objects described in text, for example, it is possible to use the AI-Agent to request the Detection microservice, for example, it is possible to indicate: search for bottles.
#'''AI Agent:''' This service uses an LLM model capable of converting text commands in API calls, this service allows direct communication to other services more naturally via text commands, for example it is possible to request: move the camera 30 degrees to the Right.
#'''Analytics:''' This service reads detection metadata provided by the REDIS NVIDIA microservice and moves the camera to the detected object position using PTZ and starts video recordings using the NVIDIA VST microservice.
#'''BIPS:''' This microservice can be used to handle direct memory buffer transfers, currently this is work in progress and it is not included in the Demo.


{{Review|Add links to the respective MS RR wikis|mortigoza}}
'''RidgeRun Microservices:'''
#[https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun_Services/PTZ '''PTZ Microservice:'''] The PTZ Microservice is designed to receive 360-degree equirectangular RTSP video streams and outputs an RTSP stream with the performed PTZ operations over the equirectangular videos using RidgeRun libpanorama.
#[https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun_Services/Detection '''Detection Microservice:'''] Detection Microservice detects in the input stream the target objects described in a text prompt.The microservice uses the NanoOwl generative AI model that allows open vocabulary detection. Meaning that the user can provide a list of objects that are not bound to any specific classes. For example, it is possible to indicate: search for dogs.
#[https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun_Services/AI_Agent '''AI Agent:'''] AI Agent Microservice allows a natural communication between the user and other microservices. This service uses the Hugging Face LLM  Trelis/Llama-2-7b-chat-hf-function-calling-v3 to convert text commands into API calls, process the LLM result, and call the corresponding API request. For example, it is possible to request: move the camera 30 degrees to the Right.
#[https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun_Services/Analytics '''Analytics:'''] This Microservice reads detection metadata provided by the REDIS NVIDIA microservice and moves the camera to the detected object position using PTZ and starts video recordings using the NVIDIA VST microservice.




<noinclude>
<noinclude>
{{Metropolis Microservices/Foot||}}
{{Metropolis Microservices/Foot
|previous=https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun Microservices Demo
|next=https://developer.ridgerun.com/wiki/index.php/Metropolis_Microservices/RidgeRun Microservices Demo/Getting the code
}}
</noinclude>
</noinclude>

Latest revision as of 19:44, 3 September 2024






The SmartSeek360 searches for objects specified by the user in a 360-degree video stream, once the object is found the system follows it through the video leveraging the PTZ functions, and also triggers a video recording.

In the following diagram; Blocks in green are Microservices designed by NVIDIA and blocks in blue are custom Microservices developed by RidgeRun.


RidgeRun SmartSeek360 - Microservices Demo diagram


This system is made up of the following Microservices:

NVIDIA Metropolis Microservices:

  1. Video Storage Toolkit (VST): VST NVIDIA microservice auto-discovers ONVIF-S compliant IP cameras, and allows the use of custom IP stream as video source. It then allows for video to be stored, played back at various speeds, or paused at any frame
  2. REDIS: Redis is a message broker that contains all device metadata. VST depends on Redis streams to publish device status change events. DeepStream depends on Redis streams to publish metadata and receive VST camera status events.
  3. INGRESS: Ingress is the API Gateway to all Metropolis Microservices APIs. It acts as a reverse proxy, where incoming API requests pass through it, which it then forwards to the appropriate microservice based on path prefix.


RidgeRun Microservices:

  1. PTZ Microservice: The PTZ Microservice is designed to receive 360-degree equirectangular RTSP video streams and outputs an RTSP stream with the performed PTZ operations over the equirectangular videos using RidgeRun libpanorama.
  2. Detection Microservice: Detection Microservice detects in the input stream the target objects described in a text prompt.The microservice uses the NanoOwl generative AI model that allows open vocabulary detection. Meaning that the user can provide a list of objects that are not bound to any specific classes. For example, it is possible to indicate: search for dogs.
  3. AI Agent: AI Agent Microservice allows a natural communication between the user and other microservices. This service uses the Hugging Face LLM Trelis/Llama-2-7b-chat-hf-function-calling-v3 to convert text commands into API calls, process the LLM result, and call the corresponding API request. For example, it is possible to request: move the camera 30 degrees to the Right.
  4. Analytics: This Microservice reads detection metadata provided by the REDIS NVIDIA microservice and moves the camera to the detected object position using PTZ and starts video recordings using the NVIDIA VST microservice.