查看: 276|回复: 1

[原创] 【米尔FZ3深度学习计算卡】识别硬币视频 + 识别速度分析

[复制链接]
  • TA的每日心情
    开心
    前天 08:46
  • 签到天数: 440 天

    连续签到: 2 天

    [LV.9]以坛为家II

    发表于 2020-12-22 00:31:26 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 robe.zhang 于 2020-12-22 01:00 编辑

    【米尔FZ3深度学习计算卡】识别硬币视频 + 识别速度分析优化

    先看视频:

    米尔深度学习计算卡,识别硬币的整个系统:
    1.png
    除了右上角是windows10 电脑屏幕,用来替代硬币实物,其他全都是米尔深度学习计算卡识别硬币的系统。

    2.png
    用的摄像头是罗技c310 摄像头,本身不是很好,再加上硬币比较小,摄像头直接拍摄硬币实物时,距离近了对不上焦不清楚,距离远了太小仍然拍不清楚。直接拍摄获取视频无法使用,所以使用win10电脑播放硬币图片,替代硬币实物,让摄像头实时获取硬币视频。

    3.png
    米尔深度学习计算卡显示器画面:
    MYIR FZ3 baidu brain board. DEMO:是个标题
    five_jiao: 识别的结果,本图片是五角硬币的正面,识别为 five_jiao
    PaddlePaddle cycle_time: 是飞浆识别一帧用时,使用代码实时计算出来的,大约是50000ns,约50ms,识别帧率极限是 20fps
    PaddlePaddle frame rate:飞浆预测(识别)帧率,和cycle_time对应的,约 20fps
    P 0.901855 是飞浆识别置信度,0.90其实也是很高了,因为是手机拍摄硬币,电脑又播放手机图片,摄像头又拍摄电脑屏幕,图片本身失真很厉害的情况下,置信度0.90,还是很不错的
    Video cycle_time frame rate:这两个参数主要是模拟单线程时,显示器画面显示一帧用时和帧率,主要是分析优化识别速度用的。

    优化思路:
    1,测出飞浆预测一帧用时:50ms,必须要实测数据
    2,单线程处理一帧用时,108ms,各个阶段用时都要知道
    3,知道飞浆库多线程特性,飞浆暂时不支持多线程
    基于以上3点,自己设计程序,使用3个进程:1个进程用于飞浆预测,且仅仅用于预测,目标是逼近飞浆预测速度的极限50ms,其他事情全部不干;第2个进程用来获取摄像头图像,目标是耗时不大于50ms即可,低于50ms也没啥意义;第3个进程,计算数据,显示图像等等其他事情。

    从测试结果可以看到程序增加多线程优化后识别一帧用时 50ms,识别帧率 20fsp,达到模型识别极限。
    对比单线程识别一帧用时 108ms,识别帧率9.2fps
    多线程优化后效果还是很直接很明显的,速度直接翻倍还多一点,直逼极限。

    本程序所有灵感来源:官方源码;所有代码自己实现
    自己实现起来也不难,三线程,双队列,保证一个预测进程逼近极限搞定。官方源码基本上也是这个思路

    本程序的识别速度已经达到极限,没啥优化空间了,暂时到此为止

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-1-2 15:15
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2021-1-2 15:13:41 | 显示全部楼层
    这个需要好好学习一下
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|电路城

    GMT+8, 2021-1-21 10:42 , Processed in 0.062946 second(s), 11 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.