Tengine 边缘AI计算框架移植RV1126(包括opencv的交叉编译)

目录

1.编译opencv

2.拷贝SDK源码到虚拟机

[3. 拉取TIM-VX代码](#3. 拉取TIM-VX代码)

4.拉取Tengine源码并配置


1.编译opencv

编译opencv是为了,在编译Tengine时指定OpenCVConfig.cmake,以便寻找特定的opencv动态库

01.从github拉取opencv源代码

bash 复制代码
git clone -b 4.5.5 https://github.com/opencv/opencv.git 

02.在虚拟机安装cmake

bash 复制代码
sudo apt-get update 
sudo apt-get install cmake 

04.解压opencv源码,并进入文件

05.新建文件ax620a.toolchain.cmake配置交叉编译工具链

bash 复制代码
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
dao
#如果未设置交叉编译器到环境变量,要加入绝对路径,我这里已经加入到环境变量中了
set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

set(CMAKE_C_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")
set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=hard -mfpu=neon")

# cache flags
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")

06.创建build文件夹并配置cmake

bash 复制代码
mkdir build && cd build 
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=./build -D OPENCV_ENABLE_NONFREE=True -DCMAKE_TOOLCHAIN_FILE=/home/alientek/opencv-4.x/platforms/linux/arm-gnueabi.toolchain.cmake -D WITH_FFMPEG=ON ../
# -D CMAKE_INSTALL_PREFIX指定编译后的安装路径
# -D CMAKE_BUILD_TYPE=Release优化编译,删除没必要的调试信息等
# -D OPENCV_ENABLE_NONFREE开启了非自由模块的支持
# -DCMAKE_TOOLCHAIN_FILE指定了交叉编译工具链文件的位置
# -D WITH_FFMPEG开启了FFmpeg的支持

07.编译并安装

bash 复制代码
sudo make && make install

查看在build目录下是否存在OpenCVConfig.cmake文件

2.拷贝SDK源码到虚拟机

SDK源码中带有Tengine需要的动态库,所以必须把SDK源码拷贝到虚拟机

3. 拉取TIM-VX代码

bash 复制代码
git clone https://github.com/VeriSilicon/TIM-VX.git
cd TIM-VX
git checkout 68b5acb

4.拉取Tengine源码并配置

01拉取代码

bash 复制代码
git clone https://github.com/OAID/Tengine.git tengine-lite
cd tengine-lite

02.将 TIM-VX 的 include 和 src 目录复制到 Tengine-Lite 的 source/device/tim-vx 目录下,以便于 CMake 查找文件完成编译

bash 复制代码
cd tengine-lite
cp -rf ../TIM-VX/include  ./source/device/tim-vx/
cp -rf ../TIM-VX/src      ./source/device/tim-vx/
  1. 准备 x86_64 3rdparty 依赖

准备的 include 目录和 VIM3/VIM3L 本地编译 NPU 最新版本相同,下载一份 perbuild SDK,将其中的 include 文件夹复制到 3rdparty/tim-vx 目录。 依赖的 lib 目录下的文件需要从前面 SDK 中解压出来的 external/rknpu/drivers/linux-armhf-puma/usr/lib 目录提取。将该目录下的文件全部(实际上不需要全部复制,FAQ 有文件列表)复制到 3rdparty/tim-vx/lib/aarch32 文件夹下即可

bash 复制代码
wget-c https://github.com/VeriSilicon/TIMVX/releases/download/v1.1.28/aarch64_S905D3_D312513_A294074_R311680_T312233_O312045.tgz
tar zxvf aarch64_S905D3_D312513_A294074_R311680_T312233_O312045.tgz
mv aarch64_S905D3_D312513_A294074_R311680_T312233_O312045 prebuild-sdk-s905d3
cd tengine-lite
mkdir -p ./3rdparty/tim-vx/include
mkdir -p ./3rdparty/tim-vx/lib/aarch32
cp -rf ../prebuild-sdk-s905d3/include/*   ./3rdparty/tim-vx/include/
cp -rf <rk_sdk_npu_lib>/*                 ./3rdparty/tim-vx/lib/aarch32/
#<rk_sdk_npu_lib>是external/rknpu/drivers/linux-armhf-puma/usr/lib 

04.修改cmake文件

bash 复制代码
cd toolchains
vi arm-linux-gnueabihf.toolchain.cmake 

修改为绝对路径

05.设置 OpenCV_DIR 环境变量

设置 OpenCV_DIR 环境变量是为了指定OpenCVConfig.cmake文件的路径

bash 复制代码
exoprt OpenCV_DIR=/home/alientek/opencv-4.x/build

06.编译

bash 复制代码
cd tengine-lite-root-dir
mkdir build && cd build
export PATH=<cross_tool_chain>/bin:$PATH
ln -s ../3rdparty/tim-vx/lib/aarch32/libOpenVX.so.1.2 ../3rdparty/tim-vx/lib/aarch32/libOpenVX.so
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake  -DTENGINE_ENABLE_TIM_VX=ON -DTENGINE_OPENMP=OFF ..
make -j`nproc` && make install

提取 install 目录下的文件到板子上测试即可。需要注意的是,不设置OpenCV_DIR环境变量部分 OpenCV 依赖的 example 在这个过程中不会编译,需要先准备好交叉编译的OpenCV,并正确设置 OpenCV_DIR 到环境变量中方可打开这部分 example 的编译。(咱们已经设置过了)可以看到,我们把所有组件都编译出来了

相关推荐
Oflycomm10 分钟前
CES 2026:高通扩展 IE-IoT 产品组合,边缘 AI 进入“平台化竞争”阶段
人工智能·物联网·高通·wifi7·ces2026·qogrisys
jay神13 分钟前
指纹识别考勤打卡系统 - 完整源码项目
人工智能·深度学习·机器学习·计算机视觉·毕业设计
智慧医院运行管理解决方案专家15 分钟前
当医院安全进入“自动驾驶”时代:AI机器人医院安全值守日记
人工智能·安全·自动驾驶
码农三叔15 分钟前
(2-3)人形机器人的总体架构与系统工程:人形机器人的关键性能指标
人工智能·机器人·人形机器人
2501_9415079416 分钟前
【目标检测】YOLO13-C3k2-PFDConv实现长颈鹿与斑马精准检测,完整教程与代码解析_1
人工智能·目标检测·目标跟踪
机器学习之心23 分钟前
MATLAB基于多指标定量测定联合PCA、OPLS-DA、FA及熵权TOPSIS模型的等级预测
人工智能·算法·matlab·opls-da
AI殉道师24 分钟前
AI Agent 架构深度解析:从零打造你的智能助手
人工智能·架构
Loo国昌32 分钟前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain
广州灵眸科技有限公司41 分钟前
瑞芯微(EASY EAI)RV1126B 语音识别
人工智能·语音识别
2501_942191771 小时前
基于YOLOv5-RepHGNetV2的青椒目标检测方法研究原创
人工智能·yolo·目标检测