Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
add readme
  • Loading branch information
hweeraso authored May 15, 2024
0 parents commit dc89b50
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Resolution Limit of Single-Photon LiDAR
This is the MATLAB implementation of the paper <span style="color:RED ">**Resolution Limit of Single-Photon LiDAR**</span> - CVPR 2024, by Stanley H. Chan, Hashan K. Weerasooriya, Weijian Zhang, Pamela Abshire and Istvan Gyongy and Robert K. Henderson.


Click on the corresponding link to
- [**Read the Paper and Supplementary Material**](https://arxiv.org/abs/2403.17719)
- [**Download the Data**](https://arxiv.org/abs/2403.17719)


![Main Figure](figs/Figure01_main_figure.png)


![Main Results](figs/Figure02_results_mse.png)



## Requirements ##
- [x] This code has been tested on MATLAB 2023a


## Usage ##

### MATLAB Scripts ###
- <span style="color:green ">Figure02_matched_filter.m</span> *Visualize the matched filter output*.
- <span style="color:green ">Figure03_space_time.m</span> *Visualize the effective return pulse due to obervating $\lambda(x,t)$ through $N$ pixels and pulse broadening due to slanting surfaces*.
- <span style="color:green ">Figure05_1D_mse.m</span> *Display the simulated and MSE calculation theroretical MSE calculation for the 1D case*.
- <span style="color:green ">Figure06_1D_variance.m</span> *Highlight the significance of the spatial term $c^2 \sigma_x^2$
in variance calculation*.
- <span style="color:green ">Figure07_2D_mse.m</span> *Display the simulated and MSE calculation theroretical MSE calculation for the 2D case*.
- <span style="color:green ">Figure08_******.m</span> *Visualize the variation of the ML estimation for different spatial resolution and calculated and theoreteical MSE variation for the real 2D data*.
- <span style="color:green ">Figure11_tau.m</span> *Display the ground truth time of arrival function for the 1D case*.
- <span style="color:green ">Figure12/13_bias_example.m</span> *Show the limitations of the approximations for the bias term under different ground truth time of arrival function variations-smooth, stepwise, noisy*.
- <span style="color:green ">Figure14_bias_update.m</span> *Show how the updated theoretical estimate of the bias varies with noisy ground truth*.
- <span style="color:green ">Figure16_sampling.m</span> *Demonstrate how to use the inverse CDF to generate time stamps under different pulse shapes*.
- <span style="color:green ">Figure17_18_sampling.m</span> *Visualize the likelihood functions original likelihood and derivative of the original likelihood for any arbitrary pulse including Gaussian*.
- <span style="color:green ">Figure19_noise_floor.m</span> *Demonstrate that the MSE thoretical bound still holds for non zero noise floor instances*.
- <span style="color:green ">Figure20_pile_up_1D.m</span> *Show the variation of time stamp histogram under pile-up effect*.
- <span style="color:green ">Figure21_pile_up_MSE.m</span> *Display the MSE comparison in the presence of pile-up effect*.
- <span style="color:green ">Figure22_2D_bias.m</span> *Demonstrate how the bias term varies in the 2D case*.
- <span style="color:green ">Figure23_2D_bias.m</span> *Demonstrate how the variance term changes in the 2D case*.
- <span style="color:green ">real_check_alpha0.m</span> *Calculate the total pulse energy $\alpha_0$ for the static fan real dataset*.
- <span style="color:green ">real_check_sigma_t.m</span> *Calculate the pulse variance $\sigma_t$ for the static fan real dataset*.
- <span style="color:green ">real_preprocess.m</span> *Preprocess the timestamp data for the static fan real dataset*.



### MATLAB functions ###

- <span style="color:green ">generate_time_stamps.m</span> *Generate $M$ random timestamps following the provided pulse function $\lambda(t)$*.
- <span style="color:green ">myLikelihood.m</span> *Calculate negative log likelihood values for given set of time stamps when the pulse is Gaussian*.
- <span style="color:green ">myLikelihood_dt.m</span> *Calculate the derivative of the negative log likelihood at given set of time stamps when the pulse is Gaussian*.
- <span style="color:green ">myLikelihood_general.m</span> *Calculate the derivative of the negative log likelihood values for given set of time stamps for any given arbitrary pulse*.
- <span style="color:green ">myLikelihood_general_dt.m</span> *Calculate the derivative of the negative log likelihood at given set of time stamps and for any given arbitrary pulse*.




## arXiv Citation ##
If you find this paper to be valuable for your research, kindly consider citing our work.
```
@misc{chan2024resolution,
title={Resolution Limit of Single-Photon LiDAR},
author={Stanley H. Chan and Hashan K. Weerasooriya and Weijian Zhang and Pamela Abshire and Istvan Gyongy and Robert K. Henderson},
year={2024},
eprint={2403.17719},
archivePrefix={arXiv},
primaryClass={eess.SP}
}
```

## Contact Information ##
Please email *hweeraso@purdue.edu* if you have any difficulty replicating the results.

0 comments on commit dc89b50

Please sign in to comment.