Toybrick

标题: rk3399pro运行mobilenetv1-ssd实时处理usb摄像头视频流 [打印本页]

作者: YEY    时间: 2019-12-19 08:56
标题: rk3399pro运行mobilenetv1-ssd实时处理usb摄像头视频流
想用rk3399pro运行mobilenetv1-ssd实时处理usb摄像头视频流,但我发现inference出来的结果会有1917个,然后需要遍历这么多结果过滤掉得分过低的(如图),这一过程每次消耗100ms左右,导致只能跑到5帧,请问有没有什么办法加速呢?


作者: troy    时间: 2019-12-27 18:01
参考该代码,使用lamba表达式,降低for循环导致的时间消耗。还有一种方式是直接计算出min_score所对应的outclass里的值,直接进行筛选,过滤得分较低的数值
  1. def scaleToInputSize2(outputClasses, numClasses):
  2.         validCount = 0;

  3.         output = numpy.zeros(shape=(2,NUM_RESULTS))
  4.         tmp_shape = outputClasses.shape
  5.         score_class = map(lambda x: expit(x), outputClasses.flatten())
  6.         score_class = list(score_class)
  7.         score_class = np.array(score_class)
  8.         score_class = score_class.reshape(tmp_shape)

  9.         for i in range(0, NUM_RESULTS):
  10.                 topClassScore = -1000.0
  11.                 topClassScoreIndex = -1

  12.                 for j in range(1, numClasses):
  13.                         score = score_class[i][j]
  14.                         if (score > topClassScore) :
  15.                                 topClassScoreIndex = j
  16.                                 topClassScore = score

  17.                 if (topClassScore >= MIN_SCORE):
  18.                         output[0][validCount] = i
  19.                         output[1][validCount] = topClassScoreIndex
  20.                         validCount += 1

  21.         return validCount, output
复制代码

作者: YEY    时间: 2019-12-28 11:23
troy 发表于 2019-12-27 18:01
参考该代码,使用lamba表达式,降低for循环导致的时间消耗。还有一种方式是直接计算出min_score所对应的out ...

非常感谢!我来试一试




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