Custom Object Detection and Custom Object Types Using Nx Metadata SDK
Dear Nx / Network Optix Team,
I am currently working with Nx Witness and would like to understand the capabilities and recommended approach for implementing custom object detection and analytics.
We are interested in detecting objects/classes that are not part of the standard Nx object detection categories. For example, we would like to detect custom objects such as:
- Fire
- Smoke
- Garbage/litter
- Oil spills
- PPE (helmet, safety vest, safety shoes)
- Weapons
- Other application-specific objects
We are currently working with custom YOLO-based models and are exploring integration with Nx through the Metadata SDK / Analytics Plugin framework.
Could you please clarify the following:
-
Custom Object Classes
Is it possible to add completely custom object classes (e.g.,fire,smoke,garbage,oil_spill, etc.) to Nx Witness? -
Metadata SDK / Analytics Plugin
What is the recommended way to send detections from a custom AI model into Nx so that these objects appear as searchable/detectable objects in the Nx interface? -
Custom Object Types / Events
Can we define our own object types and corresponding events, or do custom detections need to be represented using existing Nx object types? -
YOLO Model Integration
If we have a YOLO model trained with custom classes, can the model directly be integrated through the Analytics Plugin, and can each YOLO class be mapped to a corresponding custom object type in Nx? -
Search and Metadata
Once a custom object is detected, can users search for that specific custom class in Nx Witness, similar to standard object types? -
Multiple Custom Models
Is it possible to integrate multiple custom models (for example, one model for fire/smoke, another for PPE, and another for garbage) into the same Nx system? -
Recommended Architecture
If there is an official/recommended architecture or example implementation for deploying multiple custom AI models with Nx Witness, could you please share the relevant documentation, sample code, or SDK examples?
Our goal is to build a scalable custom analytics solution where we can add different AI models and expose their detections within Nx Witness.
Any guidance regarding the supported approach, limitations, and recommended implementation would be greatly appreciated.
Best regards,
shivi
-
Hi,
Thanks for reaching out. Short answer: yes, all of this is supported through the Metadata SDK. So the first step is to check the SDK and knowledgebase.
1/3. Custom classes:
Yes. Your plugin declares its own object types (e.g. `com.yourcompany.fire`) and event types in its manifest. You don't need to reuse the built-in Nx types.
2/4. Integration:
The plugin receives frames, runs your model (YOLO or anything else), and pushes ObjectMetadata packets with your type IDs. How you map YOLO classes to Nx types is up to you, usually 1:1 in the plugin code.
If you like to check the Nx AI Manger, which is a great developer tool that can have your own models work for you with the post-processor for customize data process and event trigger. Please do have a close look on Nx AI Manager. It may let you deploy your own ONNX/YOLO models directly.
5. Search:
All custom object types show up in the Objects tab filter and are searchable like the standard types, including any attributes you attach.
6. Multiple models:
In general yes. You may use separate/individual plugins and enable them per camera. However, the question and the use case matters. At the moment, we don't have much content from you post, so we will leave this as of now while we have clearer use cases.
7. References:
- Metadata SDK and docs: https://meta.nxvms.com/developers/plugins - Step-by-step object detection plugin tutorial: https://github.com/networkoptix/nx_open_integrations/tree/master/cpp/vms_server_plugins/opencv_object_detection_analytics_plugin
- The md files in the SDK source:
it provides clear and specific requriements during implementation, such as a manifest sample , attributes and taxonomy samples. It is recommended to study it.- The SDK package includes `sample_analytics_plugin` and `stub_analytics_plugin`, which cover custom object types, events and attributes.
The support approach to general developer questions:
- This forum is the place to ask questions. Please keep each thread focused on one question or issue, with a title that describes it.
- Nx does not troubleshoot external or third-party code. Debugging your plugin is suggested to be done in your own environment.
When you post an issue, please include:
- Mediaserver version (required)
- Server debug log (required)
- Plugin log (required)
- Manifest configuration (required)
- Detailed steps to reproduce the issue (required)
- Other environment details and configuration (strongly recommended)
- A screen recording of the issue (strongly recommended)
Our support covers the Nx application itself. If it isn’t clear whether an issue comes from Nx or from your side, please help to narrow it down first and share your investigation as well if necessary.
Thanks.
0
Please sign in to leave a comment.
Comments
1 comment