Research and Professional Experience


Research Internship

Stanford Vision and Learning Lab (SVL)

Mar 2020 – May 2022 Stanford, CA, USA

Research internship at the Stanford Vision and Learning Lab (SVL) at Stanford University. I am under the supervision of Professors Juan Carlos Niebles and Fei-Fei Li. Responsibilities include:

  • Research in privacy-preserving optics to perform computer vision tasks. Implementations in Human Pose Estimation and Human Action Recognition.

Specialized Professional

Universidad Industrial de Santander

Jan 2019 – Present Bucaramanga, Colombia

Specialized professional, under the cooperation framework agreement 5222395, Research Projects UIS-Ecopetrol. Responsibilities include:

  • To design an algorithm for the conversion of 3D RMS time velocities to 3D interval velocities in depth using Image rays.
  • To implement the designed algorithm using Nvidia Cuda.
  • To validate the algorithm using 3D real seismic image datasets.

Specialized Technical Support

Cooperativa de Tecnologos e Ingenieros de la Industria del Petroleo y Afines (T.I.P)

Jun 2018 – Dec 2018 Girón, Santander, Colombia
Technical report and stabilization of a plugin in DecisionSpace Geosciences for 2D interactive picking in time and depth domains.

Young Researcher


May 2017 – May 2018 Bucaramanga, Colombia

Responsibilities include:

  • To determine the distribution of pixels in a coded aperture responsible for saturation of a multispectral sensor and to analyze how these saturated compressed measures affect the reconstruction of the multispectral image.

Researcher: MS Thesis

Universidad Industrial de Santander

May 2017 – May 2018 Bucaramanga, Colombia

Master Tesis: Coded Aperture Design for Compressive Spectral Imaging Subspace Clustering. Main Objective:

  • To design and simulate a set of coded optical apertures for a compressive acquisition system of spectral images to perform unsupervised classification (clustering) directly on compressed measurements.

Researcher: Engineering Degree Thesis

Universidad Industrial de Santander

May 2017 – May 2018 Bucaramanga, Colombia
Engineering Degree Tesis: Compressive sensing of multispectral images using detectors based on arrangements of optical filters and a dispersive element.

Software Engineer and Researcher


Sep 2016 – May 2017 Bucaramanga, Colombia

Research project financed by Colciencias. Responsibilities include:

  • Support in the design of the software architecture for client-server communication of the Qltivo mobile application.
  • Support in the design and implementation of an algorithm for the extraction of the NVDI and GRVI vegetation indices, chlorophyll content, and nitrogen content in RGB images acquired through the camera of a cell phone.


Universidad Industrial de Santander

Jul 2016 – Sep 2016 Bucaramanga, Colombia
Taught computer programming using C and C++ language.

Software Engineer and Researcher

UIS - Ecopetrol Alliance AC. 09

Apr 2016 – Mar 2017 Bucaramanga, Colombia

Responsibilities include:

  • Support in the design and implementation of an image ray method, in Java programming language, for the development of a module, in the DecisionSpace Geoscience software, for the seismic velocity estimation and conversion from time to depth.

Software Engineer and Researcher

UIS - Ecopetrol Alliance AC. 04

Nov 2014 – Dec 2015 Bucaramanga, Colombia

Responsibilities include:

  • Design and implementation of an algorithm for the detection and elimination of Ground Roll noise in Seismic Images using the Curvelet transform.
  • Development of a module, in C / C ++ programming language, for the SeisSpace ProMAX software that implements the developed algorithm.

Researcher HDSP Group

High Dimensional Signal Processing Group (HDSP)

Jan 2014 – Present Bucaramanga, Colombia
Active member of the HDSP group.

Professional Skills









Time Management


Algorithm Design


Software Development




Programming Languages

















Hybrid Mobile App Dev






Bash Scripting




Ph.D. in Computer Science

Universidad Industrial de Santander

Aug 2017 – Present Bucaramanga, Colombia

M.Sc. in Computer and Systems Engineering

Universidad Industrial de Santander

Jan 2016 – Mar 2018 Bucaramanga, Colombia

Computer and Systems Engineer

Universidad Industrial de Santander

Mar 2011 – Dec 2015 Bucaramanga, Colombia



