Nvidia Jetson Nano 初体验

人工智能与算法增长营销数据中台

picture.image

Nvidia 今年 GTC 上推出价格仅 99$ 的开发板——Jetson Nano,本文将介绍如何开始使用它,包括首次启动,安装系统软件包,配置 Python 开发环境,安装 Keras 和 TensorFlow,修改默认相机,以及运行分类和目标检测任务。希望你读完之后能避免一些坑。

Jetson Nano 是一款具有 472 GFLOPS 半精度计算能力的端上 AI 开发板,内置 128 个 Maxwell 架构 CUDA 核心。板卡外观如下图所示:

picture.image

硬件数据手册:

picture.image

从资源上看相当于 Jetson TX1 的阉割版,无太多亮点。主要是便宜,千元以下的开发板里面算得上中规中矩。

最近国外一小哥 Adrian Rosebrock 拿到了 Jetson Nano 板卡并第一时间做了测试,跑通了完整的流程,后面步骤摘自小哥的笔记。点击“原文链接”可以看小哥的原始文章。国内有朋友从某宝下单,至今还没发货,手头有货的朋友可以验证下本文步骤是否流畅。

01

准备工作

开始之前需要准备好以下三样东西:

  1. 一个 Micro-SD 卡,容量至少 16 GB,推荐 32 GB;

  2. 5V 2.5A Micro USB 供电线;

  3. 网线(吐槽下,既然标榜自己是 IoT 和边缘计算设备,为毛连个 WiFi 接口都没有?!);

02

刷机

拿到板卡后需要先刷机,之后才能安装软件运行 demo。我们需要从 Nvidia 官网下载 Jetson Nano 开发包 SD 卡镜像。镜像压缩包大约 5 GB 多一点,解压后 12 GB,这也是为什么需要准备一张至少 16 GB 的 Micro-SD 卡,太小的话刷机会出问题。镜像链接:

https://developer.nvidia.com/embedded/dlc/jetson-nano-dev-kit-sd-card-image

下载后解压,在 Linux 上可以用 dd 命令将 img 文件写入 SD 卡。使用 Windows、MacOS 的步骤有所不同,具体请参考官网链接:

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write

03

首次启动

把 Micro-SD 卡插入插座。插座在散热片下面,如图这个位置。(吐槽下,这个鬼地方真的很难找)。

picture.image

插好 SD 卡,接上电源线、网线、显示器,启动板卡。 具体操作步骤:

picture.image

过一会出现如图画面:

picture.image

看到桌面说明启动成功。

04

安装软件

先安装基本工具和库(保证网络连接顺畅):

1
2
3
4
$

sudo apt

get

install git cmake

$

sudo apt

get

install libatlas

base

dev gfortran

$

sudo apt

get

install libhdf5

serial

dev hdf5

tools

$

sudo apt

get

install python3

dev |

配置 Python 环境(pip、virtualenv):

1
2
3
$

wget https :// bootstrap .pypa.io / get

pip .py

$

sudo python3 get

pip .py

$

rm

get

pip .py |

使用 virtualenv 好处是让我们的开发环境和其他系统环境互不影响。

1
$
sudo pip install virtualenv virtualenvwrapper

修改 ~/.bashrc,末尾增加如下内容:

1
2
3
4
virtualenv and virtualenvwrapper
export WORKON_HOME

$HOME / .virtualenvs

export VIRTUALENVWRAPPER_PYTHON =/ usr / bin / python3

source / usr / local / bin / virtualenvwrapper .sh |

运行如下命令让设置生效:

1
$

source ~/ .bashrc |

现在可以运行 mkvirtualenv 命令创建一个虚拟 Python 环境。以下命令创建了一个名为 deep_learning 的虚拟环境,解释器为 Python3:

1
$

mkvirtualenv deep_learning

p

python3 |

运行 workon 命令,使能上面创建的虚拟环境:

1
$

workon deep_learning |

在虚拟环境中安装 Numpy:

1
$

pip install numpy |

安装 TensorFlow 一定不能用 pip install tensorflow-gpu ,Nvidia 官方提供 Jetson Nano 上编译好的 TensorFlow,运行如下命令:

1
$

pip

install

extra

index

url
https :// developer .download.nvidia.com / compute / redist / jp / v42 tensorflow

gpu

1.13.1 + nv19 . 3 |

最后安装 scipy 和 Keras,步骤和 x86 平台相同:

1
2
$

pip install scipy

$

pip install keras |

05

运行 Demo

我们可以通过以下命令在 Jetson Nano 上编译安装 Jetson Inference Engine:

1
2
3
4
5
6
7
8
$

git clone

https :// github .com / dusty

nv / jetson

inference

$

cd

jetson

inference

$

git submodule

update

init

$

mkdir

build

$

cd

build

$

cmake

..

$

make

$

sudo make

install |

注意 cmake 阶段会下载几个 GB 的模型文件,尽量保证 SD 卡空间充足,32 GB 比较稳妥。

使用 Jetson Nano 摄像头时你有两个选择:

  • CSI 相机模组(可以直接用树莓派的摄像头模组,接口兼容);

  • USB webcam(本文使用这个);

编译好的 Jetson Inference Engine 有以下几个样例,位于 jetson-inference :

  1. detectnet-camera:目标检测样例,使用摄像头输入;

  2. detectnet-console:目标检测样例,使用图片输入;

  3. imagenet-camera:图片分类样例,使用摄像头输入;

  4. imagenet-console:图片分类样例,使用图片输入;

  5. segnet-camera:语义分割样例,使用摄像头输入;

  6. segnet-console:语义分割样例,使用图片输入;

除此之外还有其他样例,如深度图估计和图像超分辨率。

每个样例代码中,DEFAULT_CAMERA 值为 -1 表示使用 CSI 相机模组,改为 0 表示使用 USB 摄像头。修改后需要重新编译:

1
2
3
$

cd

.. / build

$

make

$

sudo make

install |

编译完成后,到 aarch64/bin 目录可以看到样例的可执行程序。直接运行即可。

实测 image classification 在输入分辨率 1280x720 时速度为 10 FPS,object detection 则为 5 FPS。这个性能还算可以。

Nvidia 官方给出的 Jetson Nano 性能如下图所示:

picture.image

如果你手头还没有板卡,可以到 Nvidia 官网链接了解更多购买信息:

https://developer.nvidia.com/embedded/buy/jetson-nano-devkit


picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论