We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本文介绍如何从零开始,成功编译OpenCV NPU项目。
本示例使用的机器为华为云昇腾310虚拟机。
实例类型:AI加速型Ai1s 操作系统:Ubuntu 18.04 IDE:VSCode
按照昇腾虚拟机固件与驱动安装指引__卸载旧版驱动__和__安装Ascend 310驱动__(此处仅摘抄了需要执行的命令),此时先不要安装CANN,待准备好依赖的python环境后再安装。
cd /usr/local/Ascend # 按照opp、ascend-tookit、driver的顺序,依次进入相关目录的script目录中,执行uninstall.sh文件 # 卸载完成后,重启VM # 安装driver ./A300-3010-npu-driver_21.0.4_linux-x86_64.run --full # 检查安装结果,显示两块OK的ascend 310卡 npu-smi info # 如果是非root用户,需要添加用户组 # gid: 组id; HwHiAiUser: 组名; uid: 用户id(可通过 id usrName查询); usrName:用户名 usermod -a -G HwHiAiUser/gid usrName/uid # 安装依赖 apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev unzip pciutils ne
从Anaconda官网下载x86_64对应的Anaconda,使用bash命令安装:
bash Anaconda3-2023.07-2-Linux-x86_64.sh # 输入一次安装目录 /home/用户目录/anaconda3后,一直enter+yes # conda安装完毕后,重启终端,conda命令生效
由于国内下载conda资源过慢,建议配置清华源anaconda镜像提高下载速度。
# 修改用户目录下的.condarc文件 vim ~/.condarc # 修改.condarc内容为如下: channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/ # 至此完成清华源anaconda镜像配置。
新建python版本为3.X的conda虚拟环境___【CANN目前只支持python3.7/3.8/3.9版本】___
# 新建虚拟环境 conda create -n YOUR_ENV_NAME python=3.9 # 激活环境,在新环境中安装其他依赖 conda activate YOUR_ENV_NAME # 升级pip pip3 install --upgrade pip # 安装pip依赖 pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests # 修改用户目录的.bashrc文件,使得虚拟环境自动激活 vim ~/.bashrc # 将“ conda activate YOUR_ENV_NAME ”添加至.bashrc文件末尾 # 退出vim并激活.bashrc使其生效 source ~/.bashrc
注意 开发套件安装,从 CANN 社区版下载-昇腾社区下载__6.3.RC2.alpha003__对应的CANN。
# 安装cann toolkit ./Ascend-cann-toolkit_6.3.RC2.alpha003_linux-x86_64.run --install # 添加环境变量 # 编辑用户目录下的.bashrc文件 vim ~/.bashrc # 将以下内容添加至.bashrc文件末尾 source ~/Ascend/ascend-toolkit/set_env.sh # 退出vim并激活.bashrc使其生效 source ~/.bashrc
安装好驱动之后,将系统用户添加到组里,保证在usrName用户下可以正常使用驱动。
usermod -a -G HwHiAiUser/gid usrName/uid
OpenCV为保证官方发行版的稳定性,使用另外的仓opencv_contrib接收贡献的功能,因此opencv和opencv_contrib均需下载。
# 克隆opencv项目到本地 git clone https://github.com/opencv/opencv.git # 进入opencv路径 cd opencv # 克隆opencv_contrib项目到opencv路径下 git clone https://github.com/opencv/opencv_contrib.git
在opencv项目路径下新建.vscode文件夹,新建调试配置文件launch.json,写入以下内容(注释为解析,不需要写入):
.vscode
launch.json
{ "version": "0.2.0", "configurations": [ { "name": "ascend", "type": "cppdbg", "request": "launch", // 启动程序or连接到已在运行的实例。launch:启动;attach:附加 "cwd": "${workspaceFolder}", // 调试器启动的应用程序的工作目录 "program": "~/anaconda3/envs/py39/bin/python", // 需要调试的程序,此处为conda虚拟环境的python "args": [ "~/workspace/opencv/test.py", // 调试时传递给程序的参数 ], "MIMode": "gdb", // 调试器类型 gdb/lldb;此处为gdb "targetArchitecture": "x86_64", "stopAtEntry": false, // 调试时是否停在程序入口 "externalConsole": false, // true:输出到外部终端;false:只输出到软件终端 "setupCommands": [ // 设置GDB或LLDB所需执行的命令 { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
同样地,.vscode文件夹下新建配置文件setting.json,写入cmake配置项和文件关联配置项如下(注释为解析,不需要写入):
setting.json
{ "cmake.configureArgs": [ "-DCMAKE_INSTALL_PREFIX=~/workspace/opencv/build/install", // 配置安装目录 "-DWITH_DEBUG=0", // 是否以debug方式编译项目 "-DBUILD_WITH_DEBUG_INFO=0", // 编译是否输出debug info "-DOPENCV_EXTRA_MODULES_PATH=~/workspace/opencv/opencv_contrib/modules", // OpenCV其他模块的路径,将opencv_contrib modules的路径配置进来 "-DWITH_CUDA=0", // 是否有CUDA "-DWITH_CANN=1", // 是否有CANN "-DPYTHON3_EXECUTABLE=~/anaconda3/envs/$YOUR_ENV_NAME$/bin/python", // python可执行文件的路径 "-DPYTHON_LIBRARY=~/anaconda3/envs/$YOUR_ENV_NAME$", // python库路径 "-DPYTHON_INCLUDE_DIR=~/anaconda3/envs/$YOUR_ENV_NAME$/include/python3.9", // python包含路径 /* 此部分为与opencv npu开发无关的库,关闭其编译以加快编译速度 */ "-DBUILD_opencv_wechat_qrcode=OFF", "-DBUILD_opencv_xfeatures2d=OFF", "-DBUILD_opencv_face=OFF", "-DBUILD_opencv_dnn=OFF", "-DBUILD_opencv_features2d=OFF", "-DBUILD_opencv_bioinspired=OFF", "-DBUILD_opencv_flann=OFF", "-DBUILD_opencv_hdf=OFF", "-DBUILD_opencv_hfs=OFF", "-DBUILD_opencv_fuzzy=OFF", "-DBUILD_opencv_intensity_transform=OFF", "-DBUILD_opencv_line_descriptor=OFF", "-DBUILD_opencv_ml=OFF", "-DBUILD_opencv_phase_unwrapping=OFF", "-DBUILD_opencv_photo=OFF", "-DBUILD_opencv_quality=OFF", "-DBUILD_opencv_tracking=OFF", "-DWITH_CAROTENE=OFF", "-DWITH_IPP=OFF", /* ************************************************* */ "-DBUILD_DOCS=ON", // 是否构建文档 ], }
通过vscode安装C/C++、CMake、CMake Tools、Python拓展,由于项目配置项较多,通过2.2 项目配置+CMake Tools对项目进行编译。
利用CMake Tool进行编译示例界面。configure根据2.2 项目配置中指定的编译选项进行配置。build则实现项目编译。
完成cmake configure之后,请检查是否包含CANN(下图黄色高亮),python是否指向YOUR_ENV_NAME虚拟环境(下图绿色高亮),如果这些答案均为“是”,则关键配置正确。
build成功的标志则为[build] Build finished with exit code 0。
[build] Build finished with exit code 0
项目编译完成后,在build目录下会出现python_loader文件夹,在终端中执行python_loader路径下的setup.py,即可将opencv安装到python虚拟环境中,从而实现python调用opencv。
build
python_loader
setup.py
# 进入python_loader目录(当前目录为opencv) cd ./build/python_loader # 安装opencv到python(注意当前python环境应为YOUR_ENV_NAME虚拟环境) python setup.py develop # 验证python中opencv是否安装好 python >>>import cv2 >>> # 如上即为安装成功,可以愉快的开启开发了 # 如果提示找不到cv2则安装失败:( 检查一下编译是否有问题吧
The text was updated successfully, but these errors were encountered:
No branches or pull requests
从零开始编译OpenCV NPU教程
本文介绍如何从零开始,成功编译OpenCV NPU项目。
本示例使用的机器为华为云昇腾310虚拟机。
1. 环境准备
1.1 安装驱动及依赖
按照昇腾虚拟机固件与驱动安装指引__卸载旧版驱动__和__安装Ascend 310驱动__(此处仅摘抄了需要执行的命令),此时先不要安装CANN,待准备好依赖的python环境后再安装。
1.2 Anaconda安装及配置
从Anaconda官网下载x86_64对应的Anaconda,使用bash命令安装:
由于国内下载conda资源过慢,建议配置清华源anaconda镜像提高下载速度。
1.3 python虚拟环境安装
新建python版本为3.X的conda虚拟环境___【CANN目前只支持python3.7/3.8/3.9版本】___
1.4 CANN安装
注意 开发套件安装,从 CANN 社区版下载-昇腾社区下载__6.3.RC2.alpha003__对应的CANN。
安装好驱动之后,将系统用户添加到组里,保证在usrName用户下可以正常使用驱动。
2. OpenCV下载及编译
2.1 OpenCV项目下载
OpenCV为保证官方发行版的稳定性,使用另外的仓opencv_contrib接收贡献的功能,因此opencv和opencv_contrib均需下载。
2.2 项目配置
在opencv项目路径下新建
.vscode
文件夹,新建调试配置文件launch.json
,写入以下内容(注释为解析,不需要写入):同样地,
.vscode
文件夹下新建配置文件setting.json
,写入cmake配置项和文件关联配置项如下(注释为解析,不需要写入):2.3 项目编译
通过vscode安装C/C++、CMake、CMake Tools、Python拓展,由于项目配置项较多,通过2.2 项目配置+CMake Tools对项目进行编译。
利用CMake Tool进行编译示例界面。configure根据2.2 项目配置中指定的编译选项进行配置。build则实现项目编译。
完成cmake configure之后,请检查是否包含CANN(下图黄色高亮),python是否指向YOUR_ENV_NAME虚拟环境(下图绿色高亮),如果这些答案均为“是”,则关键配置正确。
build成功的标志则为
[build] Build finished with exit code 0
。项目编译完成后,在
build
目录下会出现python_loader
文件夹,在终端中执行python_loader
路径下的setup.py
,即可将opencv安装到python虚拟环境中,从而实现python调用opencv。The text was updated successfully, but these errors were encountered: