Research projects at UCSD
During my Ph.D. at UCSD, I worked on a variety of projects, from scanning archaeological sites to improving FPGA design optimization techniques.
Below is a list of projects I worked on and different papers I published.
Table of contents:
Thesis: Automatic Optimization of System Design for 3D Mapping of Archaeological Sites
Deeply buried within the jungle of Central America lie the remains of the ancient Maya civilization. In order to reach these old ruins, archaeologists dig tunneling excavations spanning tens of meters underground. Unfortunately, most of these excavations must be closed for conservation purposes, and it is therefore crucial to document these findings as precisely as possible. Many solutions exist to create a 3D scan of these environments, but most of them are too costly, difficult to deploy, or do not provide real-time feedback. A possible solution to create a 3D mapping system overcoming these problems is to use Simultaneous Localization And Mapping (SLAM) algorithms, combined with low-cost sensors and low-power hardware. However, the combined complexity of software design and hardware design represents an immense challenge to implement a system optimized for all requirements. The vast pool of possible designs and the multiple, often conflicting objectives contribute to produce design spaces too complex to be explored manually.In this thesis, we explore the complexity of designing SLAM applications using various types of hardware. First, we manually evaluate SLAM algorithms for 3D mapping, and specifically optimize one SLAM algorithm on an FPGA hardware. Then we expand our exploration to a larger space of designs, and generalize this problem to the design of all complex applications that require a lengthy evaluation time. We develop several learning-based methods to help designers finding the best combinations of optimizations that maximize multiple objectives. By using a smart sampling algorithm,and removing the need of selecting a specific regression model, we can help users largely decrease the number of designs to evaluate before reaching an optimal architecture.
Project: Maya Archaeology - Tunnel Mapping
In the dense canopies of Central America and the Yucatan, the remains of the ancient Maya civilization are mostly hidden underground, buried by centuries of growing jungle. Many Maya archaeological sites are difficult to access, fragile, and not open to the public. These sites, although instrumental in understanding Maya culture, are seen by very few people. Our goal is to document these sites in order to preserve them digitally, and create visualizations for everyone to virtually visit these wonderful places.
Low-cost 3D Scanning Systems for Cultural Heritage Documentation
Traditional techniques for digital documentation of archaeological sites are either very costly (terrestrial LiDAR), or very time-consuming (photogrammetry). Many buried places can benefit from a low-cost, fast, scanning method. We have experimented with several low-cost 3D depth sensors such as Microsoft Kinect and Intel RealSense, and several open-source algorithms, to build a scanning system that can scan tunneling excavations in a short amount of time. We have tested our system on multiple expeditions to the archaeological site of El Zotz in Guatemala.
Our results have been published as an article “Low-cost 3D scanning systems for cultural heritage documentation” in the Journal of Cultural Heritage Management and Sustainable Development.
Visiting Maya Archaeological Sites in Virtual Reality
Many Maya archaeological sites are located within the deep jungle of Central America and cannot be visited easily. Additionally, in order to preserve these ancient buildings, tunneling excavations must often be filled back, thus preventing anyone from accessing certain parts of the sites entirely.
Not only do we want to preserve all of these excavations digitally, but we want to share these experiences in the most immersive way possible. Thanks to various data collection methods, using LiDAR, photogrammetry, traditional photographs, sound recording, etc., we are working on combining all the data we have accumulated over the years at the site of El Zotz to create a virtual reality recreation of the numerous excavations.
Project: Designing FPGA Applications Through Intelligent Design Space Exploration
FPGAs are becoming an important hardware to improve the ratio compute power / energy utilization for many applications. Robotics applications are notably impacted by requiring more processing power for decision making, while often running on limited power. However, designing an efficient application for FPGA is very time-consuming, and a single design can potentially take several hours to map onto the hardware. Each application is usually composed of many parameters that can affect the running time, accuracy, and other desired objectives. Due to the very large space of possible combinations of these parameters, it is often difficult - even for an expert - to predict the outcome of one particular design. We propose smart design space exploration algorithms based on active learning techniques, capable of selecting the most optimal architectures among a pool of possible designs. We also propose tunable FPGA designs to generate and analyze design spaces for multiple applications, and improve the design space exploration methods. We specifically analyze SLAM (Simultaneous Localization And Mapping) design spaces to improve the implementation of such algorithms on FPGA hardware.
Project: Spector: OpenCL benchmarks for FPGA
High-level synthesis tools allow programmers to use OpenCL to create FPGA designs. Unfortunately, these tools have a complex compilation process that can take several hours to synthesize a single design. Understanding the design space and guiding the optimization process is crucial, but requires a significant amount of design space data that is currently unavailable or difficult to generate. To solve this problem, we have developed Spector, an OpenCL FPGA benchmark suite. We outfitted each benchmark with a range of optimization parameters (or knobs), compiled thousands of unique designs using the Altera OpenCL SDK, and recorded their corresponding performance and utilization characteristics. These benchmarks and results are completely open-source and available on our repository.
Project: KinectFusion on FPGA
This work is based on KinectFusion, a project developed by Microsoft Research. You can use a Kinect camera to reconstruct your environment in 3D in real-time, just by holding the camera and moving around. However this program requires a modern GPU that uses a lot of power. We want to run it on a more power-efficient hardware and hopefully get to 3D reconstruction for embedded systems. We are modifying the open-source version of KinectFusion, Kinfu, to make it run on a FPGA, by using high-level tools such as the Altera OpenCL SDK. The program is divided into three parts: Iterative Closest Point (ICP) for camera motion tracking, Volumetric Integration (VI) to build the 3D model, and Ray Tracing for screen rendering. We have integrated the ICP algorithm on an FPGA to make an hybrid GPU/FPGA application run in real-time, and we are working on optimizing VI to run efficiently on the FPGA.