器件型号: AM62A7
工具/软件:
大家好:
我正在处理用于平铺对象检测的 gstreamer 流水线。 核心理念是将实时源帧分割成 2 个非重叠的图块、对每个图块执行推理、并将结果合并成具有可视化效果的最终帧。 我提供了一个代码片段供参考。 我的限制是流水线正在等待推理完成、从而限制输出的帧速率。 是否有方法使其异步、从而使推理是非阻塞的、并且输出帧速率保持与输入帧相同? 理想情况下、我希望在屏幕上显示一个推理通道的边界框、直到完成下一个结果。
gst-launch-1.0 -v v4l2src device=/dev/video3 io-mode=dmabuf-import ! queue leaky=2 max-size-buffers=4 ! \ video/x-bayer,width=1920,height=1080,framerate=30/1,format=rggb10 ! \ tiovxisp ... ! video/x-raw,format=NV12 ! \ tiovxmultiscaler name=tile_split target=0 src_0::roi-startx=0 src_0::roi-starty=0 src_0::roi-width=960 src_0::roi-height=1080 \ src_1::roi-startx=960 src_1::roi-starty=0 src_1::roi-width=960 src_1::roi-height=1080 \ \ tile_split. ! queue ! video/x-raw, width=960, height=1080 ! tiovxmultiscaler name=ms_left target=1 \ ms_left. ! queue ! video/x-raw, width=640, height=640 ! \ tiovxdlpreproc ... ! application/x-tensor-tiovx ! \ tidlinferer target=1 ... ! post_left.tensor \ ms_left. ! queue ! video/x-raw, width=960, height=1080 ! post_left.sink \ tidlpostproc name=post_left ... ! queue ! mosaic_0. \ \ tile_split. ! queue ! video/x-raw, width=960, height=1080 ! tiovxmultiscaler name=ms_right target=1 \ ms_right. ! queue ! video/x-raw, width=640, height=640 ! \ tiovxdlpreproc ... ! application/x-tensor-tiovx ! \ tidlinferer target=1 ... ! post_right.tensor \ ms_right. ! queue ! video/x-raw, width=960, height=1080 ! post_right.sink \ tidlpostproc name=post_right ... ! queue ! mosaic_0. \ \ tiovxmosaic name=mosaic_0 target=1 src::pool-size=4 sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<960>" sink_0::heights="<1080>" sink_1::startx="<960>" sink_1::starty="<0>" sink_1::widths="<960>" sink_1::heights="<1080>" ! \ video/x-raw, format=NV12, width=1920, height=1080 ! queue max-size-buffers=5 leaky=downstream ! \ tiperfoverlay title="Test" overlay-type=graph ! \ \ ...