首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有限ARM平台下如何交叉编译OpenVINO

有限ARM平台下如何交叉编译OpenVINO
EN

Stack Overflow用户
提问于 2021-11-01 04:03:54
回答 1查看 485关注 0票数 1

我想在一个带有Cortex-A53和2GBRAM的嵌入式linux系统上运行OpenVINO。但是,当我通过本教程在这个平台上构建OpenVINO时,构建过程总是失败的。(我认为问题在于内存大小小)

我在RaspberryPI4B(8GRAM)和x86_86 linux系统(13GRAM)上构建了x86_86,并成功地运行了程序。

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

目标平台

  • CPU:皮质-A53
  • 操作系统/平台=> Ubuntu18.04
  • RAM => 2GB
  • GCC => 7.5
  • Python3.6.9

构建平台(1):桌面

  • CPU: x86_64
  • 操作系统/平台=> Ubuntu18.04
  • GCC => 7.5
  • Python 3.6.9

构建平台(2):覆盆子Pi 4B

  • 操作系统/平台=> Ubuntu 20.04
  • RAM: 8GB
  • GCC: 7.5
  • python 3.6.15
EN

回答 1

Stack Overflow用户

发布于 2021-11-02 06:25:44

对于交叉编译,您可以参考此指南。您可以尝试将Dockerfile中的导入“从debian:stretch”更改为“ubuntu:18.04”。然而,它还没有正式验证Ubuntu的使用,所以它可能起作用,也可能不起作用。

这些是Dockerfile中所需的:

代码语言:javascript
运行
复制
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内容的一部分。

建造和运行码头:

代码语言:javascript
运行
复制
docker image build -t arm64 arm64
docker run -it -v /home/user/openvino/:/openvino arm64 /bin/bash

安装要求:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
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 ..

运行制造:

代码语言:javascript
运行
复制
make --jobs=$(nproc --all)

退出Docker之后(通过按Ctrl+D),您可以在~/openvino/bin/aarch64/目录中找到产生的二进制文件,而~/openvino/inference-engine/temp.中的OpenCV安装也不会忘记按照NCS2目标板上的指令完成附加步骤

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69792515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档