├── .gitignore
├── LICENSE.md
├── README.md
├── images
└── lensai.svg
├── notebooks
├── Example_1
│ └── Singlet_RF_Model_RMS_Spot_Size.ipynb
├── Example_2
│ └── Ray_Path_Failure_Classification_Model.ipynb
├── Example_3
│ └── Double_Gauss_Surrogate_Model.ipynb
├── Example_4
│ └── RL_aspheric_singlet.ipynb
├── Example_5
│ └── SR_GAN_for_wavefront_data.ipynb
└── Example_6
│ ├── Build_Dataset.ipynb
│ └── Misalignment_Prediction_Cooke_Triplet.ipynb
└── requirements.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | **/scripts/
2 | .venv/
3 | **/zmx_files/
4 | **/data/
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Kramer Harrison
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
6 |
7 | ## Integrated Machine and Deep Learning for Optical Systems
8 |
9 | Welcome to **LensAI**, a collection of studies where machine learning (ML) and deep learning (DL) techniques are applied to the field of optics and optical design. These studies leverage the power of AI to investigate and solve challenges in lens design, wavefront correction, ray tracing, and more, all using the open-source lens design tool [Optiland](https://github.com/HarrisonKramer/optiland) alongside standard scientific libraries.
10 |
11 | > [!NOTE]
12 | > This project is in active development. New notebooks are added regularly.
13 |
14 | # Overview
15 |
16 | This repository contains a series of Jupyter notebooks exploring how ML and DL can be used to enhance and automate various tasks in optical engineering. Topics of interest include:
17 |
18 | - Lens Design Optimization
19 | - Aberration Classification and Correction
20 | - Wavefront Error Prediction and Correction
21 | - Inverse Design of Lens Systems
22 | - Reinforcement Learning for Optical Design
23 | - Generative Lens Design
24 | - Super-resolution Applications in Wavefront Detection
25 | - Deep Learning for Optimal Tolerance Sensitivities
26 | - Surrogate Models for Raytracing
27 |
28 | By integrating AI methodologies into optics, we aim to improve the efficiency and innovation in optical system design, from faster optimizations to generating new designs.
29 |
30 | ## Notebook Summaries
31 |
32 | The following is an overview of existing, in progress, and planned studies:
33 |
34 | - [**Random Forest Regressor to Predict Optimal Lens Properties**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_1/Singlet_RF_Model_RMS_Spot_Size.ipynb)
35 | - Demonstrates how to build and train a random forest regressor to predict the radius of curvature of a plano-convex lens in order to minimize the RMS spot size.
36 | - [**Ray Path Failure Classification Model**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_2/Ray_Path_Failure_Classification_Model.ipynb)
37 | - Uses logistic regression to predict ray path failures in a Cooke triplet design.
38 | - [**Surrogate Ray Tracing Model Using Neural Networks**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_3/Double_Gauss_Surrogate_Model.ipynb)
39 | - Builds a neural network surrogate ray tracing model to increase effective "ray tracing" speed by 10,000x.
40 | - [**Super-Resolution Generative Adversarial Network to Enhance Wavefront Map Data**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_5/SR_GAN_for_wavefront_data.ipynb)
41 | - Utilizes a super-resolution GAN (SRGAN) to upscale low-resolution wavefront data into high-resolution data.
42 | - [**Optimization of Aspheric Lenses via Reinforcement Learning**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_4/RL_aspheric_singlet.ipynb)
43 | - Reinforcement learning is applied to the optimization of aspheric singlet lenses to generate new lens designs.
44 | - [**Regression Models for Lens Misalignment Prediction Using Wavefront Map Data**](https://github.com/HarrisonKramer/LensAI/blob/main/notebooks/Example_6/Misalignment_Prediction_Cooke_Triplet.ipynb)
45 | - Investigate various regression models to predict lens misalignment in a Cooke triplet design.
46 | - **Reinforcement Learning for Generating New Lens Starting Point Designs** - planned
47 | - **Diffusion Models for Generative Lens Design** - planned
48 | - **Neural Network for Prediction of Lens Seidel Aberration Coefficients from Surface Data** - planned
49 | - **Generative Adversarial Networks for Extrapolating New Lens Starting Point Designs** - planned
50 | - **Regression Model to Extrapolate Aberration Performance Across Spectral Bands** - planned
51 | - **Autoencoders for Wavefront Data Compression** - planned
52 | - **_Insert Your Idea Here_** - if you have an idea for a notebook, consider [opening an issue](https://github.com/HarrisonKramer/LensAI/issues) or [submitting a pull request](https://github.com/HarrisonKramer/LensAI/pulls).
53 |
54 |
55 | # Dependencies
56 |
57 | This repository is built on top of the following dependencies:
58 |
59 | - [optiland](https://github.com/HarrisonKramer/optiland) - For performing optical system simulations and analyses.
60 | - [numpy](https://numpy.org/) - Fundamental package for numerical computation.
61 | - [scipy](https://scipy.org/) - Optimization and scientific functions.
62 | - [scikit-learn](https://scikit-learn.org/stable/index.html) - Machine learning algorithms.
63 | - [torch](https://pytorch.org/) - Deep learning with PyTorch.
64 | - [matplotlib](https://matplotlib.org/) - Plotting and visualization.
65 | - [pandas](https://pandas.pydata.org/) - Data manipulation and analysis.
66 | - [seaborn](https://seaborn.pydata.org/) - Statistical data visualization.
67 | - [tqdm](https://tqdm.github.io/) - Progress bars in Jupyter notebooks.
68 | - [imblearn](https://imbalanced-learn.org/stable/) - Resample imbalanced datasets.
69 | - [gymnasium](https://gymnasium.farama.org/) - Standard API for reinforcement learning.
70 | - [stable-baselines3](https://stable-baselines3.readthedocs.io/en/master/) - Reinforcement learning algorithms in PyTorch.
71 |
72 | # Getting Started
73 |
74 | Explore the various examples in the [Notebooks](https://github.com/HarrisonKramer/LensAI/tree/main/notebooks) directory or run the examples yourself by cloning the repository and installing the required dependencies:
75 |
76 | ```sh
77 | git clone https://github.com/HarrisonKramer/LensAI.git
78 | cd LensAI
79 | pip install -r requirements.txt
80 | ```
81 |
82 | Navigate to a Jupyter notebook file and open in your favorite editor (e.g., [Visual Studio Code](https://code.visualstudio.com/)).
83 |
84 | Note that if you wish to use PyTorch with cuda support, please install torch by following the steps on the [PyTorch website](https://pytorch.org/get-started/locally/).
85 |
86 | # Contributing
87 |
88 | Contributions are welcome! If you have new ideas for optical studies using machine learning or deep learning, feel free to [open an issue](https://github.com/HarrisonKramer/LensAI/issues) or [submit a pull request](https://github.com/HarrisonKramer/LensAI/pulls).
89 |
90 | # References
91 | 1. Yow, A.P., Wong, D., Zhang, Y. et al. Artificial intelligence in optical lens design. Artif Intell Rev 57, 193 (2024).
92 | 2. Tong Yang, Dewen Cheng, and Yongtian Wang, "Designing freeform imaging systems based on reinforcement learning," Opt. Express 28, 30309-30323 (2020).
93 | 3. Bentley, J., Olson, C., & Society of Photo-Optical Instrumentation Engineers. (2012). Field guide to lens design. SPIE
94 | 4. Greivenkamp, J. E., & Society of Photo-Optical Instrumentation Engineers. (2004). Field guide to geometrical optics. SPIE
95 | 5. Côté G, Lalonde J-F, Thibault S (2019a) Extrapolating from lens design databases using deep learning. Opt Express 27(20):28279–28292
96 | 6. Côté G, Lalonde J-F, Thibault S (2021) Deep learning-enabled framework for automatic lens design starting point generation. Opt Express 29(3):3841–3854
97 | 7. Côté G, Zhang Y, Menke C, Lalonde J-F, Thibault S (2022) Inferring the solution space of microscope objective lenses using deep learning. Opt Express 30(5):6531–6545
98 | 8. Dilworth D (1987) Applications of Artificial Intelligence To computer-aided Lens Design. SPIE
99 |
100 | # Contact
101 |
102 | If you have any remarks, requests, issues, suggestions, or find a bug/mistake, please feel free to [open an issue](https://github.com/HarrisonKramer/LensAI/issues) in the repository.
103 |
104 | Kramer Harrison - kdanielharrison@gmail.com
105 |
--------------------------------------------------------------------------------
/images/lensai.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | LensAI LensAI
927 |
--------------------------------------------------------------------------------
/notebooks/Example_6/Build_Dataset.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 3,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import pandas as pd\n",
10 | "import numpy as np\n",
11 | "from tqdm import tqdm\n",
12 | "from optiland.optic import Optic\n",
13 | "from optiland import analysis, wavefront"
14 | ]
15 | },
16 | {
17 | "cell_type": "code",
18 | "execution_count": 4,
19 | "metadata": {},
20 | "outputs": [],
21 | "source": [
22 | "class CookeTriplet(Optic):\n",
23 | " def __init__(self):\n",
24 | " self.reset()\n",
25 | "\n",
26 | " def reset(self):\n",
27 | " Optic.__init__(self) # reset full system\n",
28 | "\n",
29 | " self.add_surface(index=0, radius=np.inf, thickness=np.inf)\n",
30 | " self.add_surface(index=1, radius=22.01359, thickness=3.25896, material='SK16')\n",
31 | " self.add_surface(index=2, radius=-435.76044, thickness=6.00755)\n",
32 | " self.add_surface(index=3, radius=-22.21328, thickness=0.99997, material=('F2', 'schott'))\n",
33 | " self.add_surface(index=4, radius=20.29192, thickness=4.75041, is_stop=True)\n",
34 | " self.add_surface(index=5, radius=79.68360, thickness=2.95208, material='SK16')\n",
35 | " self.add_surface(index=6, radius=-18.39533, thickness=42.20778)\n",
36 | " self.add_surface(index=7)\n",
37 | "\n",
38 | " self.set_aperture(aperture_type='EPD', value=10)\n",
39 | "\n",
40 | " self.set_field_type(field_type='angle')\n",
41 | " self.add_field(y=0)\n",
42 | " self.add_field(y=14)\n",
43 | " self.add_field(y=20)\n",
44 | "\n",
45 | " self.add_wavelength(value=0.55, is_primary=True)\n",
46 | "\n",
47 | " def decenter(self, lens_idx, dx=0, dy=0, dz=0):\n",
48 | " for idx in [lens_idx*2+1, lens_idx*2+2]:\n",
49 | " surf = self.surface_group.surfaces[idx] # get surface\n",
50 | " cs = surf.geometry.cs # get coordinate system\n",
51 | "\n",
52 | " # move surface\n",
53 | " cs.x += dx\n",
54 | " cs.y += dy\n",
55 | " cs.z += dz"
56 | ]
57 | },
58 | {
59 | "cell_type": "code",
60 | "execution_count": 5,
61 | "metadata": {},
62 | "outputs": [
63 | {
64 | "data": {
65 | "image/png": "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g8HxJtR3XMMu3S5odTtQ2lwKf5U/7o5diLyEe1i3SERERLctBkcn7K38FP/v4oc42l23+PWo2Vg+5THcGXEn6xaJiIjotsfg6ITi6kMwWoxYk/k8FsR+g3WLRERENKYwODphdebzkEll7m4GERERkVtI3d2A0YShkYiIiMYyBkciIiIicgiDIxERERE5hMGRiIiIiBzC4EhEREREDmFwJCIiIiKHMDgSERERkUMYHImIiIjIIQyOREREROQQBkciIiIicgiDIxERERE5xGXBcePGjbjzzjuh0Wjg7+8/4DkSiaTfbdu2ba5qEhERERHdArmr3thkMmHJkiXIycnBb3/720HP++CDD7Bo0SL748FCJhERERG5l8uC48svvwwA2LJly5Dn+fv7Izw83FXNICIiIqJh4vYaxxUrViA4OBhZWVn43e9+ByHEkOcbjUbo9fo+NyIiIiJyPZeNODpiw4YNmDdvHjQaDXbv3o3HHnsMbW1teOKJJwZ9TX5+vn00k4iIiIhGjlMjjqtXrx7wgpbrb1988YXD77d27VrMmjUL6enpeO655/CLX/wCb7zxxpCvWbNmDVpaWuy3yspKZ/4EIiIiIrpJTo04rlq1CsuWLRvynMTExJtuTHZ2Nl555RUYjUaoVKoBz1GpVIMeIyIiIiLXcSo4hoSEICQkxFVtQUlJCQICAhgMiYiIiDyQy2ocKyoq0NjYiIqKClgsFpSUlAAAkpKS4OPjg48++gi1tbWYOXMm1Go19uzZg1dffRXPPPOMq5pERERERLfAZcFx3bp12Lp1q/1xeno6AKCwsBBz5syBQqHAu+++i5UrV0IIgaSkJLz11lt4+OGHXdUkIiIiIroFLguOW7ZsGXINx0WLFvVZ+JuIiIiIPJvb13EkIiIiotGBwZGIiIiIHMLgSEREREQOYXAkIiIiIocwOBIRERGRQxgciYiIiMghDI5ERERE5BAGRyIiIiJyCIMjERERETmEwZGIiIiIHMLgSEREREQOYXAkIiIiIocwOBIRERGRQxgciYiIiMghDI5ERERE5BAGRyIiIiJyCIMjERERETmEwZGIiIiIHCJ3dwOIiIiIqJdCocDTq56x3/ckDI5EREREHkQikUCpVLq7GQPiVDUREREROYTBkYiIiIgcwuBIRERERA5hcCQiIiIihzA4EhEREZFDGByJiIiIyCEM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",
66 | "text/plain": [
67 | ""
68 | ]
69 | },
70 | "metadata": {},
71 | "output_type": "display_data"
72 | }
73 | ],
74 | "source": [
75 | "lens = CookeTriplet()\n",
76 | "lens.draw()"
77 | ]
78 | },
79 | {
80 | "cell_type": "code",
81 | "execution_count": 6,
82 | "metadata": {},
83 | "outputs": [],
84 | "source": [
85 | "np.random.seed(42)\n",
86 | "\n",
87 | "num_samples = 1_000\n",
88 | "\n",
89 | "delta = 0.5\n",
90 | "\n",
91 | "dx1 = np.random.uniform(-delta, delta, num_samples)\n",
92 | "dy1 = np.random.uniform(-delta, delta, num_samples)\n",
93 | "dz1 = np.random.uniform(-delta, delta, num_samples)\n",
94 | "\n",
95 | "dx2 = np.random.uniform(-delta, delta, num_samples)\n",
96 | "dy2 = np.random.uniform(-delta, delta, num_samples)\n",
97 | "dz2 = np.random.uniform(-delta, delta, num_samples)\n",
98 | "\n",
99 | "dx3 = np.random.uniform(-delta, delta, num_samples)\n",
100 | "dy3 = np.random.uniform(-delta, delta, num_samples)\n",
101 | "dz3 = np.random.uniform(-delta, delta, num_samples)\n",
102 | "\n",
103 | "df = pd.DataFrame({'dx1': dx1, 'dy1': dy1, 'dz1': dz1,\n",
104 | " 'dx2': dx2, 'dy2': dy2, 'dz2': dz2,\n",
105 | " 'dx3': dx3, 'dy3': dy3, 'dz3': dz3})"
106 | ]
107 | },
108 | {
109 | "cell_type": "code",
110 | "execution_count": 7,
111 | "metadata": {},
112 | "outputs": [
113 | {
114 | "name": "stderr",
115 | "output_type": "stream",
116 | "text": [
117 | "100%|██████████| 1000/1000 [18:36<00:00, 1.12s/it]\n"
118 | ]
119 | }
120 | ],
121 | "source": [
122 | "data = np.zeros((num_samples, 3, 36), dtype=np.float32)\n",
123 | "\n",
124 | "for k, row in tqdm(df.iterrows(), total=num_samples):\n",
125 | " lens.reset()\n",
126 | " lens.decenter(0, row['dx1'], row['dy1'], row['dz1'])\n",
127 | " lens.decenter(1, row['dx2'], row['dy2'], row['dz2'])\n",
128 | " lens.decenter(2, row['dx3'], row['dy3'], row['dz3'])\n",
129 | "\n",
130 | " z1 = wavefront.ZernikeOPD(lens, field=(0, 0.0), wavelength=0.55, zernike_type='standard', num_terms=36)\n",
131 | " z2 = wavefront.ZernikeOPD(lens, field=(0, 0.7), wavelength=0.55, zernike_type='standard', num_terms=36)\n",
132 | " z3 = wavefront.ZernikeOPD(lens, field=(0, 1.0), wavelength=0.55, zernike_type='standard', num_terms=36)\n",
133 | "\n",
134 | " data[k, 0] = z1.coeffs\n",
135 | " data[k, 1] = z2.coeffs\n",
136 | " data[k, 2] = z3.coeffs"
137 | ]
138 | },
139 | {
140 | "cell_type": "code",
141 | "execution_count": 8,
142 | "metadata": {},
143 | "outputs": [],
144 | "source": [
145 | "np.save('Cooke_triplet_wavefront_data.npy', data)"
146 | ]
147 | },
148 | {
149 | "cell_type": "code",
150 | "execution_count": 9,
151 | "metadata": {},
152 | "outputs": [],
153 | "source": [
154 | "df.to_csv('Cooke_wavefront_data.csv', index=False)"
155 | ]
156 | }
157 | ],
158 | "metadata": {
159 | "kernelspec": {
160 | "display_name": ".venv",
161 | "language": "python",
162 | "name": "python3"
163 | },
164 | "language_info": {
165 | "codemirror_mode": {
166 | "name": "ipython",
167 | "version": 3
168 | },
169 | "file_extension": ".py",
170 | "mimetype": "text/x-python",
171 | "name": "python",
172 | "nbconvert_exporter": "python",
173 | "pygments_lexer": "ipython3",
174 | "version": "3.12.4"
175 | }
176 | },
177 | "nbformat": 4,
178 | "nbformat_minor": 2
179 | }
180 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | optiland
2 | numpy
3 | pandas
4 | matplotlib
5 | scikit-learn
6 | seaborn
7 | tqdm
8 | torch
9 | imbalanced-learn
10 | gymnasium
11 | stable-baselines3
--------------------------------------------------------------------------------