在线商品营销网店的开发外文翻译资料

 2022-08-08 11:08

英语原文共 110 页,剩余内容已隐藏,支付完成后下载完整资料


原文:

Chapter4 A Library for FPGA Implementation of Vision Algorithms.

The ever-growing usage of computer vision in our daily livesrequires real-time and powerefficient implementations. FPGAs are very effective in accelerating various computer visionalgorithms.Unfortunately, developers may not be familiar with FPGA design, let alone efficient implementation. Even a CPU implementation of vision algorithms using programming languages such as

C/C is time-consuming and error-prone. Moreover, despite advances in High-Level Synthesis (HLS) tools, they are still not able to generateefficient hardware implementation for visionalgorithms developed in general-purpose pro-gramming languages (e.g., C ). The main reason is that HLS tools do notincorporate specific optimization methods of vision algorithms, which are critical to the effi-cient implementation of such algorithms. On the other hand, popular vision libraries, such asOpenCV, only provide efficient implementations for CPUs and GPUs. FPGA designersoften consider the application-specific design and implementation on FPGAs. For example,several computer vision applications including stereo vision, SIFT,CNNs and DNNs have been designed and implemented for FPGA acceleration.This chapter presents a scalable library developed in OpenCL that provides the basic blocks for building computer vision sy-

stems on FPGAs.This library supports a wide variety of vision kernels and can be configured with different structural and functional parameters.It can be used as part of an OpenCL program independently or as part of a high-level framework.

To make the library portable, We have tried to use vendor-specific functions aslittle as possible.

4.1Introduction to OpenVX

OpenVX is an open standard for cross-platform acceleration ofcomputer vision algorithms. OpenVX defines a set of primitive

and widely used vision kernels that can be connected todescribe computer vision pipelines as Directed Acyclic Graphs (DAG). In such DAGs, nodesrepresent data processing kernels while

the edges represent datadependencies between them.This model maps nicely to computervision development since many vision pipelines can bemodeled asDAGs. Figure 4.1 shows how OpenVX specification can be used in computer vi-sion algorithm develop-

ment process. While it can be used directly to model the application,it can also beused as an implementation backend for high-level computer vision frameworks.

Figure 4.2 shows different stages in lifecycle of an OpenVX

algorithm graph.Initially, thevision developer instantiates the OpenVX elements to describe the algorithm graph. Afterthe graph definition is finalized, the graph is verified for soundness. For instance, the graphmust be connected, should not include any loops, and parameters passed to the graph elements

must have values within the valid range.Upon successful verifi-

cation, graphs canbe executed, possibly for repeated times. No graph verification is needed for subsequenceOpenVX is design-

ed to achieve the following list of objectives:

System-level optimization:OpenVX graph-based model provides greater optimiza-tion opportunities above the traditional function

level that applies to the whole system. An example of such

optimizations is kernel aggregation, in which a specificset of

nodes in a graph are replaced with a single node that offers the same functionality. Anotherexample is tiling, in which,images are broken down to smaller sub-imagescalled tiles thatcan be processed separately. Processing tileslead to a smaller memoryfootprint and cache-friendly implementations. Tiles can also potentially be processedin parallel.

Portability:OpenVX abstracts away hardware-specific details fromthe algorithmspecification. Hence graphs can target different platforms.

Improved productivity:Decouplingthe specification and the imple-

mentation makesdeveloping visionalgorithms easier.Computer visiondevelopers can focus on algorithmdesign and rely on platform

vendors to provide the optimized implementation.In addition, a

single specification can be translated into different implementations thatmeet different performance and powerbudget constraints.

executions unless there are changes in the graph definition. Finally, after the execution isfinished, the graph will be deconstructed to free up resources.

Various hardware vendors have provided their implementation ofOpenVX run-time for optimizing and executing the graphs such as Nvidia VisionWorks and AMD AmdoVX.Tagliavini et al. Proposed

a run-time solution for optimizing OpenVX graphs on embeddedmany

-core accelerators.OpenVX has also been investigated for building computervision systems with real-time constraints. OpenVX defines several vision processing constructs to describe algorithm graphs:

  1. Vision function nodes: OpenVX provides a set of widely used primitive visionfunctions that act as basic blocks of building more complex algorithms. We havethoroughly analyzed all the vision functions provided1 and classified them based onthe pattern that they access to input image pixels. Table4.1 lists various categoriesof vision functions.
  1. Data object nodes: OpenVX defines several objects to represent data used by algo-rithms, including images, scalars,arra-ys, and image pyramids.Image pyramids represent an image at

Multiple scales.For robustness and scale-invariance,computer vision systems often process multiple scales of images. Data objects

have

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[258273],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。