Toybrick

RK3588使用Python接口实时推理init_runtime问题

zhengsy

新手上路

积分
18
楼主
发表于 2023-2-6 13:31:27    查看: 3397|回复: 3 | [复制链接]    打印 | 只看该作者
RK3588使用Python接口实时推理调用init_runtime,此函数在while循环中调用推能正常运行,放到while外边只进行一次初始化,然后一直调用摄像头进行推理报错,E Runtime environment is not inited, please call init_runtime to init it first!,
有没有什么可行的方法能够值调用一次init_runtime就可以进行实时推理的方案呢?主要是init_runtime消耗时间太长,实时推理会大大降低效果。

回复

使用道具 举报

jefferyzhang

版主

积分
13578
沙发
发表于 2023-2-6 16:25:03 | 只看该作者
本来就是只要做一次init_runtime,后面不停inference的
回复

使用道具 举报

zhengsy

新手上路

积分
18
板凳
 楼主| 发表于 2023-2-6 17:17:35 | 只看该作者
您好我的代码是这样的:
  1. # 获取相机id
  2. camera_id, camera = certain_camera_id()
  3. # 设置图像分辨率640*480
  4. camera.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
  5. camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

  6. while True:
  7.     ret = rknn.init_runtime(core_mask=RKNNLite.NPU_CORE_0_1_2)
  8.     if ret != 0:
  9.         print('init runtime failed!')
  10.     print('done')

  11.     # 读取相机图像
  12.     ret, img = camera.read()
  13.    
  14.     if not ret:
  15.         print("not found camera")
  16.         break
  17.     # Set inputs
  18.     img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  19.     img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))

  20.     # Inference
  21.     # print('--> Running model')
  22.     outputs = rknn.inference(inputs=[img])
复制代码
ret = rknn.init_runtime(core_mask=RKNNLite.NPU_CORE_0_1_2)这行代码放在while True:里边可以正常运行,就相当于没循环一次调用一次,放在while上边调用就报错。有什么好的解决方法吗?
回复

使用道具 举报

jefferyzhang

版主

积分
13578
地板
发表于 2023-2-7 20:10:42 | 只看该作者
我在toybrick tb-3588板子上运行,rknnlite==1.4.0
毫无问题。
如果你不是toybrick板子,请自行联系板商处理,怀疑是你板子驱动老旧
回复

使用道具 举报

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

本版积分规则

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


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