Over the past 6 months, Collabora has developed an extensive Python framework to improve GStreamer support for various ML frameworks and models.
Supported functionality includes:
object detection
tracking
video captioning
translation
transcription
speech to text
text to speech
text to image
LLMs
serializing to cloud via Kafka server
Many of these new GStreamer features are not available anywhere else, neither in downstream open source forks or in commercial forks such as DeepStream.
The code started as an MR for the gst-python bindings subproject and has now moved here
As this project is tied to the version of gst analytics in upstream GStreamer, it may make sense to move it into the GStreamer fdo umbrella, either as a separate project or as part of the monorepo. Moving it will also make it easier for the community to contribute to development.
I am opening this topic to discuss a proposal to move the project to fdo. Looking forward to hearing your feedback.
I just catch-up on MR 7615 thread. If I can bring inputs to this discussion is I think bringing these classes under the GStreamer umbrella would be great in the caveat they don’t obstruct native development. I think an easy way to do this would be to prefix element name. I’m still thinking about pros and cons monorepo vs own project, but looking forward to read other’s opinion on this.
Spent a bit of time looking at it (will try running some in a bit). In general the code is quite clean and a good example of integrating such systems in gstreamer plugins.
I concur with @dmorin regarding namespace. Maybe prefix the elements with pyml for example ? And maybe gst-python-ml would be a better namespace than gst-python-analytics , since it’s more than just analytics
I see potential with GES by aiding techniques such as motion tracking or rotoscoping with CV algorithms, something that Kdenlive and Shotcut already do with OpenCV in MLT. By adding GESEffect elements based on a CV library of choice it could bring such tools to GES-based editors.
Another use could be AI-based frame interpolation, many people would be interested in that. On the side of analytics perhaps a histogram element based on Matplotlib can be of use.
makes sense - I have changed to prefix. Also, in case you tried the docker instance, there was a bug that prevented python element loading - now fixed.