jetbot 01 从官方镜像开始搭建 pytorch 1.7 + opencv 4.5 开发环境

目录

 

一 jetbot 介绍 

二 初衷 

三 目标

四  准备工作

五 系统安装

5.1 下载10月份最新镜像

5.2 烧写 sd卡

 5.3 加电启动和基本系统 设置

5.4 创建交换分区

六 软件源设置与系统更新

6.1 apt 源

6.2 安装 python3-pip 并对pip 源进行设置

6.3 安装 numpy  scipy 等

七 jupyter notebook 

7.1 安装 

7.2 初始化配置和生成密码 

7.3 打开远程访问

7.4 验证

八  深度学习库部署

8.1 自带基础库

8.2 安装  pytorch 1.7 和 torchvision 0.8 

8.3 编译安装 opencv4.5 

九 系统clone 备份(自己选择过程节点备份)

9.1 清理垃圾

9.2 将tf 卡拨下连接到 开发 ubuntu 主机

9.3 备份

9.4 备份恢复到 tf 卡(需要的时候)


一 jetbot 介绍 

瞅一眼我的jetbot 小车长这样 (某宝上 XX智能的jetbot 散套件,咣咣一顿拆了装装了拆之后,终于 it works ..)

二 初衷 

       玩了一下机器人带的丰富的栗子。 给个赞,然后觉得不过瘾。。

       google 一下之后,各种大神的模型伸手摘来移植部署运行,人脸、文字、表情、姿势啊等因为依赖库版本不一致的冲突 几下就把系统搞乱了。 搞得 cuda 加速都运行不了。

不过比起大神们创造的惊喜这点折腾的困难算得了什么。

      让我感慨人工智能的发展真的是像追星赶月,成熟的框架在飞奔似的演进,优秀的模型也在后浪拍前浪式的颠覆中成长。而我,只有惊呆的份。

不禁想起了一幅太阳带着众星奔跑的场景。。。

   上船,踏在巨人们的肩膀上, 从搭建环境开始!

三 目标

      主流的框架真的很多,我了解到的 jetson  nano 平台上可以利用框架就有 cuda, cudnn, tensortRT , tensorflow , caffe , pytorch , keras , mxnet , onnx  opencv等。

      感觉是 pytorch 比较火,训练的模型还可以转换成 tensorRT 在 jetson 系列下获得开挂般的性能。所以计划是:

                A  使用 jetson nano 最新的官方镜像( jetPack 4.4.1 带 cuda 10.2 )  + pytorch 1.7 + torch vision 0.8 + opencv4.5  搭建一套基础开发环境 (本篇的目标)

                B  从好玩的实例入手,开始品尝 the state of art ...  (会把很多模型折腾一下,学会使用)

                C  把 jetbot 小车 驱动 车轮马达 ,镜头舵机的部分移植过来,让 robot 活动起来

                D  做一些好玩的实用的例子。

 tensortRT 的性能贴个别人的对比表格:

图片来源:

https://blog.csdn.net/jacke121/article/details/104515102

后记:

      最新版本的路线坑不少,我验证的 github 上的 一大半 models 都跑不起来, 要折腾  :)  。爬坑有挑战, 供参考。

 

四  准备工作

      准备多张 64g tf 卡, 读卡器, 建议 class 10 以上的保证速度

      开发机上需要一张 nvidia 的显卡, 用来训练 模型 , 我搞了个入门级的 gtx 1080 (训练环境的搭建下节介绍 ),

      这个显卡的配置是8G空间,FP16 算力是 9 TFLOPS (jetson nano 为 0.5 tflops )

五 系统安装

5.1 下载10月份最新镜像

从这里进入:

    https://developer.nvidia.com/embedded/downloads

要登陆认证一下

 

5.2 烧写 sd卡

linux 下烧写比较简单, sd卡 通过读卡器连接到系统之后 一顿 dd 操作即烧写完成

如 sd卡识别为 /dev/sdc ((慎重不要找错设备名,通过 fdisk -l 确认), 如下操作:

# 首先解压下载的镜像,得到 b01_blob_4g.img 
dd if=/dev/zero of=/dev/sdc bs=1M count=1  # 抹掉分区表
dd if=b01_blob_4g.img of=/dev/sdc bs=10M # 烧写镜像,12G, 与tf容量不一致等开机后根据菜单提示再扩。

 5.3 加电启动和基本系统 设置

tf 卡插到 jetson nano 核心板,先连接hdmi 屏幕和键盘, 启动后通过键盘完成系统基本安装 基本上根据菜单提示完成:

    创建用户

    resize 分区为64g

    连接WIFI (jetbot 套件带了一个 mini-PCIE的 wifi, 可自行购买 usb 的无线网卡)

5.4 创建交换分区

# 交换空间很有必要,避免安装库和运行模型时空间不够系统  OOM 死掉

fallocate -l 8G /swap0

chmod 600 /swap0
sudo mkswap /swap0
sudo swapon /swap0
echo "/swap0 swap swap defaults 0 0" >> /etc/fstab

然后重启

六 软件源设置与系统更新

6.1 apt 源

添加以下部分到 /etc/apt/sources.list 

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

添加完以后运行:

apt update 
# 选择性的删除一些无用的软件 
# apt remove libreoffice*
apt upgrade -y # 系统更新到最新,可以不更新

6.2 安装 python3-pip 并对pip 源进行设置

apt install python3-pip -y 
mkdir ~/.pip 
#写入以下内容到 ~/.pip/pip.conf 
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com

6.3 安装 numpy  scipy 等

使用pip3 安装 ,并验证下速度

pip3 install numpy scipy matplotlib 

七 jupyter notebook 

jupyter 是一个可远程通过网页开发和调试运行python 代码的工作,非常方便!推荐一下

7.1 安装 

pip3 install  jupyter 

 

7.2 初始化配置和生成密码 

jupyter notebook --generate-config
jupyter notebook password
Enter password:  ****
Verify password: ****

7.3 打开远程访问

# 打开 ~/.jupyter/jupyter_notebook_config.py 文件, 并修改以下部分

c.NotebookApp.ip = '*'
c.NotebookApp.allow_root = True
c.NotebookApp.port = 8888

7.4 验证

#jetboot 上 shell 执行:
jupyter notebook 

八  深度学习库部署

8.1 自带基础库

JetPack 4.4.1 镜像 自带了以下基础库:

    cuda 11.0 cudnn 11.0  tesnorRT , vision works ,  gstreamer , opencv 4.1.1 

 

8.2 安装  pytorch 1.7 和 torchvision 0.8 

pytorch 下载 whl版本安装 

https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-7-0-now-available/72048

下载好 pytorch_1.7.whl 之后 :

pip3 install  pytorch_1.7.whl  # 科鞋上网,下不下来就用源代码安装吧,我就用的源码编译了两三个小时

torchvision 编译安装 :

git clone -b release/0.8.0  https://github.com/pytorch/vision.git vision_0.8.0
cd vision_0.8.0 && python3 setup.py install  # 遇到错误说找不到 libavcodec,  
                                             # apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev 之后 
                                             # 再重新 python3 setup.py install 

8.3 编译安装 opencv4.5 

从官网下载 opencv-4.5.0.zip  opencv_contrib-4.5.0.tar.gz

解压 opencv-4.5.0.zip , 把 opencv_contrib-4.5.0.tar.gz 解压到 opencv-4.5.0 目录中

4.5 发布了很多新的 features, 这个博文介绍的挺好:

https://blog.csdn.net/amusi1994/article/details/109108385

编译流程:

cd opencv-4.5.0
mkdir build
cd build 
#创建 build.sh , 以下内容
cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_PNG=ON \
    -DBUILD_TIFF=ON \
    -DBUILD_TBB=OFF \
    -DBUILD_JPEG=ON \
    -DBUILD_JASPER=OFF \
    -DBUILD_ZLIB=ON \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=OFF \
    -DBUILD_opencv_python3=ON \
    -DENABLE_PRECOMPILED_HEADERS=OFF \
    -DWITH_OPENCL=ON \
    -DWITH_OPENMP=OFF \
    -DWITH_FFMPEG=ON \
    -DWITH_GSTREAMER=ON \
    -DWITH_GSTREAMER_0_10=OFF \
    -DWITH_CUDA=ON \
    -DWITH_GTK=ON \
    -DWITH_VTK=OFF \
    -DWITH_TBB=ON \
    -DWITH_1394=OFF \
    -DWITH_OPENEXR=OFF \
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
    -DCUDA_ARCH_PTX="" \
    -DINSTALL_C_EXAMPLES=OFF \
    -DOPENCV_ENABLE_NONFREE=ON \
    -DINSTALL_TESTS=OFF \
    -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.0/modules \
    -DCMAKE_INSTALL_PREFIX=/usr/ \
    .. 

make -j4 
make install 

#执行 build.sh
chmod +x build.sh 
nohup build.sh > build.log & 
# 过程比较长,我是在板子里让它跑了一晚上

九 系统clone 备份(自己选择过程节点备份)

9.1 清理垃圾

apt-get clean 
# 删掉无用的安装包文件 略

9.2 将tf 卡拨下连接到 开发 ubuntu 主机

9.3 备份

dd if=/dev/sdc bs=10M | bzip2 >  jetbot_jetpack4_4_1.img.bz2

 

9.4 备份恢复到 tf 卡(需要的时候)

dd if=/dev/zero of=/dev/sdc bs=1M count=1 # 擦除分区表
bzip2 -dc jetbot_jetpack4_4_1.img.bz2  | dd of=/dev/sdc

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walletiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值