OpenVX编程指南:核心特性与优势解析
1. 可移植性
OpenVX 是一种 API,它使计算机视觉开发者能够编写一次程序,就能在硬件上高效执行,前提是该硬件有高效的 OpenVX 实现。对于这个 API,合理的期望是它能在不同平台上产生相同的结果。但“相同结果”具体意味着什么呢?如何测试同一函数的两种实现是否返回相同结果?有以下几种方法:
- 位精确测试 :实现的输出与真实值不应有一位的差异。这种测试有助于确保结果相同,但在很多情况下,位精确测试并无意义。例如,一个简单的相机镜头畸变校正函数使用浮点计算,即使图像变换的计算方法有明确规定,位精确要求可能也过于严格。比如,符合 IEEE 754 浮点计算标准在定点架构上可能导致效率极低的实现。因此,在很多情况下,允许结果有一定差异是有益的。
- 基于容差的比较 :例如,我们可以要求输出图像在每个像素和每个通道上与参考实现的输出差异不超过 ϵ。选择阈值 ϵ 并没有精确的科学方法。阈值越高,为特定平台优化函数的空间就越大,不同平台上结果的可变性也越高。计算机视觉意味着从图像中提取高级信息,如果这种高级信息的较大可变性妨碍了解决问题,那么阈值就太高了。例如,图像拼接算法中涉及的图像算术运算,在一个平台上产生高质量图像,而在另一个平台上产生可见的拼接线,就不应通过基于容差的测试。
- 算法测试 :确保函数返回正确结果的有用测试是测试结果的某些属性。例如,人脸检测器应返回包含人脸的图像矩形。文本分割算法应返回图像中包含文本的区域。虽然算法测试对任何计算机视觉库都有用,但它们通常不是确保可移植性的好选择。因为人脸检测器返回包含人脸的矩形,
OpenVX核心特性与优势详解
超级会员免费看
订阅专栏 解锁全文
52

被折叠的 条评论
为什么被折叠?



