Jetson Nano 超长夜用评测

2019-05-301.3万
精华项目
AI 快速预览详细 收起
本文是一篇关于Jetson Nano的详细评测文章,涵盖了其基本配置、功耗、接口以及扩展性。通过实际测试,展示了Jetson Nano在图形处理和机器学习任务中的强大性能。文章还提供了安装系统镜像和运行物体标记、物体识别的具体步骤。
这是一篇来自我同事拿到Jetson nano后在漫漫长夜里撰写的一篇评测文章, 超级长。。。所以起名: 超长夜用评测。
如果自己想多了的童鞋,去面壁思过一下。
言归正传:
这板子的基本配置:
目前来说,我也算是国内比较早拿到板子的吧!
Jetson Nano 超长夜用评测图1
盒子背面还是有比较详细的一些介绍.
特别注意的是,这里提供电源有四种模式,分别是5V 2A(USB)/5V 3A(GPIO引脚)/5V 4A(DC接口)/5V 6A(所有电源IO反向供电),5V 2A是受限于USB自身,这就奇怪了,明显可以做Type-c接口,支撑更大功率?为什么没有做呢?
另外由于架构和核心多重原因,这个板子满功率大概是10W,剩余的功耗,是用于提供其他外设,比如以太网,USB等等.我实测如果使用华为5A USB线,也能启动带的动这个板子.(注:适配器标定5V 8A)
另外,如果使用DC供电,则必须禁用USB电源.(短路帽插上)
串口和音频口在不是很显眼的位置出现.
不过,标注是非常清晰的.(这串口还有流控?)
另一边还有40P的树莓派兼容排针,他的右边,当然就是POE排针了.
同样的,有很清晰的标注,这一点,比树莓派强.
为了更方便地散热,风扇接口也做了,就是不知道是否兼容大多数主板风扇定义.
在底部还留有电池座,应该是芯片内有RTC外设.
在核心板下方,还有MiniPCIE的接口.
想来可以接无线或者其他什么设备进来,看走线,走的是PCIE协议.
在主板有个非常特别的飞线电容.
核心板预留了EMMC位置.
可能以后会提供带EMMC版本?
当然,上图还有突兀之极的中文丝印,不过想到板子全是在国内生产,这样也不是很奇怪的事情.只是老外看得懂吗?
总体来说,用料是很扎实的,网口是EDAC的,核心板接插件是TE的.
除了主板,还包含一份简易说明,只是这个说明,有点简单.
这个板子必须要买的配件有哪些?首先,如果要做实时分析,摄像头是一定要的,可以是Pi官方摄像头,也可以是USB摄像头,只不过,如果是USB摄像头的话,程序要微调一下.屏幕,是必备品,因为开机配置如果不做的话,启动根本不会继续往下执行.
虽然,我很多时候也只是用来做分析,通常在终端环境下就够用了,但是如果没屏幕根本没法进行下一步,我测试过这个屏幕可以用:http://wiki.52pi.com/index.php/5-Inch-800×480-HDMI-TFT-LCD-Touch-Screen_SKU:Z-0053

