Giter VIP home page Giter VIP logo

autolens's Introduction

AutoLens

Automated lens design from scratch using gradient backpropagation + deep learning. This project is built on the top of DeepLens framework.

We are planning to to build AutoLens as an open-source lens design software, imaging an open-source Zemax. Other algorithms (for example, end-to-end lens design and implicit representation) will be updated in DeepLens. Welcome to join us if you are interested in optical design! Contact Xinge Yang ([email protected])

How to run

Method 1

  1. git clone or download this repo
  2. run python autolens.py

Method 2

Run it in Google Colab

Open In Colab

Method 3

Use our packaged .exe file (upcoming)

Lens Design Examples

  1. Example automated lens design of (left) FoV 80deg, F/2.0, 4.55mm focal length, and (right) Full-frame, F/3.0, 50mm focal length.
AutoLens AutoLens
  1. 20 random automated lens design results for FoV 80deg, F/2.0, 4.55mm focal length.
AutoLens
  1. An aspherical lens with outstanding optical performance.
AutoLens

If you find this repo helpful, please cite our paper:

@article{yang2023curriculum,
  title={Curriculum learning for ab initio deep learned refractive optics},
  author={Yang, Xinge and Fu, Qiang and Heidrich, Wolfgang},
  journal={arXiv preprint arXiv:2302.01089},
  year={2023}
}

autolens's People

Contributors

singer-yang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

autolens's Issues

Question about auto_lens_design parameters

I am trying to design a len to simulate blur image and analyse the PSF. In .config/auto_lens_design.yml, I want to design my own len which has the same parameters with my real len to take blur image. The parameters are below.
focal length: 50mm
sensor diagonal length: 11mm (2/3'')
F-number: 1.4
Then I calculate the HFOV to be 6.3°, so I set the file parameters as the picture below.
image
However, I got an error with calculating the exit_pupil()
image
I change the parameters and found that HFOV>0.34 could work but FOCLEN is only 15.55mm.
Is there any restricted range of the parameters?
How can I get a len with the parameters I want?
If the auto-lens can generate lens with small HFOV and large focal length?
I am going to read the source code deeply, but I will appreciate it if someone give me the answer early.

Code release

DeepLens can do differentiable rendering and End-to-End optical design. This part of code will be released later in a new repo. AutoLens aims to provide a simple tool for classical design.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.