最近实验需要算法落地,于是某宝买了台nvidia jetson nano,因为Jetson Nano 官方采用的是 aarch64 架构的Ubuntu 18.04.2 LTS 系统,所以习惯x86_64之后,安装软件或是运维起来比较吃力,踩了不少坑。今天就把从烧录系统到测试环境整个过程记录下来,大多是参考。
一分价钱一分货,这种嵌入式开发板功能足够运行比如人脸识别、车牌检测、导向标识识别等简单场景,如果运用到自动驾驶、无人机等领域,请右转Nvidia Jetson TX2。
目录
烧录系统
更新源
检查CUDA/cuDNN等
安装tensorflow-gpu
安装keras
几个问题
怎么联网
怎么数据传输
速度如何
这部分参考https://blog.csdn.net/beckhans/article/details/89136269
镜像地址https://developer.nvidia.com/embedded/downloads,把下载地址拷贝到迅雷下载,不然太慢
网上大多是把软件源换成了中科大的源,但是据说有些软件会缺失,这里用的是清华源,验证可行。
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
参考https://blog.csdn.net/beckhans/article/details/89138876
安装依赖库
sudo apt-get install python3-pip python3-dev
更新pip到19.0.3(看博客都是19.0.3,都说有个bug,写记录时已经20.x版本了,不晓得bug修复了吗)
python3 -m pip install pip==19.0.3
修改Bug
sudo vim /usr/bin/pip3 #打开pip3文件
修改为:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
安装一些重要的包
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-sklearn
numpy和matplotlib会被自动安装。
开始安装tensorflow-gpu
安装一些依赖包
sudo apt-get install python3-pip libhdf5-serial-dev hdf5-tools
下载tensflow-gpu
nvidia官网下载地址:https://developer.download.nvidia.cn/compute/redist/jp/v42/tensorflow-gpu/
我下载的tensorflow_gpu-1.13.1+nv19.3-cp36-cp36m-linux_aarch64.whl,下载地址拷贝到迅雷下载。
这里的pip可以换源,因为是aarch架构,所以有些源可能不太友好....这里用的是清华源,可行。不换的话访问国外,速度会非常慢。
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
先要安装Cython,直接安装tf会有错误
pip3 install Cython
开始安装tensorflow,过程会比较漫长,如果没有报错,那么恭喜你!
pip3 install tensorflow_gpu-1.13.1+nv19.3-cp36-cp36m-linux_aarch64.whl --user
测试
#python3
>>>import tensorflow as tf
>>>print(tf.__version__)
1.13.1
如果报错是关于numpy,那么可能是numpy版本有些低,更新numpy
pip3 install --upgrade numpy
有了tensorflow做支持,keras安装起来也比较方便了
pip3 install keras==2.1.5
测试
>>>import keras
Using TensorFlow backend.
nano本身不带wifi模块,所以想要上网需要自己解决,比如买一块无线网卡,不过对于上手心切(不舍得花钱)的人来说,手机usb共享网络基本能满足需求(把主要软件源改成国内源)。
U盘、移动硬盘即可,不过对于一些小文档,频繁插拔确实挺烦,因为我有一台阿里云的服务器,开启了ftp服务,所以对于一些小文档、工程项目我都是通过ftp服务传输。
使用opencv自带的人脸分类器+三层卷积和一层全连接,进行人脸的性别检测,平均每张人脸检测速度112fps。
使用原生YOLO v3平均1.1fps。
如果你要进行目标识别,且目标特征较为明显、尺度较大,采用yolov3_tiny或是换个backbone,比如MobileNet等。速度有较大提升。