Firefly开源社区

标题: ffmedia如何crop指定的roi区域给后续的模型推理 [打印本页]

作者: nboxcn    时间: 2024-2-27 16:45
标题: ffmedia如何crop指定的roi区域给后续的模型推理
请问ffmedia是否可以用ModuleRga对指定的区域x,y,w,h进行crop裁剪后给后续的模块使用。
例如:source->dec->rga->inf(A)->根据结果指定区域x,y,w,h进行crop裁剪后->inf(B)不同的模型进行推理
尝试过使用rga的
  1. setSrcPara(V4L2_PIX_FMT_NV12, x, y, h, hstride, vstride);
复制代码
后续取出来的还是rga原图,并没有crop指定的roi区域
请指导如何实现,谢谢!

作者: dengkx    时间: 2024-2-27 19:43
本帖最后由 dengkx 于 2024-2-27 19:49 编辑

rga模块init之后再调用setSrcPara()设置指定区域就可以了,虚宽和虚高及格式要通过getInputImagePara拿模块里的输入图像参数来设置。



作者: nboxcn    时间: 2024-2-28 08:40
感谢指导,是可以截取出指定的区域了,但是图像的高宽还是原图的大小,图像被放大了:
例如原图:w: 704 , h: 576 使用rga->setSrcPara(input_para.v4l2Fmt, 400, 400, 100, 100, input_para.hstride, input_para.vstride);之后图像还是w: 704 , h: 576,有办法输出原图大小100 x 100吗?
谢谢
作者: dengkx    时间: 2024-2-28 09:19
nboxcn 发表于 2024-2-28 08:40
感谢指导,是可以截取出指定的区域了,但是图像的高宽还是原图的大小,图像被放大了:
例如原图:w: 704 , ...

rga模块构造函数ModuleRga(const ImagePara& output_para, RgaRotate rotate);
将你要将图像处理成什么样的,构造output_para传递rga.
作者: nboxcn    时间: 2024-2-28 14:39
本帖最后由 nboxcn 于 2024-2-28 17:33 编辑

如果使用了多个rga层,必须要有一个vo作为consumer,否则就会wait for consumer然后资源耗尽死机。
例如:
1.有一个crop rga层,从rga截取区域进行后续的推理
2.必须建两个display vo来将rga , crop rga都显示出来就不会报错
3.如果只用1个display显示rga,就会出错死机

请问有什么办法能丢弃crop rga的图像不显示,因为只需要推理结果,不需要显示ROI区域图像,或者说:多个模型且ROI区域动态变化,如何正确地进行串行、并行进行推理,请指导,谢谢!




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1