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

news2024/9/23 19:22:09

目录

一、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. 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个目录:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 设置代理

Docker 设置代理 创建配置文件 sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.conf sudo vim /etc/systemd/system/docker.service.d/proxy.conf 编辑代理配置 #输入以下内容,其中代理改成自己的…

【大小球让球实战】——深度剖析足球大小球数据分析软件,找到一个临界点,把准确率提高到70%?

最近在跟一些圈内朋友聊天,发现每个人都有一套自己的玩球逻辑,比如有些人看亚盘,有些看欧盘,有些玩绝杀,有些看盘口,是否可以自定义的去玩球?结合多年的经验,把分析的过程大概写了一…

ESP32在ESP-IDF环境下禁用看门狗

最近使用了一款ESP32的开发板。但在调试时发现出现许多看门狗复位事件: E (8296) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time: E (8296) task_wdt: - IDLE (CPU 0) E (8296) task_wdt: Tasks curre…

FFmpeg 7.0重大更新

0、维护工作 对于任何成熟的软件,每个版本必然包含大量的bugfix、cleanup。维护工作不会出现在Changelog中,不是吸引眼球的东西,但是人力投入的占比最高,是一个项目长期稳定的保证。 维护工作必须得提两个人,Andreas…

校园超市收银软件的挑战:双系统困境-亿发

在现代零售业中,高效的管理系统是确保业务顺利进行的关键。然而,对于学校直属管理的超市来说,选择合适的收银系统往往是一项挑战。由于缺乏能够同时满足收银和进销存管理需求的高适配性系统,许多学校超市不得不同时使用两套系统&a…

iPhone手机清理软件:让你的设备焕然一新

随着智能手机在我们生活中的地位日益重要,保持设备的最佳性能就显得尤为关键。对于iPhone用户而言,随着时间的推移,手机可能会因累积了过多的缓存文件、重复照片、未使用的应用和各种其他数据而变得缓慢。幸运的是,市面上有多种iP…

可以翻页、互动、留言和弹幕的仿真电子相册制作方法

​在数字化时代,仿真电子相册作为一种结合了翻页、互动、留言和弹幕等多种功能的创意表达形式,正逐渐成为人们记录生活和分享回忆的重要方式。本教程将介绍如何利用FLBOOK这款强大的电子相册制作工具,制作具有这些特性的令人印象深刻的作品。…

ICM-20948芯片详解(6)

接前一篇文章:ICM-20948芯片详解(5) 五、组件概览及详述 再次给出ICM-20948芯片的内部结构框图: 2. 组件详述 (6)辅助I2C串行接口 ICM-20948具有用于与外部传感器通信的辅助I2C总线。该总线有两种操作模…

实时采集同花顺要闻直播资讯

采集同花顺要闻直播资讯能实时掌握市场动态、政策变化及企业新闻,对投资者而言,有助于及时做出投资决策,把握市场机会,规避风险。对于研究机构和媒体,它提供一手资料,支持深度分析与报道。 采集网址&#x…

第 8 章 虚拟文件系统(7)

目录 8.5 标准函数 8.5.1 通用读取例程 8.5.2 失效机制 8.5.3 权限检查 8.6 小结 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 8.5 标准函数 大多数文件系统中 file_operations 的 read,write 分别为: do_sync_read&am…

Android开发之事件分发

#来自ウルトラマンゼロ(哉阿斯) 1 Activity 构成 平常布局展示在ContentView中。 2 事件分发 事件分发的本质其实就是把事件(Touch)封装成 MotionEvent 类,然后传递给 View 的层级处理。 MotionEvent 事件类型主要有…

51单片机-第七节-DS1302实时时钟

一、DS1302介绍: 实时时钟芯片,可对年,月,日,周,时,分,秒计时,是一种集成电路。 二、DS1302原理: 1.寄存器定义: Command:操作模式…

MySQL:表的增删查改——CRUD(二)

本篇博客接上篇:MySQL:表的增删查改——CRUD(一)-CSDN博客 目录 1、查询(Retrieve) 1.1 条件查询:WHERE 1.1.1 比较运算符 1.1.2 逻辑运算符 1.1.3 查询语句的执行顺序 1.1.3 SQL代码示例…

小试牛刀-walletconnect二维码及交互

目录 1.编写目的 2.实现功能 3.功能详解 依赖组件 3.1 二维码生成 3.1.1 初始化SignClient 3.1.2 创建会话空间获取WC协议uri 3.1.3 生成二维码供用户扫描 3.1.4 等待扫描 3.2 发送交易事务 3.2.1 创建交易事务 3.2.2 向用户发送交易事务 3.3 签名事务 3.3.1 接收…

使用AI绘图工具生成风景图像的教程

随着人工智能技术的飞速发展,AI绘图工具在图像生成和艺术创作方面变得越来越强大,无论你是一个设计师、艺术家,还是仅仅对生成艺术感兴趣的爱好者,AI绘图工具都可以帮助你轻松地创作出惊艳的风景图像。 在这篇教程中,…

医疗设备漏费控制管理系统的必然性及未来发展性

医疗设备控费的必然性 医疗改革的要求 随着医疗改革的不断深入,原有的医药模式已经发生了改变。药品和耗材零差价的执行,使得医院需要寻找新的开源节流、降耗增效的方法。医疗设备控费系统的出现,正是为了满足这种管理需求。 控制成本和优…

【AI】人工智能核心三要素

上图来自甲子光年的资料,如有侵权,请联系删除。 在当今科技飞速发展的时代,人工智能(AI)作为引领未来科技变革的重要力量,正以前所未有的速度改变着我们的生活、工作乃至整个社会的面貌。人工智能之所以能…

文件Io编程基础

1. 标准I/O (stdio.h) stdio.h 是标准C库的头文件,包含了输入输出函数的声明。位置:/usr/include/stdio.h 2. 文件I/O操作步骤 打开文件: 使用 fopen 函数,返回 FILE* 指针。读/写操作: 使用 fread、fwrite、fgets、fputs、fprintf、fscan…

【SOC】SoC架构系统总线的QoS管理——QoS generator

#工具文档理解# QoS——Quality of Service 目录 一、概念 Master对于Latency的敏感性 流量控制和事务级概念 Splitting Pending order IDs 数据包创建和传输的QoS 序列化 一、概念 这一部分描述了QoS机制如何平衡不同发起者的流量访问,以适应互连的有限可…

都2024年了,SQL语句还需要手写吗?

前言 在当今的AI时代,数据库管理和SQL开发已不再是单调的编码过程。借助AI的智能化工具,数据库操作变得更加简洁高效,错误率也大大降低。特别是当AI与强大的数据库管理工具Navicat相结合时,开发者可以更加专注于数据的分析和应用…