前言: 最近拿到一块jetson nano 2GB版本的板子,折腾了一下,从烧录镜像、修改配件等,准备一篇开箱基础文章给大家介绍一下这块AI开发板。 作者:良知犹存 转载授权以及围观:欢迎关注微信公众号:羽林君 或者添加作者个人微信:become_me Jetson nano初步介绍:Jetson Nano是Nvidia在TX2和Xavier获得成功后推出的低配版GPU运算平台。在官方的资料上,Jetson Nano公布的参数如下: 技术规格:包含了一块128核Maxwell架构的GPU,虽然已经是几代前的架构,不过因为用于嵌入式设备,从功耗、体积、价格上也算一个平衡。Nano的计算能力不高,勉强可以使用一些小规模、并且优化过的网络进行推理,训练的话还是不够用的。 内存减半这种情况确实让人有些顾虑,官方的主要应对措施是换用更轻量的桌面环境LXDE。这个已经在10月21日刚发布的JetPack 4.4.1镜像中提供。 那么这块板子能帮我们实现是什么呢?
Jetson Nano 2GB Developer Kit虽然与4GB的nano相比,将内存容量砍半,但价格却锐减40%,对于用这款开发组件作为入门学习教材的用户来说,是个相当划算的取舍,笔者也将在这篇文章中分析2种版本的硬件规格差异,以及实际性能比较。 Jetson Nano 2GB Developer Kit开宗明义的目标就是推广教育市场,所以在推出破盘“学生价”的同时,也不会将规格阉割太多,以免影响到功能与应用。 Jetson Nano 2GB Developer Kit(文中以2GB版简称)与原版Jetson Nano Developer Kit(文中以原版简称)最大的差别,当然就是名称所暗示的2GB版仅搭载2GB内存,而原版则是搭载4GB,两者除了容量有所差异外,在信道宽度与时脉、带宽方面则皆相同,此外两者的处理器、绘图处理器也都相同,因此可以预期执行小型程序的性能并不会有太大落差,但2GB版可能会因内存容量不足,在执行大型程序的时候需要通过Swap(Linux的换置空间,可以理解为虚拟内存)来存储程序资料,进而影响性能。 另一个可能会影响使用的规格,则是摄影机的连接端子。最初期的原版只有1组MIPI CSI-2端子,后期增加为2组,而2GB版则改回1组,因此只能同时连接1组MIPI CSI-2接口摄影机。 除此之外2GB版也取消了M.2 Key E无线网络模块插槽、DisplayPort图片输出端子,并将4组USB 3.2 Gen1改为1组USB 3.2 Gen1加2组USB 2.0,这个改变对创客来说可能影响不大,但对想将Jetson Nano Developer Kit当成迷你计算机、多媒体娱乐机的用户来说影响就会比较大。 最后2GB版将电源输入由5V DC插座改为USB Type-C端子,这个对于许多用户来说或许更为方便,可以视为正面的功能改进。 至于和Raspberry Pi 4或是Coral Dev Board等定位相近的产品相比,2GB版不但维持性能领先的优势,更在降价后增加了价格竞争力。另一方面,2GB版依然与原版相同能够支持CUDA绘图处理器加速运算,以及TensorFLow、PyTorch、Caffe、MxNet等业界常见,甚至应用于大型运算中心的软件框架,对于学习程序开发来说相当吃香。虽然2GB版的价格比Raspberry Pi 4贵,但是性能、功能、支持的软件框架都更强大。 根据NVIDIA官方提供的性能对照表,2GB版在不同AI软件的性能表现能达到Raspberry Pi 4的数十倍之谱。(图中将Raspberry Pi 4的性能表现标准化为1) 在操作系统部分,笔者使用NVIDIA提供的最新版本Jetson Nano镜像文件,安装完成后会发现它的桌面环境改为LXDE18.04,与先前的Ubuntu接口有些许不同,但是整体操作仍相当接近。 值得注意的是,在第一次开机的初始设置过程中,系统会建议用户激活Swap功能,若选择默认选项,系统则会自动创建容量约为4.95GB的换置空间,以在主内存容量不足的时候存储资料,发挥虚拟内存的功效。不过由于Swap的实际路径为microSD内存卡,所以带宽与访问性能将受到很大的限制,而且反复访问也可能会加速耗损内存卡寿命。 Jetson Nano可以运行各种各样的高级网络,包括流行的ML框架的完整原生版本,如TensorFlow,PyTorch,Caffe / Caffe2,Keras,MXNet等。通过实现图像识别,对象检测和定位,姿势估计,语义分割,视频增强和智能分析等强大功能,这些网络可用于构建自动机器和复杂AI系统。 多流视频分析,Jetson Nano可实时处理多达8个高清全动态视频流,并可部署为网络视频录像机(NVR),智能相机和物联网网关的低功耗边缘智能视频分析平台。NVIDIA的DeepStream SDK 使用ZeroCopy和TensorRT优化端到端推理管道,以在边缘和本地服务器上实现最佳性能。下面的视频显示了Jetson Nano在8个1080p30流上同时执行物体检测,基于ResNet的模型以全分辨率运行,吞吐量为每秒500万像素(MP / s)。 下图显示了在线提供的流行模型的推理基准测试结果。有关在 Jetson Nano上运行这些基准测试的说明,请参见 此处。推理使用批量1和FP16精度,采用 JetPack 4.2附带的NVIDIA TensorRT加速器库。Jetson Nano在许多场景中都具有实时性能,能够处理多个高清视频流。 2GB版与4G原版的性能表现相差无几,并没有因为是阉割版而有明显落差,表现可以说让人相当满意。其中原因不外乎是双方的处理器、绘图处理器规格完全相同,且也都可以使用10W的电力模式,让彼此在运算性能部分可以有一样的表现。 从双方的规格差异来看,会造成整体性能落差的主要因素,仍在程序的内存消耗量,而Jetson Benchmarks工具可能没有触碰到该瓶颈。若程序使用超过2GB的内存,系统就需要将部分资料存储于Swap,将形成访问性能瓶颈,并影响整体性能表现。 由于2GB版的目标用户群体为AI程序与AIoT设备的入门者,撰写大型程序的机会不大,因此考量价格与性能的平衡,这样确实是不错的取舍,很适合教育单位或初学者选用。 介绍完使用场景以及一些性能分享,接下来给大家介绍一下硬件信息 大家可以在官网里面搜索对应的开发板,查看对应的接口信息,点击下面的网站 https://developer./embedded/learn/getting-started-jetson#support 我使用的是2GB的版本,所以我里面选择了 选中之后我们就可以看到板子详细的硬件信息。或者大家可以直接用这个传送门查看信息。 详细的硬件信息介绍,配合上图给大家介绍一下这块板子,硬件一一对应的位置:
40 针接头 (J6)40 引脚接头提供对电源、接地和接口信号引脚的访问。 电源引脚 有两个 3.3V 电源引脚和两个 5V 电源引脚。这些是不可切换的;当开发人员套件连接到电源时,电源始终可用。 两个 5V 引脚可用于以每个 2.5A 的电流为开发人员套件供电。(不要同时通过这些引脚和 USB-C 连接器为开发人员套件供电。) 接口信号引脚 所有信号使用 3.3V 电平 默认情况下,所有接口信号引脚都配置为 GPIO,支持 I2C 和 UART 的除外 12 针按钮接头 (J12)该头提供 GPIO 来控制板的状态。我们额外加的套件的外壳可以连接到此接头。
8 针按钮接头 (J11)这是一个备用的 8 针 (2x4) 按钮接头,可焊接在载板上的位置 J11 上,并用作主按钮接头的替代。 标题详细信息:
4 针风扇接头 (J7)J7 位置的 4 针风扇控制接头的引脚排列如下所示。 接头可支持 3 针风扇连接(GND、PWR 和 TACH)或 4 针风扇连接(GND、PWR、TACH 和 PWM)。使用具有 PWM 功能的风扇允许软件根据需要调整风扇的速度。仅支持 5V 风扇。
控制风扇
耗电量 开发工具包的总功耗是载体板、模块和外围设备功耗的总和,由您的特定用例决定。 Jetson模块有两种软件定义的电源模式。电源模式可以通过桌面右上角的UI界面进行切换,也可以按照L4T电源管理指南进行切换。 两种模块电源模式为: 10W-更高性能的默认模式 5W-建议减少能源使用 摄像头照相机 有关Jetson生态系统支持的摄像头的完整列表,请访问我们的合作伙伴支持的摄像头页面。 所有与Jetson Nano显影剂套件和Jetson Xavier NX显影剂套件兼容的MIPI CSI-2相机也将与Jetson Nano 2GB显影剂套件配合使用。
安装软排线摄像头模块要安装摄像头模块,请将其柔性带状电缆连接到摄像头连接器(J5)中。遵循以下步骤:
至于USB摄像头,大家可以直接插入USB端口即可。 烧录镜像使用初体验需要准备:
首先我拿到的nano2g版本是只有板子的,如果要板卡运行起来,我还需要准备一张64G的闪迪(建议用闪迪,因为有些内存卡不支持nano),用来烧录nano的镜像,此外还需要一根给板卡供电的type-c端口的电源适配器,大家也可以用现在支持3a或者4a的手机充电器配一个type-c端口的线。 这里要注意自己板子的版本
最好在烧系统前格式化SD卡一下,即 SD Card formatter(官网推荐) 连接外设(鼠标、键盘、显示器)并启动,这里如果我们要进行屏幕显示的启动,除了连接的HDMI显示器,鼠标和键盘也是必须要连接的,在Jetson Nano 2GB Developer Kit里面有描述。 通过这张图,大家可以清晰看到要是启动display,则Monitor, keyboard and mouse是必须的。
最终启动效果如图: 配件使用
排插位置,以及对应的丝印的电源和GND位置: 实际安装情况: 安装之后检测一下CPU温度情况:这部分我们使用了jetson-stats这个包,此外我们也可以使用lm-sensors进行查询CPU实时温度。jetson-stats是一个软件包,用于监测和控制Nvidia Jetson设备的,其中jtop可以实时监测温度; 安装: sudo apt-get install python-pip 使用:jtop 命令 这个时候在右下角,我们可以看到CPU温度在23.5摄氏度,这个是一个正常温度,而在没有风扇散热情况下,板卡待机的CPU温度能达到33摄氏度。所以还是很有效的散热。 此外因为板卡有时候需要进行下载东西以及进行远程调试,所以我们最好加一个wifi模块,方便我们的工作。
说到远程桌面,可能大家会比较熟悉VNC Viewer这个软件。这里我们介绍如何配合Jetson Nano的 Desktop功能来远程访问。首先,下载并安装VNC Viewer软件到你的电脑上。(这里是下载链接) 需要先用HDMI屏幕和键盘等链接到Jetson Nano
sudo apt install vino
sudo ln -s ../vino-server.service /usr/lib/systemd/user/graphical-session.target.wants 配置VNC server: gsettings set org.gnome.Vino prompt-enabled false gsettings set org.gnome.Vino require-encryption false 编辑org.gnome,恢复丢失的“enabled”参数,输入一下命令进入文件,将下方key内容添加到文件的最后面。保存并退出。 sudo vi /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml 设置为Gnome编译模式 sudo glib-compile-schemas /usr/share/glib-2.0/schemas 现在屏幕共享面板在单位控制中心工作…但这并不足以让vino运行!所以您需要在会话启动时添加程序:Vino-server,使用以下命令行: /usr/lib/vino/vino-server 这种是属于手动启动,如果每次都需要手动启动会比较麻烦下面会设置开机自启动的形式。
gsettings set org.gnome.Vino authentication-methods '['vnc']' gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64)
sudo reboot
VNC服务器只有在您本地登录到Jetson之后才可用。如果您希望VNC自动可用,请使用系统设置应用程序来启用自动登录。 gsettings set org.gnome.Vino enabled true mkdir -p ~/.config/autostart vi ~/.config/autostart/vino-server.desktop 将下面的内容添加到该文件中,保存并退出。 [Desktop Entry] Type=Application Name=Vino VNC server Exec=/usr/lib/vino/vino-server NoDisplay=true 如果系统设置为需要输入用户密码才可以进入桌面,以上的改脚本需要等进入桌面后才会启动,建议将系统设置为用户自动登录到桌面。
下载安装vnc deb包,链接 启动vnc界面,输入对应IP 进行连接: 结果如图: nano使用介绍以及资料分享:镜像完成安装了,使用的基本配套工具也准备好了,那么我们该怎么进行nano的使用呢?下面就给大家分享一些nano使用中,我们可以参考的学习资料,方便大家进行学习使用。 官方资料首先进入官网最开始的nano介绍网页,里面就有对应的学习引导: 里面有AI的部分,有配合的机器小车的教程。 官方 Jetson Nano Developer Kit User Guide 技术论坛:https://developer./embedded-computing 还有jetson nano本身对应的社区,比如jetson projects以及专门tutorials jetsontutorials jetson项目 https://developer./embedded/community/jetson-projects 详细嵌入式开发指导说明: https://docs./jetson/archives/l4t-archived/l4t-325/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/introduction.html#wwpID0E3HA JetBot NVIDIA JetBot是一个新的开源自动机器人套件,它提供了所有软件和硬件计划,以低于250美元的价格构建一个人工智能的深度学习机器人。硬件材料包括Jetson Nano,IMX219 800万像素摄像头,3D打印机箱,电池组,电机,I2C电机驱动器和配件。https:///master/index.html 国内的一些资料创客智造:jetson https://www./search/jetson/ 微雪:jeston nano官方网页里面显示,微雪是nano的国内合作伙伴。https://www./wiki/Jetson_Nano_Developer_Kit 作者:良知犹存,白天努力工作,晚上原创公号号主。公众号内容除了技术还有些人生感悟,一个认真输出内容的职场老司机,也是一个技术之外丰富生活的人,摄影、音乐 and 篮球。关注我,与我一起同行。 |
|