Toybrick

rk3399pro运行mobilenetv1-ssd实时处理usb摄像头视频流

YEY

注册会员

积分
56
楼主
发表于 2019-12-19 08:56:46    查看: 8470|回复: 2 | [复制链接]    打印 | 只看该作者
想用rk3399pro运行mobilenetv1-ssd实时处理usb摄像头视频流,但我发现inference出来的结果会有1917个,然后需要遍历这么多结果过滤掉得分过低的(如图),这一过程每次消耗100ms左右,导致只能跑到5帧,请问有没有什么办法加速呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

troy

版主

积分
2374
沙发
发表于 2019-12-27 18:01:21 | 只看该作者
参考该代码,使用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

注册会员

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

非常感谢!我来试一试
回复

使用道具 举报

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

本版积分规则

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


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