This article was original written by Jin Tian, welcome re-post, first come with jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat:
jintianiloveu
html
好久没有发文章了,这段时间作了不少事情,主要工做仍是在于onnx模型的TensorRT加速,咱们在前段时间发过不少文章讲述如何对caffe模型进行TensorRT加速,咱们也有现成的算法能够用来作这件事情,经过TensorRT加速的基于Darknet53+FPN的YoloV3能够跑到~40fps,在一块decent的GPU上,这个速度已经很是快了,毕竟这个后端十分重,速度也超越了一些经典的二阶段算法,效果以下图:git
能够看到几乎没有漏检,这用来进行商业化的项目部署仍是颇有用的,但请相信我,若是你没有TensorRT加速,Darknet53+yolov3 608的输入速度你很难作快。这个算法咱们将会开源到平台,在加入更多的模型以后。由于咱们须要把全部的Caffe->TensorRT的操做封装成一个库,这样部署起来就很是方便了。github
固然咱们的算法平台 manaai.cn 也更新了不少最新的项目,好比咱们从零训练的手和人脸的检测器,这用来进行无人机的操控颇有用途,咱们几乎将全部能用得上的人手和人脸的数据集都汇聚到了一块,基于咱们本身的caffe版本能够进行大规模的训练,项目地址和与训练模型 这里:算法
但实际上咱们训练以后发现,这个模型居然能够做为人脸的检测器:后端
固然效果与专业的人脸检测器仍是有差距,可是毕竟速度和模型大小摆在那里。说到人脸检测器,如今不少都是评测的时候用大尺寸,好比1024x980这样的尺寸,精度上去了,可是实际上测试发现大尺寸下速度却很慢,慢到GPU上都没法实时,这就很过度了,可是除了这个算法:RetinaFace, 目前来说是惟一一个同时兼顾速度和精度的人脸检测算法,更重要的是,这个算法能够同时拿到人脸位置和landmark,和MTCNN相似。bash
固然这个算法也能够在MANA平台找到,须要向你们说明的是,咱们开源的是咱们修改的pytorch训练版本,能够训练可是部署的时候不够快,基于onnx TensorRT加速的版本,将会在随后push到平台仓库,欢迎你们关注,预计能够作到400fps(1080尺寸输入下,GPU环境),即使是最垃圾的GPU,也能作到满实时。网络
最后言归正传,咱们这篇文章继续上一篇的讲解。上一期咱们讲到:框架
咱们收到了一个Nvidia发过来的JetsonNano进行评测,可是不带电源,淘宝买了一个电源发现很差使,只要不运行大模型就容易崩溃。工具
最后发现,原来问题不是电源的问题,这里提醒一下JetsonNano的玩家:真正缘由是因为咱们没有短接一个跳线, 只有在短接以后板子才会从电源汲取电源而不是从usb接口.gitlab
短接以后,一切正常。这一点若是没有人告诉你,你应该不太可能知道,这就是只搞软件不搞硬件带来的偏科问题。。
本篇文章不只仅要在Nano上评测YoloV3算法,还要教你们如何在Nano的板子上部署,而且获得咱们相同的效果。因此文章可能会比较耗时,闲话短说,先来看看Nano跑起来的效果:
这里先说结论,由于相信不少读者是想用Nano来作点东西的:
本期文章暂时不就Nano的TensorRT加速表现进行评测。咱们可能在下一期,对几个咱们训练的onnx模型进行TensorRT加速,顺便看看这些模型在Nano上可以跑到多块的速度,好比Retinaface等等。
接下来须要传授你们如何部署了。用到的工具很简单,全部的代码来自于mana平台:
具体来讲,咱们须要两个项目:
上面的项目是咱们花费了大量时间和精力训练、维护、编写、debug的开箱即用的代码,咱们放在了MANA平台,若是你也是AI爱好者,想要从一些先人那里获取更多的知识和经验,不妨支持一下咱们的工做,毫无疑问咱们能够提供你物超所值的东西。平台代码和项目一直在更新,并永远保持最前沿。
接下来看如何部署(代码获取须要相关权限):
下载模型训练框架
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。
固然在这个过程当中,你可能会遇到不少坑,可是请记住两个点:
编写Yolov3预测C++程序
这一段我不打算贴代码,一来这个代码有点长,二来对于新手不太友好,由于还须要CMakeLists.txt的一大堆东西,你们直接clone一个现成的项目:
git clone https://gitlab.com/StrangeAI/handface_detect.git
复制代码
经过该项目的一些readme进行编译,只要正确连接到你clone到HOME下的caffe,这个yolov3的检测程序就是能够正确编译的。
最后提醒一下,上面的代码须要MANA会员权限,咱们花费大量时间精力分享咱们的源代码,并不是是给伸手党一堆无用的东西,而是一些咱们以为有用的精髓,可以帮助初学者快速获得本身想要的东西,这也是咱们仍是新手的时候求之不得的,但愿每一位初学者可以珍惜前人的劳动成果。固然,若是你以为请咱们喝杯咖啡显得过于炫富,也能够经过其余开源渠道得到相关代码。
若是你们对于本篇教程有任何疑问,欢迎来咱们的AI交流社群交流发帖: