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.youkuaiyun.com/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.youkuaiyun.com/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

 

<think>好的,我现在要帮用户在Anaconda环境下安装和配置YOLOv1。首先,我需要回忆一下YOLOv1的相关信息,因为用户可能对YOLOv1不太熟悉,或者可能混淆了版本。YOLOv1是比较早期的版本,可能依赖的环境和后续版本不同,所以需要特别注意。 用户已经提到他们参考了三个引用,都是关于Anaconda的环境创建和换源的步骤。所以,我应该先考虑如何正确创建环境,配置国内镜像源,然后处理YOLOv1的安装步骤。不过YOLOv1本身可能没有直接通过pip或conda安装的包,可能需要从源码安装,所以需要指导用户克隆仓库、安装依赖等步骤。 首先,用户需要在Anaconda中创建一个独立的环境。根据引用[1],建立独立环境可以避免冲突。所以第一步应该是创建环境,比如命名为yolov1_env,并指定Python版本,可能YOLOv1需要Python 2.x还是3.x?这里可能需要确认。假设用户使用Python 3.6或3.7,因为较新的框架可能不支持旧版本,但YOLOv1是2016年的,可能用Python 2.7?不过现在很多用户可能已经用Python 3了,可能原作者可能有兼容版本,或者用户需要调整代码。这里可能需要建议用户查看YOLOv1官方文档或者仓库的说明,但用户可能没有明确说明,所以可能需要给出一个常见的Python版本,比如3.6。 接下来,引用[2]和[3]提到了换源的步骤,需要配置conda的镜像源,比如清华源,以加快下载速度。所以接下来应该指导用户配置conda的channels,使用清华的镜像源。 然后,激活环境,安装必要的依赖。YOLOv1可能需要的依赖包括PyTorch或TensorFlow?或者可能基于Darknet?需要确认。例如,原版YOLOv1是使用Darknet框架的,所以可能需要安装C语言的环境,或者如果是其他实现,可能用不同的框架。这里可能需要用户从GitHub克隆某个仓库,比如作者实现的版本,例如AlexeyAB的darknet或者其他人的PyTorch实现。因此,用户可能需要先安装CUDA、cuDNN(如果使用GPU),或者仅CPU版本。这部分可能需要分情况讨论,但用户的问题可能更侧重于环境配置,而不是具体的深度学习框架安装,所以可能需要简要说明。 另外,安装依赖时可能需要用到pip或者conda安装包,比如numpy、opencv-python、matplotlib等。同时,可能需要安装PyTorch或TensorFlow,根据实现的版本不同。例如,假设用户克隆了一个PyTorch实现的YOLOv1,那么需要安装对应版本的PyTorch。因此,需要指导用户使用conda或pip安装这些包,并注意版本兼容性。 然后,下载预训练权重(如果有的话),或者训练自己的模型。但安装配置可能不包括训练部分,所以可能只需要指导用户正确安装环境,确保代码可以运行。 接下来,验证安装是否成功,可能运行一个测试脚本或者检查是否有导入错误。 最后,相关问题可能需要涉及环境冲突解决、依赖安装失败处理,或者训练YOLOv1的数据集准备等。 现在需要考虑步骤是否合理,是否存在遗漏。例如,是否需要安装CMake、OpenCV等库?可能取决于具体的代码实现。用户可能需要从源码编译Darknet,这时候需要Makefile的配置,或者修改Makefile中的参数,如GPU、CUDNN等。例如,Darknet的编译步骤通常需要执行make命令,因此用户可能需要安装gcc、make等工具,尤其是在Linux环境下。如果用户使用的是Windows,可能需要不同的步骤,比如使用CMake和Visual Studio。但用户的问题可能是在Anaconda环境下,可能更倾向于使用conda安装这些构建工具。 因此,可能的步骤是: 1. 创建conda环境。 2. 换源以加速下载。 3. 激活环境,安装必要的依赖,如Python、numpy、opencv等。 4. 安装深度学习框架,如PyTorch或TensorFlow,根据YOLOv1的实现版本。 5. 克隆YOLOv1的代码仓库。 6. 编译或配置代码(如果需要,比如Darknet需要make)。 7. 下载预训练模型。 8. 测试安装。 但用户的问题是关于安装和配置,可能主要集中在环境设置和依赖安装,所以需要详细说明这些步骤,尤其是conda环境的创建和换源,因为用户提供的引用都涉及这些内容。 可能的问题:用户可能不知道YOLOv1的具体代码仓库在哪里,所以可能需要建议他们寻找可靠的源码,比如GitHub上的某个项目,并给出示例的git clone命令。但需要注意,不能随便推荐第三方仓库,可能存在风险,所以可能需要提醒用户查找官方或可信的来源。 综上,整理步骤: 1. 创建conda环境:conda create -n yolov1_env python=3.6 2. 配置conda的清华源,根据引用[3]的步骤。 3. 激活环境:conda activate yolov1_env 4. 安装依赖,可能包括pytorch, torchvision, opencv-python, numpy等,用conda或pip安装。 5. 克隆YOLOv1的代码仓库:git clone [url] 6. 进入目录,安装其他依赖或编译(如果有必要)。 7. 下载权重文件。 8. 测试。 在回答中需要将这些步骤详细写出,并注意可能的错误点,如Python版本冲突、依赖包版本问题等。同时,引用用户提供的三个引用中的步骤,比如换源和创建环境。 可能的相关问题包括如何解决环境依赖冲突,如何配置CUDA支持,如何训练YOLOv1模型等。</think>### 在Anaconda环境下安装和配置YOLOv1的步骤 #### 1. 创建独立的Conda环境 为避免与其他项目冲突,建议先创建一个独立环境: ```bash conda create -n yolov1_env python=3.6 # 根据YOLOv1代码要求选择Python版本 conda activate yolov1_env ``` [^1] #### 2. 配置Conda国内镜像源 加快依赖包下载速度: ```bash conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes ``` [^3] #### 3. 安装基础依赖包 根据YOLOv1的实现框架选择安装: - **若使用PyTorch实现**: ```bash conda install pytorch=1.7 torchvision cudatoolkit=10.2 -c pytorch # 根据GPU情况调整CUDA版本 ``` - **若使用Darknet框架**: ```bash conda install opencv numpy matplotlib git clone https://github.com/pjreddie/darknet # 官方Darknet仓库 cd darknet make # 修改Makefile中的GPU/CUDNN配置后编译 ``` #### 4. 获取YOLOv1代码和权重 ```bash git clone https://github.com/your_fork/yolov1 # 替换为实际仓库地址 wget http://path/to/pretrained_weights.weights # 下载预训练权重 ``` #### 5. 验证安装 运行测试命令检查环境是否正常: ```python python detect.py --weights pretrained_weights.weights --image test.jpg ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

walletiger

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

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

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

打赏作者

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

抵扣说明:

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

余额充值