Accelerated Convolutions for Efficient Multi-Scale Time to Contact Computation in Julia
This work addresses the need for faster and more memory-efficient convolutions in real-time AI applications like machine vision, though it is incremental as it focuses on implementation optimization in a specific language.
The paper tackled the problem of efficient convolution computation for real-time machine vision by developing an accelerated n-dimensional convolution package in Julia, achieving over an order of magnitude reduction in compute time and memory usage for time to contact tasks.
Convolutions have long been regarded as fundamental to applied mathematics, physics and engineering. Their mathematical elegance allows for common tasks such as numerical differentiation to be computed efficiently on large data sets. Efficient computation of convolutions is critical to artificial intelligence in real-time applications, like machine vision, where convolutions must be continuously and efficiently computed on tens to hundreds of kilobytes per second. In this paper, we explore how convolutions are used in fundamental machine vision applications. We present an accelerated n-dimensional convolution package in the high performance computing language, Julia, and demonstrate its efficacy in solving the time to contact problem for machine vision. Results are measured against synthetically generated videos and quantitatively assessed according to their mean squared error from the ground truth. We achieve over an order of magnitude decrease in compute time and allocated memory for comparable machine vision applications. All code is packaged and integrated into the official Julia Package Manager to be used in various other scenarios.