当然,没有键鼠,也没法继续,这些,也要自备了.
最后,因为Jetson Boot时间比较长,所以,一开始是没画面的,大概要等30秒才能看到开机过程,并且,首次启动网络灯是不会闪的.(路由侧会闪烁),也不怎么发热.配置完整个过程还需大约20分钟,主要还是大多数资源在网络,且拔掉网线也会使劲重试到超时,还不如多等一会.
软件资源基本就是系统一个,Ubuntu 16.04 x64宿主机(包括nvidia-docker并下载有DIGITS.),其他东西基本没有.
至于其他软件?你就当他是ARMv8板子跑就是,CPU性能的话,肯定不是值得炫耀的部分,但是也不会差到哪里,毕竟还要靠CPU打包数据.至于从数据看,是比树莓派出彩的!
以图形部分,BCM2837 VideoCore IV:(28.8 GFLOPS) 对比 128 Maxwell GPU(472 GFLOPs),完全不是一个水平线.
最后补刀,如果要扩展配件,将是无底洞~ 欢迎入坑~ (已经通过买各种模块板子,至少是5位数水平了吧.)
测试软件:
很幸运的是,由于Jetson Nano出生比较晚,所以JetPack是预装在系统里面了.但是,系统也真的大,以至于我烧了1个小时以上.建议大家有条件,还是买个更快一点的TF卡,不然会拖后腿的.
另外这个比较挑卡,我这里有好多不同品牌的卡,结果只有一个能启动?
JetPack大概就是TensorRT/Caffe等各种神器集合,也算是CUDA的一个中间件.
废话太多了,太多了,下面马上….上….前奏.主要是实现物体标记和物体识别.大家接触了很多CNN相关的东西,所以对这两个肯定也不陌生.至于基础的方程预测之类的,官方没有给出例子,当然,这些自己写也很简单.
先安装cmake,下载需要的源.
[mw_shl_code=shell,true]$ sudo apt update
$ sudo apt install cmake
$ git clone --recursive https://github.com/dusty-nv/jetson-inference
$ cd jetson-inference
$ mkdir build
$ cd build
$ cmake ../[/mw_shl_code]

嗯,这个过程很漫长,因为下载大量的软件.如果你网络可以直接访问英伟达的网站,那可以直接cmake,如果不能的话.就需要处理一下,至于怎么做,就不方便说了,大家肯定有办法.
下载过程如下图.(大约1.5GB+数据要下载,根据网速不同,所需时间也不同,Jetson Nano配备的是千兆网卡)
cmake完成后应该如此:
接下来make编译,但是产生了很多警告,这类警告只是编码规范问题,不影响程序结果.
通过sudo make install完成安装.
完成后,你得到了一个支持GOOGLENET/GOOGLENET-V12/ALEXNET网络框架的CUDA优化的机器学习支持库.
先试试图像分类,目前用的是默认训练好的库.

[mw_shl_code=shell,true]$ cd jetson-inference/build/aarch64/bin
$ ./imagenet-console bird_0.jpg output.jpg[/mw_shl_code]

运行过程日志也是有输出的,第一次运行会比较慢,因为神经网络第一次加载时候需要解释.后面会讲到如何构造自己的神经网络训练结果包,这个包也就是丢到Jetson上面用的.
嗯,判断准确度还可以,他认为这个图是American robin,实际上他肯定不止一个结果,只是显示了最可信的结果出来.
但是由于这个库可能是训练不太好,我上传了个苹果,识别出来是石榴?
而其他候选结果,分别是无花果>澳洲青苹>橙子>七叶树.
不过,处理速度确实很快,可见,直到输出层也只需要80ms,相对于在树莓派上来做,都要用秒来衡量的.
这个程序还是开源,代码也不难:https://github.com/dusty-nv/jets ... magenet-console.cpp
而特定物体查找的例子,跟这个也差不多.

[mw_shl_code=shell,true]$ ./detectnet-console peds-001.jpg output.jpg facenet[/mw_shl_code]

