Acceleration of the MVS workflow using graphics processors
摘要
Computer Vision (CV) leverages artificial intelligence to analyse digital images, offering insights for a wide range of different applications. While CV software often relies on open-source libraries such as OpenCV, it is probably more common for this software to use custom codes. Creating particular solutions stems from the very nature of the specific CV problems being addressed but, despite these particularities, there are common links at the core that are either not addressed by generic CV libraries or require significant customisation for specific applications. Understanding the nature of real problems faced by a digital image analysis use case can contribute as much as solving a generic CV problem, and this is the aim of this paper. This article addresses the problem of migrating to CUDA a part of Multiscan Vision System, a complex CV workflow utilised in a real-world, industrial use case. The primary challenge lies in minimising the overhead due to data transfers between the host and GPU (graphics processing unit), or even within the device’s memory itself. While the speed-up achieved may not rival that of other applications more suitable to GPU architecture (in particular, massively data parallel applications), the algorithms and data distribution proposed in this study effectively offload a substantial portion of the workflow to the GPU in the context of low (integer) arithmetic intensity and real-time constraints. This frees the CPU to handle other workflow components and increases the capability to incorporate more cameras, significantly boosting productivity and economic performance.