Integrating Simulink, OpenVX, and ROS for Model-Based Design of Embedded Vision Applications

OpenVX is increasingly gaining consensus as standard platform to develop portable, optimized and power-efficient embedded vision applications. Nevertheless, adopting OpenVX for rapid prototyping, early algorithm parametrization and validation of complex embedded applications is a very challenging task. This paper presents a comprehensive framework that integrates Simulink, OpenVX, and ROS for model-based design of embedded vision applications. The framework allows applying Matlab-Simulink for the model-based design, parametrization, and validation of computer vision applications. Then, it allows for the automatic synthesis of the application model into an OpenVX description for the hardware and constraints-aware application tuning. Finally, the methodology allows integrating the OpenVX application with Robot Operating System (ROS), which is the de-facto reference standard for developing robotic software applications. The OpenVX-ROS interface allows co-simulating and parametrizing the application by considering the actual robotic environment and the application reuse in any ROS-compliant system. Experimental results have been conducted with two real case studies: An application for digital image stabilization and the ORB descriptor for simultaneous localization and mapping (SLAM), which have been developed through Simulink and, then, automatically synthesized into OpenVX-VisionWorks code for an NVIDIA Jetson TX2 board.

[1]  Alain Mérigot,et al.  Investigation and performance analysis of OpenVX optimizations on computer vision applications , 2016, 2016 14th International Conference on Control, Automation, Robotics and Vision (ICARCV).

[2]  Gary R. Bradski,et al.  ORB: An efficient alternative to SIFT or SURF , 2011, 2011 International Conference on Computer Vision.

[3]  Nicola Bombieri,et al.  Extending OpenVX for model-based design of embedded vision applications , 2017, 2017 IFIP/IEEE International Conference on Very Large Scale Integration (VLSI-SoC).

[4]  Andreas Geiger,et al.  Vision meets robotics: The KITTI dataset , 2013, Int. J. Robotics Res..

[5]  Alexey Syschikov,et al.  OpenVX Integration Into the Visual Development Environment , 2018, Int. J. Embed. Real Time Commun. Syst..

[6]  James H. Anderson,et al.  Supporting Real-Time Computer Vision Workloads Using OpenVX on Multicore+GPU Platforms , 2015, 2015 IEEE Real-Time Systems Symposium.

[7]  James H. Anderson,et al.  Supporting Real-Time Computer Vision Workloads Using OpenVX on Multicore+GPU Platforms , 2015, RTSS.

[8]  J. M. M. Montiel,et al.  ORB-SLAM: A Versatile and Accurate Monocular SLAM System , 2015, IEEE Transactions on Robotics.

[9]  Orlando Moreira,et al.  Automatic Control Flow Generation for OpenVX Graphs , 2017, 2017 Euromicro Conference on Digital System Design (DSD).

[10]  Luca Benini,et al.  ADRENALINE: An OpenVX Environment to Optimize Embedded Vision Applications on Many-core Accelerators , 2015, 2015 IEEE 9th International Symposium on Embedded Multicore/Many-core Systems-on-Chip.

[11]  Kari Pulli,et al.  Realtime Computer Vision with OpenCV , 2012, ACM Queue.

[12]  Alessandro Farinelli,et al.  Fast and Power-Efficient Embedded Software Implementation of Digital Image Stabilization for Low-Cost Autonomous Boats , 2017, FSR.

[13]  Kari Pulli,et al.  Addressing System-Level Optimization with OpenVX Graphs , 2014, 2014 IEEE Conference on Computer Vision and Pattern Recognition Workshops.

[14]  Hailin Jin,et al.  Light field video stabilization , 2009, 2009 IEEE 12th International Conference on Computer Vision.