在jetson xavier nx上制作docker镜像

news/2024/11/28 23:42:55/

概览:

    • 一、docker简介
    • 二、在jetson xavier nx上制作docker镜像

一、docker简介

  1. 用途:对于一项工程,不同的机器都需要单独为其配置环境,且有时配环境是一件相当麻烦的事情。那么,有没有一种方法可以把工程代码和其所需的环境配置一同发布呢?——Docker。有了Docker,我们就可以开发部署一套流程走完~Docker文档链接

  2. 历史:2010年,在美国成立了一家公司,名为dotCloud,该公司把研究的一项容器化技术命名为Docker,Docker刚刚诞生的时候并没有引起行业的注意;2013年,Docker开源,由于其实用性受到广大用户的喜爱。Docker链接

  3. 更具体的像如何安装docker以及docker命令等这里不细讲,推荐一个视频

二、在jetson xavier nx上制作docker镜像

  1. 拉取官方镜像
    jetson xavier nx开发板上是有预装docker的,可以用systemctl start docker启动docker,用docker version查看docker版本;注意,jetson xavier nx是有官方镜像的(非常感谢xy师兄提前提醒),地址见链接,在Query里填入jetson就可以选取自己需要的镜像了。以镜像NVIDIA L4T PyTorch为例:
    (1)拉取镜像(可选择需要的pytorch和torchvision版本的镜像):
    sudo docker pull nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3
    (2)开启一个容器:
    sudo docker run -it --rm --runtime nvidia --network host nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3
    注意,若一个容器需要多次开启,最好上述命令不要带--rm,因为下次开启的时候传到里面的文件会被删除了。个人感觉最好是把文件夹通过-v挂载上去,需要注意的是:挂载的文件夹在外部如何改变,容器里面会相应改变;在容器里面对挂载的文件夹做改变,外部也会相应改变。命令如下:
    sudo docker run -it --rm --runtime nvidia --network host -v /home/user/project:/location/in/container nvcr.io/nvidia/l4t-pytorch:r32.5.0-pth1.7-py3

  2. 安装常用库opencv-4.1.0
    在jetson nx的镜像里装opencv并不像电脑上一键pip install轻松搞定,相反,采取这样的方式会有奇奇怪怪的报错,若跟着报错一步步查找修改,只能是“惶惶不见终日”了。好笑的是,当时在查opencv报错时,不知何时进入耳朵的“心平气和,做只大ne"时刻萦绕脑海,嗯,所以还是有必要把它挂在这次的博客上的。
    (1). updating the packages:
    apt update
    apt install -y build-essential cmake git libgtk2.0-dev pkg-config libswscale-dev libtbb2 libtbb-dev
    apt install -y python-dev python3-dev python-numpy python3-numpy
    apt install -y curl
    (2). install video & image formats:
    apt install -y libjpeg-dev libpng-dev libtiff-dev libjasper-dev
    apt install -y libavcodec-dev libavformat-dev
    apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
    apt install -y libv4l-dev v4l-utils qv4l2 v4l2ucp libdc1394-22-dev
    (3). download opencv & contribs modules:
    curl -L https://github.com/opencv/opencv/archive/4.1.0.zip -o opencv-4.1.0.zip
    curl -L https://github.com/opencv/opencv_contrib/archive/4.1.0.zip -o opencv_contrib-4.1.0.zip
    (4). unzipping packages:
    apt-get install unzip
    unzip opencv-4.1.0.zip
    unzip opencv_contrib-4.1.0.zip
    cd opencv-4.1.0/
    (5). create directory:
    apt-get install mkdir
    mkdir release
    cd release
    (6). build opencv using Cmake:
    cmake -D WITH_CUDA=ON \
    -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules \
    -D WITH_GSTREAMER=ON \
    -D WITH_LIBV4L=ON \
    -D BUILD_opencv_python2=ON \
    -D BUILD_opencv_python3=ON \
    -D BUILD_TESTS=OFF \
    -D BUILD_PERF_TESTS=OFF \
    -D BUILD_EXAMPLES=OFF \
    -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local ..
    (7). compile opencv
    make -j4
    make install

  3. 上述是opencv-4.1.0的安装方式,若编译不成功,可查看opencv-4.1.0/.cache/中是否缺少文件,它的文件结构应如下所示,具体可参考这篇博客 :

    • .cache
      • xfeatures2d
        • boostdesc
          • 0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
          • 0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
          • 202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
          • 232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
          • 324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
          • 98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
          • e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
        • vgg
          • 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i
          • 7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i
          • 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
          • e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i

    若真的是缺少文件,则下载放好后,用make -j8make install就可重新编译opencv_contrib模块了。