Neural Networks and Deep Learning

Duration: 40 Hours.
See certificate

Mimetic Discretization Methods

Duration: 3 Hours.
See certificate

The Wave Equation in Geophysics

Duration: 3 Hours.
See certificate

Applications of Informatics: Google for Collaborative Learning.

Duration: 30 Hours.
See certificate


Journal and conference papers I have published

Recent advances in deep learning led to several algorithms for the accurate diagnosis of pneumonia from chest X-rays. However, these models require large training medical datasets, which are sparse, isolated, and generally private. Furthermore, these models in medical imaging are known to over-fit to a particular data domain source, i.e., these algorithms do not conserve the same accuracy when tested on a dataset from another medical center, mainly due to image distribution discrepancies. In this work, a domain adaptation and classification technique is proposed to overcome the over-fit challenges on a small dataset. This method uses a private-small dataset (target domain), a public-large labeled dataset from another medical center (source domain), and consists of three steps. First, it performs a data selection of the source domain’s most representative images based on similarity constraints through principal component analysis subspaces. Second, the selected samples from the source domain are fit to the target distribution through an image to image translation based on a cycle-generative adversarial network. Finally, the target train dataset and the adapted images from the source dataset are used within a convolutional neural network to explore different settings to adjust the layers and perform the classification of the target test dataset. It is shown that fine-tuning a few specific layers together with the selected-adapted images increases the sorting accuracy while reducing the trainable parameters. The proposed approach achieved a notable increase in the target dataset’s overall classification accuracy, reaching up to 97.78% compared to 90.03% by standard transfer learning.

Image captioning is a challenging task that connects two major artificial intelligence fields: computer vision and natural language processing. Image captioning models use traditional images to generate a natural language description of the scene. However, the scene could contain private information that we want to hide but still generate the captions. Inspired by the trend of jointly designing optics and algorithms, this paper addresses the problem of privacy-preserving scene captioning. Our approach promotes privacy preservation, by hiding the faces in the images, during the acquisition process with a designed refractive camera lens while extracting useful features to perform image captioning. The refractive lens and an image captioning deep network architecture are optimized end-to-end to generate descriptions directly from the blurred images. Simulations show that our privacy-preserving approach degrades private visual attributes (e.g., face detection fails with our distorted images) while achieving comparable captioning performance with traditional non-private methods on the COCO dataset. See our Project Page!

This paper proposes a hierarchical approach to design the sensing matrix of the SPC, such that the pixel clustering task can be performed directly using the compressed infrared SPC measurements without a previous reconstruction step. Specifically, a sensing matrix is designed to extract features directly from the compressed measurements at each hierarchy step. Then, a final segmentation map is obtained through majority voting in the partial clustering results.

In this paper, we propose a fast algorithm that obtains a sparse representation coefficient matrix by first selecting a small set of pixels that best represent their neighborhood. Then, it performs spatial filtering to enforce the connectivity of neighboring pixels and uses fast spectral clustering to get the final clustering map.

The widespread use of always-connected digital cameras in our everyday life has led to increasing concerns about the users privacy and security. How to develop privacy-preserving computer vision systems? In particular, we want to prevent the camera from obtaining detailed visual data that may contain private information. However, we also want the camera to capture useful information to perform computer vision tasks. Inspired by the trend of jointly designing optics and algorithms, we tackle the problem of privacy-preserving human pose estimation by optimizing an optical encoder (hardware-level protection) with a software decoder (convolutional neural network) in an end-to-end framework. We introduce a visual privacy protection layer in our optical encoder which, parametrized appropriately, enables the optimization of the point spread function (PSF) of the camera lens. We validate our approach with extensive simulations and a prototype camera. We show that our privacy-preserving deep optics approach successfully degrades or inhibits private attributes while maintaining important features to perform human pose estimation. See our Project Page!