从返回结果看到,捕获了3个对象以及他们的坐标.
结果是这样的.
但是当我随机在互联网上找到另一张图时,表现就差了一些了,也许还是训练不足的原因.
而且,目前也只有几个模型,更多,还是去训练吧.(注意看classes,就是能识别的类)
既然训练不足,不能满足现状的话,只能使用DIGITS重新训练了.
但是,训练只能在PC上做,做好之后,把训练结果变成一个压缩包放在SD卡上,实现离线识别.至于为什么不用开发板直接跑识别,我觉得主要问题不在性能,而在储存上(带宽/容量).
记得Movidius上也是如此,先在PC上训练,再最终训练结果写入棒子(本来训练结果就比较小,训练集比较大),然后实际使用就可以了.
不过,有一点特别要注意的是,nvdia-docker中绑定的路径,才是真正的操作路径.而非官方git中给出的参考路径形式,如下图,目录是/data下的ilsvrc12目录.
只要训练之后,下载训练后的结果层次,就可以使用了,当然也可以自己添加训练数据,目录中的形式表示得很明白,最后还可以先在PC上测试.
下载的训练结果,复制到Jetson Nano中解压,指定NET环境变量之后,就可以开始使用了.由于这些数据试验结果也是没什么差别的,所以就不再重复了.
[mw_shl_code=shell,true]NET=networks/GoogleNet-ILSVRC12-subset[/mw_shl_code]
如果真要得到更准确的数据,还需要自己真正的找一堆数据来分类,让学习结果更靠谱.
其他方面来说,系统是基于ARMv8的,真正的64位系统.
从sysbench结果来看,CPU性能大约是30倍于树莓派3B Plus @ ARMv7,主要得益于DDR4,CPU内核较好,且使用64bit指令集.
在连续执行识别操作,并运行stress耗尽CPU性能,再观察内部温度传感器,竟然如此凉快?当然,也许是因为大散热器的原因,但是,实际温度依然在缓慢上升,在实际使用中,最好是配备散热器的.
5分钟后的温度结果.
另外系统中配备了很多针对NV GPU优化的软件,这也是一大亮点.
并且是Unity桌面系统,尤其漂亮,只是比较吃GPU.
还内置了Docker,Python 3,Cuda支持,OpenGL支持,OpenCV支持,谷歌浏览器,文档编辑器,GCC7等,可以看作是比较完整的Ubuntu发行版.16G的TF写入后预计剩余空间都不足1G,推荐使用32G以上或者外挂储存.
如果给他定位成高端树莓派,那还是不值当的,毕竟人家擅长的是GPU啊.
最后来一个功耗实测,共同的测试条件:
  • 无USB设备
  • 无额外配件
  • 以太网有线连接(10Gbps)
  • SSH登录
  • 使用DC接口供电

测试结果,满载时为死循环识别图片(GPU)或使用stress耗尽性能(CPU):
  • 空载:0.533A @ 5.1V
  • CPU满载,GPU空载:1.117A @ 5.1V
  • GPU满载,CPU空载:2.133A @ 5.0V
  • CPU,GPU满载:2.838A @ 5.0V
  • CPU,GPU满载,且接入HDMI屏幕,HDMI屏幕独立供电:3.017A @ 5.0

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(8)
Mandy
Mandy
蛮好的
yoyojacky
yoyojacky
作者
回复Mandy
恩,谢谢~
qq819287927434
qq819287927434
这个板子关注好久了,但是没有玩过这类东西,一直不敢下手,我觉得或许先把英语学好更好
许培享
许培享
这个一定玩学
luna
luna
还欠骑驴大大一篇稿子,啊啊啊啊啊……我去站墙角了
yoyojacky
yoyojacky
作者
回复luna
一晃要 2020 年了....
gada888
gada888
PYNQ 不适合做AI项目,成本高,教程少。
gada888
gada888
DF商城什么时候引进这个板呀。望眼欲穿了。
yoyojacky
yoyojacky
作者
回复gada888
为啥不用PYNQ, 小粉红。。。
KIKI
KIKI
虽然我完全看不懂 不过字这么多 应该是很厉害把
yoyojacky
yoyojacky
作者
回复KIKI
没事,看不懂多看看,时间长了就都懂了。
yoyojacky
yoyojacky
作者
还有一个开箱视频。哈哈,最简单的开箱视频。请忽略我的处理过的音频。。哈哈
[media=x,500,375]https://v.youku.com/v_show/id_XNDIwMjU3NTIxNg==.html?spm=a2hzp.8253869.0.0[/media]
- 没有更多了 -