暂时想到这些,先记录一下,如果发现有不当的地方,欢迎指正哦~~
[1] Docker文档链接.
[2] Docker链接.
[3] 视频.
[4] 英伟达镜像.
[5] 编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决.


http://www.ppmy.cn/news/459498.html

相关文章

C#与欧姆龙NX系列PLC通讯

由于项目需要C#跟欧姆龙NX系列PLC通讯,网上百度NX系列的PLC这方面的案例很少,且NXPLC不支持Fins通信,也不支持OPCUA.只能通过Ethernet/IP与其进行通信 采用CX-Compolet控件 先上图片: 实现核心代码 using System; using Syst…

MIDAS GTS NX在高边坡工程中的应用

2.3 原状边坡工况分析 2.3.1 一般工况 1)设置一般工况 一般工况下,通常进行边坡的非线性应力分析即可。在GTS NX中,应力分析几乎是所有其他分析的基础,应力分析的模型也可以作为其它分析的基础模型。对于一般工况的应力分析的模型…

Jetson Xavier NX 内核编译、源码编译

Jetson Xavier NX 简单介绍: NX通过外形小巧的模组系统将超级计算机的性能带到了边缘端。 高达21 TOPS的加速计算能力可并行运行现代神经网络并处理来自多个高分辨率传感器的数据,这是完整AI系统的要求。NVIDIA Jetson Xavier NX 16GB EMMC ,8GB DDR 1、…

Jetson Nano\NX\AGX 学习笔记

Jetson Nano\NX\AGX 学习笔记 1. jetson平台安装pytorch、torchvision2. yolov5模型部署deepstream,x86\jetson平台2.0. 下载 deepstream6.12.1. 下载yolov5s模型或者训练自己的yolov5s模型2.2. 下载yolov5、DeepStream-Yolo代码,并把yolov5s.pt转换为yolov5s.engine文件(~~ten…

【模型部署】Jetson Xavier NX(eMMC)部署YOLOv5-5.0

文章目录 前言NVIDIA JetsonJetson Xavier NX版本区别(SD | eMMC)规格参数 Jetpack4.6.1环境搭建烧录系统(OS)SSD启动SSD分区设置为启动项 深度学习环境搭建设置语言/地区等信息烧录SDK组件换清华源(可选) …

Jetson Xavier NX部署PaddlePaddle框架

文章目录 前言一、刷机、开机等基本环境配置可以参考如下文章我的环境信息 二、源码编译安装paddlepaddle1.编译前准备工作2.首先编译安装NCCL3.编译安装PaddlePaddle4.测试方法 三、Jetson Xavier NX安装paddlehub1.paddlehub无法直接pip安装,报错如下2.源码编译安…

Jetson Xavier NX 内核编译、源码编译流程

[NVIDIA] 从零入手 Jetson Xavier NX 内核编译、源码编译流程 – ***注明:感谢网友提醒,我当时买的时候nx套件还没开售,因为核心板兼容b01,先买了核心板和b01的板子合在一起用的,所以本文是基于jetson xavier nx模块 …

J-004 Jetson电路设计之HDMI设计--NANO XAVIER NX

HDMI电路设计 1 简介2 框图介绍3 原理图介绍 1 简介 NANO & XAVIER NX提供一路HDMI接口,DP接口与HDMI是兼容的,可用于扩展一路HDMI。其中引脚说明: PIN名称描述方向类型63HDMI_DP_TXDN0DisplayPort 1 Lane 0 or HDMI Lane 2输出HDMI/DP65HDMI_DP_T…