目录
一、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
修改后重新应用文件~/.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. batchcrop的testcase_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个目录: