Toybrick

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

ecjon

新手上路

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

使用道具 举报

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里面的不一样,要从哪里下手查?或者你们能够提供技术支持不?
回复

使用道具 举报

ecjon

新手上路

积分
37
地板
 楼主| 发表于 2019-2-1 09:56:07 | 显示全部楼层
qiaoqiang126 发表于 2019-1-31 14:56
rknn api 手册里有     outputs_release 每次outputs要释放,要不然的话3次之后会内存泄漏 ...

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

使用道具 举报

ecjon

新手上路

积分
37
5#
 楼主| 发表于 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
6#
 楼主| 发表于 2019-2-1 12:11:24 | 显示全部楼层
troy 发表于 2019-2-1 12:01
把RKNN的转换代码也贴出来,interface循环推理是可以用的,我们有个rknn_camera.py就是实时显示的。从你 ...

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

使用道具 举报

ecjon

新手上路

积分
37
7#
 楼主| 发表于 2019-2-12 14:47:52 | 显示全部楼层
karbon 发表于 2019-2-9 19:05
楼主后来解决这个问题了吗

还没解决
回复

使用道具 举报

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

本版积分规则

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


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