JetsonNano跑YoloV3速度评测

This article was original written by XRBLS, welcome re-post, first come with https://jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

很久没有发文章了,这段时间做了很多事情,主要工作还是在于onnx模型的TensorRT加速,我们在前段时间发过很多文章讲述如何对caffe模型进行TensorRT加速,我们也有现成的算法可以用来做这件事情,通过TensorRT加速的基于Darknet53+FPN的YoloV3可以跑到~40fps,在一块decent的GPU上,这个速度已经非常快了,毕竟这个后端十分重,速度也超越了一些经典的二阶段算法,效果如下图:

[外链图片转存失败(img-yHndC0Yb-1569143775502)(https://s2.ax1x.com/2019/08/29/mqlzb6.png)]

可以看到几乎没有漏检,这用来进行商业化的项目部署还是很有用的,但请相信我,如果你没有TensorRT加速,Darknet53+yolov3 608的输入速度你很难做快。这个算法我们将会开源到平台,在加入更多的模型之后。因为我们需要把所有的Caffe->TensorRT的操作封装成一个库,这样部署起来就非常方便了。

当然我们的算法平台 http://manaai.cn 也更新了很多最新的项目,比如我们从零训练的手和人脸的检测器,这用来进行无人机的操控很有用途,我们几乎将所有能用得上的人手和人脸的数据集都汇聚到了一块,基于我们自己的caffe版本可以进行大规模的训练,项目地址和与训练模型 这里:

[外链图片转存失败(img-4i0Rj26I-1569143775504)(https://s2.ax1x.com/2019/08/21/mN5JLd.gif)]

但实际上我们训练之后发现,这个模型竟然可以作为人脸的检测器:

当然效果与专业的人脸检测器还是有差距,但是毕竟速度和模型大小摆在那里。说到人脸检测器,现在很多都是评测的时候用大尺寸,比如1024x980这样的尺寸,精度上去了,但是实际上测试发现大尺寸下速度却很慢,慢到GPU上都无法实时,这就很过分了,但是除了这个算法:RetinaFace, 目前来讲是唯一一个同时兼顾速度和精度的人脸检测算法,更重要的是,这个算法可以同时拿到人脸位置和landmark,和MTCNN类似。

当然这个算法也可以在MANA平台找到,需要向大家说明的是,我们开源的是我们修改的pytorch训练版本,可以训练但是部署的时候不够快,基于onnx TensorRT加速的版本,将会在随后push到平台仓库,欢迎大家关注,预计可以做到400fps(1080尺寸输入下,GPU环境),即便是最垃圾的GPU,也能做到满实时。

最后言归正传,我们这篇文章继续上一篇的讲解。上一期我们讲到:

我们收到了一个Nvidia发过来的JetsonNano进行评测,但是不带电源,淘宝买了一个电源发现不好使,只要不运行大模型就容易崩溃。

最后发现,原来问题不是电源的问题,这里提醒一下JetsonNano的玩家:真正原因是由于我们没有短接一个跳线, 只有在短接之后板子才会从电源汲取电源而不是从usb接口.

短接之后,一切正常。这一点如果没有人告诉你,你应该不太可能知道,这就是只搞软件不搞硬件带来的偏科问题。。

YoloV3评测

本篇文章不仅仅要在Nano上评测YoloV3算法,还要教大家如何在Nano的板子上部署,并且得到我们相同的效果。所以文章可能会比较耗时,闲话短说,先来看看Nano跑起来的效果:

[外链图片转存失败(img-oSlSTiLs-1569143775505)(https://s2.ax1x.com/2019/09/22/upcm8O.gif)]

这里先说结论,因为相信很多读者是想用Nano来做点东西的:

  • 跑Yolov3+Mobilenetv2没有一点问题,~7fps的速度我觉得是可以接受的;
  • SSD+Mobilenet我没有测,但YoloV3+Mobilenet应该是精度更高一些的,输入尺寸也大一些;
  • 这个是用C++跑的,我想说的是在Nano上跑caffe模型什么的一点问题都没有;
  • 用在机器人视觉或者自己的项目上,你可以通过TensorRT获得更多的加速;
  • 和同等级的芯片对比,比如Intel的神经网络加速棒,瑞芯的芯片等,我相信他们很难在同样的软件下达到这个速度,除非用上他们自己的神经网络加速软体套件,但这样的话,Nano就得上TensorRT大招了,毫无疑问会更快。

本期文章暂时不就Nano的TensorRT加速表现进行评测。我们可能在下一期,对几个我们训练的onnx模型进行TensorRT加速,顺便看看这些模型在Nano上能够跑到多块的速度,比如Retinaface等等。

Nano YoloV3部署教程

接下来需要传授大家如何部署了。用到的工具很简单,所有的代码来自于mana平台:

http://manaai.cn

具体来说,我们需要两个项目:

  • 手势操控控制无人机的caffe模型(http://manaai.cn/aicodes_detail3.html?id=43)
  • YoloV3训练框架和MobilenetVOC预训练模型 (http://manaai.cn/aicodes_detail3.html?id=26)

上面的项目是我们花费了大量时间和精力训练、维护、编写、debug的开箱即用的代码,我们放在了MANA平台,如果你也是AI爱好者,想要从一些先人那里获取更多的知识和经验,不妨支持一下我们的工作,毫无疑问我们可以提供你物超所值的东西。平台代码和项目一直在更新,并永远保持最前沿。

接下来看如何部署(代码获取需要相关权限):

  1. 下载模型训练框架

    git clone https://gitlab.com/StrangeAI/yolov3_mobilenet_caffe ~/caffe
    cd yolov3_mobilenet_caffe
    mkdir build
    cd build
    cmake ..
    make -j8
    make install
    make pycaffe
    

    这里需要注意,这个训练框架我们不需要真正训练,如果你需要训练,不要在你的Nano上进行,上面操作只是我们下面的C++程序需要调用caffe。

    当然在这个过程中,你可能会遇到很多坑,但是请记住两个点:

    • Nano自带了基本上所有环境,比如boost,opencv等;
    • 编译错误先看错误,然后google;
    • 实在不行,请来我们的AI社区交流提问,大神在线解答:http://talk.strangeai.pro
  2. 编写Yolov3预测C++程序

    这一段我不打算贴代码,一来这个代码有点长,二来对于新手不太友好,因为还需要CMakeLists.txt的一大堆东西,大家直接clone一个现成的项目:

    git clone https://gitlab.com/StrangeAI/handface_detect.git
    

    通过该项目的一些readme进行编译,只要正确链接到你clone到HOME下的caffe,这个yolov3的检测程序就是可以正确编译的。

最后提醒一下,上面的代码需要MANA会员权限,我们花费大量时间精力分享我们的源代码,并非是给伸手党一堆无用的东西,而是一些我们觉得有用的精髓,能够帮助初学者快速得到自己想要的东西,这也是我们还是新手的时候梦寐以求的,希望每一位初学者能够珍惜前人的劳动成果。当然,如果你觉得请我们喝杯咖啡显得过于炫富,也可以通过其他开源渠道获得相关代码。

如果大家对于本篇教程有任何疑问,欢迎来我们的AI交流社群交流发帖:

http://talk.strangeai.pro

JetsonNano跑YoloV3速度评测相关推荐

  1. C#类与结构体究竟谁快——各种函数调用模式速度评测

    以前我一直有个疑惑--在C#中,究竟是类(class)比较快,还是结构体(struct)比较快? 当时没有深究. 最近我遇到一个难题,需要将一些运算大的指针操作代码给封装一下.原先为了性能,这些代码是 ...

  2. 北京可用DNS收集整理和速度评测

    速度评测为2017.9在路由器上使用ping命令执行10次后获取平均值,仅供参考 OpenNic是一个社区化的非营利组织,主张DNS中立.免费服务.用户决议.自由开放.保护隐私.拒绝劫持.访问官网,会 ...

  3. 36匹马赛跑,跑道同时只能容许6匹马。而且36匹马速度不同,但是每次跑的速度恒定。 问跑多少次可以选出第一,第二,第三名?

     36匹马赛跑,跑道同时只能容许6匹马.而且36匹马速度不同,但是每次跑的速度恒定. 问跑多少次可以选出第一,第二,第三名?   分析:     36匹马分为6组(ABCDEF),比六次.     取 ...

  4. android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO

    英特尔奔腾N3710 是针对入门级笔记本电脑,它的频率为1.1- 2.56 GHz.由于采用三栅极晶体管的新型14纳米低功耗工艺(P1273),与其前代Bay Trail(例如奔腾 N3520)相比, ...

  5. FasterR-CNN,R-FCN,SSD,FPN,RetinaNet,YOLOv3速度和准确性比较

    很难在不同的目标检测器之间进行公平的比较.对于哪个模型是最好的?这个问题是没有直接的答案.对于现实生活中的应用,我们选择平衡准确性和速度.除了检测器类型外,我们还需要了解影响性能的其他选择: Feat ...

  6. atto软件测试速度,评测平台介绍及HD Tune、ATTO性能测试

    评测平台介绍与说明:硬件平台 CPUIntel Core i7 3770K 主板技嘉 GA-Z77X-UP7 内存DDR3-1600 8G*2 硬盘主盘:三星830系 测试盘:希捷Desktop HD ...

  7. keras跑yolov3模型报错1“python3: can't open file 'convert.py': [Errno 2] No such file or directory”解决

    刚开始学yolo和keras,跑github上模型 https://github.com/qqwweee/keras-yolo3 一开始遇到问题,让运行"python convert.py ...

  8. iphone x性能测试软件,iPhoneX跑分性能评测 iPhoneX跑分是什么水平

    iPhoneX发布后,成为了目前苹果 历史 上最贵的一款手机.除了在功能方面有所增加之外,硬件方面也得到了很大的提升.毕竟是将近万元的手机啊!很多用户除了关注iPhoneX的外形之外,更多是在意的是i ...

  9. 用虚拟机搭建服务器跑分,个人评测 篇一:鱼与熊掌如何兼得-Parallels Desktop 16虚拟机告诉你...

    个人评测 篇一:鱼与熊掌如何兼得-Parallels Desktop 16虚拟机告诉你 2020-09-03 10:34:25 8点赞 46收藏 14评论 #尾巴众测#关注数字尾巴快8年了,都是当观众 ...

  10. MobileNet在手机端上的速度评测:iPhone 8 Plus竟不如iPhone 7 Plus

    如今,正在兴起一项有关手机应用和深度学习的新动向. 2017 年 4 月:谷歌发布 MobileNets,一个可在计算资源有限的环境中使用的轻量级神经网络. 2017 年 6 月:苹果推出 Core ...

最新文章

  1. java字符串逐个分解_改进JAVA字符串分解的方法
  2. Python 操作redis
  3. Java 9 尝鲜之JShell交互式编程环境
  4. linux mysql 存储过程乱码,mysql存储过程中 乱码问题解决办法
  5. mysql 表名是变量_MySQL深层次的总结
  6. linux快速查找文件中所包含的指定字段的个数
  7. Java里多个Map的性能比較(TreeMap、HashMap、ConcurrentSkipListMap)
  8. 3dsmax给物体贴图之后,物体不显示贴图的解决办法
  9. Islands 架构原理和实践
  10. Riverbed宣布收购SD-WAN供应商Ocedo
  11. 面试了一个37 岁的程序员 有一些感悟
  12. 怎么用计算机隐藏应用程序,win7 隐藏应用程序 电脑如何隐藏程序_win7教程_uc电脑园...
  13. Teamspeak3集成要注意的问题
  14. git 打patch的方法
  15. Python3 PyQt5 窗口(国际化/QMainWindow/QWidget/QDialog)
  16. 史上最全电脑硬盘修复方法
  17. pr系统兼容性报告不支持视频驱动程序有什么影响?怎么解决?
  18. php excel模板导出、openoffice excel转pdf、多文件压缩下载
  19. 集成学习1——voting、baggingstacking
  20. 云计算专业防火墙混合模式应用实验

热门文章

  1. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句...
  2. 2018中国国际大数据大会  助力大数据与实体经济深度融合
  3. 英特尔Atom处理器出货一亿,庆祝上网本CPU三周岁
  4. Linux bpf 1.1、BPF内核实现
  5. win10+Ubuntu双系统下如何完美卸载Ubuntu系统
  6. [Matlab]中solve函数与subs函数的使用方法
  7. python jupter输入文字行_少儿Python编程_第十六讲:图形界面开发
  8. “add measurements”(添加度量)菜单问题
  9. 汽车零部件:供应生产仍需持续恢复中
  10. 网易邮箱与GMAIL