OpenVX 数据对象

 OpenVX 数据对象

数据对象是由节点中的图处理的对象。

1)Object: Array

不透明的数组对象,可以是基元数据类型或结构的数组。

2)Object: Convolution

包含vx_int16值的M×N矩阵的不透明对象。还包含用于规范化的缩放因子。专门

用于vxuConvolve和vxConvolveNode。

3)Object: Delay

一个不透明的对象,包含手动控制的、临时延迟的对象列表。

4)Object: Distribution

包含频率分布(例如直方图)的不透明对象。

5)Object: Image

一个不透明的图像对象,可能是vx_df_image_e中的某种格式。

6)Object: LUT

与vxTableLookupNode和vxuTableLookup一起使用的不透明查找表对象。

7)Object: Matrix

一个不透明的对象,包含一些标量值的M×N矩阵。

8)Object: Pyramid

一个不透明的对象,包含多个级别的缩放vx_image对象。

9)Object: Remap

一个不透明对象,包含用于变换图像的源点到目标点的映射。

10)Object: Scalar

包含单个基元数据类型的不透明对象。

11)Object: Threshold

包含阈值设置的不透明对象。

12)Object: ObjectArray

一个不透明的数组对象,可以是OpenVX的任何数据对象(非数据类型)的数组,

Delay和ObjectArray对象除外。

13)Object: Tensor

不透明的多维数据对象。用于vxHOGFeaturesNode、vxHOGCellsNode和神经网络

扩展等功能。

2.2.7错误对象

错误对象是可能从其他对象返回的专用对象,当发生严重的平台问题(即内存不足或无法控制)。可能从其他对象创建者函数返回的专用对象。这些可以在创建这些对象时进行检查,但检查也可能延迟到其他API中使用或验证,实现必须返回适当的错误,以指示使用了无效的对象类型。

vx_<object> obj = vxCreate<Object>(context, ...);

vx_status status = vxGetStatus((vx_reference)obj);

if (status == VX_SUCCESS) {

    // 目标是好的

}

图形概念

图形是 OpenVX 的核心计算概念。使用图形来表示计算机视觉问题,目的是允许任何实现的可能性,以最大限度地优化其潜力,因为图及其依赖项的所有操作,都是在处理图形前预先知道。

图形由添加到图形中的一个或多个节点组成并创建功能。OpenVX中的图形必须在处理时间前创建与实现后,需要多次处理。

1. 链接节点

图节点通过数据依赖关系链接在一起,没有明确的顺序。同一引用可以链接到其他节点。然而,链接有一个局限性,即图中只有一个节点可以输出到任何特定的数据对象引用。也就是说,在给定的图中可能只存在一个对象的单个写入器。这可以防止数据依赖项的不确定排序。图形中的所有编写器,都应在数据的任何读取器访问前,生成输出数据。

2.虚拟数据对象

OpenVX中的图形依赖于数据对象,并将节点链接在一起。当OpenVX的客户端知道不需要访问这些中间数据对象时,可能会被创建为虚拟的。虚拟数据对象可以以与非虚拟数据对象相同的方式,将图的节点链接在一起;然而,虚拟数据对象在以下方面不同。

1)不可访问

如果从Graph外部角度引用,通过虚拟函数创建对象,则不应成功调用映射/取消映射或复制API。从与虚拟对象属于同一图形的客户端定义节点中,可成功调用映射/取消映射或复制API,因为它们是图形内部的。

2)范围界定

虚拟数据对象的范围在创建它们的Graph中,不能在其范围之外共享。虚拟数据对象的数据内容的活动范围,仅限于单个图形执行。换言之,虚拟对象的数据内容是在图形执行前定义的,并且不应期望虚拟对象的任何数据,在应用程序的连续图形执行中被保留。

3)中间操作

虚拟数据对象应仅用于图形中的中间操作,因为API的客户端根本无法访问它们。

4)无标注或无格式

创建虚拟数据对象的标注和格式时,可能部分或完全未定义。例如,可以创建未定义或部分定义的维度(0x0、Nx0或0xN,其中N不为空)和/或不具有定义的格式(VX_DF_image_VIRT)的虚拟图像。虚拟对象在创建时的未定义属性是关于图定义的实现,并且在图验证时是可变的;将在每次图形验证时自动调整,从输出虚拟对象的节点推导出来。在虚拟对象创建时,定义良好的维度和格式属性是不可变的,并且不能在图形验证时自动调整。

5)属性

即使给定的虚拟数据对象没有完全定义维度或格式,这些属性仍可能被查询。如果在对象参与图形验证前进行查询,则返回的属性值是用户提供的值(例如,维度的0)。如果在图形验证(或重新验证)后查询,返回的属性值将是图形验证规则确定的值。

虚拟数据的无量纲或无格式是一种允许创建与维度,或格式相关的通用图形的商品,但有一些限制:

(1)当无法从虚拟输出对象的其他参数推导出虚拟输出对象时,节点可能需要为其定义大小和/或格式。例如,缩放节点要求输出图像具有定义良好的大小,而颜色转换和通道组合节点,则要求输出图像采用定义良好的格式。

(2)从ROI创建的图像必须始终定义良好(vx_rectangle_t参数),并且不能从无量纲虚拟图像创建。

(3)无格式虚拟图像的ROI不应该是节点输出。

(4)从视觉创建的张量必须始终定义良好,不能从无量纲虚拟张量创建。

(5)无格式虚拟张量的视图不应该是节点输出。

(6)无量纲或无格式虚拟金字塔的级别不应该是节点输出。

6)继承

子对象从其父对象的虚拟属性继承。子对象也继承自其父对象的无标注或无格式特性,但有以下限制。

当调整父属性(父属性是节点的输出)时,它会在图形验证时自动调整。

当子对象本身是节点的输出时,它不能在图验证中进行调整。

7)优化

在Graph验证和执行过程中,不必创建虚拟数据对象,因此虚拟数据对象的大小可能为零。

这些限制使供应商能够优化数据对象或其使用的某些方面。一些供应商可能不分配这样的对象,一些供应商可能创建对象的中间子对象,还有一些供应商可能在远程、不可访问的内存上分配对象。OpenVX并没有禁止供应商进行哪种优化,只是它可能会发生。

对于使用未定义或部分定义的大小和/或未定义格式(VX_DF_IMAGE_VIRT)创建的虚拟图像,在图形验证期间,图像大小和格式将从节点输入图像继承。

虚拟图像验证,视觉功能、输出图像大小与格式,见表2-1。

表2-1 虚拟图像验证,视觉功能、输出图像大小与格式

视觉功能

输出图像大小

输出图像格式

AbsDiff

与输入图像相同

 

Add

与输入图像相同

 

And

与输入图像相同

与输入图像相同

BilateralFilter

 

 

Box3x3

与输入图像相同

 

CannyEdgeDetector

与输入图像相同

 

ChannelCombine

与输入图像相同

 

ChannelExtract

与输入图像相同

 

ColorConvert

与输入图像相同

 

ConvertDepth

与输入图像相同

 

Convolve

与输入图像相同

 

Copy (image object)

与输入图像相同

与输入图像相同

Dilate3x3

与输入图像相同

与输入图像相同

EqualizeHist

与输入图像相同

 

Erode3x3

与输入图像相同

与输入图像相同

FastCorners

 

 

Gaussian3x3

与输入图像相同

 

GaussianPyramid

 

 

HarrisCorners

 

 

HalfScaleGaussian

 

与输入图像相同

HarrisCorners

 

 

HOGCells

 

 

HOGFeatures

 

 

HoughLinesP

 

 

IntegralImage

与输入图像相同

 

LaplacianPyramid

 

与输入图像相同

LaplacianReconstruct

 

与输入图像相同

LBP

与输入图像相同

 

Magnitude

与输入图像相同

 

MatchTemplate

 

 

MeanStdDev

 

 

Median3x3

与输入图像相同

与输入图像相同

Max

与输入图像相同

与输入图像相同

Min

与输入图像相同

与输入图像相同

MinMaxLoc

 

 

Multiply

与输入图像相同

 

NonLinearFilter

与输入图像相同

与输入图像相同

NonMaxSuppression

与输入图像相同

与输入图像相同

Not

与输入图像相同

与输入图像相同

OpticalFlowPyrLK

 

 

Or

与输入图像相同

与输入图像相同

Phase

与输入图像相同

 

Remap

与重新映射目标相同

 

ScaleImage

 

与输入图像相同

Sobel3x3

与输入图像相同

 

Subtract

与输入图像相同

 

TableLookup

与输入图像相同

 

TensorMultiply

 

 

TensorAdd

 

 

TensorSubtract

 

 

TensorMatrixMultiply

 

 

TensorTableLookup

 

 

TensorTranspose

 

 

Threshold

与输入图像相同

 

WarpAffine

 

与输入图像相同

WarpPerspective

 

与输入图像相同

WeightedAverage

与输入图像相同

 

Xor

与输入图像相同

与输入图像相同

posted @   吴建明wujianming  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2024-01-07 汽车域控制器参考设计
2023-01-07 LLVM IR与C++ MUL函数代码
2022-01-07 CPU Cache原理与示例
点击右上角即可分享
微信分享提示