DeepLens is an open-source differentiable ray tracer for optical design, optics-network co-design, and optics-aware rendering.
Welcome to use DeepLens to (1) build your own pipeline or (2) compare as the baseline. We can provide code assistance if you plan to use DeepLens in your research, please contact Xinge Yang (xinge.yang@kaust.edu.sa) for more information. Manufacturing service for both refractive and diffractive elements is also avaliable via collaboration!
Deep learning + lens design
Key features
Fully automated lens design from scratch. Try it at AutoLens!
Lens-network co-design from scratch using final images (or classification/detection/segmentation) as objective.
A surrogate network for fast (aberration + defocus) image simulation.
Design hybrid refractive-diffractive lenses with a new ray-wave model.
Here are two methods to use deeplens in your research:
Clone this repo and write your code inside it.
git clone deeplens
cd deeplens
python 0_hello_deeplens.py
python your_code.py
Clone the repo and install deeplens as a python package.
git clone deeplens
pip install -e ./deeplens
Then in your code:
import deeplens
lens = deeplens.GeoLens(filename='./lenses/cellphone80deg.json')
deeplens/
│
├── deeplens/
│ ├── optics/ (contain core functions for optical components)
| ├── network/ (contain network architectures for image reconstruction and implicit representation)
| ├── geolens (lensgroup using ray tracing)
│ └── diffraclens (lensgroup using wave propagation)
│
├── README.md
├── LICENSE
├── setup.py
├── requirements.txt
└── 0_hello_deeplens.py (main scripts)
DeepLens is first developed by Dr. Congli Wang (previously named dO), then developed and maintained by Xinge Yang.
If you use DeeoLens in your research, please cite the corresponding papers:
(If you donot want to list your paper here, we can remove it.)