The unsupervised classification of hyperspectral images (HSIs) draws attention in the remote sensing community due to its inherent complexity and the lack of labeled data. Among unsupervised methods, sparse subspace clustering (SSC) achieves high clustering accuracy by constructing a sparse affinity matrix. However, SSC has limitations when clustering HSI images due to the number of spectral pixels. Specifically, the temporal complexity grows at a cubic ratio of the size of the data, making it inefficient for addressing HSI subspace clustering. We propose an efficient SSC-based method that significantly reduces the temporal and spatial computational complexity by splitting the HSI clustering task using similarity-constrained sampling. Our similarity-constrained sampling strategy considers both edge and superpixel information of the HSI to boost the clustering performance. This sampling strategy enables an intelligent selection of spectral signatures, and then, we split the clustering problem into multiples threads. Experimental results on widely used HSI datasets show that the efficiency of the proposed method outperforms baseline methods by up to 30% in overall accuracy and up to six times in computing time.

Recent advances in deep learning have led to an accurate diagnosis of pneumonia from chest X-ray images. However, these models usually require large labeled training datasets, not always available in practice. Furthermore, combining images from different medical centers does not preserve the accuracy of the results mainly because of differences in image acquisition settings. In this work, we propose an approach aiming to overcome this challenge, consisting of a subspace-based domain adaptation technique to increase pneumonia detection accuracy using a small training dataset. This dataset is augmented with automatically selected images from a large dataset acquired in a different medical center. This is performed by computing a subspace basis of the target domain dataset on which is projected the source dataset to find the most representative images. Augmenting the training set using the proposed method allows achieving an improvement from 90.03% to 96.18% in overall accuracy using the Xception neural network.

The accurate segmentation of remotely sensed hyperspectral images has widespread attention in the Earth observation and remote sensing communities. In the past decade, most of the efforts focus on the development of different supervised methods for hyperspectral image classification. Recently, the computer vision community is developing unsupervised methods that can adapt to new conditions without leveraging expensive supervision. In general, among unsupervised classification methods, sparse subspace clustering (SSC) is a popular tool that achieves good clustering results on experiments with real data. However, for the specific case of hyperspectral clustering, the SSC model does not take into account the spatial information of such images, which limits its discrimination capability and hampering the spatial homogeneity of the clustering results. As a solution, we propose to incorporate a regularization term to the SSC model, which takes into account the neighboring spatial information of spectral pixels in the scene. Specifically, the proposed method uses a three-dimensionall (3D) Gaussian filter to perform a 3D convolution on the sparse coefficients, obtaining a piecewise-smooth representation matrix that enforces an averaging constraint in the SSC optimization program. Extensive simulations demonstrate the effectiveness of the proposed method, achieving an overall accuracy of up to 99% in the selected hyperspectral remote sensing datasets.

In this work, we propose a hierarchical adaptive approach to design a sensing matrix of the single-pixel camera, such that pixel clustering can be performed directly on the compressed domain. We obtain overall accuracies of 79%, and 65%.

In this work, we propose to obtain features by considering the spectral information extracted from Hyperspectral CSI measurements, and the local spatial information extracted by clustering the Multispectral CSI measurements.

This paper proposes an adaptive grayscale coded aperture design which combines the advantages of blue noise and block-unblock coding patterns to provide high-quality image reconstructions and redundancy in the sampling.

The proposed approach exploits the spatial information of an RGB image by grouping pixels with similar characteristics into superpixels and fuses such features with the spectral information of an HS image.

This paper proposes to design a set of coding patterns such that inter-class and intra-class data structure is preserved after the CSI acquisition in order to improve clustering results directly on the compressed domain. To validate the coding pattern design, an algorithm based on sparse subspace clustering (SSC) is proposed to perform clustering on the compressed measurements.

This paper extends the concept of SCCSI to a system admitting multiple snapshot acquisition by rotating the dispersive element, so the dispersed spatio-spectral source is coded and integrated at different detector pixels in each rotation. Thus, a different set of coded projections is captured using the same optical components of the original architecture.



Learning Privacy-preserving Optics for Human Pose Estimation

In this project, we design the camera lens to perform human pose estimation while preserving users’ privacy.

Smartphone-based application for agricultural remote technical assistance in Colombia

In this project we developed AgroTIC, a smartphone-based application for the agricultural sector in Colombia aimed at reducing such digital breach through smartphones low-cost and ubiquitous technology.

Time to depth conversion and seismic interval velocity estimation

Research project developed with Ecopetrol S.A., which includes the development of optimization algorithms for time to depth conversion, and development of modules for DesicionSpace Geoscience Software.