Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running Multiple Hailo branches in a gstreamer pipeline #325

Open
mgreiner79 opened this issue Dec 1, 2024 · 0 comments
Open

Running Multiple Hailo branches in a gstreamer pipeline #325

mgreiner79 opened this issue Dec 1, 2024 · 0 comments

Comments

@mgreiner79
Copy link

I am running Hailo models on a raspberry pi. I have a web server running to stream the video to the browser. I want the user to be able to switch models by pressing a button. I have set up a gstreamer pipeline so that there are several branches (bins). the idea would be that each model would be a different branch. Requests from the client would trigger the input selector to swtich the branch.
The pipeline looks something like this

graph TD
    A[libcamerasrc] --> B[capsfilter: video/x-raw, format=RGB]
    B --> C[queue]
    C --> D[tee]

    %% Branch 1: Raw Stream
    D -->|src_0| E[RawStreamBranch: bin_raw_stream]
    E --> F[input-selector sink_0]

    %% Branch 2: Pose Estimation
    D -->|src_1| G[PoseEstimationBranch: bin_pose_estimation]
    G --> H[input-selector sink_1]

    %% Branch 3: Object Detection
    D -->|src_2| I[ObjectDetectionBranch: bin_object_detection]
    I --> J[input-selector sink_2]

    %% Output to appsink
    F --> K[appsink: emit-signals=True, drop=True, sync=False]
Loading

I had it working with the raw video branch and one hailo branch. Now I just discuvered when adding the second hailo branch, that I cannot hailo twice in the pipeline.
For instance, i get an eeror like this
"""[HailoRT] [error] CHECK failed - Failed to create vdevice. there are not enough free devices. requested: 1, found: 0
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OUT_OF_PHYSICAL_DEVICES(74)"""

Is there any work-around anyone can think of? If not, I will just have to try removing the active branch and replacing it dynamically during runtime. Do you see any issue with this approach?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant