【2023 · CANN训练营第一季】应用开发(初级)第五章——媒体数据处理

news2024/11/19 0:34:49

1.媒体数据处理

受网络结构和训练方式等因素的影响,绝大多数神经网络模型对输入数据都有格式上的限制。在计算机视觉领域,这个限制大多体现在图像的尺寸、色域、归一化参数等。如果源图或视频的尺寸、格式等与网络模型的要求不一致时,我们需要将源图或视频处理成符合模型要求的图或视频。

数据预处理的方式

AIPP、DVPP可以分开独立使用,也可以组合使用。组合使用场景下,一般先使用DVPP对图片/视频进行解码、抠图.缩放等基本处理,但由于DVPP硬件上的约束,DVPP处理后的图片格式、分辨率有可能不满足模型的要求,因此还需要再经过AIPP进一步做色域转换、抠图、填充等处理。
image.png

数据预处理DVPP功能

异腾AI处理器内置图像处理单元DVPP(Digital Video Pre-Processor),提供强大的媒体处理硬加速能力。同时,异构计算架构CANN提供了使用图像处理硬件算力的入口: AscendCL接口,开发者可通过接口来进行图像处理,以便利用异腾AI处理器的算力。
image.png

宽stride和高stride

由于硬件对图片宽、高对齐的要求,DVPP数据预处理中存在宽stride和高stride两个概念,分别用于表示对齐后的宽.对齐后的高,DVPP中的不同功能,对不同格式的输入或输出图片的宽、高对齐要求也不同,在使用DVPP中的多个功能串接(例如JPEGD+VPC)时,需特别注意接口文档中的对齐说明。

内存申请与内存释放

内存申请/释放接口

实现媒体数据处理的VPC、JPEGD、JPEGE等功能前,若需要申请内存存放输入或输出数据,需调用专用的内存申请/释放接口,申请/释放的都是Device上的内存。如果多个功能串联使用的场景,需要复用同一段内存,则按最大内存要求来申请内存媒体数据处理V1版本,需调用acldvppMalloc申请内存、调用acldvppFree接口释放内存媒体数据处理V2版本,需调用hi_mpi_dvpp_malloc申请内存、调用hi_mpi_dvpp_free接口释放内存

内存大小

针对不同的DVPP功能、不同的输入/输出图片格式,内存大小的计算公式也不同,使用DVPP功能时,需参见详细的文档说明。

内存复用

调用媒体数据处理专用的内存申请接口申请出来的内存,也可以在其它任务中使用,例如,从性能角度,为了减少拷贝,媒体数据处理的输出作为模型推理的输入,实现内存复用。但由于媒体数据处理访问的地址空间有限,为确保媒体数据处理时内存足够,除媒体数据处理功能外的其它功能(例如,模型加载),建议调用acrtMalloc接口、或aclrtMallocHost接口、或aclrtMallocCached接口等通用的内存管理接口申请内存。

通道数

实现媒体数据处理的各功能前,必须调用接口创建对应功能的通道。通道的创建与销毁会涉及资源的申请与释放,反复创建与销毁通道会影响业务性能,因此建议根据实际场景管理通道,例如,如果有持续VPC图片处理,则创建VPC的通道后,等到所有VPC功能调用完成后,再销毁该VPC通道通道数量多,会影响Device的CPU占用率和内存占用,通道数量建议参考各功能章节下的的性能指标的路数。

2.JPEG图片解码

图片分辨率约束

image.png

实现JPEGD图片解码功能时,涉及存放输入、输出数据,需调用专门的内存申请/释放接口申请Device上的输入、输出内存,这部分内存的生命周期由用户自行管理。输入内存的大小就是指实际的输入图片所占用的大小输出内存的大小参见左表中的计算公式。
实现JPEGD图片解码功能时,仅支持Huffman编码,压缩前的原图像色彩空间为YUV,像素的各分量比例为4:4:4或4:2:2或4:2:0或4:0:0或4:4:0不支持算术编码、不支持渐进JPEG格式、不支持JPEG2000格式。

3.VPC图片缩放

图片分辨率约束

image.png

图片格式、宽高内存

image.png

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

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

相关文章

LLMs开源模型们和数据集简介

本篇文章整理下目前常用的LLMs模型们和数据集简介。 BackBones ​https://github.com/FreedomIntelligence/LLMZoo 可以看到目前被广泛用来作为LLMs的backbone的模型有以下特点: Backbone:基于某个开源backbone,如GLM、LLaMA、BLOOMZ&#…

Android 文本识别:MLKIT + PreviewView

随着移动设备的普及和摄像头的高像素化,利用相机进行文本识别成为了一种流行的方式。MLKit 是 Google 提供的一款机器学习工具包,其中包含了丰富的图像和语言处理功能,包括文本识别。PreviewView 是 Android Jetpack 的一部分,它提…

2 files found with path ‘lib/arm64-v8a/libwechatbacktrace.so‘ from inputs

2 files found with path lib/arm64-v8a/libwechatbacktrace.so from inputs 解决方案,在app module的build.gradle里面的 android { } 块里面添加: packagingOptions {exclude lib/arm64-v8a/libwechatbacktrace.so} 如果有多个,就再增加行…

“宝石与石头”:一道简单却巧妙的力扣算法题

本篇博客会讲解力扣“771. 宝石与石头”的解题思路,这是题目链接。 先来审题: 以下是输出示例: 以下是提示: 本题可以使用数组模拟哈希表来实现。先把宝石字符串中的字符标识到数组的对应位置,每次拿石头字符串中的…

ChatGpt免费的镜像网站

目录 1.ChatGpt 简介 2.ChatGpt 免费网站合集 2.1 https://chat21.zhulei.xyz/ 2.2 Vega AI 创作平台 2.3 AI文本工具站 2.4 FancyPig (jqrai.one) 2.5 AiDuTu 1.ChatGpt 简介 ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具&…

geotools简介

geotools简介 官网 https://docs.geotools.org/latest/userguide/index.html 架构图 特性 1. 主要特性 Geotools主要提供各种GIS算法,实现各种数据格式的读写和显示。在显示方面要差一些,只是用Swing实现了地图的简单查看和操作。用户可以根据Geoto…

运营-17.留存

如何定义留存 某段时间内的新增用户,经过一段时间后,又继续使用应用的被认作是留存 用户,这部分用户占当时新增用户的比例即是留存率,即用户没有流失; 例如: 5月份新增用户200,这200人在6月份启…

Abaqus——悬臂梁问题之工字梁实例

参考 有限元基础-第7课(悬臂梁问题)-2022年_哔哩哔哩_bilibili 实例 软件 Abaqus 2022 方法 通过线形式建模 具体操作 建模 1.打开部件的模块,创建一个零件。Name:自定义命名;Modeling Space:梁的空…

认识Vue中组件利器-插槽Slot-案例介绍

一. 插槽的使用 1.1. 认识插槽slot 在开发中,我们会经常封装一个个可复用的组件: 前面我们会通过props传递给组件一些数据,让组件来进行展示; 但是为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定…

项目总结:YOLOv8 人体姿态估计 跌倒检测

细节贴: YOLOv8 人体姿态估计 跌倒检测_爱钓鱼的歪猴的博客-CSDN博客 yolov8-pose的输出中有17个人体关键点 在胸膛处计算出一个中心点,腰部计算出一个中心点,连线,做一个直角三角形,求角的大小。 当角大于60度&…

基础篇009.1 STM32驱动RC522 RFID模块之一:基础知识

目录 1. RFID概述 1.1 RFID工作原理 1.2 RFID分类 1.3 RFID模块 1.4 RFID卡片 1.5 IC卡和ID卡介绍 1.6 IC卡和ID的区分 2. Mifare卡结构原理 2.1 Mifare卡概述 2.2 Mifare非接触式 IC 卡性能简介(M1) 2.2.1 Mifare S50与Mifare S70 2.2.2 S5…

蓝牙spp协议

一.定义 Serial Port Profile,串口通讯协议,是完成蓝牙设备之间创建串口进行数据传输的一种协议。 串口通讯协议(SPP)定义了使用蓝牙进行RS232(或类似)串行电缆仿真的设备应使用的协议和过程。 此协议涵盖的方案通过虚拟串行端口抽象&#…

自己编写小程序背日语50音图

自己编写小程序来背日语50音图 这是个啥直接上代码测试效果图 这是个啥 简而言之呢就是最近心血来潮打算自学日语,学日语自然就要先从50音图开始,就是下面这个: 可以看出来50音图横向是按照a i u e o这5个元音顺序,纵向按照a ka…

企业门户网站有用吗?如何解决搭建难题?

随着智能化时代的逐渐成熟,信息产业如火朝天,越来越多的人对门户网站开始感兴趣,不少企业家也开始对门户网站的开发与建设跃跃欲试。门户网站,也就是一个应用框架,把各类应用系统、互联网资源、数据资源集合到一个信息…

80.确定和规划项目(步骤1和2)

你的第一个现实世界的项目 ● 你的第一份“工作”!、 ● 你受雇为一家名为Omnifood的虚构公司设计并建立一个网站。 ● Omnifood是一家使用人工智能来创建和提供定制健康膳食计划的初创公司。 ● 他们为我们提供了网站的所有内容(content.md&#xff09…

Redis 的 Rdb 或 Aof 持久化详解

文章结构 Redis 的持久化方案Rdb(Redis Database) 方式设置持久化快照的条件持久化文件的存储目录Rdb 的优点Rdb 的缺点 Aof(Append Only File) 方式aop 的优点aop 的缺点 Redis 的持久化方案 Rdb(Redis Database) 方式 Redis 默…

循环队列(C++)

循环队列是一种特殊的队列实现,在顺序队列的基础上进行了优化。通常,循环队列使用固定长度的数组来表示队列元素,头和尾指针挂钩形成循环的维度感知队列长度,并提高队列操作效率,因为这种结构需要的内存量比链表数据结…

论文翻译:DeepFilterNet

目录 摘要1. 引言2. DeepfilterNet2.1. 信号模型2.2. Deep Filtering2.3. 框架概述2.4. DNN模型2.5. 数据处理2.6. 损失函数 3. 实验3.1. 训练步骤3.2. 结果 4. 结论5. 参考文献 论文题目:DeepFilterNet: A Low Complexity Speech Enhancement Framework for Full-B…

MQTT与传统的HTTP协议对比,优势在哪里呢?

HTTP是应用最为广泛和流行的协议。但是MQTT在过去的几年里迅速取得了进展。在讨论物联网开发的时候,开发者必须在这两者之间作出选择。 MQTT集中于数据,而HTTP集中于文档。HTTP是一个用于客户端-服务器计算的请求-响应协议,它并非总是为移动设…

位图和布隆过滤器

目录 位图 布隆过滤器 位图 假设有1000 万个范围在1~ 1亿的整数。如何快速查找某个整数是否出现在这1000万个整数中? 当然,这个问题仍然可以使用哈希表来解决。不过,针对这个“特殊”问题,我们可以使用一种比较“特殊”的哈希表&#xff…