OrangePi AIpro学习2 —— 配置昇腾DVPP环境

目录

一、clone需要运行的软件

二、运行corp程序

2.1 解决缺少sample_common.sh

2.2 解决缺少INSTALL_DIR环境变量

2.3 运行程序

三、测试其他程序

3.1 程序目录

3.2 程序注意事项

3.3 如何找出报错原因


一、clone需要运行的软件

1. 软件地址

samples: CANN Samples - Gitee.com

2. clone软件

用root用户登录,然后进入/root文件夹下clone,并进入到DVPP例程所在目录

然后执行编译脚本

cd ~/samples/cplusplus/level2_simple_inference/0_data_process/crop/scripts/

bash sample_build.sh

二、运行corp程序

2.1 解决缺少sample_common.sh

1. 删除旧版软件

先进入/usr/local目录下删除ascend目录,下面提示驱动删不掉,其他的应该都是删除了

2. 根据教程,先执行安装包前需要的依赖

升级操作-升级-软件安装-CANN社区版8.0.RC1.alpha003开发文档-昇腾社区 (hiascend.com)

sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
sudo apt install gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3

pip3 install attrs numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py

3. 进入昇腾官网下载最新版软件

升级操作-升级-软件安装-CANN社区版8.0.RC1.alpha003开发文档-昇腾社区 (hiascend.com)

把下载好的文件拖拽到左边目录下

4. 安装

准备软件包-安装开发环境-软件安装-CANN社区版8.0.RC1.alpha003开发文档-昇腾社区 (hiascend.com)

chmod 777 Ascend-cann-toolkit_8.0.RC3.alpha001_linux-aarch64.run
./Ascend-cann-toolkit_8.0.RC3.alpha001_linux-aarch64.run --check
./Ascend-cann-toolkit_8.0.RC3.alpha001_linux-aarch64.run --install

安装成功

5. 将common移动到相应的文件夹

mkdir -p /usr/local/Ascend/thirdpart/aarch64/

cp -r /root/samples/common/ /usr/local/Ascend/thirdpart/aarch64/

6. 配置环境变量

cd ~/samples/cplusplus/level2_simple_inference/0_data_process/crop/scripts

vim sample_build.sh

查看需要配置THIRDPART_PATH这个环境变量

vim ~/.bashrc,下图除了配置THIRDPART_PATH,还要看是否包含了source /usr/.../set_env.sh

修改后重新应用文件~/.bashrc:source ~/.bashrc

2.2 解决缺少INSTALL_DIR环境变量

vim ../src/CMakeLists.txt

发现INSTALL_DIR用于给程序寻找头文件.h和动态链接库.so

 查找runtime的位置在哪里

将这个位置配置到环境变量中:vim ~/.bashrc

应用杠配置的环境变量:source ~/.bashrc

2.3 运行程序

现在程序编译成功了

现在执行运行命令:bash sample_run.sh

生成的yuv图片在下面的路径:/root/samples/cplusplus/level2_simple_inference/0_data_process/crop/out/output/

把下面的图片拖到桌面上

使用YUVPlayer软件查看YUV图片:YUV Player download | SourceForge.net

可以看到,这张图片是从/root/samples/cplusplus/level2_simple_inference/0_data_process/crop/data/目录下图片中扣出来的一张图片

三、测试其他程序

3.1 程序目录

3.2 程序注意事项

其他程序的运行过程和corp程序的运行过程类似,先运行sample_build.sh,然后再运行sample_run.sh,如果相比crop有变化,会在下面展示出来:

1. batchcrop

进入程序,修改script目录下testcase_200dk.sh脚本中的位置,如下图

同时修改src目录下的CMakeLists.txt中的内容,删除不必要的内容,并修改包含路径和动态库路径

成功运行程序

在out目录下输出了几张图片,yuv大小都是224*224

2. cropandpaste

这个程序输出的yuv图片大小是224*224

3. ffmpegdecode

(1) 执行build脚本的时候报错找不到环境变量,直接在命令行里面输入export CPU_ARCH=aarch64,导入环境变量

(2) 上图又提示没有aclLite,这里先简单的说一下aclLite是一个库,这个库是对npu操作库函数acl的简单封装,安装方法使用下面的几行命令:

cd ~/samples/inference/acllite/cplusplus

make

sudo make install

安装过程中可能会报错,看Makefile是缺少DDK_PATH这个环境变量

编辑启动配置文件:vim ~/.bashrc

应用配置文件:source ~/.bashrc

(3) 编写完成配置文件后,安装aclLite,前面的脚本就能运行了

4. resize

resize输出的output.yuv尺寸是224*224

5. smallResolution_cropandpaste

修改testcase_200dk.sh。修改的内容类似于1. batchcroptestcase_200dk.sh脚本

编辑完成后执行:bash testcase_200dk.sh c75

6. vdec

输出的image1.yuv尺寸是1280*720

7. smallResolution_cropandpaste 

注意事项在3.3节

8. venc

这一节会得到一个h.264格式的文件,要播放这个文件就需要和音频放在一起合成一个MP4格式的文件,合成方法如下:

❤️FFmpeg❤️ MP4格式文件,将MPEG4的编码方式转为H.264_视频编码格式转换,如何将mpeg-4 video (mp4v)转换成h264 - mpeg-4 av-CSDN博客

9. venc_image

这个样例可以用作检测自己学习的成果

3.3 如何找出报错原因

如下图,这个项目报错找不到.so文件

在cmake里面定义了so寻找目录,我们在这一行前面增加一个输出信息语句

重新cmake就会输出信息

但是发现这个目录下有这个动态库文件,我也不知道为啥运行不了(有知道的哥们可以帮忙写在评论区)。我直接把这个动态库拷贝到系统动态库目录下

成功运行

如果找不到头文件的话,就可以打印include_directories里面的目录,然后到这些目录里面去找,是不是确实缺少这个头文件。确实缺少就在系统里面find,然后把find到头文件的目录配置到include_directories里面。下图就是配置了4个目录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herb.dr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值