chenll 发表于 2023-9-21 17:14:59

dengkx 发表于 2023-9-21 10:01
demo在rknn/src下,py的只添加了接口,还没写出demo。你可以认为推理时间大于视频帧间隔,可以跳过一帧或 ...

我在ffmedia_api.pdf 这个文档里面也没有看到跳帧或者是间隔帧

dengkx 发表于 2023-9-22 15:42:45

chenll 发表于 2023-9-21 12:17
等不能说一下py的接口是哪个,我看了demo.cpp 但是没有找到是哪里使用的,因看不懂C

看demo/Readme.md 在使用rknn推理的例子是仓库下的rknn/src/demo_rknn.cpp。你可以按照demo/Readme.md 编译出demo_rknn,然后按照文档运行他

chenll 发表于 2023-9-22 19:42:15

dengkx 发表于 2023-9-22 15:42
看demo/Readme.md 在使用rknn推理的例子是仓库下的rknn/src/demo_rknn.cpp。你可以按照demo/Readme.md 编 ...

我对照demo_rknn.cpp写了一个py版本的但是加载rknn 模型时候出现了问题
setModelData(): incompatible function arguments. The following argument types are supported:
    1. (self: ff_pymedia.ModuleInference, arg0: capsule, arg1: int) -> int

Invoked with: <ff_pymedia.ModuleInference object at 0x7fa664f0f0>, <ff_pymedia.ModuleInference object at 0x7fa664f0f0>, 'iot_firefly.rknn', 0


========================
dec.setModelData('iot_firefly.rknn', 0)
            ret = dec.init()
            if ret < 0:
                print("dec init failed")
                raise Exception
            else:
                print("dec int done")


=============demo代码=============
input_para = dec->getOutputImagePara();
      inf = make_shared<ModuleInference>(input_para);
      inf->setProductor(dec);
      inf->setInferenceInterval(1);
      if (inf->setModelData(argv, 0) < 0) {
            ff_error("inf setModelData fail!\n");
            break;
      }
      ret = inf->init();
      if (ret < 0) {
            ff_error("inf init failed\n");
            break;
      }

dengkx 发表于 2023-9-26 16:56:46

chenll 发表于 2023-9-22 19:42
我对照demo_rknn.cpp写了一个py版本的但是加载rknn 模型时候出现了问题




setModelDatac的参数类型没有转换处理,下个版本修复该问题

dengkx 发表于 2023-10-8 14:45:40

chenll 发表于 2023-9-22 19:42
我对照demo_rknn.cpp写了一个py版本的但是加载rknn 模型时候出现了问题




新版本可以推理了,就是不知道py那边需要的数据类型是什么,暂时将c++的推理结果数据(uint8)实例成py数组,再把这些数组合成list,所以使用模块的getOutputList()获取推理结果

chenll 发表于 2023-10-12 10:36:20

dengkx 发表于 2023-10-8 14:45
新版本可以推理了,就是不知道py那边需要的数据类型是什么,暂时将c++的推理结果数据(uint8)实例成py数 ...

好的,我用新版本的测试一下

chenll 发表于 2023-10-17 10:32:48

dengkx 发表于 2023-10-8 14:45
新版本可以推理了,就是不知道py那边需要的数据类型是什么,暂时将c++的推理结果数据(uint8)实例成py数 ...

rga_api version 1.8.1_
E RKNN: parseRKNN: rknn model is too small!
E RKNN: parseRKNN from buffer: Invalid RKNN format!
E RKNN: rknn_init, load model failed!
ERROR: ff_media: setModel: rknn_init fail! ret=-6
ERROR: 15ModuleInference: init: model input height=0, width=0 is incorrect


我这里出现说rknn 的模型太小了,我试了几个20Mb的也不行

dengkx 发表于 2023-10-17 11:16:31

要传模型路径,他应该是没找到你输入的模型文件,把他当做模型数据了。检测一下你输入的模型路径对不对,或者使用绝对路径

chenll 发表于 2023-10-17 11:25:22

dengkx 发表于 2023-10-17 11:16
要传模型路径,他应该是没找到你输入的模型文件,把他当做模型数据了。检测一下你输入的模型路径对不对,或 ...

这个是设置的路径dec.setModelData('/home/firefly/project/iot_firefly.rknn', 1)

fireflyÄfirefly:ü/project$ pwd
/home/firefly/project
fireflyÄfirefly:ü/project$ ls
ffmedia_releaseiot_firefly1.rknniot_firefly2.rknniot_firefly.rknnmain.py

用的是绝对路径路径应该是没有问题的

dengkx 发表于 2023-10-17 11:26:05

chenll 发表于 2023-10-17 11:25
这个是设置的路径dec.setModelData('/home/firefly/project/iot_firefly.rknn', 1)

fireflyÄfire ...

使用文件大小要设置0
页: 1 [2] 3
查看完整版本: ffmedia如何设置帧等待时间