As the demand for embedded-vision grows, solving large optimization problems in real-time with energy and cost budget is a challenge. We present BAX, a hardware accelerator of bundle adjustment (BA), which solves the least-squares problem of state estimation in visual odometry (VO). BAX consists of a frontend and a backend for control and computation, respectively. The frontend generates instructions on-the-fly executed at the backend to perform the BA algorithm. The backend adopts decoupled access/execute (DAE) architecture, which separates the memory access unit (MAU) from the pipeline. The MAU can prefetch vectors and matrices ahead of computations. To further reduce the latency of data reorganization, three transpose-free dataflows are proposed for matrix multiplication operations on the vector processing unit (VPU). Besides, a unified architecture for both forward and backward substitution is designed for matrix decomposition in the linear solver. All the data are stored in 442kB on-chip memory, and the local map is maintained efficiently by the hierarchical graph memory. Compared with the baseline architecture, the processing time is reduced by 53.9% through the above techniques. BAX is implemented in 32-bit floating-point precision with data normalization on FPGA. It completes a full BA in about 63.44ms at 200MHz, consuming 1.12W power. BAX is 1.73× and 22.38× faster than the desktop and embedded CPUs, respectively, and achieves 90% performance of the GPU at much less power consumption.
CITATION STYLE
Sun, R., Liu, P., Xue, J., Yang, S., Qian, J., & Ying, R. (2020). BAX: A Bundle Adjustment Accelerator with Decoupled Access/Execute Architecture for Visual Odometry. IEEE Access, 8, 75530–75542. https://doi.org/10.1109/ACCESS.2020.2988527
Mendeley helps you to discover research relevant for your work.