Novelty search for software improvement of a SLAM system

Genetic Improvement (GI) performs a search at the level of source code to find the best variant of a baseline system that improves non-functional properties while maintaining functionality with noticeable results in several domains. There a many aspects of this general approach that are currently being explored. In particular, this work deals to the way in which the search is guided to efficiently explore the search space of possible software versions in which GI operates. The proposal is to integrate Novelty Search (NS) within the GISMOE GI framework to improve KinectFusion, which is a vision-based Simultaneous Localization and Mapping (SLAM) system that is used for augmented reality, autonomous vehicle navigation, and many other real-world applications. This is one of a small set of works that have successfully combined NS with a GP system, and the first time that it has been used for software improvement. To achieve this, we propose a new behaviour descriptor for SLAM algorithms, based on state-of-the-art benchmarking and present results that show that NS can produce significant improvement gains in a GI setting, when considering execution time and trajectory estimation as the main performance criteria.

[1]  Mark Harman,et al.  Genetic Improvement of Software: A Comprehensive Survey , 2018, IEEE Transactions on Evolutionary Computation.

[2]  Zhendong Su,et al.  A study of the uniqueness of source code , 2010, FSE '10.

[3]  William B. Langdon,et al.  Genetic Programming and Evolvable Machines: ten years of reviews , 2010, Genetic Programming and Evolvable Machines.

[4]  Olivier Stasse,et al.  MonoSLAM: Real-Time Single Camera SLAM , 2007, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[5]  Andrew W. Fitzgibbon,et al.  KinectFusion: Real-time dense surface mapping and tracking , 2011, 2011 10th IEEE International Symposium on Mixed and Augmented Reality.

[6]  Michael F. P. O'Boyle,et al.  Introducing SLAMBench, a performance and accuracy benchmarking methodology for SLAM , 2014, 2015 IEEE International Conference on Robotics and Automation (ICRA).

[7]  Paul H. J. Kelly,et al.  Comparative design space exploration of dense and semi-dense SLAM , 2016, 2016 IEEE International Conference on Robotics and Automation (ICRA).

[8]  Leonardo Trujillo,et al.  Searching for novel regression functions , 2013, 2013 IEEE Congress on Evolutionary Computation.

[9]  Mark Harman,et al.  Improving CUDA DNA Analysis Software with Genetic Programming , 2015, GECCO.

[10]  Claire Le Goues,et al.  GenProg: A Generic Method for Automatic Software Repair , 2012, IEEE Transactions on Software Engineering.

[11]  Leonardo Trujillo,et al.  Searching for novel clustering programs , 2013, GECCO '13.

[12]  Yuanyuan Zhang,et al.  Search-based software engineering: Trends, techniques and applications , 2012, CSUR.

[13]  Leonardo Trujillo,et al.  Generalization in Maze Navigation Using Grammatical Evolution and Novelty Search , 2014, TPNC.

[14]  Leonardo Trujillo,et al.  The training set and generalization in grammatical evolution for autonomous agent navigation , 2017, Soft Comput..

[15]  Mark Harman,et al.  Genetically Improved CUDA C++ Software , 2014, EuroGP.

[16]  Mark Harman,et al.  Using Genetic Improvement and Code Transplants to Specialise a C++ Program to a Problem Class , 2014, EuroGP.

[17]  Yue Jia,et al.  Sapienz: multi-objective automated testing for Android applications , 2016, ISSTA.

[18]  John R. Woodward,et al.  Fixing bugs in your sleep: how genetic improvement became an overnight success , 2017, GECCO.

[19]  Oscar Sánchez Siordia,et al.  Novelty Search for the Synthesis of Current Followers , 2016, Computación y Sistemas.

[20]  Paul H. J. Kelly,et al.  Algorithmic Performance-Accuracy Trade-off in 3D Vision Applications Using HyperMapper , 2017, 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW).

[21]  Ole Tange,et al.  GNU Parallel: The Command-Line Power Tool , 2011, login Usenix Mag..

[22]  Paul J. Besl,et al.  A Method for Registration of 3-D Shapes , 1992, IEEE Trans. Pattern Anal. Mach. Intell..

[23]  Luis Muñoz,et al.  Evolving genetic programming classifiers with novelty search , 2016, Inf. Sci..

[24]  Daniel Cremers,et al.  LSD-SLAM: Large-Scale Direct Monocular SLAM , 2014, ECCV.

[25]  Michael F. P. O'Boyle,et al.  Integrating algorithmic parameters into benchmarking and design space exploration in 3D scene understanding , 2016, 2016 International Conference on Parallel Architecture and Compilation Techniques (PACT).

[26]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .

[27]  John J. Leonard,et al.  Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Perception Age , 2016, IEEE Transactions on Robotics.

[28]  Andrew J. Davison,et al.  A benchmark for RGB-D visual odometry, 3D reconstruction and SLAM , 2014, 2014 IEEE International Conference on Robotics and Automation (ICRA).

[29]  Mark Harman,et al.  Improving 3D medical image registration CUDA software with genetic programming , 2014, GECCO.

[30]  Kenneth O. Stanley,et al.  Exploiting Open-Endedness to Solve Problems Through the Search for Novelty , 2008, ALIFE.