Toybrick

标题: RK3588使用Python接口实时推理init_runtime问题 [打印本页]

作者: zhengsy    时间: 2023-2-6 13:31
标题: RK3588使用Python接口实时推理init_runtime问题
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    时间: 2023-2-6 16:25
本来就是只要做一次init_runtime,后面不停inference的
作者: zhengsy    时间: 2023-2-6 17:17
您好我的代码是这样的:
  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    时间: 2023-2-7 20:10
我在toybrick tb-3588板子上运行,rknnlite==1.4.0
毫无问题。
如果你不是toybrick板子,请自行联系板商处理,怀疑是你板子驱动老旧




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3