【问题标题】:How to cross compile OpenVINO for limited ARM platform如何为有限的 ARM 平台交叉编译 OpenVINO
【发布时间】:2021-11-01 04:03:54
【问题描述】:

我想在具有 Cortex-A53 和 2GB RAM 的嵌入式 Linux 系统上运行带有神经计算棒 2 的 OpenVINO。 但是,当我在这个平台上通过本教程BuildingForLinux 构建 OpenVINO 时,构建过程总是失败。 (我认为问题是 RAM 很小)

我在树莓派4B(8G RAM)和x86_86 linux系统(13G RAM)上构建了OpenVINO,并成功运行程序。

我可以在其他系统上构建 OpenVINO 和它的 Python API 包装器并在嵌入式系统上运行它吗?

目标平台

  • CPU:Cortex-A53
  • 操作系统/平台 => Ubuntu 18.04
  • 内存 => 2GB
  • GCC => 7.5
  • Python => 3.6.9

构建平台(一):桌面

  • CPU:x86_64
  • 操作系统/平台 => Ubuntu 18.04
  • GCC => 7.5
  • Python 3.6.9

搭建平台(二):树莓派4B

  • 操作系统/平台 => Ubuntu MATE 20.04
  • 内存:8GB
  • GCC:7.5
  • python 3.6.15

【问题讨论】:

    标签: python openvino


    【解决方案1】:

    对于交叉编译,您可以参考此guide。 您可以尝试在 Dockerfile 中将 import "FROM debian:stretch" 更改为 "FROM ubuntu:18.04"。但是,它并未针对 Ubuntu 使用进行正式验证,因此它可能有效,也可能无效。

    这些是 Dockerfile 中需要的:

    FROM ubuntu:18.04
    USER root
    COPY ./sources.list /etc/apt/sources.list
    
    RUN dpkg --add-architecture arm64 && apt-get update
    RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        crossbuild-essential-arm64 \
        git \
        wget \
        libusb-1.0-0-dev:arm64 \
        libgtk-3-dev:arm64 \
        libavcodec-dev:arm64 \
        libavformat-dev:arm64 \
        libswscale-dev:arm64 \
        libgstreamer1.0-dev:arm64 \
        libgstreamer-plugins-base1.0-dev:arm64 \
        libgstreamer-plugins-base1.0-dev:arm64 \
        libpython3-dev:arm64 \
        libtbb-dev:arm64 \
        python-minimal \
        python3-distutils:arm64 \
        python3-pip \
        python3-setuptools \
        python-argparse \
        libglib2.0-dev-bin:arm64 \
        libglib2.0-dev:arm64  \
        && rm -rf /var/lib/apt/lists/*
    
    RUN wget https://www.cmake.org/files/v3.14/cmake-3.14.3.tar.gz && \
        tar xf cmake-3.14.3.tar.gz && \
        (cd cmake-3.14.3 && ./bootstrap --parallel=$(nproc --all) && make --jobs=$(nproc --all) && make install) && \
        rm -rf cmake-3.14.3 cmake-3.14.3.tar.gz
    
    RUN python3 -m pip install pip --upgrade
    RUN python3 -m pip install numpy cython scikit-build opencv-python==4.5.3.56
    
    RUN git config --global user.name "Your Name" && \
        git config --global user.email "you@example.com"
    

    确保将您上一篇文章中引用的 sources.list 文件作为 arm64 内容的一部分。

    构建并运行 docker:

    docker image build -t arm64 arm64
    docker run -it -v /home/user/openvino/:/openvino arm64 /bin/bash
    

    安装要求:

    python3 -m pip install -r openvino/inference-engine/ie_bridges/python/requirements.txt
    python3 -m pip install -r openvino/inference-engine/ie_bridges/python/wheel/requirements-dev.txt
    python3 -m pip install -r openvino/inference-engine/ie_bridges/python/src/requirements-dev.txt
    

    运行 CMAKE:

    cmake -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_TOOLCHAIN_FILE="../cmake/arm64.toolchain.cmake" \
    -DENABLE_MKL_DNN=OFF \
    -DTHREADS_PTHREAD_ARG="-pthread" \
    -DENABLE_CLDNN=OFF \
    -DENABLE_GNA=OFF \
    -DENABLE_SSE42=OFF \
    -DTHREADING=SEQ \
    -DENABLE_OPENCV=ON \
    -DNGRAPH_PYTHON_BUILD_ENABLE=ON \
    -DNGRAPH_ONNX_IMPORT_ENABLE=ON \
    -DENABLE_PYTHON=ON \
    -DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
    -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.6m.so \
    -DPYTHON_INCLUDE_DIR=/usr/include/python3.6 ..
    

    运行make:

    make --jobs=$(nproc --all)
    

    退出 Docker 后(通过按 Ctrl+D),您可以在 ~/openvino/bin/aarch64/ 目录中找到生成的二进制文件,在 ~/openvino/inference-engine/temp. 中找到 OpenCV 安装 不要忘记在目标板上的说明下完成 additional steps NCS2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 2011-07-24
      相关资源
      最近更新 更多