-   rknn_test(const char *test_name);          /* 构造函数,需要提供一个test_name作为输出的窗口名称 */
 
-         ~rknn_test();                        /* 析构函数 */
 
-         int load_model(const char *path);    /* 加载rknn模型 */
 
-         int set_input_info(int width, int height, int channels);    /* 设置模型的输入大小,rknn_test会自动完成resize功能 */
 
-         int run(int video_node,   /* video节点号,为0时,打开video0节点获取摄像头图像作为输入 */
 
-                    /* func 为后处理回调函数*/
 
-                    int (*func) (void *data /* in 用户数据指针 */, cv::Mat & img /* in 图像数据,可以在上面绘制结果 */, float fps /* in 帧率 */, struct rknn_out_data * out_data<font color="#008000"> /* in rknn推理结果 */</font>), 
 
-                    void *data /* 用户数据指针,提供给func使用 */);
 
 
-         /* 同上,支持视频文件作为输入 */
 
-         int run(const char *video_name, 
 
-                 int (*func) (void *data, cv::Mat & img, float fps,
 
-                              struct rknn_out_data * out_data), void *data);
复制代码- int main(void)
 
- {
 
-         int ret;
 
-         /* 自定义数据,用于post_process函数使用 */
 
-         struct ssd_data data;
 
-         /* load label and boxPriors */
 
-         loadLabelName(LABEL_PATH, data.labels);
 
-         loadCoderOptions(BOX_PRIO_PATH, data.boxPriors);
 
 
-         /* 创建一个测试实例 */
 
-         class rknn_test test(WIN_NAME);
 
 
-         /* 加载模型 */
 
-         ret = test.load_model(MODEL_PATH);
 
-         if (ret < 0) {
 
-                 printf("load_model error!!!\n");
 
-                 return ret;
 
-         }
 
 
-         /* 设置输入图像的属性 */
 
-         ret = test.set_input_info(INPUT_WIDTH, INPUT_HEIGHT, INPUT_CHANNEL);
 
-         if (ret < 0) {
 
-                 printf("set_input_info error!!!\n");
 
-                 return ret;
 
-         }
 
 
-         /* 开始运行,支持摄像头和视频文件方式 */
 
-         /* 使用摄像头时,VIDEO_NODE可以设置为0,表示从video 0节点获取图像数据 */
 
-         /* 使用视频时,VIDEO_NODE可以设置为文件路径,如"xxx.mp4",表示从视频文件获取图像数据 */
 
-         /* post_process为自定义的后处理函数,RKNN相关操作已封装,只需完成后处理即可 */
 
-         ret = test.run(VIDEO_NODE, post_process, &data);
 
 
-         return ret;
 
- }
 
复制代码lappaport 发表于 2019-5-23 20:32
百度云盘提取码错误
protossw512 发表于 2019-6-15 01:48
可以放到github上面吗?
shopping 发表于 2019-9-16 15:03
这样说,我 mobilenet-ssd 提高至 30fps 有救了?
Devin 发表于 2020-1-2 14:33
请问你实测多少帧啊,谢谢!
Mr.Tang 发表于 2020-5-6 19:03
struct rknn_out_data {
float *out[8];
};
- float *predictions = (float *)out_data->out[0]
复制代码troy 发表于 2020-5-7 09:03
建议可以先把demo的逻辑先理一下。
框架部分,即common部分代码不需要改动,框架会去自动查询模型有几个 ...
float sum = 0;for (int i = 0; i < n; ++i) {float value;value = predictions;sum += value;// printf("%f\n",value);// printf("%d\n",i);}printf("==================\n");printf("run over, sum is %f\n",sum);
Mr.Tang 发表于 2020-5-7 09:37
谢谢,还有问题需要请教在python中你们rknn的api输出的维度一般都是1*n,c输出的维度是怎样的格式,没有找 ...
| 欢迎光临 Toybrick (https://t.rock-chips.com/) | Powered by Discuz! X3.3 |