Toybrick

在3399pro上的linux用python来rknn.inference,循环多几次卡死

ecjon

新手上路

积分
37
楼主
发表于 2019-1-30 09:28:06    查看: 36110|回复: 15 | [复制链接]    打印 | 只看该作者
在3399pro上的linux用python来rknn.inference,循环多几次卡死,你们有遇到过这个问题吗?就直接用你们的demo修改的。
回复

使用道具 举报

zhangzj

超级版主

积分
1117
沙发
发表于 2019-1-30 09:43:32 | 只看该作者
代码甩出来
回复

使用道具 举报

ecjon

新手上路

积分
37
板凳
 楼主| 发表于 2019-1-30 15:57:47 | 只看该作者
  1. import numpy as np

  2. import re
  3. import math
  4. import random
  5. import cv2
  6. import copy
  7. import time

  8. from rknn.api import RKNN

  9. INPUT_SIZE = 300

  10. NUM_RESULTS = 1917
  11. NUM_CLASSES = 91

  12. Y_SCALE = 10.0
  13. X_SCALE = 10.0
  14. H_SCALE = 5.0
  15. W_SCALE = 5.0


  16. def expit(x):
  17.     return 1. / (1. + math.exp(-x))


  18. def load_box_priors():
  19.     box_priors_ = []
  20.     fp = open('./box_priors.txt', 'r')
  21.     ls = fp.readlines()
  22.     for s in ls:
  23.         aList = re.findall('([-+]?\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?', s)
  24.         for ss in aList:
  25.             aNum = float((ss[0]+ss[2]))
  26.             box_priors_.append(aNum)
  27.     fp.close()

  28.     box_priors = np.array(box_priors_)
  29.     box_priors = box_priors.reshape(4, NUM_RESULTS)

  30.     return box_priors


  31. if __name__ == '__main__':

  32.     # Create RKNN object
  33.     rknn = RKNN()

  34.     # Config for Model Input PreProcess
  35.     rknn.config(channel_mean_value='128 128 128 128', reorder_channel='0 1 2')

  36.     # Direct Load RKNN Model
  37.     print('--> Loading model')
  38.     rknn.load_rknn('./ssd_mobilenet_v1_coco.rknn')
  39.     print('done')

  40.     # Set inputs

  41.     webcam = cv2.VideoCapture(0)

  42.     # init runtime environment
  43.     print('--> Init runtime environment')
  44.     ret = rknn.init_runtime(host='rk3399pro')
  45.     if ret != 0:
  46.         print('Init runtime environment failed')
  47.         exit(ret)
  48.     print('done')

  49.     while True:
  50.         ref, frame = webcam.read()

  51.         orig_img = frame
  52.         img = copy.deepcopy(orig_img)
  53.         img = cv2.resize(img, (INPUT_SIZE, INPUT_SIZE), interpolation=cv2.INTER_CUBIC)

  54.         # Inference
  55.         print('--> Running model')
  56.         start = time.time()
  57.         outputs = rknn.inference(inputs=[img])
  58.         print("total time: ")
  59.         print(time.time() - start)
  60.         print('done')
  61.         # print('inference result: ', outputs)

  62.         cv2.imshow("test", orig_img)

  63.         c= cv2.waitKey(30) & 0xff
  64.         if c==27:
  65.             webcam.release()
  66.             break

  67.     # Release RKNN Context
  68.     rknn.release()
复制代码
回复

使用道具 举报

ecjon

新手上路

积分
37
地板
 楼主| 发表于 2019-1-30 15:59:23 | 只看该作者
都是你们自己的东西,我只是改成了实时显示而已,另外我转换我自己的一个模型,转换出来的预测结果和我再tensorflow里面的不一样,要从哪里下手查?或者你们能够提供技术支持不?
回复

使用道具 举报

qiaoqiang126

中级会员

积分
225
5#
发表于 2019-1-31 14:56:46 | 只看该作者
rknn api 手册里有     outputs_release 每次outputs要释放,要不然的话3次之后会内存泄漏
回复

使用道具 举报

ecjon

新手上路

积分
37
6#
 楼主| 发表于 2019-2-1 09:56:07 | 只看该作者
qiaoqiang126 发表于 2019-1-31 14:56
rknn api 手册里有     outputs_release 每次outputs要释放,要不然的话3次之后会内存泄漏 ...

我这个是python版本哦是toolkit,c版本的我知道有
回复

使用道具 举报

troy

版主

积分
2374
7#
发表于 2019-2-1 12:01:08 | 只看该作者
ecjon 发表于 2019-2-1 09:56
我这个是python版本哦是toolkit,c版本的我知道有

把RKNN的转换代码也贴出来,interface循环推理是可以用的,我们有个rknn_camera.py就是实时显示的。从你的代码看,推理时,rknn.config是多余的,rknn.config是转换模型时使用。
而且你设置config的参数也有问题,需要和你的模型对应上。你写的channel_mean_value='128 128 128 128'好像不太对,这个效果相当于(R-128)/128.0  (G-128)/128.0 (B-128)/128.0,输入给推理的数据就已经不正确了。  
回复

使用道具 举报

ecjon

新手上路

积分
37
8#
 楼主| 发表于 2019-2-1 12:04:43 | 只看该作者
troy 发表于 2019-2-1 12:01
把RKNN的转换代码也贴出来,interface循环推理是可以用的,我们有个rknn_camera.py就是实时显示的。从你 ...

模型什么的都是用的官方提供的ssd的demo的啊,均值也是,我只不过在官方demo里面加了个循环,你对比下官方发demo的mobilenet_ssd就知道了
回复

使用道具 举报

ecjon

新手上路

积分
37
9#
 楼主| 发表于 2019-2-1 12:11:24 | 只看该作者
troy 发表于 2019-2-1 12:01
把RKNN的转换代码也贴出来,interface循环推理是可以用的,我们有个rknn_camera.py就是实时显示的。从你 ...

你实时的demo方便发给我参考下吗?
回复

使用道具 举报

troy

版主

积分
2374
10#
发表于 2019-2-1 14:43:07 | 只看该作者
ecjon 发表于 2019-2-1 12:11
你实时的demo方便发给我参考下吗?

可以参考下,RK3399Pro 中文手势识别例程的帖子,附件里面有代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表